[FFmpeg-cvslog] Merge commit 'cad739dace55e3446ef7180de688173cd19fb000'

Mark Thompson git at videolan.org
Tue Feb 13 00:22:49 EET 2018


ffmpeg | branch: master | Mark Thompson <sw at jkqxz.net> | Mon Feb 12 22:22:30 2018 +0000| [9471122a1b5dec34572c3d4c675737f0493d140e] | committer: Mark Thompson

Merge commit 'cad739dace55e3446ef7180de688173cd19fb000'

* commit 'cad739dace55e3446ef7180de688173cd19fb000':
  lavc: Add per-thread surfaces in get_hw_frame_parameters()

Merged-by: Mark Thompson <sw at jkqxz.net>

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

 libavcodec/decode.c | 9 +++++----
 libavcodec/dxva2.c  | 4 ----
 2 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index e984d9754e..522720c07a 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -1186,10 +1186,6 @@ int ff_decode_get_hw_frames_ctx(AVCodecContext *avctx,
         // We guarantee 4 base work surfaces. The function above guarantees 1
         // (the absolute minimum), so add the missing count.
         frames_ctx->initial_pool_size += 3;
-
-        // Add an additional surface per thread is frame threading is enabled.
-        if (avctx->active_thread_type & FF_THREAD_FRAME)
-            frames_ctx->initial_pool_size += avctx->thread_count;
     }
 
     ret = av_hwframe_ctx_init(avctx->hw_frames_ctx);
@@ -1236,6 +1232,11 @@ int avcodec_get_hw_frames_parameters(AVCodecContext *avctx,
             // available then add them here.
             if (avctx->extra_hw_frames > 0)
                 frames_ctx->initial_pool_size += avctx->extra_hw_frames;
+
+            // If frame threading is enabled then an extra surface per thread
+            // is also required.
+            if (avctx->active_thread_type & FF_THREAD_FRAME)
+                frames_ctx->initial_pool_size += avctx->thread_count;
         }
 
         *out_frames_ref = frames_ref;
diff --git a/libavcodec/dxva2.c b/libavcodec/dxva2.c
index 6f294703fb..6d831599af 100644
--- a/libavcodec/dxva2.c
+++ b/libavcodec/dxva2.c
@@ -614,10 +614,6 @@ int ff_dxva2_common_frame_params(AVCodecContext *avctx,
     else
         num_surfaces += 2;
 
-    /* add extra surfaces for frame threading */
-    if (avctx->active_thread_type & FF_THREAD_FRAME)
-        num_surfaces += avctx->thread_count;
-
     frames_ctx->sw_format = avctx->sw_pix_fmt == AV_PIX_FMT_YUV420P10 ?
                             AV_PIX_FMT_P010 : AV_PIX_FMT_NV12;
     frames_ctx->width = FFALIGN(avctx->coded_width, surface_alignment);


======================================================================




More information about the ffmpeg-cvslog mailing list