|
|
|
@ -201,9 +201,18 @@ static av_cold int mediacodec_init(AVCodecContext *avctx) |
|
|
|
|
// Workaround the alignment requirement of mediacodec. We can't do it
|
|
|
|
|
// silently for AV_PIX_FMT_MEDIACODEC.
|
|
|
|
|
if (avctx->pix_fmt != AV_PIX_FMT_MEDIACODEC && |
|
|
|
|
avctx->codec_id == AV_CODEC_ID_H264) { |
|
|
|
|
(avctx->codec_id == AV_CODEC_ID_H264 || |
|
|
|
|
avctx->codec_id == AV_CODEC_ID_HEVC)) { |
|
|
|
|
s->width = FFALIGN(avctx->width, 16); |
|
|
|
|
s->height = FFALIGN(avctx->height, 16); |
|
|
|
|
// If avctx video size is aligned to 16 already, we don't need to do
|
|
|
|
|
// anything. If align is needed for HEVC, we should use the maximum CTU
|
|
|
|
|
// size.
|
|
|
|
|
if (avctx->codec_id == AV_CODEC_ID_HEVC && |
|
|
|
|
(s->width != avctx->width || s->height != avctx->height)) { |
|
|
|
|
s->width = FFALIGN(avctx->width, 64); |
|
|
|
|
s->height = FFALIGN(avctx->height, 64); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
s->width = avctx->width; |
|
|
|
|
s->height = avctx->height; |
|
|
|
|