summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2010-11-17 15:24:37 +0100
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2010-11-17 15:36:18 +0100
commit0fdc68cd46b90d1f9c102c4870a4a6b755c8df4a (patch)
treea777a2efd4b5697cc5339a93db07c76a28b9c66e
parent36cbbd94c614ed2b341e075a5f1d43cb75b884cd (diff)
aacparse: fix regression in ADIF src caps setting
-rw-r--r--gst/audioparsers/gstaacparse.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gst/audioparsers/gstaacparse.c b/gst/audioparsers/gstaacparse.c
index 9f0282583..f5ecd4e81 100644
--- a/gst/audioparsers/gstaacparse.c
+++ b/gst/audioparsers/gstaacparse.c
@@ -568,6 +568,11 @@ gst_aacparse_detect_stream (GstAacParse * aacparse,
gst_base_parse_set_min_frame_size (GST_BASE_PARSE (aacparse), 512);
+ /* arrange for metadata and get out of the way */
+ gst_aacparse_set_src_caps (aacparse,
+ GST_PAD_CAPS (GST_BASE_PARSE_SINK_PAD (aacparse)));
+ gst_base_parse_set_passthrough (GST_BASE_PARSE (aacparse), TRUE);
+
*framesize = avail;
return TRUE;
}
@@ -654,6 +659,9 @@ gst_aacparse_parse_frame (GstBaseParse * parse, GstBuffer * buffer)
aacparse = GST_AACPARSE (parse);
+ if (G_UNLIKELY (aacparse->header_type != DSPAAC_HEADER_ADTS))
+ return ret;
+
gst_aacparse_parse_adts_header (aacparse, GST_BUFFER_DATA (buffer),
&rate, &channels, NULL, NULL);
GST_LOG_OBJECT (aacparse, "rate: %d, chans: %d", rate, channels);
@@ -673,7 +681,6 @@ gst_aacparse_parse_frame (GstBaseParse * parse, GstBuffer * buffer)
aacparse->sample_rate, 1024, 2, 2);
}
- gst_buffer_set_caps (buffer, GST_PAD_CAPS (parse->srcpad));
return ret;
}