[Bug 753899] baseparse: push sticky events to downstreams for initial prerolling

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sun Aug 23 16:53:07 PDT 2015


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

--- Comment #15 from HoonHee Lee <hoonh83.lee at gmail.com> ---
Dear Tim and Sebastian.
I applied above patch for sending gap event in mastroska-demux to my local
environment.
I tested it on 1.5.90 version with following level of debug.
=> GST_DEBUG
="5,GST_EVENT:6,GST_PADS:6,decodebin:6,multiqueue:6,ac3parse:6,capsfilter:6"
I confirmed that gap event was sending to downstream in such multiqueue,
ac3parse1, capsfilter2, and decodepad3:proxypad4.
But, sticky event in such caps event was not sending to capsfilter2.
Also, stream-start, segment and tag event was sending to downstream in such
capsfilter.

===========================================================
0:00:00.332552572 ^[[331m18366^[[00m 0x7f21f411f540 ^[[37mDEBUG  ^[[00m
^[[00;01;34m           GST_EVENT gstevent.c:302:gst_event_new_custom:^[[00m
creating new event 0x7f21e8036de0 gap 40966
0:00:00.332559560 ^[[331m18366^[[00m 0x7f21f411f540 ^[[33;01mWARN   ^[[00m
^[[00m       matroskademux
matroska-demux.c:2617:gst_matroska_demux_sync_streams:<matroskademux0>^[[00m
@@@@@@ type 2
...
0:00:00.332571125 ^[[331m18366^[[00m 0x7f21f411f540 ^[[33;01mWARN   ^[[00m
^[[00m       matroskademux
matroska-demux.c:2618:gst_matroska_demux_sync_streams:<matroskademux0>^[[00m
@@@@@@ Sending gap event gap event: 0x7f21e8036de0, time 99:99:99.999999999,
seq-num 262, GstEventGap, timestamp=(guint64)0, duration=(guint64)8000000;
...
0:00:00.333268020 ^[[331m18366^[[00m 0x7f21f411f540 ^[[33;01mLOG    ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:5121:gst_pad_push_event_unchecked:<matroskademux0:audio_1>^[[00m
sending event 0x7f21e8036de0 (gap) to peerpad <multiqueue0:sink_2>
0:00:00.333289477 ^[[331m18366^[[00m 0x7f21f411f540 ^[[37mDEBUG  ^[[00m
^[[00;01;34m           GST_EVENT
gstpad.c:5398:gst_pad_send_event_unchecked:<multiqueue0:sink_2>^[[00m have
event type gap event: 0x7f21e8036de0, time 99:99:99.999999999, seq-num 262,
GstEventGap, timestamp=(guint64)0, duration=(guint64)8000000;
...
0:00:00.333321447 ^[[331m18366^[[00m 0x7f21f411f540 ^[[37mDEBUG  ^[[00m ^[[00m 
        multiqueue
gstmultiqueue.c:1823:gst_multi_queue_sink_event:<multiqueue0>^[[00m SingleQueue
2 : Enqueuing event 0x7f21e8036de0 of type gap with id 174
...
0:00:00.333403525 ^[[331m18366^[[00m 0x7f21f411f540 ^[[33;01mLOG    ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:5129:gst_pad_push_event_unchecked:<matroskademux0:audio_1>^[[00m sent
event 0x7f21e8036de0 (gap) to peerpad <multiqueue0:sink_2>, ret ok
...
0:00:00.334208834 ^[[331m18366^[[00m 0x7f21e802e990 ^[[37mDEBUG  ^[[00m ^[[00m 
        multiqueue
gstmultiqueue.c:1276:gst_single_queue_push_one:<multiqueue0>^[[00m SingleQueue
2 : Pushing event 0x7f21e8036de0 of type gap
...
0:00:00.334222415 ^[[331m18366^[[00m 0x7f21e802e990 ^[[33;01mLOG    ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:5121:gst_pad_push_event_unchecked:<multiqueue0:src_2>^[[00m sending
event 0x7f21e8036de0 (gap) to peerpad <ac3parse1:sink>
...
0:00:00.334230225 ^[[331m18366^[[00m 0x7f21e802e990 ^[[37mDEBUG  ^[[00m
^[[00;01;34m           GST_EVENT
gstpad.c:5398:gst_pad_send_event_unchecked:<ac3parse1:sink>^[[00m have event
type gap event: 0x7f21e8036de0, time 99:99:99.999999999, seq-num 262,
GstEventGap, timestamp=(guint64)0, duration=(guint64)8000000;
...
0:00:00.334246486 ^[[331m18366^[[00m 0x7f21e802e990 ^[[37mDEBUG  ^[[00m ^[[00m 
         baseparse
gstbaseparse.c:1093:gst_base_parse_sink_event_default:<ac3parse1>^[[00m
handling event 40966, gap
0:00:00.334256186 ^[[331m18366^[[00m 0x7f21e802e990 ^[[37mDEBUG  ^[[00m ^[[00m 
         baseparse
gstbaseparse.c:1319:gst_base_parse_sink_event_default:<ac3parse1>^[[00m
draining current data due to gap event
0:00:00.334262138 ^[[331m18366^[[00m 0x7f21e802e990 ^[[33;01mLOG    ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:4958:store_sticky_event:<ac3parse1:src>^[[00m stored sticky event
segment
0:00:00.334267135 ^[[331m18366^[[00m 0x7f21e802e990 ^[[37mDEBUG  ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:3745:check_sticky:<ac3parse1:src>^[[00m pushing all sticky events
0:00:00.334271366 ^[[331m18366^[[00m 0x7f21e802e990 ^[[37mDEBUG  ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:3678:push_sticky:<ac3parse1:src>^[[00m event stream-start was already
received
0:00:00.334276531 ^[[331m18366^[[00m 0x7f21e802e990 ^[[33;01mLOG    ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:5121:gst_pad_push_event_unchecked:<ac3parse1:src>^[[00m sending event
0x7f21e80370a0 (segment) to peerpad <capsfilter2:sink>
...
0:00:00.334283229 ^[[331m18366^[[00m 0x7f21e802e990 ^[[37mDEBUG  ^[[00m
^[[00;01;34m           GST_EVENT
gstpad.c:5398:gst_pad_send_event_unchecked:<capsfilter2:sink>^[[00m have event
type segment event: 0x7f21e80370a0, time 99:99:99.999999999, seq-num 208,
GstEventSegment, segment=(GstSegment)"GstSegment,
flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE, rate=(double)1,
applied-rate=(double)1, format=(GstFormat)GST_FORMAT_TIME, base=(guint64)0,
offset=(guint64)0, start=(guint64)0, stop=(guint64)18446744073709551615,
time=(guint64)0, position=(guint64)0, duration=(guint64)6053984000000;";
0:00:00.334310767 ^[[331m18366^[[00m 0x7f21e802e990 ^[[37mDEBUG  ^[[00m
^[[00;01;34m            GST_CAPS
gstpad.c:2557:gst_pad_has_current_caps:<capsfilter2:sink>^[[00m check current
pad caps (NULL)
0:00:00.334316180 ^[[331m18366^[[00m 0x7f21e802e990 ^[[33;01mLOG    ^[[00m
^[[00m          capsfilter
gstcapsfilter.c:525:gst_capsfilter_sink_event:<capsfilter2>^[[00m Got segment
event before caps, queueing
0:00:00.334321066 ^[[331m18366^[[00m 0x7f21e802e990 ^[[37mDEBUG  ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:5467:gst_pad_send_event_unchecked:<capsfilter2:sink>^[[00m sent event,
ret ok
0:00:00.334325897 ^[[331m18366^[[00m 0x7f21e802e990 ^[[33;01mLOG    ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:4958:store_sticky_event:<capsfilter2:sink>^[[00m stored sticky event
segment
0:00:00.334334412 ^[[331m18366^[[00m 0x7f21e802e990 ^[[33;01mLOG    ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:5129:gst_pad_push_event_unchecked:<ac3parse1:src>^[[00m sent event
0x7f21e80370a0 (segment) to peerpad <capsfilter2:sink>, ret ok
...
0:00:00.334610766 ^[[331m18366^[[00m 0x7f21e802e990 ^[[33;01mLOG    ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:5129:gst_pad_push_event_unchecked:<ac3parse1:src>^[[00m sent event
0x7f21e000aee0 (tag) to peerpad <capsfilter2:sink>, ret ok
...
0:00:00.334624088 ^[[331m18366^[[00m 0x7f21e802e990 ^[[37mDEBUG  ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:3698:push_sticky:<ac3parse1:src>^[[00m event tag marked received
...
0:00:00.334635030 ^[[331m18366^[[00m 0x7f21e802e990 ^[[37mDEBUG  ^[[00m ^[[00m 
         baseparse gstbaseparse.c:2575:gst_base_parse_drain:<ac3parse1>^[[00m
draining
...
0:00:00.334690338 ^[[331m18366^[[00m 0x7f21e802e990 ^[[33;01mLOG    ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:5121:gst_pad_push_event_unchecked:<ac3parse1:src>^[[00m sending event
0x7f21e8036de0 (gap) to peerpad <capsfilter2:sink>
...
0:00:00.334705975 ^[[331m18366^[[00m 0x7f21e802e990 ^[[37mDEBUG  ^[[00m
^[[00;01;34m           GST_EVENT
gstpad.c:5398:gst_pad_send_event_unchecked:<capsfilter2:sink>^[[00m have event
type gap event: 0x7f21e8036de0, time 99:99:99.999999999, seq-num 262,
GstEventGap, timestamp=(guint64)0, duration=(guint64)8000000;
...
0:00:00.334716313 ^[[331m18366^[[00m 0x7f21e802e990 ^[[33;01mLOG    ^[[00m
^[[00m          capsfilter
gstcapsfilter.c:534:gst_capsfilter_sink_event:<capsfilter2>^[[00m Forwarding
gap event
...
0:00:00.334780544 ^[[331m18366^[[00m 0x7f21e802e990 ^[[37mDEBUG  ^[[00m
^[[00;01;34m           GST_EVENT
gstpad.c:5398:gst_pad_send_event_unchecked:<decodepad3:proxypad4>^[[00m have
event type gap event: 0x7f21e8036de0, time 99:99:99.999999999, seq-num 262,
GstEventGap, timestamp=(guint64)0, duration=(guint64)8000000;
0:00:00.334808091 ^[[331m18366^[[00m       0xfb8e30 ^[[37mDEBUG  ^[[00m
^[[00;43m             GST_BUS gstbus.c:789:gst_bus_source_dispatch:<bus1>^[[00m
source 0x1194c70 calling dispatch with state-changed message: 0x7f21e0002290,
time 99:99:99.999999999, seq-num 267, element 'a52dec0',
GstMessageStateChanged, old-state=(GstState)GST_STATE_READY,
new-state=(GstState)GST_STATE_PAUSED,
pending-state=(GstState)GST_STATE_VOID_PENDING;
0:00:00.334817210 ^[[331m18366^[[00m 0x7f21e802e990 ^[[33;01mLOG    ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:2929:gst_pad_event_default:<decodepad3:proxypad4>^[[00m default event
handler for event gap event: 0x7f21e8036de0, time 99:99:99.999999999, seq-num
262, GstEventGap, timestamp=(guint64)0, duration=(guint64)8000000;
0:00:00.334820073 ^[[331m18366^[[00m 0x7f21e8014230 ^[[37mDEBUG  ^[[00m
^[[00;43m             GST_BUS gstbus.c:280:gst_bus_new:<bus12>^[[00m created
new bus
0:00:00.334835143 ^[[331m18366^[[00m 0x7f21e802e990 ^[[33;01mLOG    ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:2849:gst_pad_forward:<decodepad3:proxypad4>^[[00m calling forward
function on pad '':decodepad3
0:00:00.334819438 ^[[331m18366^[[00m 0x7f21e802e450 ^[[37mDEBUG  ^[[00m
^[[00;43m             GST_BUS gstbus.c:344:gst_bus_post:<bus3>^[[00m [msg
0x7f21e0002290] dropped
0:00:00.334845512 ^[[331m18366^[[00m 0x7f21e802e990 ^[[33;01mLOG    ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:2894:event_forward_func:<'':decodepad3>^[[00m Reffing and pushing
event 0x7f21e8036de0 (gap) to '':decodepad3
...
0:00:00.334992147 ^[[331m18366^[[00m 0x7f21e802e990 ^[[37mDEBUG  ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:5177:gst_pad_push_event_unchecked:<'':decodepad3>^[[00m Dropping event
gap because pad is not linked
0:00:00.334995672 ^[[331m18366^[[00m       0xfb8e30 ^[[37mDEBUG  ^[[00m
^[[00;43m             GST_BUS
gstbus.c:892:gst_bus_add_watch_full_unlocked:<bus1>^[[00m New source 0x1194c70
with id 36
0:00:00.334997633 ^[[331m18366^[[00m 0x7f21e802e450 ^[[37mDEBUG  ^[[00m ^[[00m 
      audiodecoder
gstaudiodecoder.c:2200:gst_audio_decoder_sink_eventfunc:<a52dec0>^[[00m
received STREAM_START. Clearing taglist
0:00:00.335005853 ^[[331m18366^[[00m 0x7f21e802e990 ^[[37mDEBUG  ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:5467:gst_pad_send_event_unchecked:<decodepad3:proxypad4>^[[00m sent
event, ret error
0:00:00.335016187 ^[[331m18366^[[00m       0xfb8e30 ^[[37mDEBUG  ^[[00m
^[[00;43m             GST_BUS gstbus.c:1152:gst_bus_poll:^[[00m running
mainloop 0x11947f0
0:00:00.335029670 ^[[331m18366^[[00m 0x7f21e802e990 ^[[33;01mLOG    ^[[00m
^[[00;01;31;41m            GST_PADS
gstpad.c:5129:gst_pad_push_event_unchecked:<capsfilter2:src>^[[00m sent event
0x7f21e8036de0 (gap) to peerpad <decodepad3:proxypad4>, ret error
=========================================================

=========================================================
hoonheelee at EXID:~/work/gstreamer$ cat nemo_send_gap.log | grep "have event
type" | grep "capsfilter2" | more
0:00:00.252329676 18366 0x7f21f411f540 DEBUG              GST_EVENT
gstpad.c:5398:gst_pad_send_event_unchecked:<capsfilter2:src> have event type
reconfigure event: 0x7f21e803
70a0, time 99:99:99.999999999, seq-num 205, (NULL)
0:00:00.286883722 18366 0x7f21e802e990 DEBUG              GST_EVENT
gstpad.c:5398:gst_pad_send_event_unchecked:<capsfilter2:sink> have event type
stream-start event: 0x7f21e8
037030, time 99:99:99.999999999, seq-num 152, GstEventStreamStart,
stream-id=(string)01060e07da2388c91522133d20f4f9dc7b5586be8191f49acb7f89a68a55ea98/2239632770,
flags=(GstStreamFlags)GST_STREAM_FLAG_NONE,
 group-id=(uint)1;
0:00:00.334283229 18366 0x7f21e802e990 DEBUG              GST_EVENT
gstpad.c:5398:gst_pad_send_event_unchecked:<capsfilter2:sink> have event type
segment event: 0x7f21e80370a
0, time 99:99:99.999999999, seq-num 208, GstEventSegment,
segment=(GstSegment)"GstSegment, flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE,
rate=(double)1, applied-rate=(double)1, format=(GstFormat)GST_FORMAT
_TIME, base=(guint64)0, offset=(guint64)0, start=(guint64)0,
stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)0,
duration=(guint64)6053984000000;";
0:00:00.334373386 18366 0x7f21e802e990 DEBUG              GST_EVENT
gstpad.c:5398:gst_pad_send_event_unchecked:<capsfilter2:sink> have event type
tag event: 0x7f21e8036ec0, t
ime 99:99:99.999999999, seq-num 154, GstTagList-global,
taglist=(taglist)"taglist\,\
title\=\(string\)\"ikyts-\\354\\202\\254\\355\\225\\264\\354\\262\\234\\354\\202\\254-2013-11-03\"\,\
container-format\=
\(string\)Matroska\;";
0:00:00.334510156 18366 0x7f21e802e990 DEBUG              GST_EVENT
gstpad.c:5398:gst_pad_send_event_unchecked:<capsfilter2:sink> have event type
tag event: 0x7f21e000aee0, t
ime 99:99:99.999999999, seq-num 266, GstTagList-stream,
taglist=(taglist)"taglist\,\ audio-codec\=\(string\)\"AC-3\\\ audio\"\,\
language-code\=\(string\)ko\;";
0:00:00.334705975 18366 0x7f21e802e990 DEBUG              GST_EVENT
gstpad.c:5398:gst_pad_send_event_unchecked:<capsfilter2:sink> have event type
gap event: 0x7f21e8036de0, t
ime 99:99:99.999999999, seq-num 262, GstEventGap, timestamp=(guint64)0,
duration=(guint64)8000000;
=========================================================

Please check my comment.

-- 
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