From cc06f7bd10c236539b4f6f87b795c459dd873770 Mon Sep 17 00:00:00 2001 From: Vittorio Giovara Date: Fri, 16 Mar 2018 11:34:25 -0400 Subject: libx265: Support tiny video sizes Where tiny is less than the default CTU size. Signed-off-by: Vittorio Giovara --- libavcodec/libx265.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'libavcodec') diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c index fd54521..8f1d60b 100644 --- a/libavcodec/libx265.c +++ b/libavcodec/libx265.c @@ -122,6 +122,17 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx) ctx->params->sourceHeight = avctx->height; ctx->params->bEnablePsnr = !!(avctx->flags & AV_CODEC_FLAG_PSNR); + /* Tune the CTU size based on input resolution. */ + if (ctx->params->sourceWidth < 64 || ctx->params->sourceHeight < 64) + ctx->params->maxCUSize = 32; + if (ctx->params->sourceWidth < 32 || ctx->params->sourceHeight < 32) + ctx->params->maxCUSize = 16; + if (ctx->params->sourceWidth < 16 || ctx->params->sourceHeight < 16) { + av_log(avctx, AV_LOG_ERROR, "Image size is too small (%dx%d).\n", + ctx->params->sourceWidth, ctx->params->sourceHeight); + return AVERROR(EINVAL); + } + if ((avctx->color_primaries <= AVCOL_PRI_BT2020 && avctx->color_primaries != AVCOL_PRI_UNSPECIFIED) || (avctx->color_trc <= AVCOL_TRC_BT2020_12 && -- cgit v1.1