mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
avfilter/vf_stack: make it possible to stop with shortest stream
Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
parent
9078a694f3
commit
a330430238
@ -7154,6 +7154,10 @@ The filter accept the following option:
|
|||||||
@table @option
|
@table @option
|
||||||
@item inputs
|
@item inputs
|
||||||
Set number of input streams. Default is 2.
|
Set number of input streams. Default is 2.
|
||||||
|
|
||||||
|
@item shortest
|
||||||
|
If set to 1, force the output to terminate when the shortest input
|
||||||
|
terminates. Default value is 0.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@section hue
|
@section hue
|
||||||
@ -11598,6 +11602,10 @@ The filter accept the following option:
|
|||||||
@table @option
|
@table @option
|
||||||
@item inputs
|
@item inputs
|
||||||
Set number of input streams. Default is 2.
|
Set number of input streams. Default is 2.
|
||||||
|
|
||||||
|
@item shortest
|
||||||
|
If set to 1, force the output to terminate when the shortest input
|
||||||
|
terminates. Default value is 0.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@section w3fdif
|
@section w3fdif
|
||||||
|
@ -33,6 +33,7 @@ typedef struct StackContext {
|
|||||||
const AVClass *class;
|
const AVClass *class;
|
||||||
const AVPixFmtDescriptor *desc;
|
const AVPixFmtDescriptor *desc;
|
||||||
int nb_inputs;
|
int nb_inputs;
|
||||||
|
int shortest;
|
||||||
int is_vertical;
|
int is_vertical;
|
||||||
int nb_planes;
|
int nb_planes;
|
||||||
|
|
||||||
@ -199,7 +200,7 @@ static int config_output(AVFilterLink *outlink)
|
|||||||
in[i].time_base = inlink->time_base;
|
in[i].time_base = inlink->time_base;
|
||||||
in[i].sync = 1;
|
in[i].sync = 1;
|
||||||
in[i].before = EXT_STOP;
|
in[i].before = EXT_STOP;
|
||||||
in[i].after = EXT_INFINITY;
|
in[i].after = s->shortest ? EXT_STOP : EXT_INFINITY;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ff_framesync_configure(&s->fs);
|
return ff_framesync_configure(&s->fs);
|
||||||
@ -222,6 +223,7 @@ static av_cold void uninit(AVFilterContext *ctx)
|
|||||||
#define FLAGS AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_FILTERING_PARAM
|
#define FLAGS AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_FILTERING_PARAM
|
||||||
static const AVOption stack_options[] = {
|
static const AVOption stack_options[] = {
|
||||||
{ "inputs", "set number of inputs", OFFSET(nb_inputs), AV_OPT_TYPE_INT, {.i64=2}, 2, INT_MAX, .flags = FLAGS },
|
{ "inputs", "set number of inputs", OFFSET(nb_inputs), AV_OPT_TYPE_INT, {.i64=2}, 2, INT_MAX, .flags = FLAGS },
|
||||||
|
{ "shortest", "force termination when the shortest input terminates", OFFSET(shortest), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, .flags = FLAGS },
|
||||||
{ NULL },
|
{ NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user