interaudiosrc: Fail in set_caps() if the caps can't be parsed

This commit is contained in:
Sebastian Dröge 2014-06-28 10:43:43 +02:00
parent f1b99f04dc
commit fae814aef8

View file

@ -195,17 +195,22 @@ gst_inter_audio_src_set_caps (GstBaseSrc * src, GstCaps * caps)
structure = gst_caps_get_structure (caps, 0); structure = gst_caps_get_structure (caps, 0);
ret = gst_structure_get_int (structure, "rate", &sample_rate); if (!gst_structure_get_int (structure, "rate", &sample_rate)) {
if (ret) { GST_ERROR_OBJECT (src, "Audio caps without rate");
interaudiosrc->sample_rate = sample_rate; return FALSE;
ret = gst_pad_set_caps (src->srcpad, caps);
} }
if (gst_audio_info_from_caps (&info, caps)) { interaudiosrc->sample_rate = sample_rate;
interaudiosrc->finfo = info.finfo;
if (!gst_audio_info_from_caps (&info, caps)) {
GST_ERROR_OBJECT (src, "Can't parse audio caps");
return FALSE;
} }
interaudiosrc->finfo = info.finfo;
ret = gst_pad_set_caps (src->srcpad, caps);
return ret; return ret;
} }