History

avfilter/af_silenceremove: guard against negative numbers

Paul B Mahol committed 5 years ago

Commit 5e7e2e51 parent c3e11e31 file · +16 −0Browse files

Unified · Split

libavfilter/af_silenceremove.c+16−0
@@ -178,6 +178,7 @@ static double compute_peak_double(SilenceRemoveContext *s, AVFrame *frame, int c · 177 unmodified lines
178178
179179 new_sum = s->sum;
180180 new_sum -= wsample;
181+ new_sum = fmax(new_sum, 0.);
181182 new_sum += fabs(sample);
182183
183184 return new_sum / s->window_duration;
@@ -191,6 +192,7 @@ static void update_peak_double(SilenceRemoveContext *s, AVFrame *frame, int ch, · 7 unmodified lines
191192 double *wsample = &wsamples[frame->channels * s->window_offset + ch];
192193
193194 s->sum -= *wsample;
195+ s->sum = fmax(s->sum, 0.);
194196 *wsample = fabs(sample);
195197 s->sum += *wsample;
196198 }
@@ -205,6 +207,7 @@ static double compute_peak_float(SilenceRemoveContext *s, AVFrame *frame, int ch · 8 unmodified lines
205207
206208 new_sum = s->sum;
207209 new_sum -= wsample;
210+ new_sum = fmaxf(new_sum, 0.f);
208211 new_sum += fabsf(sample);
209212
210213 return new_sum / s->window_duration;
@@ -218,6 +221,7 @@ static void update_peak_float(SilenceRemoveContext *s, AVFrame *frame, int ch, i · 7 unmodified lines
218221 float *wsample = &wsamples[frame->channels * s->window_offset + ch];
219222
220223 s->sum -= *wsample;
224+ s->sum = fmaxf(s->sum, 0.f);
221225 *wsample = fabsf(sample);
222226 s->sum += *wsample;
223227 }
@@ -232,6 +236,7 @@ static double compute_rms_double(SilenceRemoveContext *s, AVFrame *frame, int ch · 8 unmodified lines
232236
233237 new_sum = s->sum;
234238 new_sum -= wsample;
239+ new_sum = fmax(new_sum, 0.);
235240 new_sum += sample * sample;
236241
237242 av_assert2(new_sum >= 0.);
@@ -246,6 +251,7 @@ static void update_rms_double(SilenceRemoveContext *s, AVFrame *frame, int ch, i · 8 unmodified lines
246251 double *wsample = &wsamples[frame->channels * s->window_offset + ch];
247252
248253 s->sum -= *wsample;
254+ s->sum = fmax(s->sum, 0.);
249255 *wsample = sample * sample;
250256 s->sum += *wsample;
251257 }
@@ -260,6 +266,7 @@ static double compute_rms_float(SilenceRemoveContext *s, AVFrame *frame, int ch, · 8 unmodified lines
260266
261267 new_sum = s->sum;
262268 new_sum -= wsample;
269+ new_sum = fmaxf(new_sum, 0.f);
263270 new_sum += sample * sample;
264271
265272 av_assert2(new_sum >= 0.f);
@@ -274,6 +281,7 @@ static void update_rms_float(SilenceRemoveContext *s, AVFrame *frame, int ch, in · 8 unmodified lines
274281 float *wsample = &wsamples[frame->channels * s->window_offset + ch];
275282
276283 s->sum -= *wsample;
284+ s->sum = fmaxf(s->sum, 0.f);
277285 *wsample = sample * sample;
278286 s->sum += *wsample;
279287 }
@@ -288,6 +296,7 @@ static double compute_peak_doublep(SilenceRemoveContext *s, AVFrame *frame, int · 8 unmodified lines
288296
289297 new_sum = s->sum;
290298 new_sum -= wsample;
299+ new_sum = fmax(new_sum, 0.);
291300 new_sum += fabs(sample);
292301
293302 return new_sum / s->window_duration;
@@ -301,6 +310,7 @@ static void update_peak_doublep(SilenceRemoveContext *s, AVFrame *frame, int ch, · 7 unmodified lines
301310 double *wsample = &wsamples[s->window_offset];
302311
303312 s->sum -= *wsample;
313+ s->sum = fmax(s->sum, 0.);
304314 *wsample = fabs(sample);
305315 s->sum += *wsample;
306316 }
@@ -315,6 +325,7 @@ static double compute_peak_floatp(SilenceRemoveContext *s, AVFrame *frame, int c · 8 unmodified lines
315325
316326 new_sum = s->sum;
317327 new_sum -= wsample;
328+ new_sum = fmaxf(new_sum, 0.f);
318329 new_sum += fabsf(sample);
319330
320331 return new_sum / s->window_duration;
@@ -328,6 +339,7 @@ static void update_peak_floatp(SilenceRemoveContext *s, AVFrame *frame, int ch, · 7 unmodified lines
328339 float *wsample = &wsamples[s->window_offset];
329340
330341 s->sum -= *wsample;
342+ s->sum = fmaxf(s->sum, 0.f);
331343 *wsample = fabsf(sample);
332344 s->sum += *wsample;
333345 }
@@ -342,6 +354,7 @@ static double compute_rms_doublep(SilenceRemoveContext *s, AVFrame *frame, int c · 8 unmodified lines
342354
343355 new_sum = s->sum;
344356 new_sum -= wsample;
357+ new_sum = fmax(new_sum, 0.);
345358 new_sum += sample * sample;
346359
347360 av_assert2(new_sum >= 0.);
@@ -356,6 +369,7 @@ static void update_rms_doublep(SilenceRemoveContext *s, AVFrame *frame, int ch, · 8 unmodified lines
356369 double *wsample = &wsamples[s->window_offset];
357370
358371 s->sum -= *wsample;
372+ s->sum = fmax(s->sum, 0.);
359373 *wsample = sample * sample;
360374 s->sum += *wsample;
361375 }
@@ -370,6 +384,7 @@ static double compute_rms_floatp(SilenceRemoveContext *s, AVFrame *frame, int ch · 8 unmodified lines
370384
371385 new_sum = s->sum;
372386 new_sum -= wsample;
387+ new_sum = fmaxf(new_sum, 0.f);
373388 new_sum += sample * sample;
374389
375390 av_assert2(new_sum >= 0.f);
@@ -384,6 +399,7 @@ static void update_rms_floatp(SilenceRemoveContext *s, AVFrame *frame, int ch, i · 8 unmodified lines
384399 float *wsample = &wsamples[s->window_offset];
385400
386401 s->sum -= *wsample;
402+ s->sum = fmaxf(s->sum, 0.f);
387403 *wsample = sample * sample;
388404 s->sum += *wsample;
389405 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t