mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
mpegts: Add creation of DVB Subtitling descriptor
Descriptor tag is 0x59
This commit is contained in:
parent
cfb4da7215
commit
05bf952384
2 changed files with 38 additions and 1 deletions
|
@ -390,7 +390,7 @@ gst_mpegts_descriptor_parse_dvb_teletext_nb (const GstMpegTsDescriptor *
|
||||||
* gst_mpegts_descriptor_parse_dvb_subtitling_idx:
|
* gst_mpegts_descriptor_parse_dvb_subtitling_idx:
|
||||||
* @descriptor: a %GST_MTS_DESC_DVB_SUBTITLING #GstMpegTsDescriptor
|
* @descriptor: a %GST_MTS_DESC_DVB_SUBTITLING #GstMpegTsDescriptor
|
||||||
* @idx: Table id of the entry to parse
|
* @idx: Table id of the entry to parse
|
||||||
* @lang (out) (transfer none): 4-byte gchar array to hold the language code
|
* @lang: (out) (transfer none): 4-byte gchar array to hold the language code
|
||||||
* @type: (out) (transfer none) (allow-none): the type of subtitling
|
* @type: (out) (transfer none) (allow-none): the type of subtitling
|
||||||
* @composition_page_id: (out) (transfer none) (allow-none): the composition page id
|
* @composition_page_id: (out) (transfer none) (allow-none): the composition page id
|
||||||
* @ancillary_page_id: (out) (transfer none) (allow-none): the ancillary page id
|
* @ancillary_page_id: (out) (transfer none) (allow-none): the ancillary page id
|
||||||
|
@ -450,3 +450,37 @@ gst_mpegts_descriptor_parse_dvb_subtitling_nb (const GstMpegTsDescriptor *
|
||||||
|
|
||||||
return descriptor->length / 8;
|
return descriptor->length / 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gst_mpegts_descriptor_from_dvb_subtitling:
|
||||||
|
* @lang: (transfer none): a string containing the ISO639 language
|
||||||
|
* @type: subtitling type
|
||||||
|
* @composition: composition page id
|
||||||
|
* @ancillary: ancillary page id
|
||||||
|
*/
|
||||||
|
GstMpegTsDescriptor *
|
||||||
|
gst_mpegts_descriptor_from_dvb_subtitling (const gchar * lang,
|
||||||
|
guint8 type, guint16 composition, guint16 ancillary)
|
||||||
|
{
|
||||||
|
GstMpegTsDescriptor *descriptor;
|
||||||
|
guint8 *data;
|
||||||
|
|
||||||
|
g_return_val_if_fail (lang != NULL, NULL);
|
||||||
|
|
||||||
|
descriptor = _new_descriptor (GST_MTS_DESC_DVB_SUBTITLING, 8);
|
||||||
|
|
||||||
|
data = descriptor->data + 2;
|
||||||
|
|
||||||
|
memcpy (data, lang, 3);
|
||||||
|
data += 3;
|
||||||
|
|
||||||
|
*data++ = type;
|
||||||
|
|
||||||
|
GST_WRITE_UINT16_BE (data, composition);
|
||||||
|
data += 2;
|
||||||
|
|
||||||
|
GST_WRITE_UINT16_BE (data, ancillary);
|
||||||
|
data += 2;
|
||||||
|
|
||||||
|
return descriptor;
|
||||||
|
}
|
||||||
|
|
|
@ -370,6 +370,9 @@ gboolean gst_mpegts_descriptor_parse_dvb_subtitling_idx (const GstMpegTsDescript
|
||||||
guint16 *ancillary_page_id);
|
guint16 *ancillary_page_id);
|
||||||
guint gst_mpegts_descriptor_parse_dvb_subtitling_nb (const GstMpegTsDescriptor *descriptor);
|
guint gst_mpegts_descriptor_parse_dvb_subtitling_nb (const GstMpegTsDescriptor *descriptor);
|
||||||
|
|
||||||
|
GstMpegTsDescriptor * gst_mpegts_descriptor_from_dvb_subtitling (const gchar *lang,
|
||||||
|
guint8 type, guint16 composition, guint16 ancillary);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* GST_MTS_DESC_DVB_TERRESTRIAL_DELIVERY_SYSTEM (0x5A) */
|
/* GST_MTS_DESC_DVB_TERRESTRIAL_DELIVERY_SYSTEM (0x5A) */
|
||||||
|
|
Loading…
Reference in a new issue