tsmux: fix continuity counter for packets with no payload
authorMathieu Duponchelle <mathieu@centricular.com>
Wed, 8 May 2019 14:56:29 +0000 (16:56 +0200)
committerMathieu Duponchelle <mduponchelle1@gmail.com>
Sun, 19 May 2019 19:40:48 +0000 (19:40 +0000)
gst/mpegtsmux/tsmux/tsmux.c

index 71550d41c8a020b44aa62e9a1852fd9bba9db5d5..91dadd6b0e7c97cc3d5b2169292e721e37901761 100644 (file)
@@ -823,7 +823,7 @@ tsmux_write_ts_header (guint8 * buf, TsMuxPacketInfo * pi,
     guint * payload_len_out, guint * payload_offset_out, guint stream_avail)
 {
   guint8 *tmp;
-  guint8 adaptation_flag;
+  guint8 adaptation_flag = 0;
   guint8 adapt_min_length = 0;
   guint8 adapt_len = 0;
   guint payload_len;
@@ -851,7 +851,6 @@ tsmux_write_ts_header (guint8 * buf, TsMuxPacketInfo * pi,
    * 2 bits: adaptation field control (1x has_adaptation_field | x1 has_payload)
    * 4 bits: continuity counter (xxxx)
    */
-  adaptation_flag = pi->packet_count & 0x0f;
 
   if (pi->flags & TSMUX_PACKET_FLAG_ADAPTATION) {
     write_adapt = TRUE;
@@ -895,6 +894,8 @@ tsmux_write_ts_header (guint8 * buf, TsMuxPacketInfo * pi,
     pi->packet_count++;
   }
 
+  adaptation_flag |= pi->packet_count & 0x0f;
+
   /* Write the byte of transport_scrambling_control, adaptation_field_control 
    * + continuity counter out */
   buf[3] = adaptation_flag;