FFmpeg
Loading...
Searching...
No Matches
dxva2_h264.c File Reference
#include "config_components.h"
#include "libavutil/avassert.h"
#include "dxva2_internal.h"
#include "h264dec.h"
#include "h264data.h"
#include "h264_ps.h"
#include "hwaccel_internal.h"
#include "mpegutils.h"

Go to the source code of this file.

Data Structures

struct  dxva2_picture_context
 

Functions

static void fill_picture_entry (DXVA_PicEntry_H264 *pic, unsigned index, unsigned flag)
 
void ff_dxva2_h264_fill_picture_parameters (const AVCodecContext *avctx, AVDXVAContext *ctx, DXVA_PicParams_H264 *pp)
 
void ff_dxva2_h264_fill_scaling_lists (const AVCodecContext *avctx, AVDXVAContext *ctx, DXVA_Qmatrix_H264 *qm)
 
static int is_slice_short (const AVCodecContext *avctx, AVDXVAContext *ctx)
 
static void fill_slice_short (DXVA_Slice_H264_Short *slice, unsigned position, unsigned size)
 
static int get_refpic_index (const DXVA_PicParams_H264 *pp, int surface_index)
 
static void fill_slice_long (AVCodecContext *avctx, DXVA_Slice_H264_Long *slice, const DXVA_PicParams_H264 *pp, unsigned position, unsigned size)
 
static int commit_bitstream_and_slice_buffer (AVCodecContext *avctx, DECODER_BUFFER_DESC *bs, DECODER_BUFFER_DESC *sc)
 
static int dxva2_h264_start_frame (AVCodecContext *avctx, av_unused const AVBufferRef *buffer_ref, av_unused const uint8_t *buffer, av_unused uint32_t size)
 
static int dxva2_h264_decode_slice (AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
 
static int dxva2_h264_end_frame (AVCodecContext *avctx)
 

Function Documentation

◆ fill_picture_entry()

static void fill_picture_entry ( DXVA_PicEntry_H264 * pic,
unsigned index,
unsigned flag )
static

Definition at line 44 of file dxva2_h264.c.

Referenced by ff_dxva2_h264_fill_picture_parameters(), and fill_slice_long().

◆ ff_dxva2_h264_fill_picture_parameters()

void ff_dxva2_h264_fill_picture_parameters ( const AVCodecContext * avctx,
AVDXVAContext * ctx,
DXVA_PicParams_H264 * pp )

Definition at line 51 of file dxva2_h264.c.

Referenced by d3d12va_h264_start_frame(), and dxva2_h264_start_frame().

◆ ff_dxva2_h264_fill_scaling_lists()

void ff_dxva2_h264_fill_scaling_lists ( const AVCodecContext * avctx,
AVDXVAContext * ctx,
DXVA_Qmatrix_H264 * qm )

Definition at line 168 of file dxva2_h264.c.

Referenced by d3d12va_h264_start_frame(), and dxva2_h264_start_frame().

◆ is_slice_short()

static int is_slice_short ( const AVCodecContext * avctx,
AVDXVAContext * ctx )
static

Definition at line 195 of file dxva2_h264.c.

Referenced by commit_bitstream_and_slice_buffer(), and dxva2_h264_decode_slice().

◆ fill_slice_short()

static void fill_slice_short ( DXVA_Slice_H264_Short * slice,
unsigned position,
unsigned size )
static

Definition at line 202 of file dxva2_h264.c.

Referenced by dxva2_h264_decode_slice().

◆ get_refpic_index()

static int get_refpic_index ( const DXVA_PicParams_H264 * pp,
int surface_index )
static

Definition at line 211 of file dxva2_h264.c.

Referenced by fill_slice_long().

◆ fill_slice_long()

static void fill_slice_long ( AVCodecContext * avctx,
DXVA_Slice_H264_Long * slice,
const DXVA_PicParams_H264 * pp,
unsigned position,
unsigned size )
static

Definition at line 221 of file dxva2_h264.c.

Referenced by dxva2_h264_decode_slice().

◆ commit_bitstream_and_slice_buffer()

static int commit_bitstream_and_slice_buffer ( AVCodecContext * avctx,
DECODER_BUFFER_DESC * bs,
DECODER_BUFFER_DESC * sc )
static

Definition at line 302 of file dxva2_h264.c.

◆ dxva2_h264_start_frame()

static int dxva2_h264_start_frame ( AVCodecContext * avctx,
av_unused const AVBufferRef * buffer_ref,
av_unused const uint8_t * buffer,
av_unused uint32_t size )
static

Definition at line 446 of file dxva2_h264.c.

◆ dxva2_h264_decode_slice()

static int dxva2_h264_decode_slice ( AVCodecContext * avctx,
const uint8_t * buffer,
uint32_t size )
static

Definition at line 471 of file dxva2_h264.c.

◆ dxva2_h264_end_frame()

static int dxva2_h264_end_frame ( AVCodecContext * avctx)
static

Definition at line 503 of file dxva2_h264.c.