dashdemux: push language code tag

Language code tag is retrieved from the AdaptationSet language
property.

https://bugzilla.gnome.org/show_bug.cgi?id=732237
This commit is contained in:
Matthieu Bouron 2014-06-25 15:55:32 +02:00 committed by Thiago Santos
parent cb4fd36e7e
commit 82fdb3aefc
3 changed files with 27 additions and 2 deletions

View file

@ -13,10 +13,18 @@ noinst_HEADERS = \
gstdash_debug.h gstdash_debug.h
# compiler and linker flags used to compile this plugin, set in configure.ac # 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 = \ libgstdashdemux_la_LIBADD = \
$(top_builddir)/gst-libs/gst/uridownloader/libgsturidownloader-@GST_API_VERSION@.la \ $(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_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstdashdemux_la_LIBTOOLFLAGS = --tag=disable-static libgstdashdemux_la_LIBTOOLFLAGS = --tag=disable-static

View file

@ -696,6 +696,7 @@ gst_dash_demux_setup_all_streams (GstDashDemux * demux)
GstCaps *caps; GstCaps *caps;
GstEvent *event; GstEvent *event;
gchar *stream_id; gchar *stream_id;
gchar *lang = NULL;
active_stream = gst_mpdparser_get_active_stream_by_index (demux->client, i); active_stream = gst_mpdparser_get_active_stream_by_index (demux->client, i);
if (active_stream == NULL) if (active_stream == NULL)
@ -750,6 +751,21 @@ gst_dash_demux_setup_all_streams (GstDashDemux * demux)
g_free (stream_id); g_free (stream_id);
gst_pad_push_event (stream->pad, gst_event_new_caps (caps)); 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); streams = g_slist_reverse (streams);

View file

@ -34,6 +34,7 @@
#include <gst/base/gstadapter.h> #include <gst/base/gstadapter.h>
#include <gst/base/gstdataqueue.h> #include <gst/base/gstdataqueue.h>
#include "gstmpdparser.h" #include "gstmpdparser.h"
#include <gst/tag/tag.h>
#include <gst/uridownloader/gsturidownloader.h> #include <gst/uridownloader/gsturidownloader.h>
G_BEGIN_DECLS G_BEGIN_DECLS