libaomenc: fix profile setting

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>
pull/284/head
James Almer 7 years ago
parent f6171471e6
commit ea3320bb82
  1. 10
      libavcodec/libaomenc.c

@ -301,13 +301,13 @@ 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 {
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->pix_fmt);
if (desc->comp[0].depth < 12)
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
else {
avctx->profile = enccfg.g_profile = FF_PROFILE_AV1_PROFESSIONAL;
}

Loading…
Cancel
Save