FFmpeg
Data Fields
AVCodec Struct Reference
libavcodec » Core functions/structures.

AVCodec. More...

#include <codec.h>

Data Fields

const char *  name
  Name of the codec implementation. More...
 
const char *  long_name
  Descriptive name for the codec, meant to be more human readable than name. More...
 
enum AVMediaType  type
 
enum AVCodecID  id
 
  Codec capabilities. More...
 
uint8_t  max_lowres
  maximum value for lowres supported by the decoder More...
 
  array of supported framerates, or NULL if any, array is terminated by {0,0} More...
 
  array of supported pixel formats, or NULL if unknown, array is terminated by -1 More...
 
  array of supported audio samplerates, or NULL if unknown, array is terminated by 0 More...
 
  array of supported sample formats, or NULL if unknown, array is terminated by -1 More...
 
const uint64_t *  channel_layouts
  array of support channel layouts, or NULL if unknown. array is terminated by 0 More...
 
const AVClasspriv_class
  AVClass for the private context. More...
 
const AVProfileprofiles
  array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN} More...
 
const char *  wrapper_name
  Group name of the codec implementation. More...
 
  Internal codec capabilities. More...
 
 
  Private codec-specific defaults. More...
 
void(*  init_static_data )(struct AVCodec *codec)
  Initialize codec static data, called from av_codec_iterate(). More...
 
int(*  init )(struct AVCodecContext *)
 
int(*  encode_sub )(struct AVCodecContext *, uint8_t *buf, int buf_size, const struct AVSubtitle *sub)
 
int(*  encode2 )(struct AVCodecContext *avctx, struct AVPacket *avpkt, const struct AVFrame *frame, int *got_packet_ptr)
  Encode data to an AVPacket. More...
 
int(*  decode )(struct AVCodecContext *avctx, void *outdata, int *got_frame_ptr, struct AVPacket *avpkt)
  Decode picture or subtitle data. More...
 
int(*  close )(struct AVCodecContext *)
 
int(*  receive_packet )(struct AVCodecContext *avctx, struct AVPacket *avpkt)
  Encode API with decoupled frame/packet dataflow. More...
 
int(*  receive_frame )(struct AVCodecContext *avctx, struct AVFrame *frame)
  Decode API with decoupled packet/frame dataflow. More...
 
void(*  flush )(struct AVCodecContext *)
  Flush buffers. More...
 
const char *  bsfs
  Decoding only, a comma-separated list of bitstream filters to apply to packets before decoding. More...
 
const struct AVCodecHWConfigInternal *const *  hw_configs
  Array of pointers to hardware configurations supported by the codec, or NULL if no hardware supported. More...
 
const uint32_t *  codec_tags
  List of supported codec_tags, terminated by FF_CODEC_TAGS_END. More...
 
Frame-level threading support functions
int(*  update_thread_context )(struct AVCodecContext *dst, const struct AVCodecContext *src)
  Copy necessary context variables from a previous thread context to the current one. More...
 
  Copy variables back to the user-facing context. More...
 

Detailed Description

AVCodec.

Examples
decode_audio.c, decode_video.c, demuxing_decoding.c, encode_audio.c, encode_video.c, filtering_audio.c, filtering_video.c, hw_decode.c, muxing.c, qsvdec.c, transcode_aac.c, transcoding.c, vaapi_encode.c, and vaapi_transcode.c.

Definition at line 202 of file codec.h.

Field Documentation

name

const char* AVCodec::name

Name of the codec implementation.

The name is globally unique among encoders and among decoders (but an encoder and a decoder can share the same name). This is the primary way to find a codec from the user perspective.

Definition at line 209 of file codec.h.

Referenced by convert_from_tensorflow.Operand::__str__(), avcodec_get_name(), avcodec_open2(), avcodec_string(), choose_pixel_fmt(), context_to_name(), cuvid_test_capabilities(), dshow_cycle_formats(), find_codec_by_name(), find_codec_or_die(), get_compliance_normal_pix_fmts(), init(), main(), print_codecs(), print_codecs_for_id(), show_codecs(), transcode_init(), and video_decode().

long_name

const char* AVCodec::long_name

Descriptive name for the codec, meant to be more human readable than name.

You should use the NULL_IF_CONFIG_SMALL() macro to define it.

Definition at line 214 of file codec.h.

Referenced by print_codecs().

type

enum AVMediaType AVCodec::type
Examples
demuxing_decoding.c.

Definition at line 215 of file codec.h.

Referenced by avcodec_decode_subtitle2(), avcodec_open2(), choose_decoder(), decode_packet(), decode_simple_internal(), encode_receive_packet_internal(), encode_send_frame_internal(), encode_simple_internal(), ff_cbs_sei_find_type(), ff_decode_frame_props(), ff_frame_thread_init(), find_codec_or_die(), init_context_defaults(), LLVMFuzzerTestOneInput(), main(), and mf_create().

id

enum AVCodecID AVCodec::id
Examples
decode_audio.c, decode_video.c, and encode_video.c.

Definition at line 216 of file codec.h.

Referenced by a64multi_encode_init(), adpcm_compress_trellis(), adpcm_decode_frame(), adpcm_decode_init(), adpcm_encode_init(), amf_copy_buffer(), amf_init_encoder(), avcodec_open2(), binkaudio_receive_frame(), choose_decoder(), cuvid_decode_init(), decode_end(), decode_init(), dpcm_decode_frame(), dpcm_decode_init(), eightsvx_decode_init(), encode_init(), ff_amf_receive_packet(), ff_aptx_init(), ff_h263_decode_init(), ff_mjpeg_decode_init(), ff_mjpeg_init_hvsample(), ff_mpv_decode_init(), ff_mpv_encode_init(), ff_print_debug_info2(), ff_wma_init(), find_codec(), find_probe_decoder(), get_nb_samples(), h263_get_format(), init(), init_context_defaults(), init_output_stream_encode(), LLVMFuzzerTestOneInput(), main(), mf_create(), nvdec_mpeg4_start_frame(), nvenc_check_capabilities(), nvenc_codec_specific_pic_params(), nvenc_setup_codec_config(), nvenc_setup_device(), nvenc_setup_encoder(), omx_component_init(), omx_encode_init(), open_input_file(), open_output_file(), pcm_decode_frame(), pcm_encode_frame(), pcm_encode_init(), process_output_surface(), siren_init(), stream_component_open(), transcode_init(), vaapi_mpeg4_start_frame(), vdpau_mpeg4_start_frame(), vp6_decode_init(), vp78_decode_init(), and wma_decode_init().

capabilities

int AVCodec::capabilities

Codec capabilities.

see AV_CODEC_CAP_*

Examples
transcoding.c.

Definition at line 221 of file codec.h.

Referenced by apply_param_change(), av1_init_static(), avcodec_decode_subtitle2(), avcodec_flush_buffers(), avcodec_open2(), decode_receive_frame_internal(), decode_simple_internal(), do_video_out(), encode_send_frame_internal(), encode_simple_internal(), ff_decode_preinit(), ff_frame_thread_encoder_init(), find_codec(), find_probe_decoder(), main(), print_codecs(), reap_filters(), submit_packet(), try_decode_frame(), and validate_thread_parameters().

max_lowres

uint8_t AVCodec::max_lowres

maximum value for lowres supported by the decoder

Definition at line 222 of file codec.h.

Referenced by ff_decode_preinit(), and stream_component_open().

supported_framerates

const AVRational* AVCodec::supported_framerates

array of supported framerates, or NULL if any, array is terminated by {0,0}

Definition at line 223 of file codec.h.

Referenced by main().

pix_fmts

enum AVPixelFormat* AVCodec::pix_fmts

array of supported pixel formats, or NULL if unknown, array is terminated by -1

Examples
transcoding.c.

Definition at line 224 of file codec.h.

Referenced by av1_init_static(), choose_pixel_fmt(), ff_encode_preinit(), ff_vp9_init_static(), ffmmal_init_decoder(), h263_get_format(), libx265_encode_init_csp(), main(), open_output_file(), vc1_decode_init(), and X264_init_static().

supported_samplerates

const int* AVCodec::supported_samplerates

array of supported audio samplerates, or NULL if unknown, array is terminated by 0

Examples
encode_audio.c.

Definition at line 225 of file codec.h.

Referenced by ff_encode_preinit(), main(), sbc_encode_init(), and select_sample_rate().

sample_fmts

enum AVSampleFormat* AVCodec::sample_fmts

array of supported sample formats, or NULL if unknown, array is terminated by -1

Examples
encode_audio.c, transcode_aac.c, and transcoding.c.

Definition at line 226 of file codec.h.

Referenced by check_sample_fmt(), ff_encode_preinit(), main(), open_output_file(), and pcm_decode_init().

channel_layouts

const uint64_t* AVCodec::channel_layouts

array of support channel layouts, or NULL if unknown. array is terminated by 0

Examples
encode_audio.c.

Definition at line 227 of file codec.h.

Referenced by ff_encode_preinit(), main(), and select_channel_layout().

priv_class

const AVClass* AVCodec::priv_class

AVClass for the private context.

Definition at line 228 of file codec.h.

Referenced by avcodec_close(), avcodec_open2(), ff_frame_thread_encoder_init(), ff_frame_thread_free(), filter_codec_opts(), init_context_defaults(), init_thread(), priv_data_size_wrong(), and show_stream().

profiles

const AVProfile* AVCodec::profiles

array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN}

Definition at line 229 of file codec.h.

Referenced by av_get_profile_name().

wrapper_name

const char* AVCodec::wrapper_name

Group name of the codec implementation.

This is a short symbolic name of the wrapper backing this codec. A wrapper uses some kind of external implementation for the codec, such as an external library, or a codec implementation provided by the OS or the hardware. If this field is NULL, this is a builtin, libavcodec native codec. If non-NULL, this will be the suffix in AVCodec.name in most cases (usually AVCodec.name will be of the form "<codec_name>_<wrapper_name>").

Definition at line 241 of file codec.h.

caps_internal

int AVCodec::caps_internal

Internal codec capabilities.

See FF_CODEC_CAP_* in internal.h

Definition at line 254 of file codec.h.

Referenced by avcodec_open2(), avpriv_codec_get_cap_skip_frame_fill_param(), decode_receive_frame_internal(), decode_simple_internal(), ff_decode_frame_props(), ff_decode_get_packet(), ff_get_buffer(), ff_slice_thread_init(), frame_worker_thread(), init_thread(), lock_avcodec(), main(), thread_get_buffer_internal(), unlock_avcodec(), and validate_thread_parameters().

priv_data_size

int AVCodec::priv_data_size

Definition at line 256 of file codec.h.

Referenced by avcodec_open2(), ff_mjpeg_encode_picture_header(), init_context_defaults(), init_thread(), main(), and priv_data_size_wrong().

update_thread_context

int(* AVCodec::update_thread_context) (struct AVCodecContext *dst, const struct AVCodecContext *src)

Copy necessary context variables from a previous thread context to the current one.

If not defined, the next thread will start automatically; otherwise, the codec must call ff_thread_finish_setup().

dst and src will (rarely) point to the same context, in which case memcpy should be skipped.

Definition at line 268 of file codec.h.

Referenced by ff_thread_can_start_frame(), frame_worker_thread(), hap_decode(), main(), thread_get_buffer_internal(), update_context_from_thread(), and vp78_decode_frame().

update_thread_context_for_user

int(* AVCodec::update_thread_context_for_user) (struct AVCodecContext *dst, const struct AVCodecContext *src)

Copy variables back to the user-facing context.

Definition at line 273 of file codec.h.

Referenced by main(), and update_context_from_thread().

defaults

const AVCodecDefault* AVCodec::defaults

Private codec-specific defaults.

Definition at line 279 of file codec.h.

Referenced by init_context_defaults().

init_static_data

void(* AVCodec::init_static_data) (struct AVCodec *codec)

Initialize codec static data, called from av_codec_iterate().

This is not intended for time consuming operations as it is run for every codec regardless of that codec being used.

Definition at line 287 of file codec.h.

Referenced by av_codec_init_static().

init

int(* AVCodec::init) (struct AVCodecContext *)

Definition at line 289 of file codec.h.

Referenced by avcodec_open2(), init_thread(), lock_avcodec(), and unlock_avcodec().

encode_sub

int(* AVCodec::encode_sub) (struct AVCodecContext *, uint8_t *buf, int buf_size, const struct AVSubtitle *sub)

Definition at line 290 of file codec.h.

Referenced by av_codec_is_encoder(), avcodec_encode_subtitle(), and main().

encode2

int(* AVCodec::encode2) (struct AVCodecContext *avctx, struct AVPacket *avpkt, const struct AVFrame *frame, int *got_packet_ptr)

Encode data to an AVPacket.

Parameters
avctx codec context
avpkt output AVPacket
[in] frame AVFrame containing the raw data to be encoded
[out] got_packet_ptr encoder sets to 0 or 1 to indicate that a non-empty packet was returned in avpkt.
Returns
0 on success, negative error code on failure

Definition at line 302 of file codec.h.

Referenced by av_codec_is_encoder(), encode_simple_internal(), main(), and worker().

decode

int(* AVCodec::decode) (struct AVCodecContext *avctx, void *outdata, int *got_frame_ptr, struct AVPacket *avpkt)

Decode picture or subtitle data.

Parameters
avctx codec context
outdata codec type dependent output struct
[out] got_frame_ptr decoder sets to 0 or 1 to indicate that a non-empty frame or subtitle was returned in outdata.
[in] avpkt AVPacket containing the data to be decoded
Returns
amount of bytes read from the packet on success, negative error code on failure

Definition at line 316 of file codec.h.

Referenced by av_codec_is_decoder(), avcodec_decode_subtitle2(), decode_simple_internal(), frame_worker_thread(), get_category(), and main().

close

int(* AVCodec::close) (struct AVCodecContext *)

Definition at line 318 of file codec.h.

Referenced by avcodec_close(), and ff_frame_thread_free().

receive_packet

int(* AVCodec::receive_packet) (struct AVCodecContext *avctx, struct AVPacket *avpkt)

Encode API with decoupled frame/packet dataflow.

This function is called to get one output packet. It should call ff_encode_get_frame() to obtain input data.

Definition at line 324 of file codec.h.

Referenced by av_codec_is_encoder(), encode_receive_packet_internal(), and main().

receive_frame

int(* AVCodec::receive_frame) (struct AVCodecContext *avctx, struct AVFrame *frame)

Decode API with decoupled packet/frame dataflow.

This function is called to get one output frame. It should call ff_decode_get_packet() to obtain input data.

Definition at line 331 of file codec.h.

Referenced by av_codec_is_decoder(), decode_receive_frame_internal(), and main().

flush

void(* AVCodec::flush) (struct AVCodecContext *)

Flush buffers.

Will be called when seeking

Definition at line 336 of file codec.h.

Referenced by avcodec_flush_buffers(), and ff_thread_flush().

bsfs

const char* AVCodec::bsfs

Decoding only, a comma-separated list of bitstream filters to apply to packets before decoding.

Definition at line 342 of file codec.h.

Referenced by cuvid_decode_init(), decode_bsfs_init(), and main().

hw_configs

const struct AVCodecHWConfigInternal* const * AVCodec::hw_configs

Array of pointers to hardware configurations supported by the codec, or NULL if no hardware supported.

The array is terminated by a NULL pointer.

The user can only access this field via avcodec_get_hw_config().

Definition at line 351 of file codec.h.

Referenced by avcodec_default_get_format(), avcodec_get_hw_config(), avcodec_get_hw_frames_parameters(), and ff_get_format().

codec_tags

const uint32_t* AVCodec::codec_tags

List of supported codec_tags, terminated by FF_CODEC_TAGS_END.

Definition at line 356 of file codec.h.

Referenced by LLVMFuzzerTestOneInput().


The documentation for this struct was generated from the following file:

Generated on Wed Aug 24 2022 21:38:54 for FFmpeg by   doxygen 1.8.17

AltStyle によって変換されたページ (->オリジナル) /