mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-31 03:29:50 +00:00
basesrc: retry on not-negotiate if a reconfigure is pending
Before erroring out on not-negotiated returns, check if the pad has the reconfigure flag set and retry. https://bugzilla.gnome.org/show_bug.cgi?id=681198
This commit is contained in:
parent
9285ee9184
commit
5c0e02c79c
1 changed files with 7 additions and 0 deletions
|
@ -2692,6 +2692,9 @@ gst_base_src_loop (GstPad * pad)
|
|||
|
||||
ret = gst_pad_push (pad, buf);
|
||||
if (G_UNLIKELY (ret != GST_FLOW_OK)) {
|
||||
if (ret == GST_FLOW_NOT_NEGOTIATED) {
|
||||
goto not_negotiated;
|
||||
}
|
||||
GST_INFO_OBJECT (src, "pausing after gst_pad_push() = %s",
|
||||
gst_flow_get_name (ret));
|
||||
goto pause;
|
||||
|
@ -2709,6 +2712,10 @@ done:
|
|||
/* special cases */
|
||||
not_negotiated:
|
||||
{
|
||||
if (gst_pad_needs_reconfigure (pad)) {
|
||||
GST_DEBUG_OBJECT (src, "Retrying to renegotiate");
|
||||
return;
|
||||
}
|
||||
GST_DEBUG_OBJECT (src, "Failed to renegotiate");
|
||||
ret = GST_FLOW_NOT_NEGOTIATED;
|
||||
goto pause;
|
||||
|
|
Loading…
Reference in a new issue