55#define FF_MAX_EXTRADATA_SIZE ((1 << 28) - AV_INPUT_BUFFER_PADDING_SIZE)
77 for (
i = 0;
i < count;
i++) {
91 for (
i = 0;
i < count;
i++) {
119 switch (
ctx->codec_type) {
124 bit_rate =
ctx->bit_rate;
128 if (bits_per_sample) {
129 bit_rate =
ctx->sample_rate * (
int64_t)
ctx->ch_layout.nb_channels;
130 if (bit_rate > INT64_MAX / bits_per_sample) {
133 bit_rate *= bits_per_sample;
135 bit_rate =
ctx->bit_rate;
154 if (!codec && !avctx->
codec) {
158 if (codec && avctx->
codec && codec != avctx->
codec) {
160 "but %s passed to avcodec_open2()\n", avctx->
codec->
name, codec->
name);
164 codec = avctx->
codec;
175 avctx->
codec = codec;
301 "The %s '%s' is experimental but experimental codecs are not enabled, "
302 "add '-strict %d' if you want to use it.\n",
341 ret = codec2->
init(avctx);
360 av_log(avctx,
AV_LOG_ERROR,
"Fixed frame size requested but no frame_size value set\n");
400 "that doesn't support it\n");
440 memset(sub, 0,
sizeof(*sub));
450#if CONFIG_FRAME_THREAD_ENCODER
511 return str ? str :
"unknown";
517 const char *codec_name;
526 if (!buf || buf_size <= 0)
546 enc->
refs, enc->
refs > 1 ?
"s" :
"");
583 if (strcmp(col, pri) || strcmp(col, trc)) {
585 av_bprintf(&bprint,
"%s/%s/%s, ", col, pri, trc);
591 const char *field_order =
"progressive";
593 field_order =
"top first";
595 field_order =
"bottom first";
597 field_order =
"top coded first (swapped)";
599 field_order =
"bottom coded first (swapped)";
609 if (
len == bprint.len) {
610 bprint.str[
len - 1] =
'\0';
613 if (bprint.len - 2 < bprint.size) {
616 bprint.str[bprint.len] =
'\0';
640 display_aspect_ratio.
num, display_aspect_ratio.
den);
704 return !!
s->internal;
725#define WRAP_CONFIG(allowed_type, field, var, field_type, sentinel_check) \
727 if (codec->type != (allowed_type)) \
728 return AVERROR(EINVAL); \
729 const field_type *ptr = codec2->field; \
730 *out_configs = ptr; \
732 for (int i = 0;; i++) { \
733 const field_type var = ptr[i]; \
734 if (sentinel_check) { \
735 *out_num_configs = i; \
740 *out_num_configs = 0; \
769 const void **out_configs,
770 int *out_num_configs)
799 *out_num_configs = 0;
820 const void **
out,
int *out_num)
825 codec = avctx->
codec;
827 out_num = &dummy_num;
static enum AVSampleFormat sample_fmts[]
static AVFormatContext * ctx
simple assert() macros that are a bit more flexible than ISO C assert().
#define av_assert0(cond)
assert() equivalent, that is always enabled.
#define FF_MAX_EXTRADATA_SIZE
Maximum size in bytes of extradata.
static const uint8_t offset_tab[]
int ff_default_get_supported_config(const AVCodecContext *avctx, const AVCodec *codec, enum AVCodecConfig config, unsigned flags, const void **out_configs, int *out_num_configs)
static void lock_avcodec(const FFCodec *codec)
static enum AVColorRange color_range_tab[]
av_cold void ff_codec_close(AVCodecContext *avctx)
static AVMutex codec_mutex
const SideDataMap ff_sd_global_map[]
A map between packet and frame side data types.
static const char * unknown_if_null(const char *str)
static enum AVAlphaMode alpha_mode_tab[]
static void unlock_avcodec(const FFCodec *codec)
int av_packet_side_data_from_frame(AVPacketSideData **psd, int *pnb_sd, const AVFrameSideData *src, unsigned int flags)
#define WRAP_CONFIG(allowed_type, field, var, field_type, sentinel_check)
static int64_t get_bit_rate(AVCodecContext *ctx)
Libavcodec external API header.
#define FF_THREAD_FRAME
Decode more than one frame at once.
void ff_thread_free(struct AVCodecContext *s)
int ff_encode_receive_frame(struct AVCodecContext *avctx, struct AVFrame *frame)
avcodec_receive_frame() implementation for encoders.
void ff_thread_flush(struct AVCodecContext *avctx)
Wait for decoding threads to finish and reset internal state.
int ff_decode_preinit(struct AVCodecContext *avctx)
Perform decoder initialization and validation.
void ff_encode_flush_buffers(struct AVCodecContext *avctx)
void ff_decode_flush_buffers(struct AVCodecContext *avctx)
void ff_decode_internal_uninit(struct AVCodecContext *avctx)
int ff_encode_preinit(struct AVCodecContext *avctx)
int ff_decode_receive_frame(struct AVCodecContext *avctx, struct AVFrame *frame, unsigned flags)
avcodec_receive_frame() implementation for decoders.
int ff_thread_init(struct AVCodecContext *s)
struct AVCodecInternal * ff_decode_internal_alloc(void)
struct AVCodecInternal * ff_encode_internal_alloc(void)
void av_bprintf(AVBPrint *buf, const char *fmt,...)
#define flags(name, subs,...)
#define i(width, name, range_min, range_max)
Public libavutil channel layout APIs header.
#define FF_CODEC_CAP_NOT_INIT_THREADSAFE
The codec is not known to be init-threadsafe (i.e.
static av_always_inline const FFCodec * ffcodec(const AVCodec *codec)
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
#define FF_CODEC_CAP_AUTO_THREADS
Codec handles avctx->thread_count == 0 (auto) internally.
static int ff_codec_is_decoder(const AVCodec *avcodec)
Internal version of av_codec_is_decoder().
static int ff_codec_is_encoder(const AVCodec *avcodec)
Internal version of av_codec_is_encoder().
common internal and external API header
void ff_hwaccel_uninit(AVCodecContext *avctx)
int ff_set_dimensions(AVCodecContext *s, int width, int height)
#define FF_COMPLIANCE_EXPERIMENTAL
Allow nonstandardized experimental things.
@ AV_FIELD_TT
Top coded_first, top displayed first.
@ AV_FIELD_BB
Bottom coded first, bottom displayed first.
@ AV_FIELD_BT
Bottom coded first, top displayed first.
@ AV_FIELD_TB
Top coded first, bottom displayed first.
static enum AVPixelFormat pix_fmt
static void encode(AVCodecContext *ctx, AVFrame *frame, AVPacket *pkt, FILE *output)
static char separator(CheckasmFormat format)
static const char * unknown_if_null(const char *str)
av_cold void ff_frame_thread_encoder_free(AVCodecContext *avctx)
void av_bsf_free(AVBSFContext **pctx)
Free a bitstream filter context and everything associated with it; write NULL into the supplied point...
int av_get_bits_per_sample(enum AVCodecID codec_id)
Return codec bits per sample.
const AVCodecDescriptor * avcodec_descriptor_get(enum AVCodecID id)
int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options)
Initialize the AVCodecContext to use the given AVCodec.
#define AV_CODEC_CAP_ENCODER_FLUSH
This encoder can be flushed using avcodec_flush_buffers().
#define AV_CODEC_FLAG_PASS2
Use internal 2pass ratecontrol in second pass mode.
int av_codec_is_encoder(const AVCodec *codec)
const char * avcodec_profile_name(enum AVCodecID codec_id, int profile)
Return a name for the specified profile, if available.
int av_codec_is_decoder(const AVCodec *codec)
#define AV_CODEC_FLAG_PASS1
Use internal 2pass ratecontrol in first pass mode.
#define AV_CODEC_FLAG2_FIXED_FRAME_SIZE
Force audio encoders to use a fixed frame size.
const AVCodec * avcodec_find_decoder(enum AVCodecID id)
Find a registered decoder with a matching codec ID.
const AVCodec * avcodec_find_encoder(enum AVCodecID id)
Find a registered encoder with a matching codec ID.
void avsubtitle_free(AVSubtitle *sub)
Free all allocated data in the given subtitle struct.
const char * avcodec_get_name(enum AVCodecID id)
Get the name of a codec.
#define AV_CODEC_CAP_CHANNEL_CONF
Codec should fill in channel configuration and samplerate instead of container.
#define AV_CODEC_CAP_EXPERIMENTAL
Codec is experimental and is thus avoided in favor of non experimental encoders.
int avcodec_receive_frame(AVCodecContext *avctx, AVFrame *frame)
Alias for avcodec_receive_frame_flags(avctx, frame, 0).
int attribute_align_arg avcodec_receive_frame_flags(AVCodecContext *avctx, AVFrame *frame, unsigned flags)
Return decoded output data from a decoder or encoder (when the AV_CODEC_FLAG_RECON_FRAME flag is used...
int avcodec_get_supported_config(const AVCodecContext *avctx, const AVCodec *codec, enum AVCodecConfig config, unsigned flags, const void **out, int *out_num)
Retrieve a list of all supported values for a given configuration type.
@ AV_CODEC_CONFIG_PIX_FORMAT
AVPixelFormat, terminated by AV_PIX_FMT_NONE.
@ AV_CODEC_CONFIG_SAMPLE_FORMAT
AVSampleFormat, terminated by AV_SAMPLE_FMT_NONE.
@ AV_CODEC_CONFIG_ALPHA_MODE
AVAlphaMode, terminated by AVALPHA_MODE_UNSPECIFIED.
@ AV_CODEC_CONFIG_FRAME_RATE
AVRational, terminated by {0, 0}.
@ AV_CODEC_CONFIG_COLOR_SPACE
AVColorSpace, terminated by AVCOL_SPC_UNSPECIFIED.
@ AV_CODEC_CONFIG_COLOR_RANGE
AVColorRange, terminated by AVCOL_RANGE_UNSPECIFIED.
@ AV_CODEC_CONFIG_SAMPLE_RATE
int, terminated by 0
@ AV_CODEC_CONFIG_CHANNEL_LAYOUT
AVChannelLayout, terminated by {0}.
int avcodec_default_execute2(AVCodecContext *c, int(*func)(AVCodecContext *c2, void *arg2, int jobnr, int threadnr), void *arg, int *ret, int count)
void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode)
int avcodec_is_open(AVCodecContext *s)
int avcodec_default_execute(AVCodecContext *c, int(*func)(AVCodecContext *c2, void *arg2), void *arg, int *ret, int count, int size)
void avcodec_flush_buffers(AVCodecContext *avctx)
Reset the internal codec state / flush internal buffers.
AVPacketSideData * av_packet_side_data_new(AVPacketSideData **psd, int *pnb_sd, enum AVPacketSideDataType type, size_t size, int flags)
Allocate a new packet side data.
int av_packet_side_data_to_frame(AVFrameSideData ***psd, int *pnb_sd, const AVPacketSideData *src, unsigned int flags)
Add a new frame side data entry to an array based on existing packet side data, if a matching type ex...
@ AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT
Ambient viewing environment metadata, as defined by H.274.
@ AV_PKT_DATA_3D_REFERENCE_DISPLAYS
This side data contains information about the reference display width(s) and reference viewing distan...
@ AV_PKT_DATA_ICC_PROFILE
ICC profile data consisting of an opaque octet buffer following the format described by ISO 15076-1.
@ AV_PKT_DATA_MASTERING_DISPLAY_METADATA
Mastering display metadata (based on SMPTE-2086:2014).
@ AV_PKT_DATA_AUDIO_SERVICE_TYPE
This side data should be associated with an audio stream and corresponds to enum AVAudioServiceType.
@ AV_PKT_DATA_SPHERICAL
This side data should be associated with a video stream and corresponds to the AVSphericalMapping str...
@ AV_PKT_DATA_DISPLAYMATRIX
This side data contains a 3x3 transformation matrix describing an affine transformation that needs to...
@ AV_PKT_DATA_EXIF
Extensible image file format metadata.
@ AV_PKT_DATA_NB
The number of side data types.
@ AV_PKT_DATA_STEREO3D
This side data should be associated with a video stream and contains Stereoscopic 3D information in f...
@ AV_PKT_DATA_CONTENT_LIGHT_LEVEL
Content light level (based on CTA-861.3).
@ AV_PKT_DATA_REPLAYGAIN
This side data should be associated with an audio stream and contains ReplayGain information in form ...
void av_packet_free(AVPacket **pkt)
Free the packet, if the packet is reference counted, it will be unreferenced first.
void av_packet_unref(AVPacket *pkt)
Wipe the packet.
AVPacket * av_packet_alloc(void)
Allocate an AVPacket and set its fields to default values.
int av_channel_layout_describe_bprint(const AVChannelLayout *channel_layout, AVBPrint *bp)
bprint variant of av_channel_layout_describe().
int av_channel_layout_check(const AVChannelLayout *channel_layout)
Check whether a channel layout is valid, i.e.
static int av_bprint_is_complete(const AVBPrint *buf)
Test if the print buffer is complete (not truncated).
void av_bprint_chars(AVBPrint *buf, char c, unsigned n)
Append char c n times to a print buffer.
void av_bprint_init_for_buffer(AVBPrint *buf, char *buffer, unsigned size)
Init a print buffer using a pre-existing buffer.
void av_buffer_unref(AVBufferRef **buf)
Free a given reference and automatically free the buffer if there are no more references to it.
AVDictionaryEntry * av_dict_get(const AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags)
Get a dictionary entry with matching key.
#define AVERROR_EXPERIMENTAL
Requested feature is flagged experimental. Set strict_std_compliance if you really want to use it.
void av_frame_unref(AVFrame *frame)
Unreference all the buffers referenced by frame and reset the frame fields.
AVFrameSideData * av_frame_side_data_new(AVFrameSideData ***sd, int *nb_sd, enum AVFrameSideDataType type, size_t size, unsigned int flags)
Add new side data entry to an array.
void av_frame_side_data_free(AVFrameSideData ***sd, int *nb_sd)
Free all side data entries and their contents, then zeroes out the values which the pointers are poin...
void av_frame_free(AVFrame **frame)
Free the frame and any dynamically allocated objects in it, e.g.
AVFrame * av_frame_alloc(void)
Allocate an AVFrame and set its fields to default values.
@ AV_FRAME_DATA_EXIF
Exchangeable image file format metadata.
@ AV_FRAME_DATA_SPHERICAL
The data represents the AVSphericalMapping structure defined in libavutil/spherical....
@ AV_FRAME_DATA_CONTENT_LIGHT_LEVEL
Content light level (based on CTA-861.3).
@ AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENT
Ambient viewing environment metadata, as defined by H.274.
@ AV_FRAME_DATA_DISPLAYMATRIX
This side data contains a 3x3 transformation matrix describing an affine transformation that needs to...
@ AV_FRAME_DATA_AUDIO_SERVICE_TYPE
This side data must be associated with an audio frame and corresponds to enum AVAudioServiceType defi...
@ AV_FRAME_DATA_REPLAYGAIN
ReplayGain information in the form of the AVReplayGain struct.
@ AV_FRAME_DATA_MASTERING_DISPLAY_METADATA
Mastering display metadata associated with a video frame.
@ AV_FRAME_DATA_3D_REFERENCE_DISPLAYS
This side data contains information about the reference display width(s) and reference viewing distan...
@ AV_FRAME_DATA_ICC_PROFILE
The data contains an ICC profile as an opaque octet buffer following the format described by ISO 1507...
@ AV_FRAME_DATA_STEREO3D
Stereoscopic 3d metadata.
#define AV_LOG_DEBUG
Stuff which is only useful for libav* developers.
#define AV_LOG_WARNING
Something somehow does not look correct.
#define AV_LOG_VERBOSE
Detailed information.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
int av_log_get_level(void)
Get the current log level.
int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max)
Reduce a fraction.
int64_t av_gcd(int64_t a, int64_t b)
Compute the greatest common divisor of two integer operands.
const char * av_get_media_type_string(enum AVMediaType media_type)
Return a string describing the media_type enum, NULL if media_type is unknown.
#define av_fourcc2str(fourcc)
@ AVMEDIA_TYPE_ATTACHMENT
Opaque data information usually sparse.
@ AVMEDIA_TYPE_DATA
Opaque data information usually continuous.
@ AVMEDIA_TYPE_UNKNOWN
Usually treated as AVMEDIA_TYPE_DATA.
int av_image_check_size2(unsigned int w, unsigned int h, int64_t max_pixels, enum AVPixelFormat pix_fmt, int log_offset, void *log_ctx)
Check if the given dimension of an image is valid, meaning that all bytes of a plane of an image with...
int av_image_check_sar(unsigned int w, unsigned int h, AVRational sar)
Check if the given sample aspect ratio of an image is valid.
int av_get_bytes_per_sample(enum AVSampleFormat sample_fmt)
Return number of bytes per sample.
const char * av_get_sample_fmt_name(enum AVSampleFormat sample_fmt)
Return the name of sample_fmt, or NULL if sample_fmt is not recognized.
AVSampleFormat
Audio sample formats.
int av_match_list(const char *name, const char *list, char separator)
Check if a name is in a list.
#define AV_OPT_SEARCH_CHILDREN
Search in possible children of the given object first.
void av_opt_free(void *obj)
Free all allocated objects in obj.
void av_opt_set_defaults(void *s)
Set the values of all AVOption fields to their default values.
int av_opt_set(void *obj, const char *name, const char *val, int search_flags)
int av_opt_set_dict2(void *obj, AVDictionary **options, int search_flags)
Set all the options from a given dictionary on an object.
void ff_icc_context_uninit(FFIccContext *s)
common internal api header.
#define FF_SANE_NB_CHANNELS
int(* func)(AVBPrint *dst, const char *in, const char *arg)
#define FF_PTR_ADD(ptr, off)
#define attribute_align_arg
#define AV_MUTEX_INITIALIZER
static int ff_mutex_unlock(AVMutex *mutex)
static int ff_mutex_lock(AVMutex *mutex)
static enum AVPixelFormat pix_fmts[]
Memory handling functions.
const char * av_color_space_name(enum AVColorSpace space)
const char * av_color_range_name(enum AVColorRange range)
const char * av_get_pix_fmt_name(enum AVPixelFormat pix_fmt)
Return the short name for a pixel format, NULL in case pix_fmt is unknown.
const char * av_chroma_location_name(enum AVChromaLocation location)
const char * av_color_transfer_name(enum AVColorTransferCharacteristic transfer)
const char * av_color_primaries_name(enum AVColorPrimaries primaries)
const AVPixFmtDescriptor * av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
@ AVCHROMA_LOC_UNSPECIFIED
AVColorRange
Visual content value range.
@ AVCOL_RANGE_MPEG
Narrow or limited range content.
@ AVCOL_RANGE_UNSPECIFIED
@ AVCOL_RANGE_NB
Not part of ABI.
@ AVCOL_RANGE_JPEG
Full range content.
AVAlphaMode
Correlation between the alpha channel and color values.
@ AVALPHA_MODE_NB
Not part of ABI.
@ AVALPHA_MODE_STRAIGHT
Alpha channel is independent of color values.
@ AVALPHA_MODE_UNSPECIFIED
Unknown alpha handling, or no alpha channel.
@ AVALPHA_MODE_PREMULTIPLIED
Alpha channel is multiplied into color values.
AVPixelFormat
Pixel format.
void av_refstruct_unref(void *objp)
Decrement the reference count of the underlying object and automatically free the object if there are...
static void av_refstruct_pool_uninit(AVRefStructPool **poolp)
Mark the pool as being available for freeing.
enum AVMediaType codec_type
An AVChannelLayout holds information about the channel layout of audio data.
int nb_channels
Number of channels in this layout.
Describe the class of an AVClass context structure.
main external API structure.
enum AVPixelFormat pix_fmt
Pixel format, see AV_PIX_FMT_xxx.
int width
picture width / height.
AVPacketSideData * coded_side_data
Additional data associated with the entire coded stream.
const struct AVCodecDescriptor * codec_descriptor
AVCodecDescriptor.
AVChannelLayout ch_layout
Audio channel layout.
int flags2
AV_CODEC_FLAG2_*.
enum AVSampleFormat sample_fmt
audio sample format
int64_t max_pixels
The number of pixels per image to maximally accept.
enum AVColorRange color_range
MPEG vs JPEG YUV range.
unsigned int codec_tag
fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
int strict_std_compliance
strictly follow the standard (MPEG-4, ...).
enum AVColorPrimaries color_primaries
Chromaticity coordinates of the source primaries.
AVBufferRef * hw_frames_ctx
A reference to the AVHWFramesContext describing the input (for encoding) or output (decoding) frames.
int qmin
minimum quantizer
enum AVMediaType codec_type
int64_t frame_num
Frame counter, set by libavcodec.
AVRational sample_aspect_ratio
sample aspect ratio (0 if unknown) That is the width of a pixel divided by the height of the pixel.
int bits_per_coded_sample
bits per sample/pixel from the demuxer (needed for huffyuv).
uint8_t * dump_separator
dump format separator.
enum AVFieldOrder field_order
Field order.
int active_thread_type
Which multithreading methods are in use by the codec.
char * codec_whitelist
',' separated list of allowed decoders.
int64_t bit_rate
the average bitrate
const struct AVCodec * codec
int bits_per_raw_sample
Bits per sample/pixel of internal libavcodec pixel/sample format.
enum AVColorSpace colorspace
YUV colorspace type.
int initial_padding
Audio only.
int sample_rate
samples per second
int refs
number of reference frames
int64_t rc_max_rate
maximum bitrate
int thread_count
thread count is used to decide how many independent tasks should be passed to execute()
int qmax
maximum quantizer
enum AVColorTransferCharacteristic color_trc
Color Transfer Characteristic.
uint8_t * subtitle_header
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented.
int flags
AV_CODEC_FLAG_*.
AVFrameSideData ** decoded_side_data
Array containing static side data, such as HDR10 CLL / MDCV structures.
uint8_t * extradata
Out-of-band global headers that may be used by some codecs.
int trailing_padding
Audio only.
enum AVChromaLocation chroma_sample_location
This defines the location of chroma samples.
AVBufferRef * hw_device_ctx
A reference to the AVHWDeviceContext describing the device which will be used by a hardware encoder/d...
int coded_width
Bitstream width / height, may be different from width/height e.g.
int block_align
number of bytes per packet if constant and known or 0 Used by some WAV based audio codecs.
int frame_size
Number of samples per channel in an audio frame.
struct AVCodecInternal * internal
Private context used for internal data.
AVPacket * in_pkt
This packet is used to hold the packet given to decoders implementing the .decode API; it is unused b...
AVFrame * recon_frame
When the AV_CODEC_FLAG_RECON_FRAME flag is used.
AVPacket * last_pkt_props
Properties (timestamps+side data) extracted from the last packet passed for decoding.
int needs_close
If this is set, then FFCodec->close (if existing) needs to be called for the parent AVCodecContext.
int is_frame_mt
This field is set to 1 when frame threading is being used and the parent AVCodecContext of this AVCod...
unsigned int byte_buffer_size
uint8_t * byte_buffer
temporary buffer used for encoders to store their bitstream
AVPacket * buffer_pkt
Temporary buffers for newly received or not yet output packets/frames.
AVFrame * in_frame
The input frame is stored here for encoders implementing the simple encode API.
int draining
decoding: AVERROR_EOF has been returned from ff_decode_get_packet(); must not be used by decoders tha...
struct AVRefStructPool * progress_frame_pool
void * frame_thread_encoder
int skip_samples
Number of audio samples to skip at the start of the next decoded frame.
struct AVBSFContext * bsf
const AVClass * priv_class
AVClass for the private context.
const char * name
Name of the codec implementation.
int capabilities
Codec capabilities.
Structure to hold side data for an AVFrame.
This structure describes decoded (raw) audio or video data.
This structure stores auxiliary information for decoding, presenting, or otherwise processing the cod...
Rational number (pair of numerator and denominator).
int(* init)(struct AVCodecContext *)
void(* flush)(struct AVCodecContext *)
Flush buffers.
unsigned alpha_modes
This field determines the alpha modes supported by an encoder.
unsigned caps_internal
Internal codec capabilities FF_CODEC_CAP_*.
int(* close)(struct AVCodecContext *)
int(* get_supported_config)(const struct AVCodecContext *avctx, const AVCodec *codec, enum AVCodecConfig config, unsigned flags, const void **out_configs, int *out_num_configs)
Custom callback for avcodec_get_supported_config().
unsigned color_ranges
This field determines the video color ranges supported by an encoder.