dashdemux: push language code tag
authorMatthieu Bouron <matthieu.bouron@collabora.com>
Wed, 25 Jun 2014 13:55:32 +0000 (15:55 +0200)
committerThiago Santos <thiagoss@osg.samsung.com>
Tue, 19 Aug 2014 18:34:01 +0000 (15:34 -0300)
Language code tag is retrieved from the AdaptationSet language
property.

https://bugzilla.gnome.org/show_bug.cgi?id=732237

ext/dash/Makefile.am
ext/dash/gstdashdemux.c
ext/dash/gstdashdemux.h

index 97d8623..32964bb 100644 (file)
@@ -13,10 +13,18 @@ noinst_HEADERS =        \
        gstdash_debug.h
 
 # compiler and linker flags used to compile this plugin, set in configure.ac
-libgstdashdemux_la_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) $(GST_CFLAGS) $(LIBXML2_CFLAGS)
+libgstdashdemux_la_CFLAGS = \
+       $(GST_PLUGINS_BAD_CFLAGS) \
+       $(GST_PLUGINS_BASE_CFLAGS) \
+       $(GST_BASE_CFLAGS) \
+       $(GST_CFLAGS) \
+       $(LIBXML2_CFLAGS)
 libgstdashdemux_la_LIBADD = \
        $(top_builddir)/gst-libs/gst/uridownloader/libgsturidownloader-@GST_API_VERSION@.la \
-       $(GST_LIBS) $(GST_BASE_LIBS) $(LIBXML2_LIBS)
+       -lgsttag-$(GST_API_VERSION) \
+       $(GST_BASE_LIBS) \
+       $(GST_LIBS) \
+       $(LIBXML2_LIBS)
 libgstdashdemux_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstdashdemux_la_LIBTOOLFLAGS = --tag=disable-static
 
index a46e6ab..b23a3a0 100644 (file)
@@ -696,6 +696,7 @@ gst_dash_demux_setup_all_streams (GstDashDemux * demux)
     GstCaps *caps;
     GstEvent *event;
     gchar *stream_id;
+    gchar *lang = NULL;
 
     active_stream = gst_mpdparser_get_active_stream_by_index (demux->client, i);
     if (active_stream == NULL)
@@ -750,6 +751,21 @@ gst_dash_demux_setup_all_streams (GstDashDemux * demux)
     g_free (stream_id);
 
     gst_pad_push_event (stream->pad, gst_event_new_caps (caps));
+
+    if (active_stream->cur_adapt_set) {
+      lang = active_stream->cur_adapt_set->lang;
+    }
+
+    if (lang) {
+      GstTagList *tags;
+
+      if (gst_tag_check_language_code (lang))
+        tags = gst_tag_list_new (GST_TAG_LANGUAGE_CODE, lang, NULL);
+      else
+        tags = gst_tag_list_new (GST_TAG_LANGUAGE_NAME, lang, NULL);
+
+      gst_pad_push_event (stream->pad, gst_event_new_tag (tags));
+    }
   }
   streams = g_slist_reverse (streams);
 
index 4e3a3ed..a6caabe 100644 (file)
@@ -34,6 +34,7 @@
 #include <gst/base/gstadapter.h>
 #include <gst/base/gstdataqueue.h>
 #include "gstmpdparser.h"
+#include <gst/tag/tag.h>
 #include <gst/uridownloader/gsturidownloader.h>
 
 G_BEGIN_DECLS