mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
dxva2: Factorize DXVA context validity test into a single macro
Signed-off-by: Diego Biurrun <diego@biurrun.de>
This commit is contained in:
parent
f8a42d4f26
commit
0ac2d86c47
@ -445,9 +445,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);
|
||||
|
||||
|
@ -365,9 +365,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);
|
||||
|
||||
|
@ -71,6 +71,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)
|
||||
@ -80,6 +83,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)
|
||||
@ -89,6 +93,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,
|
||||
|
@ -263,9 +263,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);
|
||||
|
||||
|
@ -264,9 +264,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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user