I think I should update the minor version number as I need to rely on this behaviour change in VLC, the surface array will be empty.
Should I also change the headers so that they don't require the output surface to be pre-allocated ? On Thu, Dec 1, 2016 at 3:10 PM, Steve Lhomme <rob...@videolabs.io> wrote: > No need to loop through the known surfaces, we'll use it anyway. > > The loop is only done for DXVA2 > --- > libavcodec/dxva2.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/libavcodec/dxva2.c b/libavcodec/dxva2.c > index a64b1b5..459e267 100644 > --- a/libavcodec/dxva2.c > +++ b/libavcodec/dxva2.c > @@ -41,20 +41,20 @@ unsigned ff_dxva2_get_surface_index(const AVCodecContext > *avctx, > void *surface = ff_dxva2_get_surface(frame); > unsigned i; > > - for (i = 0; i < DXVA_CONTEXT_COUNT(avctx, ctx); i++) { > #if CONFIG_D3D11VA > - if (avctx->pix_fmt == AV_PIX_FMT_D3D11VA_VLD && > ctx->d3d11va.surface[i] == surface) > - { > - D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC viewDesc; > - ID3D11VideoDecoderOutputView_GetDesc(ctx->d3d11va.surface[i], > &viewDesc); > - return viewDesc.Texture2D.ArraySlice; > - } > + if (avctx->pix_fmt == AV_PIX_FMT_D3D11VA_VLD) > + { > + D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC viewDesc; > + ID3D11VideoDecoderOutputView_GetDesc((ID3D11VideoDecoderOutputView*) > surface, &viewDesc); > + return viewDesc.Texture2D.ArraySlice; > + } > #endif > #if CONFIG_DXVA2 > + for (i = 0; i < DXVA_CONTEXT_COUNT(avctx, ctx); i++) { > if (avctx->pix_fmt == AV_PIX_FMT_DXVA2_VLD && ctx->dxva2.surface[i] > == surface) > return i; > -#endif > } > +#endif > > assert(0); > return 0; > -- > 2.10.1.windows.1 > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel