[FFmpeg-devel] [PATCH 2/2] lavc/vaapi_encode_h265: Use surface alignment
David Rosca
nowrep at gmail.com
Tue Oct 22 18:26:59 EEST 2024
This is needed to correctly set conformance window crop with Mesa AMD.
---
libavcodec/vaapi_encode_h265.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/libavcodec/vaapi_encode_h265.c b/libavcodec/vaapi_encode_h265.c
index 2283bcc0b4..0f97c9188b 100644
--- a/libavcodec/vaapi_encode_h265.c
+++ b/libavcodec/vaapi_encode_h265.c
@@ -951,8 +951,16 @@ static av_cold int vaapi_encode_h265_get_encoder_caps(AVCodecContext *avctx)
"min CB size %dx%d.\n", priv->ctu_size, priv->ctu_size,
priv->min_cb_size, priv->min_cb_size);
- base_ctx->surface_width = FFALIGN(avctx->width, priv->min_cb_size);
- base_ctx->surface_height = FFALIGN(avctx->height, priv->min_cb_size);
+ if (priv->common.surface_alignment_width &&
+ priv->common.surface_alignment_height) {
+ base_ctx->surface_width =
+ FFALIGN(avctx->width, priv->common.surface_alignment_width);
+ base_ctx->surface_height =
+ FFALIGN(avctx->height, priv->common.surface_alignment_height);
+ } else {
+ base_ctx->surface_width = FFALIGN(avctx->width, priv->min_cb_size);
+ base_ctx->surface_height = FFALIGN(avctx->height, priv->min_cb_size);
+ }
base_ctx->slice_block_width = base_ctx->slice_block_height = priv->ctu_size;
--
2.47.0
More information about the ffmpeg-devel
mailing list