<div dir="ltr">Hello folks,<br><br>I'm observing a/v freeze (gstreamer 1.4.5).<br>sequence of operations:<br>- a/v playback ongoing (pipeline state is in PLAYING)<br><br>On audio src pad of demux:<br>- push gst_event_new_flush_start()<br>- push gst_event_new_flush_stop(FALSE)<br>- push new segment event <br>- push buffers<br><br>A/V freeze (random)<br>the idea is to flush gstreamer pipeline for the audio chain before pushing buffers of different language of same codec.<br><br>It seems that the pipeline is blocked on basesink for video chain.<br>The clock ID object for video renderer suggests, gst_system_clock_id_wait_jitter_unlocked() named GstPulseSinkClock<br>(gdb) p *clock<br>$72 = <br><br>{<br> object = <br> {<br>     object = {g_type_instance = {g_class = 0xac707c58}, ref_count = 46, qdata = 0x0}, lock = {p = 0xac709f70, i = {2893062000, 0}}, <br>     name = 0xac705520 "GstPulseSinkClock", <br>     parent = 0x0, <br>     flags = 752, <br>     control_bindings = 0x0, <br>     control_rate = 100000000, <br>     last_sync = 18446744073709551615, <br>     _gst_reserved = 0x0<br> }, <br> priv = 0xad167828, <br> _gst_reserved = {0x0, 0x0, 0x0, 0x0}<br> }<br> <br>So far not able to make out how clock management and sync with renderer is taking place.<br>But below two threads seem related as it semms that video renderer is polling for some event from audio renderer ?<br>ANy suggestion will be more that helpful<br><br>Thread<br>#0  0xb7fdd428 in __kernel_vsyscall ()<br>#1  0xb7ab5108 in __GI_ppoll (fds=0x9fe12c48, nfds=1, timeout=0xa07fe1d8, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:56<br>#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<br>#3  gst_poll_wait (set=0xac703c58, timeout=23516000) at gstpoll.c:1248<br>#4  0xb7d8d76d in gst_system_clock_id_wait_jitter_unlocked (clock=0xad167890, entry=0xac731948, jitter=0xa07fe650, restart=1) at gstsystemclock.c:684<br>#5  0xb7d3c1aa in gst_clock_id_wait (id=0xac731948, jitter=jitter@entry=0xa07fe650) at gstclock.c:539<br>#6  0xb77f1930 in gst_base_sink_wait_clock (sink=sink@entry=0xadc0cfd8, time=<optimized out>, jitter=jitter@entry=0xa07fe650) at gstbasesink.c:2104<br>#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<br>#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<br>#9  0xb77f69a8 in gst_base_sink_chain_main (basesink=0xadc0cfd8, pad=<optimized out>, obj=0x9fe18360, is_list=0) at gstbasesink.c:3538<br>#10 0xb7fb8a05 in gst_validate_pad_monitor_chain_func (pad=0xad166500, parent=0xadc0cfd8, buffer=0x9fe18360) at gst-validate-pad-monitor.c:1509<br>#11 0xb7d62c3a in gst_pad_chain_data_unchecked (data=0x9fe18360, type=<optimized out>, pad=0xad166500) at gstpad.c:3830<br>#12 gst_pad_push_data (pad=0xac727578, type=type@entry=4112, data=0x9fe18360) at gstpad.c:4063<br>#13 0xb7d6a45e in gst_pad_push (pad=0x9fe18360, pad@entry=0xac727578, buffer=buffer@entry=0x9fe18360) at gstpad.c:4174<br>#14 0xb7d520c2 in gst_proxy_pad_chain_default (pad=0xac730090, parent=0xac727578, buffer=0x9fe18360) at gstghostpad.c:126<br>#15 0xb7d62c3a in gst_pad_chain_data_unchecked (data=0x9fe18360, type=<optimized out>, pad=0xac730090) at gstpad.c:3830<br>#16 gst_pad_push_data (pad=0xac70ac50, type=type@entry=4112, data=0x9fe18360) at gstpad.c:4063<br>#17 0xb7d6a45e in gst_pad_push (pad=0x9fe18360, buffer=0x9fe18360) at gstpad.c:4174<br>#18 0xb7807127 in gst_base_transform_chain (pad=0xac70ad88, parent=0xac75c788, buffer=0x9e9a7d48) at gstbasetransform.c:2260<br>#19 0xb7fb8a05 in gst_validate_pad_monitor_chain_func (pad=0xac70ad88, parent=0xac75c788, buffer=0x9e9a7d48) at gst-validate-pad-monitor.c:1509<br>#20 0xb7d62c3a in gst_pad_chain_data_unchecked (data=0x9e9a7d48, type=<optimized out>, pad=0xac70ad88) at gstpad.c:3830<br>#21 gst_pad_push_data (pad=0xac70a8a8, type=type@entry=4112, data=0x9e9a7d48) at gstpad.c:4063<br>#22 0xb7d6a45e in gst_pad_push (pad=0x9e9a7d48, buffer=0x9e9a7d48) at gstpad.c:4174<br>#23 0xb7807127 in gst_base_transform_chain (pad=0xac70a770, parent=0xac735588, buffer=0x9e9a7d48) at gstbasetransform.c:2260<br>#24 0xb7fb8a05 in gst_validate_pad_monitor_chain_func (pad=0xac70a770, parent=0xac735588, buffer=0x9e9a7d48) at gst-validate-pad-monitor.c:1509<br>#25 0xb7d62c3a in gst_pad_chain_data_unchecked (data=0x9e9a7d48, type=<optimized out>, pad=0xac70a770) at gstpad.c:3830<br>#26 gst_pad_push_data (pad=0xac75f290, type=type@entry=4112, data=0x9e9a7d48) at gstpad.c:4063<br>#27 0xb7d6a45e in gst_pad_push (pad=0x9e9a7d48, buffer=0x9e9a7d48) at gstpad.c:4174<br>#28 0xb7807127 in gst_base_transform_chain (pad=0xac75f158, parent=0x818d058, buffer=0x9e9a7d48) at gstbasetransform.c:2260<br>#29 0xb7fb8a05 in gst_validate_pad_monitor_chain_func (pad=0xac75f158, parent=0x818d058, buffer=0x9e9a7d48) at gst-validate-pad-monitor.c:1509<br>#30 0xb7d62c3a in gst_pad_chain_data_unchecked (data=0x9e9a7d48, type=<optimized out>, pad=0xac75f158) at gstpad.c:3830<br>#31 gst_pad_push_data (pad=0xac75f020, type=type@entry=4112, data=0x9e9a7d48) at gstpad.c:4063<br>#32 0xb7d6a45e in gst_pad_push (pad=0x9e9a7d48, buffer=0x9e9a7d48) at gstpad.c:4174<br>#33 0xb7807127 in gst_base_transform_chain (pad=0xac70aec0, parent=0xac75c490, buffer=0x9e9a7d48) at gstbasetransform.c:2260<br>#34 0xb7fb8a05 in gst_validate_pad_monitor_chain_func (pad=0xac70aec0, parent=0xac75c490, buffer=0x9e9a7d48) at gst-validate-pad-monitor.c:1509<br>#35 0xb7d62c3a in gst_pad_chain_data_unchecked (data=0x9e9a7d48, type=<optimized out>, pad=0xac70aec0) at gstpad.c:3830<br>#36 gst_pad_push_data (pad=0xadc32e78, type=type@entry=4112, data=0x9e9a7d48) at gstpad.c:4063<br>#37 0xb7d6a45e in gst_pad_push (pad=0x9e9a7d48, pad@entry=0xadc32e78, buffer=buffer@entry=0x9e9a7d48) at gstpad.c:4174<br>#38 0xb7d520c2 in gst_proxy_pad_chain_default (pad=0xac727428, parent=0x8191d10, buffer=0x9e9a7d48) at gstghostpad.c:126<br>#39 0xb7d62c3a in gst_pad_chain_data_unchecked (data=0x9e9a7d48, type=<optimized out>, pad=0xac727428) at gstpad.c:3830<br>---Type <return> to continue, or q <return> to quit---<br>#40 gst_pad_push_data (pad=0xac70a3c8, type=type@entry=4112, data=0x9e9a7d48) at gstpad.c:4063<br>#41 0xb7d6a45e in gst_pad_push (pad=0x9e9a7d48, buffer=buffer@entry=0x9e9a7d48) at gstpad.c:4174<br>#42 0xb60dfb67 in gst_queue_push_one (queue=0xac72c090) at gstqueue.c:1169<br>#43 gst_queue_loop (pad=0xac70a3c8) at gstqueue.c:1298<br>#44 0xb7d947c9 in gst_task_func (task=task@entry=0xad19f588) at gsttask.c:316<br>#45 0xb7d957ef in default_func (tdata=0xac75e980, pool=0x8057470) at gsttaskpool.c:68<br>#46 0xb7c11405 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0<br>#47 0xb7c109aa in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0<br>#48 0xb7b8df72 in start_thread (arg=0xa07ffb40) at pthread_create.c:312<br>#49 0xb7ac3f8e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:129<br><br>Thread <br>#0  0xb7fdd428 in __kernel_vsyscall ()<br>#1  0xb7ab501b in poll () at ../sysdeps/unix/syscall-template.S:81<br>#2  0xac6e5bbd in poll (__timeout=1500, __nfds=2, __fds=0xa6c02d68) at /usr/include/i386-linux-gnu/bits/poll2.h:46<br>#3  poll_func (ufds=0xa6c02d68, nfds=2, timeout=1500, userdata=0xac70b508) at pulse/thread-mainloop.c:69<br>#4  0xac6d44ee in pa_mainloop_poll (m=m@entry=0xac70b460) at pulse/mainloop.c:850<br>#5  0xac6d4d1d in pa_mainloop_iterate (m=m@entry=0xac70b460, block=block@entry=1, retval=retval@entry=0x0) at pulse/mainloop.c:932<br>#6  0xac6d4df4 in pa_mainloop_run (m=0xac70b460, retval=retval@entry=0x0) at pulse/mainloop.c:950<br>#7  0xac6e5b5c in thread (userdata=0xac705660) at pulse/thread-mainloop.c:88<br>#8  0xac68e4dd in internal_thread_func (userdata=0xac70b598) at pulsecore/thread-posix.c:83<br>#9  0xb7b8df72 in start_thread (arg=0xa753eb40) at pthread_create.c:312<br>#10 0xb7ac3f8e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:129<br></div>