x264enc: corrected em_data value in CEA-708 CC SEI message (fixes #28)
authorDmitry Shusharin <pmdvsh@gmail.com>
Sat, 14 Dec 2019 10:15:21 +0000 (17:15 +0700)
committerDmitry Shusharin <pmdvsh@gmail.com>
Sat, 14 Dec 2019 10:24:33 +0000 (17:24 +0700)
Section 4.4 of CEA-708-D specification (table 2) requires all bits to be
set inside em_data field. h264parse element (and possible third-party
decoders such as libav) also follows this requirement.

https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/issues/28

ext/x264/gstx264enc.c

index c02ed5eb442475d7cf5b2c4fd6bb4e492c6bfdec..84d81111429cd411b2940ef8e4d81043bb25454f 100644 (file)
@@ -2342,7 +2342,7 @@ gst_x264_enc_add_cc (GstBuffer * buffer, x264_picture_t * pic_in)
      */
     pic_in->extra_sei.payloads[i].payload[8] =
         ((cc_meta->size / 3) & 0x1f) | 0x40;
-    pic_in->extra_sei.payloads[i].payload[9] = 0;       /* 8 bits em_data, unused */
+    pic_in->extra_sei.payloads[i].payload[9] = 255;       /* 8 bits em_data, unused */
     pic_in->extra_sei.payloads[i].payload[cc_meta->size + 10] = 255;    /* 8 marker bits */
   }
 }