Merge "If the PES packet size exceeds 16-bit range, use a packet size of 0 instead. This is valid for video content according to the specs." into gingerbread

This commit is contained in:
Andreas Huber
2010-10-18 11:18:11 -07:00
committed by Android (Google) Code Review

View File

@@ -725,6 +725,14 @@ void MPEG2TSWriter::writeAccessUnit(
size_t PES_packet_length = accessUnit->size() + 8;
if (PES_packet_length >= 65536) {
// This really should only happen for video.
CHECK_EQ(stream_id, 0xe0u);
// It's valid to set this to 0 for video according to the specs.
PES_packet_length = 0;
}
uint8_t *ptr = buffer->data();
*ptr++ = 0x47;
*ptr++ = 0x40 | (PID >> 8);