winlin

add comments for PES packet length is 0

@@ -1495,6 +1495,12 @@ int TSPayloadPES::demux(TSContext* ctx, TSPacket* pkt, u_int8_t* start, u_int8_t @@ -1495,6 +1495,12 @@ int TSPayloadPES::demux(TSContext* ctx, TSPacket* pkt, u_int8_t* start, u_int8_t
1495 msg->PES_packet_length = PES_packet_length; 1495 msg->PES_packet_length = PES_packet_length;
1496 msg->packet_header_size = p - pos_packet; 1496 msg->packet_header_size = p - pos_packet;
1497 msg->packet_data_size = PES_packet_length - msg->packet_header_size; 1497 msg->packet_data_size = PES_packet_length - msg->packet_header_size;
  1498 +
  1499 + /**
  1500 + * when actual packet length > 0xffff(65535),
  1501 + * which exceed the max u_int16_t packet length,
  1502 + * use 0 packet length, the next unit start indicates the end of packet.
  1503 + */
1498 if (PES_packet_length == 0) { 1504 if (PES_packet_length == 0) {
1499 msg->packet_data_size = last - p - msg->packet_header_size; 1505 msg->packet_data_size = last - p - msg->packet_header_size;
1500 } 1506 }