[Bug 774654] New: Flushing can hang if output port queue of pending buffers is empty
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Thu Nov 17 23:40:00 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=774654
Bug ID: 774654
Summary: Flushing can hang if output port queue of pending
buffers is empty
Classification: Platform
Product: GStreamer
Version: git master
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gst-omx
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: formruga at gmail.com
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Steps in gst_omx_video_dec_flush are:
0) Pause the components
1) Wait until the srcpad loop is stopped
2) Flush the ports
3) Resume components
4) Unset flushing to allow ports to accept data again
The problem lays in sequence: 0 -> 1, because srcpad loop
(gst_omx_video_dec_loop) can stuck in function gst_omx_port_acquire_buffer if
output port queue of pending buffers (port->pending_buffers) is empty and
component is in pause state (component processing is halted, no new buffers
will be generated).
For me sequence should be changed into 1 -> 0. i.e. first wait until the srcpad
loop is stopped then pause the components.
Interestingly, the sequence was changed by commit d7533445 "omx: Let base
classes handle EOS. https://bugzilla.gnome.org//show_bug.cgi?id=734774". I
don't find relation between the commit message and changed sequence.
--
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