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);