avfilter/af_silenceremove: add enum for detection modes

This commit is contained in:
Paul B Mahol 2018-10-15 17:44:56 +02:00
parent 454ed32d56
commit 631994b62b
1 changed files with 10 additions and 5 deletions

View File

@ -30,6 +30,11 @@
#include "avfilter.h"
#include "internal.h"
enum SilenceDetect {
D_PEAK,
D_RMS,
};
enum SilenceMode {
SILENCE_TRIM,
SILENCE_TRIM_FLUSH,
@ -106,9 +111,9 @@ static const AVOption silenceremove_options[] = {
{ "stop_threshold", "set threshold for stop silence detection", OFFSET(stop_threshold), AV_OPT_TYPE_DOUBLE, {.dbl=0}, 0, DBL_MAX, AF },
{ "stop_silence", "set stop duration of silence part to keep", OFFSET(stop_silence_opt), AV_OPT_TYPE_DURATION, {.i64=0}, 0, INT32_MAX, AF },
{ "stop_mode", "set which channel will trigger trimming from end", OFFSET(stop_mode), AV_OPT_TYPE_INT, {.i64=0}, 0, 1, AF, "mode" },
{ "detection", "set how silence is detected", OFFSET(detection), AV_OPT_TYPE_INT, {.i64=1}, 0, 1, AF, "detection" },
{ "peak", "use absolute values of samples", 0, AV_OPT_TYPE_CONST, {.i64=0}, 0, 0, AF, "detection" },
{ "rms", "use squared values of samples", 0, AV_OPT_TYPE_CONST, {.i64=1}, 0, 0, AF, "detection" },
{ "detection", "set how silence is detected", OFFSET(detection), AV_OPT_TYPE_INT, {.i64=D_RMS}, D_PEAK,D_RMS, AF, "detection" },
{ "peak", "use absolute values of samples", 0, AV_OPT_TYPE_CONST, {.i64=D_PEAK},0, 0, AF, "detection" },
{ "rms", "use squared values of samples", 0, AV_OPT_TYPE_CONST, {.i64=D_RMS}, 0, 0, AF, "detection" },
{ "window", "set duration of window in seconds", OFFSET(window_ratio), AV_OPT_TYPE_DOUBLE, {.dbl=0.02}, 0, 10, AF },
{ NULL }
};
@ -169,11 +174,11 @@ static av_cold int init(AVFilterContext *ctx)
}
switch (s->detection) {
case 0:
case D_PEAK:
s->update = update_peak;
s->compute = compute_peak;
break;
case 1:
case D_RMS:
s->update = update_rms;
s->compute = compute_rms;
break;