From 28e9ba951d1a0b0aca53b242aa64f484ca75e874 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Thu, 17 Aug 2017 11:42:16 +0200 Subject: [PATCH] avcodec/dnxhdenc: call slice thread code only if slice threading is enabled --- libavcodec/dnxhdenc.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/libavcodec/dnxhdenc.c b/libavcodec/dnxhdenc.c index f8bf7db90a..5a0e6de6a5 100644 --- a/libavcodec/dnxhdenc.c +++ b/libavcodec/dnxhdenc.c @@ -526,9 +526,11 @@ FF_DISABLE_DEPRECATION_WARNINGS FF_ENABLE_DEPRECATION_WARNINGS #endif - if (avctx->thread_count > MAX_THREADS) { - av_log(avctx, AV_LOG_ERROR, "too many threads\n"); - return AVERROR(EINVAL); + if (avctx->active_thread_type == FF_THREAD_SLICE) { + if (avctx->thread_count > MAX_THREADS) { + av_log(avctx, AV_LOG_ERROR, "too many threads\n"); + return AVERROR(EINVAL); + } } if (avctx->qmax <= 1) { @@ -537,9 +539,11 @@ FF_ENABLE_DEPRECATION_WARNINGS } ctx->thread[0] = ctx; - for (i = 1; i < avctx->thread_count; i++) { - ctx->thread[i] = av_malloc(sizeof(DNXHDEncContext)); - memcpy(ctx->thread[i], ctx, sizeof(DNXHDEncContext)); + if (avctx->active_thread_type == FF_THREAD_SLICE) { + for (i = 1; i < avctx->thread_count; i++) { + ctx->thread[i] = av_malloc(sizeof(DNXHDEncContext)); + memcpy(ctx->thread[i], ctx, sizeof(DNXHDEncContext)); + } } return 0;