[Bug 774654] Flushing can hang if output port queue of pending buffers is empty

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sat Nov 26 11:25:03 UTC 2016


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

minfrin at sharp.fm changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #340751|0                           |1
        is obsolete|                            |

--- Comment #6 from minfrin at sharp.fm ---
Created attachment 340794
  --> https://bugzilla.gnome.org/attachment.cgi?id=340794&action=edit
Hack: swap flush with stop

Tried this variation on the change as you described, but I still get a hang.

The new hang seems to make more sense though, it hangs like this:

0:00:11.868245518 25138 0x74090260 DEBUG            omxvideodec
gstomxvideodec.c:2187:gst_omx_video_dec_handle_frame:<omxh264dec-omxh264dec0>
Handling frame
0:00:11.868429057 25138 0x74090260 DEBUG                    omx
gstomx.c:1263:gst_omx_port_acquire_buffer:<omxh264dec-omxh264dec0> Acquiring
video_decode buffer from port 130
0:00:11.868600461 25138 0x74090260 DEBUG                    omx
gstomx.c:1376:gst_omx_port_acquire_buffer:<omxh264dec-omxh264dec0> video_decode
port 130 has pending buffers
0:00:11.868728012 25138 0x74090260 DEBUG                    omx
gstomx.c:1390:gst_omx_port_acquire_buffer:<omxh264dec-omxh264dec0> Acquired
buffer 0x744526c8 (0x65bc0810) from video_decode port 130: 0
0:00:11.868896031 25138 0x74090260 DEBUG            omxvideodec
gstomxvideodec.c:2339:gst_omx_video_dec_handle_frame:<omxh264dec-omxh264dec0>
Passing frame offset 0 to the component
0:00:11.869035300 25138 0x74090260 DEBUG                    omx
gstomx.c:1412:gst_omx_port_release_buffer:<omxh264dec-omxh264dec0> Releasing
buffer 0x744526c8 (0x65bc0810) to video_decode port 130
0:00:11.869901018 25138 0x74090260 DEBUG                    omx
gstomx.c:1458:gst_omx_port_release_buffer:<omxh264dec-omxh264dec0> Released
buffer 0x744526c8 to video_decode port 130: None (0x00000000)
0:00:11.870133151 25138 0x74090260 DEBUG            omxvideodec
gstomxvideodec.c:2386:gst_omx_video_dec_handle_frame:<omxh264dec-omxh264dec0>
Passed frame to component
0:00:11.871020692 25138 0x74090260 DEBUG            omxvideodec
gstomxvideodec.c:2187:gst_omx_video_dec_handle_frame:<omxh264dec-omxh264dec0>
Handling frame
0:00:11.871217305 25138 0x74090260 DEBUG                    omx
gstomx.c:1263:gst_omx_port_acquire_buffer:<omxh264dec-omxh264dec0> Acquiring
video_decode buffer from port 130
0:00:11.871396261 25138 0x74090260 DEBUG                    omx
gstomx.c:1368:gst_omx_port_acquire_buffer:<omxh264dec-omxh264dec0> Queue of
video_decode port 130 is empty
0:00:11.871539176 25138 0x74090260 DEBUG                    omx
gstomx.c:434:gst_omx_component_wait_message:<omxh264dec-omxh264dec0>
video_decode waiting for signal
<--- we hang here

Given that "Queue of video_decode port 130 is empty" it seems strange that we
would choose to block waiting for something from the port when it appears
nothing is expected to come out of the port.

Am I reading this correctly?

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