From fe1f183340452ee6d65e667ce1c8b3ee58aaec32 Mon Sep 17 00:00:00 2001 From: Rene Stadler Date: Mon, 24 Mar 2008 12:32:59 +0000 Subject: Make rganalysis and rglimiter elements GAP-flag aware. Original commit message from CVS: * gst/replaygain/gstrganalysis.c (gst_rg_analysis_init), (gst_rg_analysis_transform_ip): * gst/replaygain/gstrglimiter.c (gst_rg_limiter_init), (gst_rg_limiter_transform_ip): Make rganalysis and rglimiter elements GAP-flag aware. * tests/check/elements/rganalysis.c: (test_gap_buffers), (rganalysis_suite): * tests/check/elements/rglimiter.c (test_gap), (rglimiter_suite): Add tests to verify gap-awareness. --- gst/replaygain/gstrganalysis.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gst/replaygain/gstrganalysis.c') diff --git a/gst/replaygain/gstrganalysis.c b/gst/replaygain/gstrganalysis.c index 24367786..613c0876 100644 --- a/gst/replaygain/gstrganalysis.c +++ b/gst/replaygain/gstrganalysis.c @@ -288,6 +288,10 @@ gst_rg_analysis_class_init (GstRgAnalysisClass * klass) static void gst_rg_analysis_init (GstRgAnalysis * filter, GstRgAnalysisClass * gclass) { + GstBaseTransform *base = GST_BASE_TRANSFORM (filter); + + gst_base_transform_set_gap_aware (base, TRUE); + filter->num_tracks = 0; filter->forced = FORCED_DEFAULT; filter->reference_level = RG_REFERENCE_LEVEL; @@ -452,6 +456,10 @@ gst_rg_analysis_transform_ip (GstBaseTransform * base, GstBuffer * buf) if (filter->skip) return GST_FLOW_OK; + /* Buffers made up of silence have no influence on the analysis: */ + if (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_GAP)) + return GST_FLOW_OK; + GST_LOG_OBJECT (filter, "processing buffer of size %u", GST_BUFFER_SIZE (buf)); -- cgit v1.2.1