diff options
author | Thiago Santos <thiagoss@osg.samsung.com> | 2016-04-19 10:27:43 -0300 |
---|---|---|
committer | Thiago Santos <thiagoss@osg.samsung.com> | 2016-04-26 23:45:34 -0300 |
commit | 9cc00bf2c9b61236a3d65906ae7dbcb3fb8ef4fe (patch) | |
tree | f66368fc1c624918e6f4b2d2683815de3c77f058 /gst-libs/gst/mpegts | |
parent | c9cd32bcea0b7fbc67dade993dd4901171a2c9b4 (diff) | |
download | gstreamer-plugins-bad-9cc00bf2c9b61236a3d65906ae7dbcb3fb8ef4fe.tar.gz |
mpegtsmux: write language descriptor when language is available
Adds a new function to mpegts lib to create a iso639 language
descriptor from a language and use it in mpegtsmux to add
a language descriptor to audio streams that have a language set.
https://bugzilla.gnome.org/show_bug.cgi?id=763647
Diffstat (limited to 'gst-libs/gst/mpegts')
-rw-r--r-- | gst-libs/gst/mpegts/gstmpegtsdescriptor.c | 24 | ||||
-rw-r--r-- | gst-libs/gst/mpegts/gstmpegtsdescriptor.h | 1 |
2 files changed, 25 insertions, 0 deletions
diff --git a/gst-libs/gst/mpegts/gstmpegtsdescriptor.c b/gst-libs/gst/mpegts/gstmpegtsdescriptor.c index d4817d24c..a49ce2a2c 100644 --- a/gst-libs/gst/mpegts/gstmpegtsdescriptor.c +++ b/gst-libs/gst/mpegts/gstmpegtsdescriptor.c @@ -1040,6 +1040,30 @@ gst_mpegts_descriptor_parse_iso_639_language_nb (const GstMpegtsDescriptor * } /** + * gst_mpegts_descriptor_from_iso_639_language: + * @language: (transfer none): ISO-639-2 language 3-char code + * + * Creates a %GST_MTS_DESC_ISO_639_LANGUAGE #GstMpegtsDescriptor with + * a single language + * + * Return: #GstMpegtsDescriptor, %NULL on failure + */ +GstMpegtsDescriptor * +gst_mpegts_descriptor_from_iso_639_language (const gchar * language) +{ + GstMpegtsDescriptor *descriptor; + + g_return_val_if_fail (language != NULL, NULL); + + descriptor = _new_descriptor (GST_MTS_DESC_ISO_639_LANGUAGE, 4 + 4); /* a language takes 4 bytes */ + + memcpy (descriptor->data + 2, language, 3); + descriptor->data[2 + 3] = 0; /* set audio type to undefined */ + + return descriptor; +} + +/** * gst_mpegts_descriptor_parse_logical_channel: * @descriptor: a %GST_MTS_DESC_DTG_LOGICAL_CHANNEL #GstMpegtsDescriptor * @res: (out) (transfer none): the #GstMpegtsLogicalChannelDescriptor to fill diff --git a/gst-libs/gst/mpegts/gstmpegtsdescriptor.h b/gst-libs/gst/mpegts/gstmpegtsdescriptor.h index af56be0fa..33d46f5db 100644 --- a/gst-libs/gst/mpegts/gstmpegtsdescriptor.h +++ b/gst-libs/gst/mpegts/gstmpegtsdescriptor.h @@ -313,6 +313,7 @@ gboolean gst_mpegts_descriptor_parse_iso_639_language_idx (const GstMpegtsDescri guint idx, gchar **lang, GstMpegtsIso639AudioType *audio_type); guint gst_mpegts_descriptor_parse_iso_639_language_nb (const GstMpegtsDescriptor *descriptor); +GstMpegtsDescriptor * gst_mpegts_descriptor_from_iso_639_language (const gchar * language); |