summaryrefslogtreecommitdiffstats
path: root/gst/level
diff options
context:
space:
mode:
authorStefan Kost <ensonic@users.sourceforge.net>2007-11-26 12:26:20 +0000
committerStefan Kost <ensonic@users.sourceforge.net>2007-11-26 12:26:20 +0000
commitd37e93af90082a0b30640bc278bb11994fa63636 (patch)
treedafffab23e2bbea413dd2e94b09727dd41fe3d76 /gst/level
parent9f75afd5fde595319679d116edbc4fea6a215d0b (diff)
gst/level/gstlevel.c: Add GAP-flag support.
Original commit message from CVS: * gst/level/gstlevel.c: Add GAP-flag support.
Diffstat (limited to 'gst/level')
-rw-r--r--gst/level/gstlevel.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/gst/level/gstlevel.c b/gst/level/gstlevel.c
index 2a499a31..f3e1cb62 100644
--- a/gst/level/gstlevel.c
+++ b/gst/level/gstlevel.c
@@ -523,12 +523,16 @@ gst_level_transform_ip (GstBaseTransform * trans, GstBuffer * in)
num_frames = num_int_samples / filter->channels;
for (i = 0; i < filter->channels; ++i) {
- filter->process (in_data, num_int_samples, filter->channels, &CS,
- &filter->peak[i]);
- GST_LOG_OBJECT (filter,
- "channel %d, cumulative sum %f, peak %f, over %d samples/%d channels",
- i, CS, filter->peak[i], num_int_samples, filter->channels);
- filter->CS[i] += CS;
+ if (!GST_BUFFER_FLAG_IS_SET (in, GST_BUFFER_FLAG_GAP)) {
+ filter->process (in_data, num_int_samples, filter->channels, &CS,
+ &filter->peak[i]);
+ GST_LOG_OBJECT (filter,
+ "channel %d, cumulative sum %f, peak %f, over %d samples/%d channels",
+ i, CS, filter->peak[i], num_int_samples, filter->channels);
+ filter->CS[i] += CS;
+ } else {
+ filter->peak[i] = 0.0;
+ }
in_data += (filter->width / 8);
filter->decay_peak_age[i] +=