lavfi/volume: implement process_command() callback, with the volume command
Address trac ticket #2868.
This commit is contained in:
@@ -296,6 +296,22 @@ static int config_output(AVFilterLink *outlink)
|
||||
return set_volume(ctx);
|
||||
}
|
||||
|
||||
static int process_command(AVFilterContext *ctx, const char *cmd, const char *args,
|
||||
char *res, int res_len, int flags)
|
||||
{
|
||||
VolumeContext *vol = ctx->priv;
|
||||
int ret = AVERROR(ENOSYS);
|
||||
|
||||
if (!strcmp(cmd, "volume")) {
|
||||
if ((ret = set_expr(&vol->volume_pexpr, args, ctx)) < 0)
|
||||
return ret;
|
||||
if (vol->eval_mode == EVAL_MODE_ONCE)
|
||||
set_volume(ctx);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define D2TS(d) (isnan(d) ? AV_NOPTS_VALUE : (int64_t)(d))
|
||||
#define TS2D(ts) ((ts) == AV_NOPTS_VALUE ? NAN : (double)(ts))
|
||||
#define TS2T(ts, tb) ((ts) == AV_NOPTS_VALUE ? NAN : (double)(ts)*av_q2d(tb))
|
||||
@@ -403,4 +419,5 @@ AVFilter ff_af_volume = {
|
||||
.inputs = avfilter_af_volume_inputs,
|
||||
.outputs = avfilter_af_volume_outputs,
|
||||
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
|
||||
.process_command = process_command,
|
||||
};
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
#define LIBAVFILTER_VERSION_MAJOR 4
|
||||
#define LIBAVFILTER_VERSION_MINOR 0
|
||||
#define LIBAVFILTER_VERSION_MICRO 101
|
||||
#define LIBAVFILTER_VERSION_MICRO 102
|
||||
|
||||
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
|
||||
LIBAVFILTER_VERSION_MINOR, \
|
||||
|
||||
Reference in New Issue
Block a user