Lines Matching defs:avctx
50 static void fill_picture_parameters(const AVCodecContext *avctx, AVDXVAContext *ctx, const H264Context *h,
61 ff_dxva2_get_surface_index(avctx, ctx, current_picture->f),
77 ff_dxva2_get_surface_index(avctx, ctx, r->f),
124 if (DXVA_CONTEXT_WORKAROUND(avctx, ctx) & FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG)
126 else if (DXVA_CONTEXT_WORKAROUND(avctx, ctx) & FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO)
130 pp->StatusReportFeedbackNumber = 1 + DXVA_CONTEXT_REPORT_ID(avctx, ctx)++;
166 static void fill_scaling_lists(const AVCodecContext *avctx, AVDXVAContext *ctx, const H264Context *h, DXVA_Qmatrix_H264 *qm)
171 if (DXVA_CONTEXT_WORKAROUND(avctx, ctx) & FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG) {
192 static int is_slice_short(const AVCodecContext *avctx, AVDXVAContext *ctx)
194 assert(DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx) == 1 ||
195 DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx) == 2);
196 return DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx) == 2;
218 static void fill_slice_long(AVCodecContext *avctx, DXVA_Slice_H264_Long *slice,
221 const H264Context *h = avctx->priv_data;
223 AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
254 if (DXVA_CONTEXT_WORKAROUND(avctx, ctx) & FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO)
255 index = ff_dxva2_get_surface_index(avctx, ctx, r->f);
257 index = get_refpic_index(pp, ff_dxva2_get_surface_index(avctx, ctx, r->f));
299 static int commit_bitstream_and_slice_buffer(AVCodecContext *avctx,
303 const H264Context *h = avctx->priv_data;
305 AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
320 if (ff_dxva2_is_d3d11(avctx)) {
330 if (avctx->pix_fmt == AV_PIX_FMT_DXVA2_VLD) {
353 if (is_slice_short(avctx, ctx))
361 av_log(avctx, AV_LOG_ERROR, "Failed to build bitstream");
368 if (!is_slice_short(avctx, ctx)) {
391 if (ff_dxva2_is_d3d11(avctx))
396 if (avctx->pix_fmt == AV_PIX_FMT_DXVA2_VLD)
404 if (ff_dxva2_is_d3d11(avctx)) {
417 if (avctx->pix_fmt == AV_PIX_FMT_DXVA2_VLD) {
430 if (is_slice_short(avctx, ctx)) {
437 return ff_dxva2_commit_buffer(avctx, ctx, sc,
443 static int dxva2_h264_start_frame(AVCodecContext *avctx,
447 const H264Context *h = avctx->priv_data;
448 AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
451 if (!DXVA_CONTEXT_VALID(avctx, ctx))
456 fill_picture_parameters(avctx, ctx, h, &ctx_pic->pp);
459 fill_scaling_lists(avctx, ctx, h, &ctx_pic->qm);
467 static int dxva2_h264_decode_slice(AVCodecContext *avctx,
471 const H264Context *h = avctx->priv_data;
473 AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
486 if (is_slice_short(avctx, ctx))
490 fill_slice_long(avctx, &ctx_pic->slice_long[ctx_pic->slice_count],
499 static int dxva2_h264_end_frame(AVCodecContext *avctx)
501 H264Context *h = avctx->priv_data;
509 ret = ff_dxva2_common_end_frame(avctx, h->cur_pic_ptr->f,
514 ff_h264_draw_horiz_band(h, sl, 0, h->avctx->height);