On Mon, 29 Jan 2018 23:01:21 +0000 Mark Thompson <[email protected]> wrote:
> This is already accounted for in the generic code, so it shouldn't also > be added here. > --- > libavcodec/dxva2.c | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/libavcodec/dxva2.c b/libavcodec/dxva2.c > index edc8ade96..f111d0b79 100644 > --- a/libavcodec/dxva2.c > +++ b/libavcodec/dxva2.c > @@ -611,10 +611,6 @@ int ff_dxva2_common_frame_params(AVCodecContext *avctx, > if (avctx->extra_hw_frames > 0) > num_surfaces += avctx->extra_hw_frames; > > - /* 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); OK, but after this change it's still not correct. It looks like the adding of thread surfaces should be moved from the ff_decode_get_hw_frames_ctx() to avcodec_get_hw_frames_parameters(). The public API is supposed to always add them (because it's pretty much an implementation detail). If we don't want to have them in the hwaccel impls. (like dxva2 in this case), then the public API function must add them, or it'd break API users (and require them to know about the additional frame threading requirements). _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
