FFmpeg 5.1.6
Data Structures | Macros | Enumerations | Functions
codec.h File Reference
#include <stdint.h>
#include "libavutil/avutil.h"
#include "libavutil/hwcontext.h"
#include "libavutil/log.h"
#include "libavutil/pixfmt.h"
#include "libavutil/rational.h"
#include "libavutil/samplefmt.h"
#include "libavcodec/codec_id.h"
#include "libavcodec/version_major.h"

Go to the source code of this file.

Data Structures

struct  AVProfile
 AVProfile. More...
 
struct  AVCodec
 AVCodec. More...
 
struct  AVCodecHWConfig
 

Macros

#define AV_CODEC_CAP_DRAW_HORIZ_BAND   (1 << 0)
 Decoder can use draw_horiz_band callback. More...
 
#define AV_CODEC_CAP_DR1   (1 << 1)
 Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators. More...
 
#define AV_CODEC_CAP_DELAY   (1 << 5)
 Encoder or decoder requires flushing with NULL input at the end in order to give the complete and correct output. More...
 
#define AV_CODEC_CAP_SMALL_LAST_FRAME   (1 << 6)
 Codec can be fed a final frame with a smaller size. More...
 
#define AV_CODEC_CAP_SUBFRAMES   (1 << 8)
 Codec can output multiple frames per AVPacket Normally demuxers return one frame at a time, demuxers which do not do are connected to a parser to split what they return into proper frames. More...
 
#define AV_CODEC_CAP_EXPERIMENTAL   (1 << 9)
 Codec is experimental and is thus avoided in favor of non experimental encoders. More...
 
#define AV_CODEC_CAP_CHANNEL_CONF   (1 << 10)
 Codec should fill in channel configuration and samplerate instead of container. More...
 
#define AV_CODEC_CAP_FRAME_THREADS   (1 << 12)
 Codec supports frame-level multithreading. More...
 
#define AV_CODEC_CAP_SLICE_THREADS   (1 << 13)
 Codec supports slice-based (or partition-based) multithreading. More...
 
#define AV_CODEC_CAP_PARAM_CHANGE   (1 << 14)
 Codec supports changed parameters at any point. More...
 
#define AV_CODEC_CAP_OTHER_THREADS   (1 << 15)
 Codec supports multithreading through a method other than slice- or frame-level multithreading. More...
 
#define AV_CODEC_CAP_VARIABLE_FRAME_SIZE   (1 << 16)
 Audio encoder supports receiving a different number of samples in each call. More...
 
#define AV_CODEC_CAP_AVOID_PROBING   (1 << 17)
 Decoder is not a preferred choice for probing. More...
 
#define AV_CODEC_CAP_HARDWARE   (1 << 18)
 Codec is backed by a hardware implementation. More...
 
#define AV_CODEC_CAP_HYBRID   (1 << 19)
 Codec is potentially backed by a hardware implementation, but not necessarily. More...
 
#define AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE   (1 << 20)
 This codec takes the reordered_opaque field from input AVFrames and returns it in the corresponding field in AVCodecContext after encoding. More...
 
#define AV_CODEC_CAP_ENCODER_FLUSH   (1 << 21)
 This encoder can be flushed using avcodec_flush_buffers(). More...
 

Enumerations

enum  { AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX = 0x01 , AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX = 0x02 , AV_CODEC_HW_CONFIG_METHOD_INTERNAL = 0x04 , AV_CODEC_HW_CONFIG_METHOD_AD_HOC = 0x08 }
 

Functions

const AVCodecav_codec_iterate (void **opaque)
 Iterate over all registered codecs. More...
 
const AVCodecavcodec_find_decoder (enum AVCodecID id)
 Find a registered decoder with a matching codec ID. More...
 
const AVCodecavcodec_find_decoder_by_name (const char *name)
 Find a registered decoder with the specified name. More...
 
const AVCodecavcodec_find_encoder (enum AVCodecID id)
 Find a registered encoder with a matching codec ID. More...
 
const AVCodecavcodec_find_encoder_by_name (const char *name)
 Find a registered encoder with the specified name. More...
 
int av_codec_is_encoder (const AVCodec *codec)
 
int av_codec_is_decoder (const AVCodec *codec)
 
const char * av_get_profile_name (const AVCodec *codec, int profile)
 Return a name for the specified profile, if available. More...
 
const AVCodecHWConfigavcodec_get_hw_config (const AVCodec *codec, int index)
 Retrieve supported hardware configurations for a codec. More...