avcodec/proresenc_aw : simplify frame flags
authorMartin Vignali <martin.vignali@gmail.com>
Sat, 9 Feb 2019 17:15:59 +0000 (18:15 +0100)
committerMartin Vignali <martin.vignali@gmail.com>
Sat, 23 Feb 2019 12:21:17 +0000 (13:21 +0100)
libavcodec/proresenc_anatoliy.c

index 2bed58b..afd1fa6 100644 (file)
@@ -684,6 +684,7 @@ static int prores_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
     int header_size = 148;
     uint8_t *buf;
     int pic_size, ret;
+    uint8_t frame_flags;
     int frame_size = FFALIGN(avctx->width, 16) * FFALIGN(avctx->height, 16)*16 + 500 + AV_INPUT_BUFFER_MIN_SIZE; //FIXME choose tighter limit
 
 
@@ -705,11 +706,10 @@ 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);
-    if (avctx->profile >= FF_PROFILE_PRORES_4444) { /* 4444 or 4444 Xq */
-        *buf++ = 0xC2; // 444, not interlaced
-    } else {
-        *buf++ = 0x82; // 422, not interlaced
-    }
+    frame_flags = 0x82; /* 422 not interlaced */
+    if (avctx->profile >= FF_PROFILE_PRORES_4444) /* 4444 or 4444 Xq */
+        frame_flags |= 0x40; /* 444 chroma */
+    *buf++ = frame_flags;
     *buf++ = 0; /* reserved */
     /* only write color properties, if valid value. set to unspecified otherwise */
     *buf++ = ff_int_from_list_or_default(avctx, "frame color primaries", pict->color_primaries, valid_primaries, 0);