[FFmpeg-devel] [PATCH 1/4] lavfi/framesync: use a local variable to shorten code
Nicolas George
george at nsup.org
Fri Jan 27 16:39:31 EET 2023
Anton Khirnov (12023-01-27):
> ---
> libavfilter/framesync.c | 33 ++++++++++++++++-----------------
> 1 file changed, 16 insertions(+), 17 deletions(-)
>
> diff --git a/libavfilter/framesync.c b/libavfilter/framesync.c
> index ee91e4cf68..153db4fa21 100644
> --- a/libavfilter/framesync.c
> +++ b/libavfilter/framesync.c
> @@ -201,24 +201,23 @@ static int framesync_advance(FFFrameSync *fs)
> break;
> }
> for (i = 0; i < fs->nb_in; i++) {
> - if (fs->in[i].pts_next == pts ||
> - (fs->in[i].ts_mode == TS_NEAREST &&
> - fs->in[i].have_next &&
> - fs->in[i].pts_next != INT64_MAX && fs->in[i].pts != AV_NOPTS_VALUE &&
> - fs->in[i].pts_next - pts < pts - fs->in[i].pts) ||
> - (fs->in[i].before == EXT_INFINITY &&
> - fs->in[i].state == STATE_BOF)) {
> - av_frame_free(&fs->in[i].frame);
> - fs->in[i].frame = fs->in[i].frame_next;
> - fs->in[i].pts = fs->in[i].pts_next;
> - fs->in[i].frame_next = NULL;
> - fs->in[i].pts_next = AV_NOPTS_VALUE;
> - fs->in[i].have_next = 0;
> - fs->in[i].state = fs->in[i].frame ? STATE_RUN : STATE_EOF;
> - if (fs->in[i].sync == fs->sync_level && fs->in[i].frame)
> + FFFrameSyncIn * const in = &fs->in[i];
Get rid of the const, since the rest of this code does not use anything
similar and the benefit is dubious.
> +
> + if (in->pts_next == pts ||
> + (in->ts_mode == TS_NEAREST && in->have_next &&
> + in->pts_next != INT64_MAX && in->pts != AV_NOPTS_VALUE &&
> + in->pts_next - pts < pts - in->pts) ||
> + (in->before == EXT_INFINITY && in->state == STATE_BOF)) {
> + av_frame_free(&in->frame);
> + in->frame = in->frame_next;
> + in->pts = in->pts_next;
> + in->frame_next = NULL;
> + in->pts_next = AV_NOPTS_VALUE;
> + in->have_next = 0;
> + in->state = in->frame ? STATE_RUN : STATE_EOF;
> + if (in->sync == fs->sync_level && in->frame)
> fs->frame_ready = 1;
> - if (fs->in[i].state == STATE_EOF &&
> - fs->in[i].after == EXT_STOP)
> + if (in->state == STATE_EOF && in->after == EXT_STOP)
> framesync_eof(fs);
> }
> }
I do not like this change. In fact, the more I think about it the more I
remember that I specifically considered using intermediate pointers for
inputs and deciding against: too much extra noise if done everywhere,
too little benefit for the inconsistency if done only where there are
many.
So: thanks but no.
--
Nicolas George
More information about the ffmpeg-devel
mailing list