diff options
author | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2005-01-10 16:24:14 +0000 |
---|---|---|
committer | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2005-01-10 16:24:14 +0000 |
commit | c246ab4641c7433727e1b7f340b04574708ca863 (patch) | |
tree | 9fa909763dff6e3a3295976001f1c0113a3a9027 /gst | |
parent | 0ad84df59f1e8ecd397df9b1142839a0990c23a6 (diff) | |
download | gst-plugins-bad-c246ab4641c7433727e1b7f340b04574708ca863.tar.gz gst-plugins-bad-c246ab4641c7433727e1b7f340b04574708ca863.tar.bz2 gst-plugins-bad-c246ab4641c7433727e1b7f340b04574708ca863.zip |
gst/qtdemux/qtdemux.c: Also shove tags on kid pads.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_parse_tree):
Also shove tags on kid pads.
Diffstat (limited to 'gst')
-rw-r--r-- | gst/qtdemux/qtdemux.c | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index bd1254ac..22cb1fc9 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -1860,19 +1860,6 @@ qtdemux_parse_tree (GstQTDemux * qtdemux) GNode *trak; GNode *udta; - udta = qtdemux_tree_get_child_by_type (qtdemux->moov_node, FOURCC_udta); - if (udta) { - qtdemux_parse_udta (qtdemux, udta); - - if (qtdemux->tag_list) { - GST_DEBUG ("calling gst_element_found_tags with %s\n", - gst_structure_to_string (qtdemux->tag_list)); - gst_element_found_tags (GST_ELEMENT (qtdemux), qtdemux->tag_list); - } - } else { - GST_LOG ("No udta node found."); - } - mvhd = qtdemux_tree_get_child_by_type (qtdemux->moov_node, FOURCC_mvhd); if (mvhd == NULL) { GST_LOG ("No mvhd node found."); @@ -1891,10 +1878,30 @@ qtdemux_parse_tree (GstQTDemux * qtdemux) /* trak = qtdemux_tree_get_sibling_by_type(trak, FOURCC_trak); if(trak)qtdemux_parse_trak(qtdemux, trak);*/ + /* kid pads */ while ((trak = qtdemux_tree_get_sibling_by_type (trak, FOURCC_trak)) != NULL) qtdemux_parse_trak (qtdemux, trak); - gst_element_no_more_pads (GST_ELEMENT (qtdemux)); + + /* tags */ + udta = qtdemux_tree_get_child_by_type (qtdemux->moov_node, FOURCC_udta); + if (udta) { + qtdemux_parse_udta (qtdemux, udta); + + if (qtdemux->tag_list) { + GstEvent *event; + gchar *t; + + event = gst_event_new_tag (gst_tag_list_copy (qtdemux->tag_list)); + gst_pad_event_default (qtdemux->sinkpad, event); + t = gst_structure_to_string (qtdemux->tag_list); + GST_DEBUG ("calling gst_element_found_tags with %s", t); + g_free (t); + gst_element_found_tags (GST_ELEMENT (qtdemux), qtdemux->tag_list); + } + } else { + GST_LOG ("No udta node found."); + } } static void |