|
|
@ -151,7 +151,7 @@ static int commit_bitstream_and_slice_buffer(AVCodecContext *avctx, |
|
|
|
const struct MpegEncContext *s = avctx->priv_data; |
|
|
|
const struct MpegEncContext *s = avctx->priv_data; |
|
|
|
struct dxva_context *ctx = avctx->hwaccel_context; |
|
|
|
struct dxva_context *ctx = avctx->hwaccel_context; |
|
|
|
struct dxva2_picture_context *ctx_pic = |
|
|
|
struct dxva2_picture_context *ctx_pic = |
|
|
|
s->current_picture_ptr->f.hwaccel_picture_private; |
|
|
|
s->current_picture_ptr->hwaccel_picture_private; |
|
|
|
const int is_field = s->picture_structure != PICT_FRAME; |
|
|
|
const int is_field = s->picture_structure != PICT_FRAME; |
|
|
|
const unsigned mb_count = s->mb_width * (s->mb_height >> is_field); |
|
|
|
const unsigned mb_count = s->mb_width * (s->mb_height >> is_field); |
|
|
|
uint8_t *dxva_data, *current, *end; |
|
|
|
uint8_t *dxva_data, *current, *end; |
|
|
@ -210,7 +210,7 @@ static int dxva2_mpeg2_start_frame(AVCodecContext *avctx, |
|
|
|
const struct MpegEncContext *s = avctx->priv_data; |
|
|
|
const struct MpegEncContext *s = avctx->priv_data; |
|
|
|
struct dxva_context *ctx = avctx->hwaccel_context; |
|
|
|
struct dxva_context *ctx = avctx->hwaccel_context; |
|
|
|
struct dxva2_picture_context *ctx_pic = |
|
|
|
struct dxva2_picture_context *ctx_pic = |
|
|
|
s->current_picture_ptr->f.hwaccel_picture_private; |
|
|
|
s->current_picture_ptr->hwaccel_picture_private; |
|
|
|
|
|
|
|
|
|
|
|
if (!ctx->decoder || !ctx->cfg || ctx->surface_count <= 0) |
|
|
|
if (!ctx->decoder || !ctx->cfg || ctx->surface_count <= 0) |
|
|
|
return -1; |
|
|
|
return -1; |
|
|
@ -230,7 +230,7 @@ static int dxva2_mpeg2_decode_slice(AVCodecContext *avctx, |
|
|
|
{ |
|
|
|
{ |
|
|
|
const struct MpegEncContext *s = avctx->priv_data; |
|
|
|
const struct MpegEncContext *s = avctx->priv_data; |
|
|
|
struct dxva2_picture_context *ctx_pic = |
|
|
|
struct dxva2_picture_context *ctx_pic = |
|
|
|
s->current_picture_ptr->f.hwaccel_picture_private; |
|
|
|
s->current_picture_ptr->hwaccel_picture_private; |
|
|
|
unsigned position; |
|
|
|
unsigned position; |
|
|
|
|
|
|
|
|
|
|
|
if (ctx_pic->slice_count >= MAX_SLICES) |
|
|
|
if (ctx_pic->slice_count >= MAX_SLICES) |
|
|
@ -250,7 +250,7 @@ static int dxva2_mpeg2_end_frame(AVCodecContext *avctx) |
|
|
|
{ |
|
|
|
{ |
|
|
|
struct MpegEncContext *s = avctx->priv_data; |
|
|
|
struct MpegEncContext *s = avctx->priv_data; |
|
|
|
struct dxva2_picture_context *ctx_pic = |
|
|
|
struct dxva2_picture_context *ctx_pic = |
|
|
|
s->current_picture_ptr->f.hwaccel_picture_private; |
|
|
|
s->current_picture_ptr->hwaccel_picture_private; |
|
|
|
int ret; |
|
|
|
int ret; |
|
|
|
|
|
|
|
|
|
|
|
if (ctx_pic->slice_count <= 0 || ctx_pic->bitstream_size <= 0) |
|
|
|
if (ctx_pic->slice_count <= 0 || ctx_pic->bitstream_size <= 0) |
|
|
|