FFmpeg
Macros | Functions | Variables
vaapi_decode.c File Reference
#include "config_components.h"
#include "libavutil/avassert.h"
#include "libavutil/common.h"
#include "libavutil/mem.h"
#include "libavutil/pixdesc.h"
#include "avcodec.h"
#include "codec_desc.h"
#include "decode.h"
#include "internal.h"
#include "vaapi_decode.h"
#include "vaapi_hevc.h"

Go to the source code of this file.

Macros

#define MAP(va, av)   { VA_FOURCC_ ## va, AV_PIX_FMT_ ## av }
 
#define MAP(c, p, v, ...)   { AV_CODEC_ID_ ## c, AV_PROFILE_ ## p, VAProfile ## v, __VA_ARGS__ }
 

Functions

int ff_vaapi_decode_make_param_buffer (AVCodecContext *avctx, VAAPIDecodePicture *pic, int type, const void *data, size_t size)
 
int ff_vaapi_decode_make_slice_buffer (AVCodecContext *avctx, VAAPIDecodePicture *pic, const void *params_data, int nb_params, size_t params_size, const void *slice_data, size_t slice_size)
 
static void ff_vaapi_decode_destroy_buffers (AVCodecContext *avctx, VAAPIDecodePicture *pic)
 
int ff_vaapi_decode_issue (AVCodecContext *avctx, VAAPIDecodePicture *pic)
 
int ff_vaapi_decode_cancel (AVCodecContext *avctx, VAAPIDecodePicture *pic)
 
static int vaapi_decode_find_best_format (AVCodecContext *avctx, AVHWDeviceContext *device, VAConfigID config_id, AVHWFramesContext *frames)
 
static int vaapi_decode_make_config (AVCodecContext *avctx, AVBufferRef *device_ref, VAConfigID *va_config, AVBufferRef *frames_ref)
 
int ff_vaapi_common_frame_params (AVCodecContext *avctx, AVBufferRef *hw_frames_ctx)
 
int ff_vaapi_decode_init (AVCodecContext *avctx)
 
int ff_vaapi_decode_uninit (AVCodecContext *avctx)
 

Variables

struct {
   uint32_t   fourcc
 
   enum AVPixelFormat   pix_fmt
 
vaapi_format_map []
 
struct {
   enum AVCodecID   codec_id
 
   int   codec_profile
 
   VAProfile   va_profile
 
   VAProfile(*   profile_parser )(AVCodecContext *avctx)
 
vaapi_profile_map []
 

Macro Definition Documentation

◆ MAP [1/2]

#define MAP (   va,
  av 
)    { VA_FOURCC_ ## va, AV_PIX_FMT_ ## av }

◆ MAP [2/2]

#define MAP (   c,
  p,
  v,
  ... 
)    { AV_CODEC_ID_ ## c, AV_PROFILE_ ## p, VAProfile ## v, __VA_ARGS__ }

Function Documentation

◆ ff_vaapi_decode_make_param_buffer()

int ff_vaapi_decode_make_param_buffer ( AVCodecContext avctx,
VAAPIDecodePicture pic,
int  type,
const void *  data,
size_t  size 
)

◆ ff_vaapi_decode_make_slice_buffer()

int ff_vaapi_decode_make_slice_buffer ( AVCodecContext avctx,
VAAPIDecodePicture pic,
const void *  params_data,
int  nb_params,
size_t  params_size,
const void *  slice_data,
size_t  slice_size 
)

◆ ff_vaapi_decode_destroy_buffers()

static void ff_vaapi_decode_destroy_buffers ( AVCodecContext avctx,
VAAPIDecodePicture pic 
)
static

Definition at line 138 of file vaapi_decode.c.

Referenced by ff_vaapi_decode_cancel(), and ff_vaapi_decode_issue().

◆ ff_vaapi_decode_issue()

int ff_vaapi_decode_issue ( AVCodecContext avctx,
VAAPIDecodePicture pic 
)

◆ ff_vaapi_decode_cancel()

int ff_vaapi_decode_cancel ( AVCodecContext avctx,
VAAPIDecodePicture pic 
)

◆ vaapi_decode_find_best_format()

static int vaapi_decode_find_best_format ( AVCodecContext avctx,
AVHWDeviceContext device,
VAConfigID  config_id,
AVHWFramesContext frames 
)
static

Definition at line 317 of file vaapi_decode.c.

Referenced by vaapi_decode_make_config().

◆ vaapi_decode_make_config()

static int vaapi_decode_make_config ( AVCodecContext avctx,
AVBufferRef device_ref,
VAConfigID *  va_config,
AVBufferRef frames_ref 
)
static

Definition at line 478 of file vaapi_decode.c.

Referenced by ff_vaapi_common_frame_params(), and ff_vaapi_decode_init().

◆ ff_vaapi_common_frame_params()

int ff_vaapi_common_frame_params ( AVCodecContext avctx,
AVBufferRef hw_frames_ctx 
)

Definition at line 668 of file vaapi_decode.c.

◆ ff_vaapi_decode_init()

int ff_vaapi_decode_init ( AVCodecContext avctx)

Definition at line 692 of file vaapi_decode.c.

Referenced by vaapi_av1_decode_init().

◆ ff_vaapi_decode_uninit()

int ff_vaapi_decode_uninit ( AVCodecContext avctx)

Definition at line 738 of file vaapi_decode.c.

Referenced by ff_vaapi_decode_init(), and vaapi_av1_decode_uninit().

Variable Documentation

◆ fourcc

uint32_t fourcc

◆ pix_fmt

enum AVPixelFormat pix_fmt

Definition at line 264 of file vaapi_decode.c.

◆ vaapi_format_map

const { ... } vaapi_format_map[]

◆ codec_id

enum AVCodecID codec_id
Examples
mux.c.

Definition at line 410 of file vaapi_decode.c.

Referenced by aac_decoder_config(), ac3_eac3_probe(), add_stream(), amf_init_encoder(), audio_read_header(), audio_write_header(), av_bsf_init(), av_get_bits_per_sample(), av_get_exact_bits_per_sample(), av_guess_codec(), av_parser_init(), avcodec_get_type(), avcodec_profile_name(), AVCodecInitialize(), avformat_query_codec(), cbs_h2645_fragment_add_nals(), cbs_h2645_split_fragment(), cbs_h2645_unit_requires_zero_byte(), checkasm_check_h264pred(), codec_config_obu(), codec_flags(), codec_id_to_pcm_format(), decode_film_grain_characteristics(), decode_frame_packing_arrangement(), decode_registered_user_data(), decode_unregistered_user_data(), decrypt_audio_frame(), device_try_init(), dvdvideo_audio_stream_analyze(), ff_alsa_open(), ff_cbs_init(), ff_codec_id_to_pulse_format(), ff_find_decoder(), ff_fmt_ff2v4l(), ff_fmt_v4l2ff(), ff_get_qtpalette(), ff_h2645_packet_split(), ff_h2645_sei_message_decode(), ff_h2645_sei_to_frame(), ff_h264_pred_init(), ff_h264_pred_init_aarch64(), ff_h264_pred_init_arm(), ff_h264_pred_init_loongarch(), ff_h264_pred_init_mips(), ff_hls_senc_decrypt_frame(), ff_mp4_read_dec_config_descr(), ff_mpa_decode_header(), ff_qsv_codec_id_to_mfx(), ff_spdif_read_packet(), ff_vbv_update(), ffat_create_decoder(), film_write_packet(), find_probe_decoder(), flv_same_audio_codec(), get_audio_codec_id(), get_codec_name(), get_codecdesc(), get_next_sync_frame(), get_video_profile(), h264_pred_init_neon(), hls_read_packet(), is_frame_packing_type_valid(), is_pcm(), laf_read_header(), list_formats(), map_auto_data(), mkv_write_track(), moflex_read_sync(), mov_get_lpcm_flags(), mov_pcm_be_gt16(), mov_pcm_le_gt16(), mov_read_extradata(), mpegaudio_parse(), mpegps_read_packet(), mpegts_write_pmt(), PRED4x4(), print_profile(), pulse_read_header(), put_eos_tag(), samples_per_packet(), select_segment_type(), unsupported_codec(), v4l2_read_header(), validate_codec_tag(), vpx_ts_param_parse(), and webm_dash_manifest_write_header().

◆ codec_profile

int codec_profile

Definition at line 411 of file vaapi_decode.c.

Referenced by vaapi_decode_make_config().

◆ va_profile

VAProfile va_profile

Definition at line 412 of file vaapi_decode.c.

Referenced by vaapi_decode_make_config().

◆ profile_parser

VAProfile(* profile_parser) (AVCodecContext *avctx)

Definition at line 413 of file vaapi_decode.c.

◆ vaapi_profile_map

const { ... } vaapi_profile_map[]