mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
lavfi/vf_libplacebo: keep track of latest status globally
This field will effectively hold the most recent status set by any input. Currently functionally equivalent to input->status, but will change soon.
This commit is contained in:
parent
4e4a66b8c4
commit
0c66d912ba
@ -138,6 +138,8 @@ typedef struct LibplaceboContext {
|
||||
/* input state */
|
||||
LibplaceboInput *inputs;
|
||||
int nb_inputs;
|
||||
int64_t status_pts; ///< tracks status of most recently used input
|
||||
int status;
|
||||
|
||||
/* settings */
|
||||
char *out_format_string;
|
||||
@ -943,6 +945,11 @@ static int handle_input(AVFilterContext *ctx, LibplaceboInput *input)
|
||||
pl_queue_push(input->queue, NULL); /* Signal EOF to pl_queue */
|
||||
input->status = status;
|
||||
input->status_pts = pts;
|
||||
if (!s->status || pts >= s->status_pts) {
|
||||
/* Also propagate to output unless overwritten by later status change */
|
||||
s->status = status;
|
||||
s->status_pts = pts;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -975,8 +982,8 @@ static int libplacebo_activate(AVFilterContext *ctx)
|
||||
}
|
||||
}
|
||||
|
||||
if (in->status && pts >= in->status_pts) {
|
||||
ff_outlink_set_status(outlink, in->status, in->status_pts);
|
||||
if (s->status && pts >= s->status_pts) {
|
||||
ff_outlink_set_status(outlink, s->status, s->status_pts);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user