ffmpeg | branch: release/7.0 | Zhao Zhili <zhiliz...@tencent.com> | Thu May 23 23:13:39 2024 +0800| [f0b747ef1a9b9bfd0942a6d459f642b4b993b378] | committer: Zhao Zhili
avcodec/mediacodecenc: workaround the alignment requirement for H.265 Signed-off-by: Zhao Zhili <zhiliz...@tencent.com> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f0b747ef1a9b9bfd0942a6d459f642b4b993b378 --- libavcodec/mediacodecenc.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libavcodec/mediacodecenc.c b/libavcodec/mediacodecenc.c index a898e335b5..d3bf27cb7f 100644 --- a/libavcodec/mediacodecenc.c +++ b/libavcodec/mediacodecenc.c @@ -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; _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".