summaryrefslogtreecommitdiff
path: root/gst-libs/gst/mpegts
diff options
context:
space:
mode:
authorThiago Santos <thiagoss@osg.samsung.com>2016-04-19 10:27:43 -0300
committerThiago Santos <thiagoss@osg.samsung.com>2016-04-26 23:45:34 -0300
commit9cc00bf2c9b61236a3d65906ae7dbcb3fb8ef4fe (patch)
treef66368fc1c624918e6f4b2d2683815de3c77f058 /gst-libs/gst/mpegts
parentc9cd32bcea0b7fbc67dade993dd4901171a2c9b4 (diff)
downloadgstreamer-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.c24
-rw-r--r--gst-libs/gst/mpegts/gstmpegtsdescriptor.h1
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);