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
178 178
179 new_sum = s->sum;179 new_sum = s->sum;
180 new_sum -= wsample;180 new_sum -= wsample;
181 new_sum = fmax(new_sum, 0.);
181 new_sum += fabs(sample);182 new_sum += fabs(sample);
182 183
183 return new_sum / s->window_duration;184 return new_sum / s->window_duration;
@@ -191,6 +192,7 @@ static void update_peak_double(SilenceRemoveContext *s, AVFrame *frame, int ch, · 7 unmodified lines
191 double *wsample = &wsamples[frame->channels * s->window_offset + ch];192 double *wsample = &wsamples[frame->channels * s->window_offset + ch];
192 193
193 s->sum -= *wsample;194 s->sum -= *wsample;
195 s->sum = fmax(s->sum, 0.);
194 *wsample = fabs(sample);196 *wsample = fabs(sample);
195 s->sum += *wsample;197 s->sum += *wsample;
196}198}
@@ -205,6 +207,7 @@ static double compute_peak_float(SilenceRemoveContext *s, AVFrame *frame, int ch · 8 unmodified lines
205 207
206 new_sum = s->sum;208 new_sum = s->sum;
207 new_sum -= wsample;209 new_sum -= wsample;
210 new_sum = fmaxf(new_sum, 0.f);
208 new_sum += fabsf(sample);211 new_sum += fabsf(sample);
209 212
210 return new_sum / s->window_duration;213 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
218 float *wsample = &wsamples[frame->channels * s->window_offset + ch];221 float *wsample = &wsamples[frame->channels * s->window_offset + ch];
219 222
220 s->sum -= *wsample;223 s->sum -= *wsample;
224 s->sum = fmaxf(s->sum, 0.f);
221 *wsample = fabsf(sample);225 *wsample = fabsf(sample);
222 s->sum += *wsample;226 s->sum += *wsample;
223}227}
@@ -232,6 +236,7 @@ static double compute_rms_double(SilenceRemoveContext *s, AVFrame *frame, int ch · 8 unmodified lines
232 236
233 new_sum = s->sum;237 new_sum = s->sum;
234 new_sum -= wsample;238 new_sum -= wsample;
239 new_sum = fmax(new_sum, 0.);
235 new_sum += sample * sample;240 new_sum += sample * sample;
236 241
237 av_assert2(new_sum >= 0.);242 av_assert2(new_sum >= 0.);
@@ -246,6 +251,7 @@ static void update_rms_double(SilenceRemoveContext *s, AVFrame *frame, int ch, i · 8 unmodified lines
246 double *wsample = &wsamples[frame->channels * s->window_offset + ch];251 double *wsample = &wsamples[frame->channels * s->window_offset + ch];
247 252
248 s->sum -= *wsample;253 s->sum -= *wsample;
254 s->sum = fmax(s->sum, 0.);
249 *wsample = sample * sample;255 *wsample = sample * sample;
250 s->sum += *wsample;256 s->sum += *wsample;
251}257}
@@ -260,6 +266,7 @@ static double compute_rms_float(SilenceRemoveContext *s, AVFrame *frame, int ch, · 8 unmodified lines
260 266
261 new_sum = s->sum;267 new_sum = s->sum;
262 new_sum -= wsample;268 new_sum -= wsample;
269 new_sum = fmaxf(new_sum, 0.f);
263 new_sum += sample * sample;270 new_sum += sample * sample;
264 271
265 av_assert2(new_sum >= 0.f);272 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
274 float *wsample = &wsamples[frame->channels * s->window_offset + ch];281 float *wsample = &wsamples[frame->channels * s->window_offset + ch];
275 282
276 s->sum -= *wsample;283 s->sum -= *wsample;
284 s->sum = fmaxf(s->sum, 0.f);
277 *wsample = sample * sample;285 *wsample = sample * sample;
278 s->sum += *wsample;286 s->sum += *wsample;
279}287}
@@ -288,6 +296,7 @@ static double compute_peak_doublep(SilenceRemoveContext *s, AVFrame *frame, int · 8 unmodified lines
288 296
289 new_sum = s->sum;297 new_sum = s->sum;
290 new_sum -= wsample;298 new_sum -= wsample;
299 new_sum = fmax(new_sum, 0.);
291 new_sum += fabs(sample);300 new_sum += fabs(sample);
292 301
293 return new_sum / s->window_duration;302 return new_sum / s->window_duration;
@@ -301,6 +310,7 @@ static void update_peak_doublep(SilenceRemoveContext *s, AVFrame *frame, int ch, · 7 unmodified lines
301 double *wsample = &wsamples[s->window_offset];310 double *wsample = &wsamples[s->window_offset];
302 311
303 s->sum -= *wsample;312 s->sum -= *wsample;
313 s->sum = fmax(s->sum, 0.);
304 *wsample = fabs(sample);314 *wsample = fabs(sample);
305 s->sum += *wsample;315 s->sum += *wsample;
306}316}
@@ -315,6 +325,7 @@ static double compute_peak_floatp(SilenceRemoveContext *s, AVFrame *frame, int c · 8 unmodified lines
315 325
316 new_sum = s->sum;326 new_sum = s->sum;
317 new_sum -= wsample;327 new_sum -= wsample;
328 new_sum = fmaxf(new_sum, 0.f);
318 new_sum += fabsf(sample);329 new_sum += fabsf(sample);
319 330
320 return new_sum / s->window_duration;331 return new_sum / s->window_duration;
@@ -328,6 +339,7 @@ static void update_peak_floatp(SilenceRemoveContext *s, AVFrame *frame, int ch, · 7 unmodified lines
328 float *wsample = &wsamples[s->window_offset];339 float *wsample = &wsamples[s->window_offset];
329 340
330 s->sum -= *wsample;341 s->sum -= *wsample;
342 s->sum = fmaxf(s->sum, 0.f);
331 *wsample = fabsf(sample);343 *wsample = fabsf(sample);
332 s->sum += *wsample;344 s->sum += *wsample;
333}345}
@@ -342,6 +354,7 @@ static double compute_rms_doublep(SilenceRemoveContext *s, AVFrame *frame, int c · 8 unmodified lines
342 354
343 new_sum = s->sum;355 new_sum = s->sum;
344 new_sum -= wsample;356 new_sum -= wsample;
357 new_sum = fmax(new_sum, 0.);
345 new_sum += sample * sample;358 new_sum += sample * sample;
346 359
347 av_assert2(new_sum >= 0.);360 av_assert2(new_sum >= 0.);
@@ -356,6 +369,7 @@ static void update_rms_doublep(SilenceRemoveContext *s, AVFrame *frame, int ch, · 8 unmodified lines
356 double *wsample = &wsamples[s->window_offset];369 double *wsample = &wsamples[s->window_offset];
357 370
358 s->sum -= *wsample;371 s->sum -= *wsample;
372 s->sum = fmax(s->sum, 0.);
359 *wsample = sample * sample;373 *wsample = sample * sample;
360 s->sum += *wsample;374 s->sum += *wsample;
361}375}
@@ -370,6 +384,7 @@ static double compute_rms_floatp(SilenceRemoveContext *s, AVFrame *frame, int ch · 8 unmodified lines
370 384
371 new_sum = s->sum;385 new_sum = s->sum;
372 new_sum -= wsample;386 new_sum -= wsample;
387 new_sum = fmaxf(new_sum, 0.f);
373 new_sum += sample * sample;388 new_sum += sample * sample;
374 389
375 av_assert2(new_sum >= 0.f);390 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
384 float *wsample = &wsamples[s->window_offset];399 float *wsample = &wsamples[s->window_offset];
385 400
386 s->sum -= *wsample;401 s->sum -= *wsample;
402 s->sum = fmaxf(s->sum, 0.f);
387 *wsample = sample * sample;403 *wsample = sample * sample;
388 s->sum += *wsample;404 s->sum += *wsample;
389}405}

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