summaryrefslogtreecommitdiff
path: root/libavcodec/libx265.c
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2018-04-13 20:41:00 -0300
committerJames Almer <jamrial@gmail.com>2018-04-13 20:41:00 -0300
commit4339c94364f8ff143d051fcace3e5801625db607 (patch)
treecaf94b81d8960787b08a629421c05d9110315d0f /libavcodec/libx265.c
parentbbe95ebdadff24127a7c1c9ccf1e7b71aac96cf8 (diff)
parentcc06f7bd10c236539b4f6f87b795c459dd873770 (diff)
Merge commit 'cc06f7bd10c236539b4f6f87b795c459dd873770'
* commit 'cc06f7bd10c236539b4f6f87b795c459dd873770': libx265: Support tiny video sizes Merged-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec/libx265.c')
-rw-r--r--libavcodec/libx265.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c
index 3c97800ccb..c208c0f2d3 100644
--- a/libavcodec/libx265.c
+++ b/libavcodec/libx265.c
@@ -115,6 +115,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_SMPTE432 &&
avctx->color_primaries != AVCOL_PRI_UNSPECIFIED) ||
(avctx->color_trc <= AVCOL_TRC_ARIB_STD_B67 &&