|
|
|
@ -49,7 +49,6 @@ static int d3d12va_mpeg2_start_frame(AVCodecContext *avctx, av_unused const uint |
|
|
|
|
const MpegEncContext *s = avctx->priv_data; |
|
|
|
|
D3D12VADecodeContext *ctx = D3D12VA_DECODE_CONTEXT(avctx); |
|
|
|
|
D3D12DecodePictureContext *ctx_pic = s->current_picture_ptr->hwaccel_picture_private; |
|
|
|
|
DXVA_QmatrixData *qm = &ctx_pic->qm; |
|
|
|
|
|
|
|
|
|
if (!ctx) |
|
|
|
|
return -1; |
|
|
|
@ -76,8 +75,6 @@ static int d3d12va_mpeg2_decode_slice(AVCodecContext *avctx, const uint8_t *buff |
|
|
|
|
const MpegEncContext *s = avctx->priv_data; |
|
|
|
|
D3D12DecodePictureContext *ctx_pic = s->current_picture_ptr->hwaccel_picture_private; |
|
|
|
|
|
|
|
|
|
int is_field = s->picture_structure != PICT_FRAME; |
|
|
|
|
|
|
|
|
|
if (ctx_pic->slice_count >= MAX_SLICES) { |
|
|
|
|
return AVERROR(ERANGE); |
|
|
|
|
} |
|
|
|
@ -94,9 +91,6 @@ static int d3d12va_mpeg2_decode_slice(AVCodecContext *avctx, const uint8_t *buff |
|
|
|
|
|
|
|
|
|
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 MpegEncContext *s = avctx->priv_data; |
|
|
|
|
D3D12DecodePictureContext *ctx_pic = s->current_picture_ptr->hwaccel_picture_private; |
|
|
|
|
|
|
|
|
@ -147,7 +141,6 @@ static int d3d12va_mpeg2_end_frame(AVCodecContext *avctx) |
|
|
|
|
{ |
|
|
|
|
int ret; |
|
|
|
|
MpegEncContext *s = avctx->priv_data; |
|
|
|
|
D3D12VADecodeContext *ctx = D3D12VA_DECODE_CONTEXT(avctx); |
|
|
|
|
D3D12DecodePictureContext *ctx_pic = s->current_picture_ptr->hwaccel_picture_private; |
|
|
|
|
|
|
|
|
|
if (ctx_pic->slice_count <= 0 || ctx_pic->bitstream_size <= 0) |
|
|
|
@ -163,7 +156,6 @@ static int d3d12va_mpeg2_end_frame(AVCodecContext *avctx) |
|
|
|
|
|
|
|
|
|
static int d3d12va_mpeg2_decode_init(AVCodecContext *avctx) |
|
|
|
|
{ |
|
|
|
|
const MpegEncContext *s = avctx->priv_data; |
|
|
|
|
D3D12VADecodeContext *ctx = D3D12VA_DECODE_CONTEXT(avctx); |
|
|
|
|
|
|
|
|
|
ctx->cfg.DecodeProfile = D3D12_VIDEO_DECODE_PROFILE_MPEG2; |
|
|
|
|