mpegts: return early if packetizing short section
authorJesper Larsen <knorr.jesper@gmail.com>
Fri, 19 Dec 2014 13:43:20 +0000 (14:43 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Fri, 12 Jun 2015 18:21:51 +0000 (19:21 +0100)
Short sections have 3 bytes of common header, while other sections
have 8 bytes of common header. If packetizing common header of short
section, we should stop after the first 3 bytes.

https://bugzilla.gnome.org/show_bug.cgi?id=735653

gst-libs/gst/mpegts/gstmpegtssection.c

index 319b5b0..dc62ac3 100644 (file)
@@ -1128,9 +1128,12 @@ _packetize_common_section (GstMpegtsSection * section, gsize length)
       GST_WRITE_UINT16_BE (data, (section->section_length - 3) | 0x7000);
   }
 
-  if (!section->short_section)
-    *data |= 0x80;
+  /* short sections do not contain any further fields */
+  if (section->short_section)
+    return;
 
+  /* Set section_syntax_indicator bit since we do not have a short section */
+  *data |= 0x80;
   data += 2;
 
   /* subtable_extension               - 16 bit uimsbf */