GNOME Bugzilla – Bug 518042
gst_pad_push() return value is ignored
Last modified: 2009-01-19 12:13:13 UTC
In gstomx_base_filter.c there is a separate output_thread that calls push_buffer() that in turn calls gst_pad_push(). The return value of gst_pad_push() is not taken, and _chain() function (almost) always returns GST_FLOW_OK. Instead, the output_thread should save this GstFlowReturn value and _chain() should use it as a return value. This way the downstream _push() return value gets propagated upstream, e.g. when pipeline is set to NULL. Currently the parser element just keeps on pushing frames to decoder, since chain incorrectly returns GST_FLOW_OK even the gst_pad_push() has returned GST_FLOW_WRONG_STATE.
I haven't tried to reproduce this but I implemented the changes as you suggested. It's committed, please check.
I just committed a couple of changes that should improve the situation when seeking, but it's not perfect. I also have issues when starting the playback. Please verify.
Ignore the last comment, wrong bug report.
Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for. Thanks!