aacparse: Reset parser when we have caps without codec_data
authorEdward Hervey <edward.hervey@collabora.co.uk>
Tue, 24 Jul 2012 10:22:08 +0000 (12:22 +0200)
committerEdward Hervey <edward.hervey@collabora.co.uk>
Tue, 24 Jul 2012 10:24:43 +0000 (12:24 +0200)
This ensures the detection (and proper downstream caps settings) will
actually happen when we have new incoming caps without codec_data.

This was easily triggered by streams from matroskademux which initially
provided caps with a constructed codec_data, but then pushed new caps
without the codec_data once it detected the stream was adts.

gst/audioparsers/gstaacparse.c

index f226ec4..9ffe7c5 100644 (file)
@@ -271,6 +271,9 @@ gst_aac_parse_sink_setcaps (GstBaseParse * parse, GstCaps * caps)
     gst_structure_get_int (structure, "rate", &aacparse->sample_rate);
     gst_structure_get_int (structure, "channels", &aacparse->channels);
   } else {
+    aacparse->sample_rate = 0;
+    aacparse->channels = 0;
+    aacparse->header_type = DSPAAC_HEADER_NOT_PARSED;
     gst_base_parse_set_passthrough (parse, FALSE);
   }