[FFmpeg-cvslog] avcodec/proresenc_kostya: use a compatible bitstream version

Clément Bœsch git at videolan.org
Thu Jan 11 00:37:21 EET 2024


ffmpeg | branch: master | Clément Bœsch <u at pkh.me> | Mon Dec 11 19:47:14 2023 +0100| [aa7ccd0ce902450c865c62ac160dd08a7b003eb3] | committer: Clément Bœsch

avcodec/proresenc_kostya: use a compatible bitstream version

Quoting SMPTE RDD 36:2015:
  A decoder shall abort if it encounters a bitstream with an unsupported
  bitstream_version value. If 0, the value of the chroma_format syntax
  element shall be 2 (4:2:2 sampling) and the value of the
  alpha_channel_type element shall be 0 (no encoded alpha); if 1, any
  permissible value may be used for those syntax elements.

So if we're not in 4:2:2 or if there is alpha, we are not allowed to use
version 0.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=aa7ccd0ce902450c865c62ac160dd08a7b003eb3
---

 libavcodec/proresenc_kostya.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/proresenc_kostya.c b/libavcodec/proresenc_kostya.c
index f4674280fd..49bef5cf2f 100644
--- a/libavcodec/proresenc_kostya.c
+++ b/libavcodec/proresenc_kostya.c
@@ -994,7 +994,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
     // frame header
     tmp = buf;
     buf += 2;                                   // frame header size will be stored here
-    bytestream_put_be16  (&buf, 0);             // version 1
+    bytestream_put_be16  (&buf, ctx->chroma_factor != CFACTOR_Y422 || ctx->alpha_bits ? 1 : 0);
     bytestream_put_buffer(&buf, ctx->vendor, 4);
     bytestream_put_be16  (&buf, avctx->width);
     bytestream_put_be16  (&buf, avctx->height);



More information about the ffmpeg-cvslog mailing list