[FFmpeg-devel] [PATCH] ffmpeg: fix order between field order autodetection and override

Jan Ekström jeebjp at gmail.com
Sat Jul 24 21:47:49 EEST 2021


On Wed, Jul 21, 2021 at 8:29 PM Jan Ekström <jeebjp at gmail.com> wrote:
>
> Somehow I missed this in fbb44bc51a647862eb05ae3f9d7d49a0be9bed57 ,
> even though the lines were within the context. Probably the code
> originally being after the this logic had something to do with it,
> but previously it only touched the avformat context's codecpar,
> which did not affect the encoder codec context whatsoever.
>
> Fixes #9320
> Fixes #9339
> ---
>  fftools/ffmpeg.c | 14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
> index 40e8010096..b0ce7c7c32 100644
> --- a/fftools/ffmpeg.c
> +++ b/fftools/ffmpeg.c
> @@ -3483,12 +3483,7 @@ static int init_output_stream_encode(OutputStream *ost, AVFrame *frame)
>              enc_ctx->bits_per_raw_sample = frame_bits_per_raw_sample;
>          }
>
> -        if (ost->top_field_first == 0) {
> -            enc_ctx->field_order = AV_FIELD_BB;
> -        } else if (ost->top_field_first == 1) {
> -            enc_ctx->field_order = AV_FIELD_TT;
> -        }
> -
> +        // Field order: autodetection
>          if (frame) {
>              if (enc_ctx->flags & (AV_CODEC_FLAG_INTERLACED_DCT | AV_CODEC_FLAG_INTERLACED_ME) &&
>                  ost->top_field_first >= 0)
> @@ -3503,6 +3498,13 @@ static int init_output_stream_encode(OutputStream *ost, AVFrame *frame)
>                  enc_ctx->field_order = AV_FIELD_PROGRESSIVE;
>          }
>
> +        // Field order: override
> +        if (ost->top_field_first == 0) {
> +            enc_ctx->field_order = AV_FIELD_BB;
> +        } else if (ost->top_field_first == 1) {
> +            enc_ctx->field_order = AV_FIELD_TT;
> +        }
> +
>          if (ost->forced_keyframes) {
>              if (!strncmp(ost->forced_keyframes, "expr:", 5)) {
>                  ret = av_expr_parse(&ost->forced_keyframes_pexpr, ost->forced_keyframes+5,
> --
> 2.31.1
>

Ping.


More information about the ffmpeg-devel mailing list