rtpmux: Mark pad as needing reconfiguration again if it failed

And return FLUSHING instead of NOT_NEGOTIATED on flushing pads.

https://bugzilla.gnome.org/show_bug.cgi?id=774623
This commit is contained in:
Sebastian Dröge 2016-11-17 19:59:53 +02:00
parent a9b1aa1255
commit 15630db146

View file

@ -439,6 +439,10 @@ gst_rtp_mux_chain_list (GstPad * pad, GstObject * parent,
GstCaps *current_caps = gst_pad_get_current_caps (pad);
if (!gst_rtp_mux_setcaps (pad, rtp_mux, current_caps)) {
gst_pad_mark_reconfigure (rtp_mux->srcpad);
if (GST_PAD_IS_FLUSHING (rtp_mux->srcpad))
ret = GST_FLOW_FLUSHING;
else
ret = GST_FLOW_NOT_NEGOTIATED;
gst_buffer_list_unref (bufferlist);
goto out;
@ -519,6 +523,10 @@ gst_rtp_mux_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
GstCaps *current_caps = gst_pad_get_current_caps (pad);
if (!gst_rtp_mux_setcaps (pad, rtp_mux, current_caps)) {
gst_pad_mark_reconfigure (rtp_mux->srcpad);
if (GST_PAD_IS_FLUSHING (rtp_mux->srcpad))
ret = GST_FLOW_FLUSHING;
else
ret = GST_FLOW_NOT_NEGOTIATED;
gst_buffer_unref (buffer);
goto out;