[FFmpeg-devel] [PATCH 5/5] avcodec/proresenc_anatoliy: do not write into chroma reserved bitfields

Stefano Sabatini stefasab at gmail.com
Wed Jan 10 23:43:59 EET 2024


On date Sunday 2024-01-07 19:16:47 +0100, Clément Bœsch wrote:
> The layout for the frame flags is as follow:
> 
>    chroma_format  u(2)
>    reserved       u(2)
>    interlace_mode u(2)
>    reserved       u(2)
> 
> chroma_format has 2 allowed values:
>    0: reserved
>    1: reserved
>    2: 4:2:2
>    3: 4:4:4
> 
> interlace_mode has 3 allowed values:
>    0: progressive
>    1: tff
>    2: bff
>    3: reserved
> 
> 0x80 is what we expect for "422 not interlaced", and the extra 0x2 from

> 0x82 is actually writting into the reserved bits.

nit: writting typo

> ---
>  libavcodec/proresenc_anatoliy.c             | 2 +-
>  tests/ref/vsynth/vsynth1-prores             | 2 +-
>  tests/ref/vsynth/vsynth1-prores_444         | 2 +-
>  tests/ref/vsynth/vsynth1-prores_444_int     | 2 +-
>  tests/ref/vsynth/vsynth1-prores_int         | 2 +-
>  tests/ref/vsynth/vsynth2-prores             | 2 +-
>  tests/ref/vsynth/vsynth2-prores_444         | 2 +-
>  tests/ref/vsynth/vsynth2-prores_444_int     | 2 +-
>  tests/ref/vsynth/vsynth2-prores_int         | 2 +-
>  tests/ref/vsynth/vsynth3-prores             | 2 +-
>  tests/ref/vsynth/vsynth3-prores_444         | 2 +-
>  tests/ref/vsynth/vsynth3-prores_444_int     | 2 +-
>  tests/ref/vsynth/vsynth3-prores_int         | 2 +-
>  tests/ref/vsynth/vsynth_lena-prores         | 2 +-
>  tests/ref/vsynth/vsynth_lena-prores_444     | 2 +-
>  tests/ref/vsynth/vsynth_lena-prores_444_int | 2 +-
>  tests/ref/vsynth/vsynth_lena-prores_int     | 2 +-
>  17 files changed, 17 insertions(+), 17 deletions(-)
> 
> diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
> index 1112cb26f1..bee4a14181 100644
> --- a/libavcodec/proresenc_anatoliy.c
> +++ b/libavcodec/proresenc_anatoliy.c
> @@ -769,7 +769,7 @@ static int prores_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
>      bytestream_put_buffer(&buf, ctx->vendor, 4);
>      bytestream_put_be16(&buf, avctx->width);
>      bytestream_put_be16(&buf, avctx->height);
> -    frame_flags = 0x82; /* 422 not interlaced */
> +    frame_flags = 0x80; /* 422 not interlaced */

LGTM, thanks.


More information about the ffmpeg-devel mailing list