avcodec/proresenc: make transparency honored in mov/QT

In the mov muxer (in mov_write_video_tag()), bits_per_coded_sample will
be written under certain conditions and is required to be 32 for the
transparency to be honored in QuickTime.

prores_kostya already has this setting but prores_anatoliy and
prores_videotoolbox didn't.
This commit is contained in:
Clément Bœsch 2023-12-26 22:31:33 +01:00
parent de9bc4f205
commit 2142141a16
2 changed files with 5 additions and 0 deletions

View File

@ -930,6 +930,9 @@ static av_cold int prores_encode_init(AVCodecContext *avctx)
}
}
if (ctx->need_alpha)
avctx->bits_per_coded_sample = 32;
ff_fdctdsp_init(&ctx->fdsp, avctx);
avctx->codec_tag = AV_RL32((const uint8_t*)profiles[avctx->profile].name);

View File

@ -521,6 +521,8 @@ static CMVideoCodecType get_cm_codec_type(AVCodecContext *avctx,
}
return kCMVideoCodecType_HEVC;
case AV_CODEC_ID_PRORES:
if (desc && (desc->flags & AV_PIX_FMT_FLAG_ALPHA))
avctx->bits_per_coded_sample = 32;
switch (profile) {
case AV_PROFILE_PRORES_PROXY:
return MKBETAG('a','p','c','o'); // kCMVideoCodecType_AppleProRes422Proxy