audio-aggregator: Check return values
And copy over already-parsed information
CID #1427140
diff --git a/gst-libs/gst/audio/gstaudioaggregator.c b/gst-libs/gst/audio/gstaudioaggregator.c
index e75b8e5..088a91c 100644
--- a/gst-libs/gst/audio/gstaudioaggregator.c
+++ b/gst-libs/gst/audio/gstaudioaggregator.c
@@ -699,7 +699,10 @@
goto done;
}
- gst_audio_info_from_caps (&info, caps);
+ if (!gst_audio_info_from_caps (&info, caps)) {
+ GST_WARNING_OBJECT (agg, "Rejecting invalid caps: %" GST_PTR_FORMAT, caps);
+ return FALSE;
+ }
s = gst_caps_get_structure (downstream_caps, 0);
/* TODO: handle different rates on sinkpads, a bit complex
@@ -715,7 +718,7 @@
GstAudioAggregatorPadClass *klass =
GST_AUDIO_AGGREGATOR_PAD_GET_CLASS (aaggpad);
GST_OBJECT_LOCK (aaggpad);
- gst_audio_info_from_caps (&aaggpad->info, caps);
+ aaggpad->info = info;
if (klass->update_conversion_info)
klass->update_conversion_info (aaggpad);
GST_OBJECT_UNLOCK (aaggpad);