FFmpeg  4.4.1
Data Fields
AVCodec Struct Reference

AVCodec. More...

#include <libavcodec/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
 
int capabilities
 Codec capabilities. More...
 
const AVRationalsupported_framerates
 array of supported framerates, or NULL if any, array is terminated by {0,0} More...
 
enum AVPixelFormatpix_fmts
 array of supported pixel formats, or NULL if unknown, array is terminated by -1 More...
 
const int * supported_samplerates
 array of supported audio samplerates, or NULL if unknown, array is terminated by 0 More...
 
enum AVSampleFormatsample_fmts
 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...
 
uint8_t max_lowres
 maximum value for lowres supported by the decoder 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...
 
int priv_data_size
 
const AVCodecDefaultdefaults
 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...
 
int caps_internal
 Internal codec capabilities. 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...
 

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, transcode_aac.c, transcoding.c, vaapi_encode.c, and vaapi_transcode.c.

Definition at line 197 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.

Examples
hw_decode.c.

Definition at line 204 of file codec.h.

Referenced by main().

◆ 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 209 of file codec.h.

◆ type

enum AVMediaType AVCodec::type
Examples
demuxing_decoding.c.

Definition at line 210 of file codec.h.

Referenced by decode_packet().

◆ id

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

Definition at line 211 of file codec.h.

Referenced by main().

◆ capabilities

int AVCodec::capabilities

Codec capabilities.

see AV_CODEC_CAP_*

Examples
muxing.c, and transcoding.c.

Definition at line 216 of file codec.h.

Referenced by open_audio().

◆ supported_framerates

const AVRational* AVCodec::supported_framerates

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

Definition at line 217 of file codec.h.

◆ 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 218 of file codec.h.

Referenced by open_output_file().

◆ 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 219 of file codec.h.

Referenced by 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 220 of file codec.h.

Referenced by check_sample_fmt(), and open_output_file().

◆ 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 221 of file codec.h.

Referenced by select_channel_layout().

◆ max_lowres

uint8_t AVCodec::max_lowres

maximum value for lowres supported by the decoder

Definition at line 222 of file codec.h.

◆ priv_class

const AVClass* AVCodec::priv_class

AVClass for the private context.

Definition at line 223 of file codec.h.

◆ profiles

const AVProfile* AVCodec::profiles

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

Definition at line 224 of file codec.h.

◆ 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 236 of file codec.h.

◆ priv_data_size

int AVCodec::priv_data_size

Definition at line 245 of file codec.h.

◆ 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 260 of file codec.h.

◆ defaults

const AVCodecDefault* AVCodec::defaults

Private codec-specific defaults.

Definition at line 266 of file codec.h.

◆ 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 274 of file codec.h.

◆ init

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

Definition at line 276 of file codec.h.

◆ encode_sub

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

Definition at line 277 of file codec.h.

◆ encode2

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

Encode data to an AVPacket.

Parameters
avctxcodec context
avpktoutput AVPacket
[in]frameAVFrame containing the raw data to be encoded
[out]got_packet_ptrencoder 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 289 of file codec.h.

◆ decode

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

Decode picture or subtitle data.

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

Definition at line 303 of file codec.h.

◆ close

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

Definition at line 305 of file codec.h.

◆ 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 311 of file codec.h.

◆ 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 318 of file codec.h.

◆ flush

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

Flush buffers.

Will be called when seeking

Definition at line 323 of file codec.h.

◆ caps_internal

int AVCodec::caps_internal

Internal codec capabilities.

See FF_CODEC_CAP_* in internal.h

Definition at line 328 of file codec.h.

◆ bsfs

const char* AVCodec::bsfs

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

Definition at line 334 of file codec.h.

◆ 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 343 of file codec.h.

◆ codec_tags

const uint32_t* AVCodec::codec_tags

List of supported codec_tags, terminated by FF_CODEC_TAGS_END.

Definition at line 348 of file codec.h.


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