This was not rejected and has been merged in libav. 3/4 and 4/4 seem to be valid too and pending on both sides. I just need to send an update of 4/4 as the libavcodec version has changed.
On Wed, Jan 4, 2017 at 2:36 PM, Steve Lhomme <rob...@gmail.com> wrote: > --- > libavcodec/dxva2_h264.c | 4 +--- > libavcodec/dxva2_hevc.c | 4 +--- > libavcodec/dxva2_internal.h | 5 +++++ > libavcodec/dxva2_mpeg2.c | 4 +--- > libavcodec/dxva2_vc1.c | 4 +--- > libavcodec/dxva2_vp9.c | 4 +--- > 6 files changed, 10 insertions(+), 15 deletions(-) > > diff --git a/libavcodec/dxva2_h264.c b/libavcodec/dxva2_h264.c > index 82a772d..59fa5e3 100644 > --- a/libavcodec/dxva2_h264.c > +++ b/libavcodec/dxva2_h264.c > @@ -450,9 +450,7 @@ static int dxva2_h264_start_frame(AVCodecContext *avctx, > AVDXVAContext *ctx = avctx->hwaccel_context; > struct dxva2_picture_context *ctx_pic = > h->cur_pic_ptr->hwaccel_picture_private; > > - if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL || > - DXVA_CONTEXT_CFG(avctx, ctx) == NULL || > - DXVA_CONTEXT_COUNT(avctx, ctx) <= 0) > + if (!DXVA_CONTEXT_VALID(avctx, ctx)) > return -1; > assert(ctx_pic); > > diff --git a/libavcodec/dxva2_hevc.c b/libavcodec/dxva2_hevc.c > index 5a312ea..981c888 100644 > --- a/libavcodec/dxva2_hevc.c > +++ b/libavcodec/dxva2_hevc.c > @@ -364,9 +364,7 @@ static int dxva2_hevc_start_frame(AVCodecContext *avctx, > AVDXVAContext *ctx = avctx->hwaccel_context; > struct hevc_dxva2_picture_context *ctx_pic = > h->ref->hwaccel_picture_private; > > - if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL || > - DXVA_CONTEXT_CFG(avctx, ctx) == NULL || > - DXVA_CONTEXT_COUNT(avctx, ctx) <= 0) > + if (!DXVA_CONTEXT_VALID(avctx, ctx)) > return -1; > av_assert0(ctx_pic); > > diff --git a/libavcodec/dxva2_internal.h b/libavcodec/dxva2_internal.h > index c962810..e5322ef 100644 > --- a/libavcodec/dxva2_internal.h > +++ b/libavcodec/dxva2_internal.h > @@ -76,6 +76,9 @@ typedef union { > #define DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx) (avctx->pix_fmt == > AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.cfg->ConfigBitstreamRaw : > ctx->dxva2.cfg->ConfigBitstreamRaw) > #define DXVA_CONTEXT_CFG_INTRARESID(avctx, ctx) (avctx->pix_fmt == > AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.cfg->ConfigIntraResidUnsigned : > ctx->dxva2.cfg->ConfigIntraResidUnsigned) > #define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) (avctx->pix_fmt == > AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.cfg->ConfigResidDiffAccelerator : > ctx->dxva2.cfg->ConfigResidDiffAccelerator) > +#define DXVA_CONTEXT_VALID(avctx, ctx) (DXVA_CONTEXT_DECODER(avctx, > ctx) && \ > + DXVA_CONTEXT_CFG(avctx, > ctx) && \ > + DXVA_CONTEXT_COUNT(avctx, > ctx)) > #elif CONFIG_DXVA2 > #define DXVA_CONTEXT_WORKAROUND(avctx, ctx) (ctx->dxva2.workaround) > #define DXVA_CONTEXT_COUNT(avctx, ctx) (ctx->dxva2.surface_count) > @@ -85,6 +88,7 @@ typedef union { > #define DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx) > (ctx->dxva2.cfg->ConfigBitstreamRaw) > #define DXVA_CONTEXT_CFG_INTRARESID(avctx, ctx) > (ctx->dxva2.cfg->ConfigIntraResidUnsigned) > #define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) > (ctx->dxva2.cfg->ConfigResidDiffAccelerator) > +#define DXVA_CONTEXT_VALID(avctx, ctx) (ctx->dxva2.decoder && > ctx->dxva2.cfg && ctx->dxva2.surface_count) > #elif CONFIG_D3D11VA > #define DXVA_CONTEXT_WORKAROUND(avctx, ctx) (ctx->d3d11va.workaround) > #define DXVA_CONTEXT_COUNT(avctx, ctx) (ctx->d3d11va.surface_count) > @@ -94,6 +98,7 @@ typedef union { > #define DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx) > (ctx->d3d11va.cfg->ConfigBitstreamRaw) > #define DXVA_CONTEXT_CFG_INTRARESID(avctx, ctx) > (ctx->d3d11va.cfg->ConfigIntraResidUnsigned) > #define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) > (ctx->d3d11va.cfg->ConfigResidDiffAccelerator) > +#define DXVA_CONTEXT_VALID(avctx, ctx) (ctx->d3d11va.decoder && > ctx->d3d11va.cfg && ctx->d3d11va.surface_count) > #endif > > unsigned ff_dxva2_get_surface_index(const AVCodecContext *avctx, > diff --git a/libavcodec/dxva2_mpeg2.c b/libavcodec/dxva2_mpeg2.c > index c2f0b58..14ac48f 100644 > --- a/libavcodec/dxva2_mpeg2.c > +++ b/libavcodec/dxva2_mpeg2.c > @@ -262,9 +262,7 @@ static int dxva2_mpeg2_start_frame(AVCodecContext *avctx, > struct dxva2_picture_context *ctx_pic = > s->current_picture_ptr->hwaccel_picture_private; > > - if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL || > - DXVA_CONTEXT_CFG(avctx, ctx) == NULL || > - DXVA_CONTEXT_COUNT(avctx, ctx) <= 0) > + if (!DXVA_CONTEXT_VALID(avctx, ctx)) > return -1; > assert(ctx_pic); > > diff --git a/libavcodec/dxva2_vc1.c b/libavcodec/dxva2_vc1.c > index 36bf1ba..cc97d7b 100644 > --- a/libavcodec/dxva2_vc1.c > +++ b/libavcodec/dxva2_vc1.c > @@ -317,9 +317,7 @@ static int dxva2_vc1_start_frame(AVCodecContext *avctx, > AVDXVAContext *ctx = avctx->hwaccel_context; > struct dxva2_picture_context *ctx_pic = > v->s.current_picture_ptr->hwaccel_picture_private; > > - if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL || > - DXVA_CONTEXT_CFG(avctx, ctx) == NULL || > - DXVA_CONTEXT_COUNT(avctx, ctx) <= 0) > + if (!DXVA_CONTEXT_VALID(avctx, ctx)) > return -1; > assert(ctx_pic); > > diff --git a/libavcodec/dxva2_vp9.c b/libavcodec/dxva2_vp9.c > index 0c4996c..d53b327 100644 > --- a/libavcodec/dxva2_vp9.c > +++ b/libavcodec/dxva2_vp9.c > @@ -261,9 +261,7 @@ static int dxva2_vp9_start_frame(AVCodecContext *avctx, > AVDXVAContext *ctx = avctx->hwaccel_context; > struct vp9_dxva2_picture_context *ctx_pic = > h->frames[CUR_FRAME].hwaccel_picture_private; > > - if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL || > - DXVA_CONTEXT_CFG(avctx, ctx) == NULL || > - DXVA_CONTEXT_COUNT(avctx, ctx) <= 0) > + if (!DXVA_CONTEXT_VALID(avctx, ctx)) > return -1; > av_assert0(ctx_pic); > > -- > 2.10.2 > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel