[FFmpeg-devel] [PATCH]lavc/dxva2_internal: Cast dxva2 and d3d11 decoders and cfgs to (void *)

James Almer jamrial at gmail.com
Mon Apr 16 02:08:17 EEST 2018


On 4/15/2018 7:00 PM, Carl Eugen Hoyos wrote:
> Hi!
> 
> Attached patch is supposed to silence several user-reported warnings,
> I cannot currently test here.
> 
> Please review, Carl Eugen
> 
> 
> 0001-lavc-dxva2_internal-Cast-the-dxva2-and-d3d11-decoder.patch
> 
> 
> From 6fb20352568dc5abe61c28247bfce9e04e7494c1 Mon Sep 17 00:00:00 2001
> From: Carl Eugen Hoyos <ceffmpeg at gmail.com>
> Date: Sun, 15 Apr 2018 23:57:24 +0200
> Subject: [PATCH] lavc/dxva2_internal: Cast the dxva2 and d3d11 decoders and
>  cfgs to (void *).
> 
> Silences several warnings:
> libavcodec/dxva2_internal.h:107:98: warning: pointer type mismatch in conditional expression
> libavcodec/dxva2_internal.h:109:94: warning: pointer type mismatch in conditional expression
> ---
>  libavcodec/dxva2_internal.h |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/libavcodec/dxva2_internal.h b/libavcodec/dxva2_internal.h
> index 8bb3344..b822af5 100644
> --- a/libavcodec/dxva2_internal.h
> +++ b/libavcodec/dxva2_internal.h
> @@ -104,9 +104,9 @@ typedef struct FFDXVASharedContext {
>  #if CONFIG_D3D11VA && CONFIG_DXVA2
>  #define DXVA_CONTEXT_WORKAROUND(avctx, ctx)     (ff_dxva2_is_d3d11(avctx) ? ctx->d3d11va.workaround : ctx->dxva2.workaround)
>  #define DXVA_CONTEXT_COUNT(avctx, ctx)          (ff_dxva2_is_d3d11(avctx) ? ctx->d3d11va.surface_count : ctx->dxva2.surface_count)
> -#define DXVA_CONTEXT_DECODER(avctx, ctx)        (ff_dxva2_is_d3d11(avctx) ? ctx->d3d11va.decoder : ctx->dxva2.decoder)
> +#define DXVA_CONTEXT_DECODER(avctx, ctx)        (ff_dxva2_is_d3d11(avctx) ? (void *)ctx->d3d11va.decoder : (void *)ctx->dxva2.decoder)
>  #define DXVA_CONTEXT_REPORT_ID(avctx, ctx)      (*(ff_dxva2_is_d3d11(avctx) ? &ctx->d3d11va.report_id : &ctx->dxva2.report_id))
> -#define DXVA_CONTEXT_CFG(avctx, ctx)            (ff_dxva2_is_d3d11(avctx) ? ctx->d3d11va.cfg : ctx->dxva2.cfg)
> +#define DXVA_CONTEXT_CFG(avctx, ctx)            (ff_dxva2_is_d3d11(avctx) ? (void *)ctx->d3d11va.cfg : (void *)ctx->dxva2.cfg)
>  #define DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx)  (ff_dxva2_is_d3d11(avctx) ? ctx->d3d11va.cfg->ConfigBitstreamRaw : ctx->dxva2.cfg->ConfigBitstreamRaw)
>  #define DXVA_CONTEXT_CFG_INTRARESID(avctx, ctx) (ff_dxva2_is_d3d11(avctx) ? ctx->d3d11va.cfg->ConfigIntraResidUnsigned : ctx->dxva2.cfg->ConfigIntraResidUnsigned)
>  #define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) (ff_dxva2_is_d3d11(avctx) ? ctx->d3d11va.cfg->ConfigResidDiffAccelerator : ctx->dxva2.cfg->ConfigResidDiffAccelerator)
> -- 1.7.10.4

Can also confirm it removes the warnings (Which were really annoying for
that matter), so LGTM.

Thanks.


More information about the ffmpeg-devel mailing list