Unified · Split
| @@ -178,6 +178,7 @@ static double compute_peak_double(SilenceRemoveContext *s, AVFrame *frame, int c · 177 unmodified lines | ||
| 178 | 178 | |
| 179 | 179 | new_sum = s->sum; |
| 180 | 180 | new_sum -= wsample; |
| 181 | + new_sum = fmax(new_sum, 0.); | |
| 181 | 182 | new_sum += fabs(sample); |
| 182 | 183 | |
| 183 | 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 | 192 | double *wsample = &wsamples[frame->channels * s->window_offset + ch]; |
| 192 | 193 | |
| 193 | 194 | s->sum -= *wsample; |
| 195 | + s->sum = fmax(s->sum, 0.); | |
| 194 | 196 | *wsample = fabs(sample); |
| 195 | 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 | 208 | new_sum = s->sum; |
| 207 | 209 | new_sum -= wsample; |
| 210 | + new_sum = fmaxf(new_sum, 0.f); | |
| 208 | 211 | new_sum += fabsf(sample); |
| 209 | 212 | |
| 210 | 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 | 221 | float *wsample = &wsamples[frame->channels * s->window_offset + ch]; |
| 219 | 222 | |
| 220 | 223 | s->sum -= *wsample; |
| 224 | + s->sum = fmaxf(s->sum, 0.f); | |
| 221 | 225 | *wsample = fabsf(sample); |
| 222 | 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 | 237 | new_sum = s->sum; |
| 234 | 238 | new_sum -= wsample; |
| 239 | + new_sum = fmax(new_sum, 0.); | |
| 235 | 240 | new_sum += sample * sample; |
| 236 | 241 | |
| 237 | 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 | 251 | double *wsample = &wsamples[frame->channels * s->window_offset + ch]; |
| 247 | 252 | |
| 248 | 253 | s->sum -= *wsample; |
| 254 | + s->sum = fmax(s->sum, 0.); | |
| 249 | 255 | *wsample = sample * sample; |
| 250 | 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 | 267 | new_sum = s->sum; |
| 262 | 268 | new_sum -= wsample; |
| 269 | + new_sum = fmaxf(new_sum, 0.f); | |
| 263 | 270 | new_sum += sample * sample; |
| 264 | 271 | |
| 265 | 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 | 281 | float *wsample = &wsamples[frame->channels * s->window_offset + ch]; |
| 275 | 282 | |
| 276 | 283 | s->sum -= *wsample; |
| 284 | + s->sum = fmaxf(s->sum, 0.f); | |
| 277 | 285 | *wsample = sample * sample; |
| 278 | 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 | 297 | new_sum = s->sum; |
| 290 | 298 | new_sum -= wsample; |
| 299 | + new_sum = fmax(new_sum, 0.); | |
| 291 | 300 | new_sum += fabs(sample); |
| 292 | 301 | |
| 293 | 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 | 310 | double *wsample = &wsamples[s->window_offset]; |
| 302 | 311 | |
| 303 | 312 | s->sum -= *wsample; |
| 313 | + s->sum = fmax(s->sum, 0.); | |
| 304 | 314 | *wsample = fabs(sample); |
| 305 | 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 | 326 | new_sum = s->sum; |
| 317 | 327 | new_sum -= wsample; |
| 328 | + new_sum = fmaxf(new_sum, 0.f); | |
| 318 | 329 | new_sum += fabsf(sample); |
| 319 | 330 | |
| 320 | 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 | 339 | float *wsample = &wsamples[s->window_offset]; |
| 329 | 340 | |
| 330 | 341 | s->sum -= *wsample; |
| 342 | + s->sum = fmaxf(s->sum, 0.f); | |
| 331 | 343 | *wsample = fabsf(sample); |
| 332 | 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 | 355 | new_sum = s->sum; |
| 344 | 356 | new_sum -= wsample; |
| 357 | + new_sum = fmax(new_sum, 0.); | |
| 345 | 358 | new_sum += sample * sample; |
| 346 | 359 | |
| 347 | 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 | 369 | double *wsample = &wsamples[s->window_offset]; |
| 357 | 370 | |
| 358 | 371 | s->sum -= *wsample; |
| 372 | + s->sum = fmax(s->sum, 0.); | |
| 359 | 373 | *wsample = sample * sample; |
| 360 | 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 | 385 | new_sum = s->sum; |
| 372 | 386 | new_sum -= wsample; |
| 387 | + new_sum = fmaxf(new_sum, 0.f); | |
| 373 | 388 | new_sum += sample * sample; |
| 374 | 389 | |
| 375 | 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 | 399 | float *wsample = &wsamples[s->window_offset]; |
| 385 | 400 | |
| 386 | 401 | s->sum -= *wsample; |
| 402 | + s->sum = fmaxf(s->sum, 0.f); | |
| 387 | 403 | *wsample = sample * sample; |
| 388 | 404 | s->sum += *wsample; |
| 389 | 405 | } |