[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