a/v freeze (renderer/clock sync): running pipeline : flush/new segment pushed on audio chain !!

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

a/v freeze (renderer/clock sync): running pipeline : flush/new segment pushed on audio chain !!

Nitin Mahajan
Hello folks,

I'm observing a/v freeze (gstreamer 1.4.5).
sequence of operations:
- a/v playback ongoing (pipeline state is in PLAYING)

On audio src pad of demux:
- push gst_event_new_flush_start()
- push gst_event_new_flush_stop(FALSE)
- push new segment event
- push buffers

A/V freeze (random)
the idea is to flush gstreamer pipeline for the audio chain before pushing buffers of different language of same codec.

It seems that the pipeline is blocked on basesink for video chain.
The clock ID object for video renderer suggests, gst_system_clock_id_wait_jitter_unlocked() named GstPulseSinkClock
(gdb) p *clock
$72 =

{
 object =
 {
     object = {g_type_instance = {g_class = 0xac707c58}, ref_count = 46, qdata = 0x0}, lock = {p = 0xac709f70, i = {2893062000, 0}},
     name = 0xac705520 "GstPulseSinkClock",
     parent = 0x0,
     flags = 752,
     control_bindings = 0x0,
     control_rate = 100000000,
     last_sync = 18446744073709551615,
     _gst_reserved = 0x0
 },
 priv = 0xad167828,
 _gst_reserved = {0x0, 0x0, 0x0, 0x0}
 }
 
So far not able to make out how clock management and sync with renderer is taking place.
But below two threads seem related as it semms that video renderer is polling for some event from audio renderer ?
ANy suggestion will be more that helpful

Thread
#0  0xb7fdd428 in __kernel_vsyscall ()
#1  0xb7ab5108 in __GI_ppoll (fds=0x9fe12c48, nfds=1, timeout=0xa07fe1d8, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:56
#2  0xb7d76f29 in ppoll (__ss=0x0, __timeout=<optimized out>, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/i386-linux-gnu/bits/poll2.h:77
#3  gst_poll_wait (set=0xac703c58, timeout=23516000) at gstpoll.c:1248
#4  0xb7d8d76d in gst_system_clock_id_wait_jitter_unlocked (clock=0xad167890, entry=0xac731948, jitter=0xa07fe650, restart=1) at gstsystemclock.c:684
#5  0xb7d3c1aa in gst_clock_id_wait (id=0xac731948, jitter=jitter@entry=0xa07fe650) at gstclock.c:539
#6  0xb77f1930 in gst_base_sink_wait_clock (sink=sink@entry=0xadc0cfd8, time=<optimized out>, jitter=jitter@entry=0xa07fe650) at gstbasesink.c:2104
#7  0xb77f3317 in gst_base_sink_do_sync (basesink=basesink@entry=0xadc0cfd8, obj=obj@entry=0x9fe18360, late=late@entry=0xa07fe7d8, step_end=step_end@entry=0xa07fe7dc) at gstbasesink.c:2491
#8  0xb77f484e in gst_base_sink_chain_unlocked (basesink=basesink@entry=0xadc0cfd8, obj=obj@entry=0x9fe18360, is_list=is_list@entry=0, pad=<optimized out>) at gstbasesink.c:3390
#9  0xb77f69a8 in gst_base_sink_chain_main (basesink=0xadc0cfd8, pad=<optimized out>, obj=0x9fe18360, is_list=0) at gstbasesink.c:3538
#10 0xb7fb8a05 in gst_validate_pad_monitor_chain_func (pad=0xad166500, parent=0xadc0cfd8, buffer=0x9fe18360) at gst-validate-pad-monitor.c:1509
#11 0xb7d62c3a in gst_pad_chain_data_unchecked (data=0x9fe18360, type=<optimized out>, pad=0xad166500) at gstpad.c:3830
#12 gst_pad_push_data (pad=0xac727578, type=type@entry=4112, data=0x9fe18360) at gstpad.c:4063
#13 0xb7d6a45e in gst_pad_push (pad=0x9fe18360, pad@entry=0xac727578, buffer=buffer@entry=0x9fe18360) at gstpad.c:4174
#14 0xb7d520c2 in gst_proxy_pad_chain_default (pad=0xac730090, parent=0xac727578, buffer=0x9fe18360) at gstghostpad.c:126
#15 0xb7d62c3a in gst_pad_chain_data_unchecked (data=0x9fe18360, type=<optimized out>, pad=0xac730090) at gstpad.c:3830
#16 gst_pad_push_data (pad=0xac70ac50, type=type@entry=4112, data=0x9fe18360) at gstpad.c:4063
#17 0xb7d6a45e in gst_pad_push (pad=0x9fe18360, buffer=0x9fe18360) at gstpad.c:4174
#18 0xb7807127 in gst_base_transform_chain (pad=0xac70ad88, parent=0xac75c788, buffer=0x9e9a7d48) at gstbasetransform.c:2260
#19 0xb7fb8a05 in gst_validate_pad_monitor_chain_func (pad=0xac70ad88, parent=0xac75c788, buffer=0x9e9a7d48) at gst-validate-pad-monitor.c:1509
#20 0xb7d62c3a in gst_pad_chain_data_unchecked (data=0x9e9a7d48, type=<optimized out>, pad=0xac70ad88) at gstpad.c:3830
#21 gst_pad_push_data (pad=0xac70a8a8, type=type@entry=4112, data=0x9e9a7d48) at gstpad.c:4063
#22 0xb7d6a45e in gst_pad_push (pad=0x9e9a7d48, buffer=0x9e9a7d48) at gstpad.c:4174
#23 0xb7807127 in gst_base_transform_chain (pad=0xac70a770, parent=0xac735588, buffer=0x9e9a7d48) at gstbasetransform.c:2260
#24 0xb7fb8a05 in gst_validate_pad_monitor_chain_func (pad=0xac70a770, parent=0xac735588, buffer=0x9e9a7d48) at gst-validate-pad-monitor.c:1509
#25 0xb7d62c3a in gst_pad_chain_data_unchecked (data=0x9e9a7d48, type=<optimized out>, pad=0xac70a770) at gstpad.c:3830
#26 gst_pad_push_data (pad=0xac75f290, type=type@entry=4112, data=0x9e9a7d48) at gstpad.c:4063
#27 0xb7d6a45e in gst_pad_push (pad=0x9e9a7d48, buffer=0x9e9a7d48) at gstpad.c:4174
#28 0xb7807127 in gst_base_transform_chain (pad=0xac75f158, parent=0x818d058, buffer=0x9e9a7d48) at gstbasetransform.c:2260
#29 0xb7fb8a05 in gst_validate_pad_monitor_chain_func (pad=0xac75f158, parent=0x818d058, buffer=0x9e9a7d48) at gst-validate-pad-monitor.c:1509
#30 0xb7d62c3a in gst_pad_chain_data_unchecked (data=0x9e9a7d48, type=<optimized out>, pad=0xac75f158) at gstpad.c:3830
#31 gst_pad_push_data (pad=0xac75f020, type=type@entry=4112, data=0x9e9a7d48) at gstpad.c:4063
#32 0xb7d6a45e in gst_pad_push (pad=0x9e9a7d48, buffer=0x9e9a7d48) at gstpad.c:4174
#33 0xb7807127 in gst_base_transform_chain (pad=0xac70aec0, parent=0xac75c490, buffer=0x9e9a7d48) at gstbasetransform.c:2260
#34 0xb7fb8a05 in gst_validate_pad_monitor_chain_func (pad=0xac70aec0, parent=0xac75c490, buffer=0x9e9a7d48) at gst-validate-pad-monitor.c:1509
#35 0xb7d62c3a in gst_pad_chain_data_unchecked (data=0x9e9a7d48, type=<optimized out>, pad=0xac70aec0) at gstpad.c:3830
#36 gst_pad_push_data (pad=0xadc32e78, type=type@entry=4112, data=0x9e9a7d48) at gstpad.c:4063
#37 0xb7d6a45e in gst_pad_push (pad=0x9e9a7d48, pad@entry=0xadc32e78, buffer=buffer@entry=0x9e9a7d48) at gstpad.c:4174
#38 0xb7d520c2 in gst_proxy_pad_chain_default (pad=0xac727428, parent=0x8191d10, buffer=0x9e9a7d48) at gstghostpad.c:126
#39 0xb7d62c3a in gst_pad_chain_data_unchecked (data=0x9e9a7d48, type=<optimized out>, pad=0xac727428) at gstpad.c:3830
---Type <return> to continue, or q <return> to quit---
#40 gst_pad_push_data (pad=0xac70a3c8, type=type@entry=4112, data=0x9e9a7d48) at gstpad.c:4063
#41 0xb7d6a45e in gst_pad_push (pad=0x9e9a7d48, buffer=buffer@entry=0x9e9a7d48) at gstpad.c:4174
#42 0xb60dfb67 in gst_queue_push_one (queue=0xac72c090) at gstqueue.c:1169
#43 gst_queue_loop (pad=0xac70a3c8) at gstqueue.c:1298
#44 0xb7d947c9 in gst_task_func (task=task@entry=0xad19f588) at gsttask.c:316
#45 0xb7d957ef in default_func (tdata=0xac75e980, pool=0x8057470) at gsttaskpool.c:68
#46 0xb7c11405 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#47 0xb7c109aa in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#48 0xb7b8df72 in start_thread (arg=0xa07ffb40) at pthread_create.c:312
#49 0xb7ac3f8e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:129

Thread
#0  0xb7fdd428 in __kernel_vsyscall ()
#1  0xb7ab501b in poll () at ../sysdeps/unix/syscall-template.S:81
#2  0xac6e5bbd in poll (__timeout=1500, __nfds=2, __fds=0xa6c02d68) at /usr/include/i386-linux-gnu/bits/poll2.h:46
#3  poll_func (ufds=0xa6c02d68, nfds=2, timeout=1500, userdata=0xac70b508) at pulse/thread-mainloop.c:69
#4  0xac6d44ee in pa_mainloop_poll (m=m@entry=0xac70b460) at pulse/mainloop.c:850
#5  0xac6d4d1d in pa_mainloop_iterate (m=m@entry=0xac70b460, block=block@entry=1, retval=retval@entry=0x0) at pulse/mainloop.c:932
#6  0xac6d4df4 in pa_mainloop_run (m=0xac70b460, retval=retval@entry=0x0) at pulse/mainloop.c:950
#7  0xac6e5b5c in thread (userdata=0xac705660) at pulse/thread-mainloop.c:88
#8  0xac68e4dd in internal_thread_func (userdata=0xac70b598) at pulsecore/thread-posix.c:83
#9  0xb7b8df72 in start_thread (arg=0xa753eb40) at pthread_create.c:312
#10 0xb7ac3f8e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:129

BR
Nitin

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Thanks & Regards
--Nitin