Commit 5ae7119d authored by Mark Nauwelaerts's avatar Mark Nauwelaerts
Browse files

avimux: check that pads have been negotiated

Also set fcc_handler field in audio stream header.

Fixes #618351.
parent e934f637
......@@ -934,6 +934,7 @@ gst_avi_mux_audsink_set_caps (GstPad * pad, GstCaps * vscaps)
if (!avipad->auds.format)
goto refuse_caps;
avipad->parent.hdr.fcc_handler = avipad->auds.format;
gst_avi_mux_audsink_set_fields (avimux, avipad);
gst_object_unref (avimux);
......@@ -2069,6 +2070,9 @@ gst_avi_mux_do_one_buffer (GstAviMux * avimux)
if (!avipad->collect)
continue;
if (!avipad->hdr.fcc_handler)
goto not_negotiated;
buffer = gst_collect_pads_peek (avimux->collect, avipad->collect);
if (!buffer)
continue;
......@@ -2097,6 +2101,14 @@ gst_avi_mux_do_one_buffer (GstAviMux * avimux)
gst_pad_push_event (avimux->srcpad, gst_event_new_eos ());
return GST_FLOW_UNEXPECTED;
}
/* ERRORS */
not_negotiated:
{
GST_ELEMENT_ERROR (avimux, CORE, NEGOTIATION, (NULL),
("pad %s not negotiated", GST_PAD_NAME (avipad->collect->pad)));
return GST_FLOW_NOT_NEGOTIATED;
}
}
static GstFlowReturn
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment