mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-28 01:31:00 +00:00
avcodec/mediacodecenc: workaround the alignment requirement only for H.264
There is no bsf for other codecs to modify crop info except H.265. For H.265, the assumption that FFALIGN(width, 16)xFFALIGN(height, 16) is the video resolution can be wrong, since the encoder can use CTU larger than 16x16. In that case, use FFALIGN(width, 16) - width as crop_right is incorrect. So disable the workaround for H.265 now. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
This commit is contained in:
parent
680b3cee1f
commit
2a68b2d643
@ -234,7 +234,8 @@ static av_cold int mediacodec_init(AVCodecContext *avctx)
|
|||||||
ff_AMediaFormat_setString(format, "mime", codec_mime);
|
ff_AMediaFormat_setString(format, "mime", codec_mime);
|
||||||
// Workaround the alignment requirement of mediacodec. We can't do it
|
// Workaround the alignment requirement of mediacodec. We can't do it
|
||||||
// silently for AV_PIX_FMT_MEDIACODEC.
|
// silently for AV_PIX_FMT_MEDIACODEC.
|
||||||
if (avctx->pix_fmt != AV_PIX_FMT_MEDIACODEC) {
|
if (avctx->pix_fmt != AV_PIX_FMT_MEDIACODEC &&
|
||||||
|
avctx->codec_id == AV_CODEC_ID_H264) {
|
||||||
s->width = FFALIGN(avctx->width, 16);
|
s->width = FFALIGN(avctx->width, 16);
|
||||||
s->height = FFALIGN(avctx->height, 16);
|
s->height = FFALIGN(avctx->height, 16);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user