[Bug 759126] New: qtdemux: issues with duration query handling
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Mon Dec 7 07:27:14 PST 2015
https://bugzilla.gnome.org/show_bug.cgi?id=759126
Bug ID: 759126
Summary: qtdemux: issues with duration query handling
Classification: Platform
Product: GStreamer
Version: git master
OS: Mac OS
Status: NEW
Severity: normal
Priority: Normal
Component: gst-plugins-good
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: phil at base-art.net
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
So I think roughtly this pipeline appsrc ! qtdemux ! appsink.
Wen playing a fragmented file, qtdemux is able to parse a duration value from
the mehd box but a duration query to the qtdemux src pad will first be
forwarded to appsrc (and basesrc) which will handle it:
0:00:02.407216510 1923 0x904bc0 DEBUG query
gstquery.c:674:gst_query_new_custom: creating new query 0xbfb980 duration
0:00:02.407282603 1923 0x904bc0 DEBUG GST_ELEMENT_PADS
gstelement.c:1679:gst_element_query: send query on element qtdemux0
0:00:02.407327603 1923 0x904bc0 DEBUG GST_ELEMENT_PADS
gstelement.c:1465:gst_element_get_random_pad: getting a random pad
0:00:02.407317603 1923 0xb44180 DEBUG basesink
gstbasesink.c:2535:gst_base_sink_do_sync:<appsink0> reset rc_time to time
0:00:00.041666666
0:00:02.407365051 1923 0x904bc0 DEBUG GST_ELEMENT_PADS
gstelement.c:1484:gst_element_get_random_pad: checking pad qtdemux0:video_0
0:00:02.407433020 1923 0x904bc0 DEBUG GST_ELEMENT_PADS
gstelement.c:1496:gst_element_get_random_pad: found pad qtdemux0:video_0
0:00:02.407410416 1923 0xb44180 DEBUG basesink
gstbasesink.c:2547:gst_base_sink_do_sync:<appsink0> possibly waiting for clock
to reach 0:00:00.041666666, adjusted 0:00:00.041666666
0:00:02.407489218 1923 0x904bc0 DEBUG GST_PADS
gstpad.c:3880:gst_pad_query:<qtdemux0:video_0> doing query 0xbfb980 (duration)
0:00:02.407532031 1923 0xb44180 DEBUG basesink
gstbasesink.c:2175:gst_base_sink_wait_clock:<appsink0> sync disabled
0:00:02.407572135 1923 0x904bc0 LOG qtdemux
qtdemux.c:873:gst_qtdemux_handle_src_query:<qtdemux0:video_0> duration query
0:00:02.407599010 1923 0xb44180 DEBUG basesink
gstbasesink.c:2554:gst_base_sink_do_sync:<appsink0> clock returned 4, jitter
0:00:00.000000000
0:00:02.407622291 1923 0x904bc0 DEBUG GST_PADS
gstpad.c:3337:gst_pad_query_default:<qtdemux0:video_0> forwarding 0xbfb980
(duration) query
0:00:02.407665676 1923 0xb44180 DEBUG basesink
gstbasesink.c:3520:gst_base_sink_chain_unlocked:<appsink0> rendering object
0x6e91f228
0:00:02.407713801 1923 0xb44180 DEBUG basesink
gstbasesink.c:946:gst_base_sink_set_last_buffer_unlocked:<appsink0> setting
last buffer to 0x6e91f228
0:00:02.407725468 1923 0x904bc0 DEBUG GST_PADS
gstpad.c:2801:gst_pad_iterate_internal_links_default:<qtdemux0:video_0> Making
iterator
0:00:02.407766770 1923 0xb44180 DEBUG appsink
gstappsink.c:734:gst_app_sink_render:<appsink0> pushing render buffer
0x6e91f228 on queue (0)
0:00:02.407808020 1923 0x904bc0 DEBUG GST_PADS
gstpad.c:4007:gst_pad_peer_query:<qtdemux0:sink> peer query 0xbfb980 (duration)
0:00:02.407841510 1923 0xb44180 DEBUG appsink
gstappsink.c:1207:gst_app_sink_pull_sample:<appsink0> trying to grab a buffer
0:00:02.407862291 1923 0x904bc0 DEBUG GST_PADS
gstpad.c:3880:gst_pad_query:<typefindelement0:src> doing query 0xbfb980
(duration)
0:00:02.407885781 1923 0xb44180 DEBUG appsink
gstappsink.c:680:dequeue_buffer:<appsink0> dequeued buffer 0x6e91f228
0:00:02.407914478 1923 0x904bc0 DEBUG typefind
gsttypefindelement.c:365:gst_type_find_handle_src_query:<typefindelement0>
Handling src query duration
0:00:02.407968072 1923 0xb44180 DEBUG appsink
gstappsink.c:1222:gst_app_sink_pull_sample:<appsink0> we have a buffer
0x6e91f228
0:00:02.408026770 1923 0x904bc0 DEBUG GST_PADS
gstpad.c:3337:gst_pad_query_default:<typefindelement0:src> forwarding 0xbfb980
(duration) query
0:00:02.408084114 1923 0x904bc0 DEBUG GST_PADS
gstpad.c:2801:gst_pad_iterate_internal_links_default:<typefindelement0:src>
Making iterator
0:00:02.408130520 1923 0x904bc0 DEBUG GST_PADS
gstpad.c:4007:gst_pad_peer_query:<typefindelement0:sink> peer query 0xbfb980
(duration)
0:00:02.408181249 1923 0x904bc0 DEBUG GST_PADS
gstpad.c:3880:gst_pad_query:<appsrc0:src> doing query 0xbfb980 (duration)
0:00:02.408284791 1923 0x904bc0 DEBUG basesrc
gstbasesrc.c:1054:gst_base_src_default_query:<appsrc0> duration query in format
time
0:00:02.408335468 1923 0x904bc0 DEBUG basesrc
gstbasesrc.c:2350:gst_base_src_update_length:<appsrc0> reading offset 0, length
0, size -1, segment.stop -1, maxsize -1
0:00:02.408439531 1923 0x904bc0 DEBUG basesrc
gstbasesrc.c:1291:gst_base_src_default_query:<appsrc0> query duration returns 1
0:00:02.408492499 1923 0x904bc0 DEBUG GST_PADS
gstpad.c:3903:gst_pad_query:<appsrc0:src> sent query 0xbfb980 (duration),
result 1
0:00:02.408550260 1923 0x904bc0 DEBUG GST_PADS
gstpad.c:3903:gst_pad_query:<typefindelement0:src> sent query 0xbfb980
(duration), result 1
0:00:02.408604895 1923 0x904bc0 DEBUG GST_PADS
gstpad.c:3903:gst_pad_query:<qtdemux0:video_0> sent query 0xbfb980 (duration),
result 1
But basesrc returns GST_CLOCK_TIME_NONE. And qtdemux ends up using this as well
even though it parsed the duration already.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list