Flushing seek hangs

Thiago Santos thiagoss at osg.samsung.com
Tue Feb 9 12:27:50 UTC 2016


On 02/05/2016 06:01 AM, Davide Tuccilli wrote:
> Sure, here's the bt: http://pastebin.com/UhHESuK2
>
> Also, I found out I don't get any deadlock using the same pipeline 
> with avdec_h264 over omxh264dec, so that might be a hint.
Yes, it seems like omxh264dec is the issue. Its thread that pushes 
buffers downstream is stuck waiting from some input for OMX and the 
flush() operation is not unlocking this operation. Sounds like a bug.

Is there a sample application that could be shared to reproduce the 
issue? Did you try a newer release?

In case it happens with a recent version, please file a bug so it 
doesn't get forgotten: 
https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer

Thanks,
>
> On 05/02/2016 02:09, Thiago Santos wrote:
>> On 02/03/2016 04:45 PM, Davide Tuccilli wrote:
>>> Version is 1.7.0.1.
>>>
>>> Not sure if relevant, it's a Qt application, I'm running a GMainLoop 
>>> in a QThread. This is the output of info threads:
>>>
>>>   Id   Target Id         Frame
>>>   17   Thread 0x7367f450 (LWP 27021) "VCHIQ completio" 0x75bd7adc in 
>>> ioctl () at ../sysdeps/unix/syscall-template.S:81
>>>   16   Thread 0x72cff450 (LWP 27022) "HDispmanx Notif" 0x75d64a40 in 
>>> do_futex_wait (isem=isem at entry=0x75b0fc70 
>>> <dispmanx_notify_available_event+24>)
>>>     at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:48
>>>   15   Thread 0x724ff450 (LWP 27023) "HTV Notify" 0x75d64a40 in 
>>> do_futex_wait (isem=isem at entry=0x75b0edec 
>>> <tvservice_notify_available_event+24>)
>>>     at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:48
>>>   14   Thread 0x71cff450 (LWP 27024) "HCEC Notify" 0x75d64a40 in 
>>> do_futex_wait (isem=isem at entry=0x75b0fb74 
>>> <cecservice_notify_available_event+24>)
>>>     at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:48
>>>   13   Thread 0x70ee9450 (LWP 27025) "QThread" syscall () at 
>>> ../ports/sysdeps/unix/sysv/linux/arm/syscall.S:37
>>>   12   Thread 0x6f2ff450 (LWP 27029) "playbackfakeque" syscall () at 
>>> ../ports/sysdeps/unix/sysv/linux/arm/syscall.S:37
>>>   11   Thread 0x6e8ff450 (LWP 27030) "playbackvideoqu" syscall () at 
>>> ../ports/sysdeps/unix/sysv/linux/arm/syscall.S:37
>>>   10   Thread 0x6e0ff450 (LWP 27031) "typefind:sink" syscall () at 
>>> ../ports/sysdeps/unix/sysv/linux/arm/syscall.S:37
>>>   9    Thread 0x6d4ff450 (LWP 27032) "qtdemux0:sink" syscall () at 
>>> ../ports/sysdeps/unix/sysv/linux/arm/syscall.S:37
>>>   8    Thread 0x6faff450 (LWP 27033) "gstglnavigation" 0x75bd5730 in 
>>> poll () at ../sysdeps/unix/syscall-template.S:81
>>>   7    Thread 0x6ccff450 (LWP 27034) "gstglcontext" 0x75bd5730 in 
>>> poll () at ../sysdeps/unix/syscall-template.S:81
>>>   6    Thread 0x6c4ff450 (LWP 27035) "multiqueue0:src" syscall () at 
>>> ../ports/sysdeps/unix/sysv/linux/arm/syscall.S:37
>>>   5    Thread 0x6bcff450 (LWP 27036) "multiqueue0:src" syscall () at 
>>> ../ports/sysdeps/unix/sysv/linux/arm/syscall.S:37
>>>   4    Thread 0x6a25e450 (LWP 27037) "multiqueue0:src" 0x75d627a4 in 
>>> __pthread_cond_wait (cond=cond at entry=0x6d75b058, 
>>> mutex=mutex at entry=0x6d75b03c)
>>>     at pthread_cond_wait.c:187
>>>   3    Thread 0x69a5e450 (LWP 27038) "ILCS_HOST" 0x75d64a40 in 
>>> do_futex_wait (isem=isem at entry=0x6d75b1ec)
>>>     at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:48
>>>   2    Thread 0x68eff450 (LWP 27039) "omxh264dec-omxh" syscall () at 
>>> ../ports/sysdeps/unix/sysv/linux/arm/syscall.S:37
>>> * 1    Thread 0x76efe000 (LWP 27020) "testbox" 0x75d65780 in 
>>> __lll_lock_wait (futex=futex at entry=0x6d755108, private=<optimized out>)
>>>     at ../ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.c:46
>>>
>>> This is the thread 1 bt:
>> Do you have the other theads bt? It seems like the omx video decoder 
>> flush handling waits for its thread to stop but the thread doesn't. 
>> We need to figure out where is this thread stuck.
>>
>>>
>>> #0  0x75d65780 in __lll_lock_wait (futex=futex at entry=0x6d755108, 
>>> private=<optimized out>)
>>>     at ../ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.c:46
>>> #1  0x75d603c4 in __GI___pthread_mutex_lock (mutex=0x6d755108) at 
>>> pthread_mutex_lock.c:114
>>> #2  0x76def678 in gst_pad_stop_task (pad=0x6d758178) at gstpad.c:6050
>>> #3  0x6a2fd358 in gst_omx_video_dec_flush (decoder=0x6d756138) at 
>>> gstomxvideodec.c:2100
>>> #4  0x76c67804 in gst_video_decoder_flush (dec=dec at entry=0x6d756138, 
>>> hard=hard at entry=1) at gstvideodecoder.c:916
>>> #5  0x76c6d6f8 in gst_video_decoder_sink_event_default 
>>> (decoder=0x6d756138, event=0x6fc03b68) at gstvideodecoder.c:1402
>>> #6  0x76de2634 in gst_pad_send_event_unchecked 
>>> (pad=pad at entry=0x6d758028, event=event at entry=0x6fc03b68, 
>>> type=<optimized out>, type at entry=23620896)
>>>     at gstpad.c:5552
>>> #7  0x76de2aec in gst_pad_push_event_unchecked 
>>> (pad=pad at entry=0x16d42e0, event=event at entry=0x6fc03b68, type=23620896,
>>>     type at entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at gstpad.c:5210
>>> #8  0x76dedcc4 in gst_pad_push_event (pad=0x16d42e0, 
>>> event=event at entry=0x6fc03b68) at gstpad.c:5347
>>> #9  0x76cecdd8 in gst_base_transform_sink_eventfunc 
>>> (trans=trans at entry=0x1682968, event=0x6fc03b68) at 
>>> gstbasetransform.c:1958
>>> #10 0x71265ee4 in gst_capsfilter_sink_event (trans=0x1682968, 
>>> event=<optimized out>) at gstcapsfilter.c:522
>>> #11 0x76de2634 in gst_pad_send_event_unchecked 
>>> (pad=pad at entry=0x16d4190, event=event at entry=0x6fc03b68, 
>>> type=<optimized out>, type at entry=1874869096)
>>>     at gstpad.c:5552
>>> #12 0x76de2aec in gst_pad_push_event_unchecked 
>>> (pad=pad at entry=0x16d4040, event=event at entry=0x6fc03b68, 
>>> type=1874869096,
>>>     type at entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at gstpad.c:5210
>>> #13 0x76dedcc4 in gst_pad_push_event (pad=0x16d4040, 
>>> event=event at entry=0x6fc03b68) at gstpad.c:5347
>>> #14 0x76cca244 in gst_base_parse_sink_event_default 
>>> (parse=0x16a1a08, event=0x6fc03b68) at gstbaseparse.c:1378
>>> #15 0x6d57e6d4 in gst_h264_parse_event (parse=0x16a1a08, 
>>> event=0x6fc03b68) at gsth264parse.c:2707
>>> #16 0x76de2634 in gst_pad_send_event_unchecked 
>>> (pad=pad at entry=0x167ce90, event=event at entry=0x6fc03b68, 
>>> type=<optimized out>,
>>>     type at entry=GST_PAD_PROBE_TYPE_BLOCK) at gstpad.c:5552
>>> #17 0x76de2aec in gst_pad_push_event_unchecked 
>>> (pad=pad at entry=0x167cd40, event=event at entry=0x6fc03b68, 
>>> type=GST_PAD_PROBE_TYPE_BLOCK,
>>>     type at entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at gstpad.c:5210
>>> #18 0x76dedcc4 in gst_pad_push_event (pad=0x167cd40, 
>>> event=event at entry=0x6fc03b68) at gstpad.c:5347
>>> #19 0x712861d0 in gst_multi_queue_sink_event 
>>> (pad=pad at entry=0x167cbf0, parent=parent at entry=0x16a0020, 
>>> event=event at entry=0x6fc03b68)
>>>     at gstmultiqueue.c:2001
>>> #20 0x76de2380 in gst_pad_send_event_unchecked 
>>> (pad=pad at entry=0x167cbf0, event=event at entry=0x6fc03b68, 
>>> type=<optimized out>, type at entry=2127086168)
>>>     at gstpad.c:5551
>>> #21 0x76de2aec in gst_pad_push_event_unchecked 
>>> (pad=pad at entry=0x167caa0, event=event at entry=0x6fc03b68, 
>>> type=2127086168,
>>>     type at entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at gstpad.c:5210
>>> #22 0x76dedcc4 in gst_pad_push_event (pad=pad at entry=0x167caa0, 
>>> event=0x6fc03b68) at gstpad.c:5347
>>> #23 0x6d86782c in gst_qtdemux_push_event 
>>> (qtdemux=qtdemux at entry=0x6d742010, event=event at entry=0x6fc03b68) at 
>>> qtdemux.c:966
>>> #24 0x6d889da8 in gst_qtdemux_do_seek (event=<optimized out>, 
>>> pad=<optimized out>, qtdemux=<optimized out>) at qtdemux.c:1591
>>> #25 gst_qtdemux_handle_src_event (pad=<optimized out>, 
>>> parent=<optimized out>, event=<optimized out>) at qtdemux.c:1679
>>> #26 0x76de2634 in gst_pad_send_event_unchecked 
>>> (pad=pad at entry=0x167caa0, event=event at entry=0x167acb8, 
>>> type=<optimized out>, type at entry=23571712)
>>>     at gstpad.c:5552
>>> #27 0x76de2aec in gst_pad_push_event_unchecked 
>>> (pad=pad at entry=0x167cbf0, event=event at entry=0x167acb8, type=23571712,
>>>     type at entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at gstpad.c:5210
>>> #28 0x76dedcc4 in gst_pad_push_event (pad=0x167cbf0, 
>>> event=0x167acb8) at gstpad.c:5347
>>> #29 0x76de2634 in gst_pad_send_event_unchecked 
>>> (pad=pad at entry=0x167cd40, event=event at entry=0x167acb8, 
>>> type=<optimized out>, type at entry=320)
>>>     at gstpad.c:5552
>>> #30 0x76de2aec in gst_pad_push_event_unchecked 
>>> (pad=pad at entry=0x167ce90, event=event at entry=0x167acb8, type=320,
>>>     type at entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at gstpad.c:5210
>>> #31 0x76dedcc4 in gst_pad_push_event (pad=pad at entry=0x167ce90, 
>>> event=0x167acb8) at gstpad.c:5347
>>> #32 0x76cc4c68 in gst_base_parse_handle_seek (event=0x167acb8, 
>>> parse=0x16a1a08) at gstbaseparse.c:4329
>>> #33 gst_base_parse_src_event_default (parse=0x16a1a08, 
>>> event=0x167acb8) at gstbaseparse.c:1547
>>> #34 0x6d57eb28 in gst_h264_parse_src_event (parse=0x16a1a08, 
>>> event=0x167acb8) at gsth264parse.c:2763
>>> ---Type <return> to continue, or q <return> to quit---
>>> #35 0x76de2634 in gst_pad_send_event_unchecked 
>>> (pad=pad at entry=0x16d4040, event=event at entry=0x167acb8, 
>>> type=<optimized out>, type at entry=1994959420)
>>>     at gstpad.c:5552
>>> #36 0x76de2aec in gst_pad_push_event_unchecked 
>>> (pad=pad at entry=0x16d4190, event=event at entry=0x167acb8, type=1994959420,
>>>     type at entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at gstpad.c:5210
>>> #37 0x76dedcc4 in gst_pad_push_event (pad=0x16d4190, 
>>> event=event at entry=0x167acb8) at gstpad.c:5347
>>> #38 0x76ced4e0 in gst_base_transform_src_eventfunc (trans=0x1682968, 
>>> event=0x167acb8) at gstbasetransform.c:2010
>>> #39 0x76de2634 in gst_pad_send_event_unchecked 
>>> (pad=pad at entry=0x16d42e0, event=event at entry=0x167acb8, 
>>> type=<optimized out>,
>>>     type at entry=GST_PAD_PROBE_TYPE_IDLE) at gstpad.c:5552
>>> #40 0x76de2aec in gst_pad_push_event_unchecked 
>>> (pad=pad at entry=0x6d758028, event=event at entry=0x167acb8, 
>>> type=GST_PAD_PROBE_TYPE_IDLE,
>>>     type at entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at gstpad.c:5210
>>> #41 0x76dedcc4 in gst_pad_push_event (pad=0x6d758028, 
>>> event=event at entry=0x167acb8) at gstpad.c:5347
>>> #42 0x76c65bf0 in gst_video_decoder_src_event_default 
>>> (decoder=0x6d756138, event=0x167acb8) at gstvideodecoder.c:1581
>>> #43 0x76de2634 in gst_pad_send_event_unchecked 
>>> (pad=pad at entry=0x6d758178, event=event at entry=0x167acb8, 
>>> type=<optimized out>, type at entry=1994954040)
>>>     at gstpad.c:5552
>>> #44 0x76de2aec in gst_pad_push_event_unchecked 
>>> (pad=pad at entry=0x163cb40, event=event at entry=0x167acb8, type=1994954040,
>>>     type at entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at gstpad.c:5210
>>> #45 0x76dedcc4 in gst_pad_push_event (pad=pad at entry=0x163cb40, 
>>> event=0x167acb8) at gstpad.c:5347
>>> #46 0x76dee1e0 in event_forward_func (pad=0x163cb40, 
>>> data=0x7ec8cdfc) at gstpad.c:2958
>>> #47 0x76de9b40 in gst_pad_forward (pad=pad at entry=0x6d7100b0, 
>>> forward=0x7ec8cdd4, user_data=0x7ec8cdfc, 
>>> user_data at entry=0x7ec8cdf4) at gstpad.c:2912
>>> #48 0x76de9d04 in gst_pad_event_default (pad=0x6d7100b0, 
>>> parent=<optimized out>, event=0x167acb8) at gstpad.c:3009
>>> #49 0x76de2634 in gst_pad_send_event_unchecked 
>>> (pad=pad at entry=0x6d7100b0, event=event at entry=0x167acb8, 
>>> type=<optimized out>,
>>>     type at entry=GST_PAD_PROBE_TYPE_INVALID) at gstpad.c:5552
>>> #50 0x76de2aec in gst_pad_push_event_unchecked 
>>> (pad=pad at entry=0x6d711d20, event=event at entry=0x167acb8, 
>>> type=GST_PAD_PROBE_TYPE_INVALID,
>>>     type at entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at gstpad.c:5210
>>> #51 0x76dedcc4 in gst_pad_push_event (pad=pad at entry=0x6d711d20, 
>>> event=0x167acb8) at gstpad.c:5347
>>> #52 0x76dee1e0 in event_forward_func (pad=0x6d711d20, 
>>> data=0x7ec8d01c) at gstpad.c:2958
>>> #53 0x76de9b40 in gst_pad_forward (pad=pad at entry=0x1678600, 
>>> forward=0x0, user_data=0x7ec8d01c, user_data at entry=0x7ec8d014) at 
>>> gstpad.c:2912
>>> #54 0x76de9d04 in gst_pad_event_default (pad=0x1678600, 
>>> parent=<optimized out>, event=0x167acb8) at gstpad.c:3009
>>> #55 0x76de2634 in gst_pad_send_event_unchecked 
>>> (pad=pad at entry=0x1678600, event=event at entry=0x167acb8, 
>>> type=<optimized out>, type at entry=1993251268)
>>>     at gstpad.c:5552
>>> #56 0x76de2aec in gst_pad_push_event_unchecked 
>>> (pad=pad at entry=0x16446d0, event=event at entry=0x167acb8, type=1993251268,
>>>     type at entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at gstpad.c:5210
>>> #57 0x76dedcc4 in gst_pad_push_event (pad=pad at entry=0x16446d0, 
>>> event=0x167acb8) at gstpad.c:5347
>>> #58 0x76dee1e0 in event_forward_func (pad=0x16446d0, 
>>> data=0x7ec8d23c) at gstpad.c:2958
>>> #59 0x76de9b40 in gst_pad_forward (pad=pad at entry=0x163c2f8, 
>>> forward=0x76e89538, user_data=0x7ec8d23c, 
>>> user_data at entry=0x7ec8d234) at gstpad.c:2912
>>> #60 0x76de9d04 in gst_pad_event_default (pad=0x163c2f8, 
>>> parent=<optimized out>, event=0x167acb8) at gstpad.c:3009
>>> #61 0x76de2634 in gst_pad_send_event_unchecked 
>>> (pad=pad at entry=0x163c2f8, event=event at entry=0x167acb8, 
>>> type=<optimized out>, type at entry=12)
>>>     at gstpad.c:5552
>>> #62 0x76de2aec in gst_pad_push_event_unchecked 
>>> (pad=pad at entry=0x1644580, event=event at entry=0x167acb8, type=12,
>>>     type at entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at gstpad.c:5210
>>> #63 0x76dedcc4 in gst_pad_push_event (pad=pad at entry=0x1644580, 
>>> event=0x167acb8) at gstpad.c:5347
>>> #64 0x76dee1e0 in event_forward_func (pad=0x1644580, 
>>> data=0x7ec8d45c) at gstpad.c:2958
>>> #65 0x76de9b40 in gst_pad_forward (pad=pad at entry=0x1644970, 
>>> forward=0x165e4b8, user_data=0x7ec8d45c, user_data at entry=0x7ec8d454) 
>>> at gstpad.c:2912
>>> #66 0x76de9d04 in gst_pad_event_default (pad=0x1644970, 
>>> parent=<optimized out>, event=0x167acb8) at gstpad.c:3009
>>> #67 0x76de2634 in gst_pad_send_event_unchecked 
>>> (pad=pad at entry=0x1644970, event=event at entry=0x167acb8, 
>>> type=<optimized out>, type at entry=1836122288)
>>>     at gstpad.c:5552
>>> #68 0x76de2aec in gst_pad_push_event_unchecked 
>>> (pad=pad at entry=0x1644820, event=event at entry=0x167acb8, type=1836122288,
>>>     type at entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at gstpad.c:5210
>>> #69 0x76dedcc4 in gst_pad_push_event (pad=0x1644820, 
>>> event=event at entry=0x167acb8) at gstpad.c:5347
>>> ---Type <return> to continue, or q <return> to quit---
>>> #70 0x76ced4e0 in gst_base_transform_src_eventfunc (trans=0x1662408, 
>>> event=0x167acb8) at gstbasetransform.c:2010
>>> #71 0x71248a24 in gst_video_flip_src_event (trans=0x1662408, 
>>> event=0x167acb8) at gstvideoflip.c:1183
>>> #72 0x76de2634 in gst_pad_send_event_unchecked 
>>> (pad=pad at entry=0x1644040, event=event at entry=0x167acb8, 
>>> type=<optimized out>,
>>>     type at entry=GST_PAD_PROBE_TYPE_BUFFER) at gstpad.c:5552
>>> #73 0x76de2aec in gst_pad_push_event_unchecked 
>>> (pad=pad at entry=0x16781b0, event=event at entry=0x167acb8, 
>>> type=GST_PAD_PROBE_TYPE_BUFFER,
>>>     type at entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at gstpad.c:5210
>>> #74 0x76dedcc4 in gst_pad_push_event (pad=pad at entry=0x16781b0, 
>>> event=0x167acb8) at gstpad.c:5347
>>> #75 0x76dee1e0 in event_forward_func (pad=0x16781b0, 
>>> data=0x7ec8d874) at gstpad.c:2958
>>> #76 0x76de9b40 in gst_pad_forward (pad=pad at entry=0x163c460, 
>>> forward=0x76e89538, user_data=0x7ec8d874, 
>>> user_data at entry=0x7ec8d86c) at gstpad.c:2912
>>> #77 0x76de9d04 in gst_pad_event_default (pad=0x163c460, 
>>> parent=<optimized out>, event=0x167acb8) at gstpad.c:3009
>>> #78 0x76de2634 in gst_pad_send_event_unchecked 
>>> (pad=pad at entry=0x163c460, event=event at entry=0x167acb8, 
>>> type=<optimized out>,
>>>     type at entry=GST_PAD_PROBE_TYPE_BUFFER) at gstpad.c:5552
>>> #79 0x76de2aec in gst_pad_push_event_unchecked 
>>> (pad=pad at entry=0x1644190, event=event at entry=0x167acb8, 
>>> type=GST_PAD_PROBE_TYPE_BUFFER,
>>>     type at entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at gstpad.c:5210
>>> #80 0x76dedcc4 in gst_pad_push_event (pad=0x1644190, 
>>> event=event at entry=0x167acb8) at gstpad.c:5347
>>> #81 0x76ced4e0 in gst_base_transform_src_eventfunc (trans=0x16705b8, 
>>> event=0x167acb8) at gstbasetransform.c:2010
>>> #82 0x76de2634 in gst_pad_send_event_unchecked 
>>> (pad=pad at entry=0x1644430, event=event at entry=0x167acb8, 
>>> type=<optimized out>, type at entry=23691984)
>>>     at gstpad.c:5552
>>> #83 0x76de2aec in gst_pad_push_event_unchecked 
>>> (pad=pad at entry=0x16442e0, event=event at entry=0x167acb8, type=23691984,
>>>     type at entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at gstpad.c:5210
>>> #84 0x76dedcc4 in gst_pad_push_event (pad=0x16442e0, 
>>> event=event at entry=0x167acb8) at gstpad.c:5347
>>> #85 0x76ced4e0 in gst_base_transform_src_eventfunc (trans=0x1670810, 
>>> event=0x167acb8) at gstbasetransform.c:2010
>>> #86 0x76de2634 in gst_pad_send_event_unchecked 
>>> (pad=pad at entry=0x1644c10, event=event at entry=0x167acb8, 
>>> type=<optimized out>,
>>>     type at entry=GST_PAD_PROBE_TYPE_INVALID) at gstpad.c:5552
>>> #87 0x76de2aec in gst_pad_push_event_unchecked 
>>> (pad=pad at entry=0x1644ac0, event=event at entry=0x167acb8, 
>>> type=GST_PAD_PROBE_TYPE_INVALID,
>>>     type at entry=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at gstpad.c:5210
>>> #88 0x76dedcc4 in gst_pad_push_event (pad=pad at entry=0x1644ac0, 
>>> event=event at entry=0x167acb8) at gstpad.c:5347
>>> #89 0x76cd3590 in gst_base_sink_send_event (element=<optimized out>, 
>>> event=0x167acb8) at gstbasesink.c:4493
>>> #90 0x76da1d48 in gst_bin_send_event (element=0x166d138, 
>>> event=0x167acb8) at gstbin.c:2958
>>> #91 0x76da1d48 in gst_bin_send_event (element=0x163c050, 
>>> event=0x167acb8) at gstbin.c:2958
>>> #92 0x76e2b5c8 in gst_element_seek_simple (element=0x163c050, 
>>> format=GST_FORMAT_TIME, seek_flags=GST_SEEK_FLAG_FLUSH, 
>>> seek_pos=7190000000)
>>>     at gstutils.c:2356
>>> #93 0x0001cba4 in VideoPipeline::seek (this=0x163a668, 
>>> nanoseconds=7190000000) at 
>>> /home/gejos/Desktop/testbox/system/videopipeline.cpp:166
>>> #94 0x0001ccb0 in VideoPipeline::seekForwardNanoseconds 
>>> (this=0x163a668, nanoseconds=750000000)
>>>     at /home/gejos/Desktop/testbox/system/videopipeline.cpp:174
>>> #95 0x0001cd78 in VideoPipeline::seekForwardPercentage 
>>> (this=0x163a668, percentage=1) at 
>>> /home/gejos/Desktop/testbox/system/videopipeline.cpp:184
>>> #96 0x0001fb14 in VideoWidget::keyPressEvent (this=0x163a4d8, 
>>> event=0x7ec8e39c) at /home/gejos/Desktop/testbox/ui/videowidget.cpp:83
>>> #97 0x767a59a0 in QWidget::event(QEvent*) () from 
>>> /usr/local/Qt-rasp2-5.5.1/lib/libQt5Widgets.so.5
>>> #98 0x76764e74 in QApplicationPrivate::notify_helper(QObject*, 
>>> QEvent*) () from /usr/local/Qt-rasp2-5.5.1/lib/libQt5Widgets.so.5
>>> #99 0x7676a4a4 in QApplication::notify(QObject*, QEvent*) () from 
>>> /usr/local/Qt-rasp2-5.5.1/lib/libQt5Widgets.so.5
>>> #100 0x7ec8e560 in ?? ()
>>> Backtrace stopped: previous frame identical to this frame (corrupt 
>>> stack?)
>>>
>>>
>>>
>>> On 03/02/2016 19:26, Thiago Santos wrote:
>>>> On 02/03/2016 03:17 PM, Davide Tuccilli wrote:
>>>>> I have a simple pipeline running on a RPi2, using a decodebin 
>>>>> connected to a tee, that branches into a glimagesink and a 
>>>>> fakesink (I use the latter to get the last sample I need to save 
>>>>> frame snapshots, doesn't seem like I can convert glimagesink 
>>>>> samples in a format accepted by jpegenc/pngenc directly), each 
>>>>> branch with its own queue.
>>>>>
>>>>> Whether in playing or paused state, this seek call hangs and never 
>>>>> returns:
>>>>>
>>>>> gst_element_seek_simple(m_pipeline, GST_FORMAT_TIME, 
>>>>> GST_SEEK_FLAG_FLUSH, nanoseconds);
>>>>
>>>> Can you get a stack trace with gdb to see where it hanging?
>>>>
>>>> Also, what version of GStreamer is this?
>>>>
>>>>>
>>>>> On the other hand, if I do the same call on a playing pipeline 
>>>>> without the flush flag (just using GST_SEEK_FLAG_NONE), the call 
>>>>> terminates successfully.
>>>>>
>>>>> I'm quite new to gstreamer, but everything I read states that 
>>>>> flushing seeks should be the standard way of seeking, should be 
>>>>> thread-safe (unlike non flushing) and might help with performances 
>>>>> aswell.
>>>>>
>>>>> The log didn't really help me, no error messages, only LOG/DEBUG 
>>>>> level messages and I couldn't find anything helpful.
>>>>> _______________________________________________
>>>>> gstreamer-devel mailing list
>>>>> gstreamer-devel at lists.freedesktop.org
>>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>
>>>>
>>>
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> gstreamer-devel at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


-- 
Thiago Sousa Santos
Senior Multimedia Engineer, Open Source Group
Samsung Research America - Silicon Valley



More information about the gstreamer-devel mailing list