diff --git a/libavcodec/d3d12va_av1.c b/libavcodec/d3d12va_av1.c
index 6a3543353f..5f96f7da04 100644
--- a/libavcodec/d3d12va_av1.c
+++ b/libavcodec/d3d12va_av1.c
@@ -108,11 +108,8 @@ static int d3d12va_av1_decode_slice(AVCodecContext *avctx,
 
 static int update_input_arguments(AVCodecContext *avctx, D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *input_args, ID3D12Resource *buffer)
 {
-    D3D12VADecodeContext    *ctx          = D3D12VA_DECODE_CONTEXT(avctx);
-    AVHWFramesContext       *frames_ctx   = D3D12VA_FRAMES_CONTEXT(avctx);
-    AVD3D12VAFramesContext  *frames_hwctx = frames_ctx->hwctx;
-    const AV1DecContext     *h            = avctx->priv_data;
-    AV1DecodePictureContext *ctx_pic      = h->cur_frame.hwaccel_picture_private;
+    const AV1DecContext     *h       = avctx->priv_data;
+    AV1DecodePictureContext *ctx_pic = h->cur_frame.hwaccel_picture_private;
     uint8_t *mapped_data;
 
     D3D12_VIDEO_DECODE_FRAME_ARGUMENT *args = &input_args->FrameArguments[input_args->NumFrameArguments++];
@@ -142,7 +139,6 @@ static int d3d12va_av1_end_frame(AVCodecContext *avctx)
 {
     int ret;
     const AV1DecContext     *h       = avctx->priv_data;
-    D3D12VADecodeContext    *ctx     = D3D12VA_DECODE_CONTEXT(avctx);
     AV1DecodePictureContext *ctx_pic = h->cur_frame.hwaccel_picture_private;
 
     if (ctx_pic->tiles <= 0 || ctx_pic->bitstream_size <= 0)
@@ -156,10 +152,8 @@ static int d3d12va_av1_end_frame(AVCodecContext *avctx)
 
 static int d3d12va_av1_decode_init(AVCodecContext *avctx)
 {
-    const AV1DecContext     *h       = avctx->priv_data;
-    D3D12VADecodeContext    *ctx     = D3D12VA_DECODE_CONTEXT(avctx);
-    D3D12AV1DecodeContext   *av1_ctx = D3D12_AV1_DECODE_CONTEXT(avctx);
-    AV1DecodePictureContext *ctx_pic = h->cur_frame.hwaccel_picture_private;
+    D3D12VADecodeContext  *ctx     = D3D12VA_DECODE_CONTEXT(avctx);
+    D3D12AV1DecodeContext *av1_ctx = D3D12_AV1_DECODE_CONTEXT(avctx);
     DXVA_PicParams_AV1 pp;
 
     int ret;
@@ -186,9 +180,7 @@ static int d3d12va_av1_decode_init(AVCodecContext *avctx)
 
 static int d3d12va_av1_decode_uninit(AVCodecContext *avctx)
 {
-    const AV1DecContext     *h       = avctx->priv_data;
-    D3D12AV1DecodeContext   *ctx     = D3D12_AV1_DECODE_CONTEXT(avctx);
-    AV1DecodePictureContext *ctx_pic = h->cur_frame.hwaccel_picture_private;
+    D3D12AV1DecodeContext *ctx = D3D12_AV1_DECODE_CONTEXT(avctx);
 
     if (ctx->bitstream_buffer)
         av_freep(&ctx->bitstream_buffer);
diff --git a/libavcodec/d3d12va_decode.c b/libavcodec/d3d12va_decode.c
index c5c599675e..ae2f577e25 100644
--- a/libavcodec/d3d12va_decode.c
+++ b/libavcodec/d3d12va_decode.c
@@ -265,8 +265,7 @@ fail:
 
 int ff_d3d12va_common_frame_params(AVCodecContext *avctx, AVBufferRef *hw_frames_ctx)
 {
-    AVHWFramesContext      *frames_ctx   = (AVHWFramesContext *)hw_frames_ctx->data;
-    AVHWDeviceContext      *device_ctx   = frames_ctx->device_ctx;
+    AVHWFramesContext *frames_ctx = (AVHWFramesContext *)hw_frames_ctx->data;
 
     frames_ctx->format    = AV_PIX_FMT_D3D12;
     frames_ctx->sw_format = avctx->sw_pix_fmt == AV_PIX_FMT_YUV420P10 ? AV_PIX_FMT_P010 : AV_PIX_FMT_NV12;
@@ -407,9 +406,7 @@ int ff_d3d12va_decode_uninit(AVCodecContext *avctx)
 static inline int d3d12va_update_reference_frames_state(AVCodecContext *avctx, D3D12_RESOURCE_BARRIER *barriers,
                                                         ID3D12Resource *current_resource, int state_before, int state_end)
 {
-    D3D12VADecodeContext   *ctx          = D3D12VA_DECODE_CONTEXT(avctx);
-    AVHWFramesContext      *frames_ctx   = D3D12VA_FRAMES_CONTEXT(avctx);
-    AVD3D12VAFramesContext *frames_hwctx = frames_ctx->hwctx;
+    D3D12VADecodeContext *ctx = D3D12VA_DECODE_CONTEXT(avctx);
 
     int num_barrier = 0;
     for (int i = 0; i < ctx->max_num_ref; i++) {
@@ -436,8 +433,6 @@ int ff_d3d12va_common_end_frame(AVCodecContext *avctx, AVFrame *frame,
 {
     int ret;
     D3D12VADecodeContext   *ctx               = D3D12VA_DECODE_CONTEXT(avctx);
-    AVHWFramesContext      *frames_ctx        = D3D12VA_FRAMES_CONTEXT(avctx);
-    AVD3D12VAFramesContext *frames_hwctx      = frames_ctx->hwctx;
     ID3D12Resource         *buffer            = NULL;
     ID3D12CommandAllocator *command_allocator = NULL;
     AVD3D12VAFrame         *f                 = (AVD3D12VAFrame *)frame->data[0];
diff --git a/libavcodec/d3d12va_h264.c b/libavcodec/d3d12va_h264.c
index 24e1c523fa..e89c90995c 100644
--- a/libavcodec/d3d12va_h264.c
+++ b/libavcodec/d3d12va_h264.c
@@ -104,10 +104,6 @@ static int d3d12va_h264_decode_slice(AVCodecContext *avctx, const uint8_t *buffe
 #define START_CODE_SIZE 3
 static int update_input_arguments(AVCodecContext *avctx, D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *input_args, ID3D12Resource *buffer)
 {
-    D3D12VADecodeContext     *ctx          = D3D12VA_DECODE_CONTEXT(avctx);
-    AVHWFramesContext        *frames_ctx   = D3D12VA_FRAMES_CONTEXT(avctx);
-    AVD3D12VAFramesContext   *frames_hwctx = frames_ctx->hwctx;
-
     const H264Context        *h               = avctx->priv_data;
     const H264Picture        *current_picture = h->cur_pic_ptr;
     H264DecodePictureContext *ctx_pic         = current_picture->hwaccel_picture_private;
diff --git a/libavcodec/d3d12va_hevc.c b/libavcodec/d3d12va_hevc.c
index 7e0c295a2d..a6a3b802f9 100644
--- a/libavcodec/d3d12va_hevc.c
+++ b/libavcodec/d3d12va_hevc.c
@@ -98,10 +98,6 @@ static int d3d12va_hevc_decode_slice(AVCodecContext *avctx, const uint8_t *buffe
 #define START_CODE_SIZE 3
 static int update_input_arguments(AVCodecContext *avctx, D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *input_args, ID3D12Resource *buffer)
 {
-    D3D12VADecodeContext   *ctx          = D3D12VA_DECODE_CONTEXT(avctx);
-    AVHWFramesContext      *frames_ctx   = D3D12VA_FRAMES_CONTEXT(avctx);
-    AVD3D12VAFramesContext *frames_hwctx = frames_ctx->hwctx;
-
     const HEVCContext        *h               = avctx->priv_data;
     const HEVCFrame          *current_picture = h->ref;
     HEVCDecodePictureContext *ctx_pic         = current_picture->hwaccel_picture_private;
@@ -166,7 +162,6 @@ static int d3d12va_hevc_end_frame(AVCodecContext *avctx)
 
 static int d3d12va_hevc_decode_init(AVCodecContext *avctx)
 {
-    HEVCContext          *h   = avctx->priv_data;
     D3D12VADecodeContext *ctx = D3D12VA_DECODE_CONTEXT(avctx);
     DXVA_PicParams_HEVC pp;
 
diff --git a/libavcodec/d3d12va_vc1.c b/libavcodec/d3d12va_vc1.c
index 3d15abd1f1..b39b03ab45 100644
--- a/libavcodec/d3d12va_vc1.c
+++ b/libavcodec/d3d12va_vc1.c
@@ -95,9 +95,6 @@ static int d3d12va_vc1_decode_slice(AVCodecContext *avctx, const uint8_t *buffer
 
 static int update_input_arguments(AVCodecContext *avctx, D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *input_args, ID3D12Resource *buffer)
 {
-    D3D12VADecodeContext      *ctx          = D3D12VA_DECODE_CONTEXT(avctx);
-    AVHWFramesContext         *frames_ctx   = D3D12VA_FRAMES_CONTEXT(avctx);
-    AVD3D12VAFramesContext    *frames_hwctx = frames_ctx->hwctx;
     const VC1Context *v                     = avctx->priv_data;
     const MpegEncContext      *s            = &v->s;
     D3D12DecodePictureContext *ctx_pic      = s->current_picture_ptr->hwaccel_picture_private;
diff --git a/libavcodec/d3d12va_vp9.c b/libavcodec/d3d12va_vp9.c
index d6dfc905d9..5a1cb0187d 100644
--- a/libavcodec/d3d12va_vp9.c
+++ b/libavcodec/d3d12va_vp9.c
@@ -85,10 +85,6 @@ static int d3d12va_vp9_decode_slice(AVCodecContext *avctx, const uint8_t *buffer
 
 static int update_input_arguments(AVCodecContext *avctx, D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *input_args, ID3D12Resource *buffer)
 {
-    D3D12VADecodeContext   *ctx          = D3D12VA_DECODE_CONTEXT(avctx);
-    AVHWFramesContext      *frames_ctx   = D3D12VA_FRAMES_CONTEXT(avctx);
-    AVD3D12VAFramesContext *frames_hwctx = frames_ctx->hwctx;
-
     const VP9SharedContext  *h       = avctx->priv_data;
     VP9DecodePictureContext *ctx_pic = h->frames[CUR_FRAME].hwaccel_picture_private;
 
