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.
release/7.0
Clément Bœsch 11 months ago
parent de9bc4f205
commit 2142141a16
  1. 3
      libavcodec/proresenc_anatoliy.c
  2. 2
      libavcodec/videotoolboxenc.c

@ -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); ff_fdctdsp_init(&ctx->fdsp, avctx);
avctx->codec_tag = AV_RL32((const uint8_t*)profiles[avctx->profile].name); avctx->codec_tag = AV_RL32((const uint8_t*)profiles[avctx->profile].name);

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

Loading…
Cancel
Save