proresenc_ks: use chroma sampling in autoselection

If the chroma planes aren't subsampled, automatically select
the 4:4:4:4 profile.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
pull/89/head
Christophe Gisquet 10 years ago committed by Michael Niedermayer
parent c44d8d9552
commit 140f535517
  1. 6
      libavcodec/proresenc_kostya.c

@ -1148,11 +1148,13 @@ static av_cold int encode_init(AVCodecContext *avctx)
return AVERROR(EINVAL); return AVERROR(EINVAL);
} }
if (ctx->profile == PRORES_PROFILE_AUTO) { if (ctx->profile == PRORES_PROFILE_AUTO) {
ctx->profile = av_pix_fmt_desc_get(avctx->pix_fmt)->flags & AV_PIX_FMT_FLAG_ALPHA const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->pix_fmt);
ctx->profile = (desc->flags & AV_PIX_FMT_FLAG_ALPHA ||
!(desc->log2_chroma_w + desc->log2_chroma_h))
? PRORES_PROFILE_4444 : PRORES_PROFILE_HQ; ? PRORES_PROFILE_4444 : PRORES_PROFILE_HQ;
av_log(avctx, AV_LOG_INFO, "Autoselected %s. It can be overridden " av_log(avctx, AV_LOG_INFO, "Autoselected %s. It can be overridden "
"through -profile option.\n", ctx->profile == PRORES_PROFILE_4444 "through -profile option.\n", ctx->profile == PRORES_PROFILE_4444
? "4:4:4:4 profile because of the alpha channel" ? "4:4:4:4 profile because of the used input colorspace"
: "HQ profile to keep best quality"); : "HQ profile to keep best quality");
} }
if (av_pix_fmt_desc_get(avctx->pix_fmt)->flags & AV_PIX_FMT_FLAG_ALPHA) { if (av_pix_fmt_desc_get(avctx->pix_fmt)->flags & AV_PIX_FMT_FLAG_ALPHA) {

Loading…
Cancel
Save