x264enc: corrected em_data value in CEA-708 CC SEI message (fixes #28)

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
This commit is contained in:
Dmitry Shusharin 2019-12-14 17:15:21 +07:00
parent 3cd445a490
commit 9d3b96e5f7

View 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] = pic_in->extra_sei.payloads[i].payload[8] =
((cc_meta->size / 3) & 0x1f) | 0x40; ((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 */ pic_in->extra_sei.payloads[i].payload[cc_meta->size + 10] = 255; /* 8 marker bits */
} }
} }