aboutsummaryrefslogtreecommitdiff
path: root/gst/inter/gstinteraudiosrc.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/inter/gstinteraudiosrc.c')
-rw-r--r--gst/inter/gstinteraudiosrc.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/gst/inter/gstinteraudiosrc.c b/gst/inter/gstinteraudiosrc.c
index ee8786e9..cab0eb68 100644
--- a/gst/inter/gstinteraudiosrc.c
+++ b/gst/inter/gstinteraudiosrc.c
@@ -195,17 +195,22 @@ gst_inter_audio_src_set_caps (GstBaseSrc * src, GstCaps * caps)
structure = gst_caps_get_structure (caps, 0);
- ret = gst_structure_get_int (structure, "rate", &sample_rate);
- if (ret) {
- interaudiosrc->sample_rate = sample_rate;
-
- ret = gst_pad_set_caps (src->srcpad, caps);
+ if (!gst_structure_get_int (structure, "rate", &sample_rate)) {
+ GST_ERROR_OBJECT (src, "Audio caps without rate");
+ return FALSE;
}
- if (gst_audio_info_from_caps (&info, caps)) {
- interaudiosrc->finfo = info.finfo;
+ interaudiosrc->sample_rate = sample_rate;
+
+ 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;
}