Flushing seek hangs
Davide Tuccilli
tuccio89 at hotmail.com
Wed Feb 3 19:45:18 UTC 2016
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:
#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
>
>
More information about the gstreamer-devel
mailing list