[FFmpeg-cvslog] avcodec/dnxhdenc: call slice thread code only if slice threading is enabled

Paul B Mahol git at videolan.org
Thu Aug 17 12:47:01 EEST 2017


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Thu Aug 17 11:42:16 2017 +0200| [28e9ba951d1a0b0aca53b242aa64f484ca75e874] | committer: Paul B Mahol

avcodec/dnxhdenc: call slice thread code only if slice threading is enabled

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=28e9ba951d1a0b0aca53b242aa64f484ca75e874
---

 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;



More information about the ffmpeg-cvslog mailing list