FFmpeg
Loading...
Searching...
No Matches
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)
 
#define MAP(c, p, v, ...)
 

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 )
Value:
{ VA_FOURCC_ ## va, AV_PIX_FMT_ ## av }

◆ MAP [2/2]

#define MAP ( c,
p,
v,
... )
Value:
{ AV_CODEC_ID_ ## c, AV_PROFILE_ ## p, VAProfile ## v, __VA_ARGS__ }
static double c[64]

Function Documentation

◆ ff_vaapi_decode_make_param_buffer()

◆ 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()

◆ ff_vaapi_decode_cancel()

◆ 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

◆ pix_fmt

enum AVPixelFormat pix_fmt

Definition at line 264 of file vaapi_decode.c.

◆ [struct]

const struct { ... } vaapi_format_map[]

◆ codec_id

enum AVCodecID codec_id

Definition at line 410 of file vaapi_decode.c.

Referenced by aac_decoder_config(), ac3_eac3_probe(), add_stream(), amf_init_decoder(), amf_init_encoder(), audio_read_header(), audio_write_header(), av_bsf_init(), av_bsf_link(), 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_h264_split_fragment(), cbs_h265_split_fragment(), cbs_h266_split_fragment(), cbs_lcevc_split_fragment(), checkasm_check_h264pred(), codec_config_obu(), codec_flags(), codec_id_to_pcm_format(), decklink_frame::decklink_frame(), decklink_frame::decklink_frame(), decode_film_grain_characteristics(), decode_frame_packing_arrangement(), decode_registered_user_data(), decode_unregistered_user_data(), decrypt_audio_frame(), decrypt_sync_frame(), device_try_init(), dovi_configure_ext(), dvdvideo_audio_stream_analyze(), ff_alsa_open(), ff_bsf_config_links(), ff_cbs_h2645_fragment_add_nals(), 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_h2645_unit_requires_zero_byte(), 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_h264_pred_init_riscv(), ff_h264_pred_init_x86(), ff_hls_senc_decrypt_frame(), ff_mov_cenc_init(), ff_mov_get_channel_layout_tag(), ff_mp4_read_dec_config_descr(), ff_mpa_decode_header(), ff_oh_mime(), ff_qsv_codec_id_to_mfx(), ff_rtp_get_codec_info(), ff_rtp_get_payload_type(), ff_spdif_read_packet(), ffat_create_decoder(), film_write_packet(), filter_codec_opts(), find_probe_decoder(), find_reorder_func(), flv_read_packet(), flv_same_audio_codec(), get_audio_codec_id(), get_codec_name(), get_codecdesc(), get_next_sync_frame(), get_video_profile(), h264_pred_init_neon(), h264_pred_init_neon(), hls_read_packet(), hxvs_create_video_stream(), hxvs_read_header(), init(), is_frame_packing_type_valid(), is_pcm(), laf_read_header(), list_formats(), main(), map_auto_data(), matroska_aac_sri(), mcc_query_codec(), 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(), parse_once(), parse_stream(), pcm_decode_init(), PRED4x4(), PRED8x8(), 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(), webm_dash_manifest_write_header(), and write_codec_fourcc().

◆ 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) ( AVCodecContext * avctx)

Definition at line 413 of file vaapi_decode.c.

◆ [struct]

const struct { ... } vaapi_profile_map[]