libaomenc: fix profile setting
authorJames Almer <jamrial@gmail.com>
Thu, 29 Mar 2018 16:03:04 +0000 (13:03 -0300)
committerJames Almer <jamrial@gmail.com>
Thu, 29 Mar 2018 16:06:38 +0000 (13:06 -0300)
Main Profile is yuv420p 8 and 10 bit
High Profile is yuv444p 8 and 10 bit
Professional Profile is yuv422p 8, 10, and 12 bit, plus every other pixfmt at 12 bit

Signed-off-by: James Almer <jamrial@gmail.com>
libavcodec/libaomenc.c

index a2a2c39..9807bd5 100644 (file)
@@ -301,14 +301,14 @@ static av_cold int aom_init(AVCodecContext *avctx)
      * quality. */
     if (avctx->profile != FF_PROFILE_UNKNOWN)
         enccfg.g_profile = avctx->profile;
-    else if (avctx->pix_fmt == AV_PIX_FMT_YUV420P)
+    else if (avctx->pix_fmt == AV_PIX_FMT_YUV420P ||
+             avctx->pix_fmt == AV_PIX_FMT_YUV420P10)
         avctx->profile = enccfg.g_profile = FF_PROFILE_AV1_MAIN;
+    else if (avctx->pix_fmt == AV_PIX_FMT_YUV444P ||
+             avctx->pix_fmt == AV_PIX_FMT_YUV444P10)
+        avctx->profile = enccfg.g_profile = FF_PROFILE_AV1_HIGH;
     else {
-        const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->pix_fmt);
-        if (desc->comp[0].depth < 12)
-            avctx->profile = enccfg.g_profile = FF_PROFILE_AV1_HIGH;
-        else
-            avctx->profile = enccfg.g_profile = FF_PROFILE_AV1_PROFESSIONAL;
+        avctx->profile = enccfg.g_profile = FF_PROFILE_AV1_PROFESSIONAL;
     }