diff options
author | Stefan Kost <ensonic@users.sourceforge.net> | 2007-11-26 12:26:20 +0000 |
---|---|---|
committer | Stefan Kost <ensonic@users.sourceforge.net> | 2007-11-26 12:26:20 +0000 |
commit | d37e93af90082a0b30640bc278bb11994fa63636 (patch) | |
tree | dafffab23e2bbea413dd2e94b09727dd41fe3d76 /gst/level/gstlevel.c | |
parent | 9f75afd5fde595319679d116edbc4fea6a215d0b (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/gstlevel.c')
-rw-r--r-- | gst/level/gstlevel.c | 16 |
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] += |