- case A53_USER_DATA_TYPE_CODE_SCTE_21_ADDITIONAL_608_DATA:
- {
- guint8 temp;
- if (!gst_byte_reader_get_uint8 (br, &temp) || (temp & 0xE0) != 0xE0) {
- GST_WARNING_OBJECT (elt, "Missing closed caption count, ignoring");
- break;
- }
- cc_count = temp & 0x1F;
- cc_size = cc_count * 3;
- if (cc_size == 0 || cc_size > gst_byte_reader_get_remaining (br)) {
- GST_DEBUG_OBJECT (elt, "ignoring closed captions, not enough data");
- break;
- }
- g_assert (cc_size <= sizeof (user_data->closedcaptions));
- if (!gst_byte_reader_get_data (br, cc_size, &data))
- break;
- memcpy (user_data->closedcaptions, data, cc_size);
- user_data->closedcaptions_size = cc_size;
- user_data->closedcaptions_type =
- GST_VIDEO_CAPTION_TYPE_CEA608_ADDITIONAL_CEA_608;
- user_data->field = field;
- GST_DEBUG_OBJECT (elt,
- "SCTE 21 Additional CEA-608 closed captions, %u bytes", cc_size);
- GST_LOG_OBJECT (elt,
- "Extracted SCTE 21 Additional CEA 608 closed captions");
- }