Miam-Player  0.8.0
A nice music player
AVCodecContext Struct Reference

#include <avcodec.h>

Public Attributes

const AVClassav_class
 
int log_level_offset
 
enum AVMediaType codec_type
 
const struct AVCodeccodec
 
attribute_deprecated char codec_name [32]
 
enum AVCodecID codec_id
 
unsigned int codec_tag
 
attribute_deprecated unsigned int stream_codec_tag
 
void * priv_data
 
struct AVCodecInternal * internal
 
void * opaque
 
int64_t bit_rate
 
int bit_rate_tolerance
 
int global_quality
 
int compression_level
 
int flags
 
int flags2
 
uint8_t * extradata
 
int extradata_size
 
AVRational time_base
 
int ticks_per_frame
 
int delay
 
int width
 
int height
 
int coded_width
 
int coded_height
 
int gop_size
 
enum AVPixelFormat pix_fmt
 
attribute_deprecated int me_method
 
void(* draw_horiz_band )(struct AVCodecContext *s, const AVFrame *src, int offset[AV_NUM_DATA_POINTERS], int y, int type, int height)
 
enum AVPixelFormat(* get_format )(struct AVCodecContext *s, const enum AVPixelFormat *fmt)
 
int max_b_frames
 
float b_quant_factor
 
attribute_deprecated int rc_strategy
 
attribute_deprecated int b_frame_strategy
 
float b_quant_offset
 
int has_b_frames
 
attribute_deprecated int mpeg_quant
 
float i_quant_factor
 
float i_quant_offset
 
float lumi_masking
 
float temporal_cplx_masking
 
float spatial_cplx_masking
 
float p_masking
 
float dark_masking
 
int slice_count
 
attribute_deprecated int prediction_method
 
int * slice_offset
 
AVRational sample_aspect_ratio
 
int me_cmp
 
int me_sub_cmp
 
int mb_cmp
 
int ildct_cmp
 
int dia_size
 
int last_predictor_count
 
attribute_deprecated int pre_me
 
int me_pre_cmp
 
int pre_dia_size
 
int me_subpel_quality
 
attribute_deprecated int dtg_active_format
 
int me_range
 
attribute_deprecated int intra_quant_bias
 
attribute_deprecated int inter_quant_bias
 
int slice_flags
 
attribute_deprecated int xvmc_acceleration
 
int mb_decision
 
uint16_t * intra_matrix
 
uint16_t * inter_matrix
 
attribute_deprecated int scenechange_threshold
 
attribute_deprecated int noise_reduction
 
attribute_deprecated int me_threshold
 
attribute_deprecated int mb_threshold
 
int intra_dc_precision
 
int skip_top
 
int skip_bottom
 
attribute_deprecated float border_masking
 
int mb_lmin
 
int mb_lmax
 
attribute_deprecated int me_penalty_compensation
 
int bidir_refine
 
attribute_deprecated int brd_scale
 
int keyint_min
 
int refs
 
attribute_deprecated int chromaoffset
 
attribute_deprecated int scenechange_factor
 
int mv0_threshold
 
attribute_deprecated int b_sensitivity
 
enum AVColorPrimaries color_primaries
 
enum AVColorTransferCharacteristic color_trc
 
enum AVColorSpace colorspace
 
enum AVColorRange color_range
 
enum AVChromaLocation chroma_sample_location
 
int slices
 
enum AVFieldOrder field_order
 
int sample_rate
 samples per second More...
 
int channels
 number of audio channels More...
 
enum AVSampleFormat sample_fmt
 sample format More...
 
int frame_size
 
int frame_number
 
int block_align
 
int cutoff
 
uint64_t channel_layout
 
uint64_t request_channel_layout
 
enum AVAudioServiceType audio_service_type
 
enum AVSampleFormat request_sample_fmt
 
int(* get_buffer2 )(struct AVCodecContext *s, AVFrame *frame, int flags)
 
int refcounted_frames
 
float qcompress
 amount of qscale change between easy & hard scenes (0.0-1.0) More...
 
float qblur
 amount of qscale smoothing over time (0.0-1.0) More...
 
int qmin
 
int qmax
 
int max_qdiff
 
attribute_deprecated float rc_qsquish
 
attribute_deprecated float rc_qmod_amp
 
attribute_deprecated int rc_qmod_freq
 
int rc_buffer_size
 
int rc_override_count
 
RcOverriderc_override
 
attribute_deprecated const char * rc_eq
 
int64_t rc_max_rate
 
int64_t rc_min_rate
 
attribute_deprecated float rc_buffer_aggressivity
 
attribute_deprecated float rc_initial_cplx
 
float rc_max_available_vbv_use
 
float rc_min_vbv_overflow_use
 
int rc_initial_buffer_occupancy
 
attribute_deprecated int coder_type
 
attribute_deprecated int context_model
 
attribute_deprecated int lmin
 
attribute_deprecated int lmax
 
attribute_deprecated int frame_skip_threshold
 
attribute_deprecated int frame_skip_factor
 
attribute_deprecated int frame_skip_exp
 
attribute_deprecated int frame_skip_cmp
 
int trellis
 
attribute_deprecated int min_prediction_order
 
attribute_deprecated int max_prediction_order
 
attribute_deprecated int64_t timecode_frame_start
 
attribute_deprecated void(* rtp_callback )(struct AVCodecContext *avctx, void *data, int size, int mb_nb)
 
attribute_deprecated int rtp_payload_size
 
attribute_deprecated int mv_bits
 
attribute_deprecated int header_bits
 
attribute_deprecated int i_tex_bits
 
attribute_deprecated int p_tex_bits
 
attribute_deprecated int i_count
 
attribute_deprecated int p_count
 
attribute_deprecated int skip_count
 
attribute_deprecated int misc_bits
 
attribute_deprecated int frame_bits
 
char * stats_out
 
char * stats_in
 
int workaround_bugs
 
int strict_std_compliance
 
int error_concealment
 
int debug
 
int debug_mv
 
int err_recognition
 
int64_t reordered_opaque
 
struct AVHWAccelhwaccel
 
void * hwaccel_context
 
uint64_t error [AV_NUM_DATA_POINTERS]
 
int dct_algo
 
int idct_algo
 
int bits_per_coded_sample
 
int bits_per_raw_sample
 
int lowres
 
attribute_deprecated AVFramecoded_frame
 
int thread_count
 
int thread_type
 
int active_thread_type
 
int thread_safe_callbacks
 
int(* execute )(struct AVCodecContext *c, int(*func)(struct AVCodecContext *c2, void *arg), void *arg2, int *ret, int count, int size)
 
int(* execute2 )(struct AVCodecContext *c, int(*func)(struct AVCodecContext *c2, void *arg, int jobnr, int threadnr), void *arg2, int *ret, int count)
 
int nsse_weight
 
int profile
 
int level
 
enum AVDiscard skip_loop_filter
 
enum AVDiscard skip_idct
 
enum AVDiscard skip_frame
 
uint8_t * subtitle_header
 
int subtitle_header_size
 
attribute_deprecated int error_rate
 
attribute_deprecated uint64_t vbv_delay
 
attribute_deprecated int side_data_only_packets
 
int initial_padding
 
AVRational framerate
 
enum AVPixelFormat sw_pix_fmt
 
AVRational pkt_timebase
 
const AVCodecDescriptorcodec_descriptor
 
int64_t pts_correction_num_faulty_pts
 
int64_t pts_correction_num_faulty_dts
 Number of incorrect PTS values so far. More...
 
int64_t pts_correction_last_pts
 Number of incorrect DTS values so far. More...
 
int64_t pts_correction_last_dts
 PTS of the last frame. More...
 
char * sub_charenc
 DTS of the last frame. More...
 
int sub_charenc_mode
 
int skip_alpha
 
int seek_preroll
 
uint16_t * chroma_intra_matrix
 
uint8_t * dump_separator
 
char * codec_whitelist
 
unsigned properties
 
AVPacketSideDatacoded_side_data
 
int nb_coded_side_data
 
AVBufferRefhw_frames_ctx
 
int sub_text_format
 
int trailing_padding
 

Detailed Description

main external API structure. New fields can be added to the end with minor version bumps. Removal, reordering and changes to existing fields require a major version bump. Please use AVOptions (av_opt* / av_set/get*()) to access these fields from user applications. The name string for AVOptions options matches the associated command line parameter name and can be found in libavcodec/options_table.h The AVOption/command line parameter names differ in some cases from the C structure field names for historic reasons or brevity. sizeof(AVCodecContext) must not be used outside libav*.

Member Data Documentation

int AVCodecContext::active_thread_type

Which multithreading methods are in use by the codec.

  • encoding: Set by libavcodec.
  • decoding: Set by libavcodec.
enum AVAudioServiceType AVCodecContext::audio_service_type

Type of service that the audio stream conveys.

  • encoding: Set by user.
  • decoding: Set by libavcodec.
const AVClass* AVCodecContext::av_class

information on struct for av_log

  • set by avcodec_alloc_context3
attribute_deprecated int AVCodecContext::b_frame_strategy
Deprecated:
use encoder private options instead
float AVCodecContext::b_quant_factor

qscale factor between IP and B-frames If > 0 then the last P-frame quantizer will be used (q= lastp_q*factor+offset). If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset).

  • encoding: Set by user.
  • decoding: unused
float AVCodecContext::b_quant_offset

qscale offset between IP and B-frames

  • encoding: Set by user.
  • decoding: unused
attribute_deprecated int AVCodecContext::b_sensitivity
Deprecated:
use encoder private options instead
int AVCodecContext::bidir_refine
  • encoding: Set by user.
  • decoding: unused
int64_t AVCodecContext::bit_rate

the average bitrate

  • encoding: Set by user; unused for constant quantizer encoding.
  • decoding: Set by user, may be overwritten by libavcodec if this info is available in the stream
int AVCodecContext::bit_rate_tolerance

number of bits the bitstream is allowed to diverge from the reference. the reference can be CBR (for CBR pass1) or VBR (for pass2)

  • encoding: Set by user; unused for constant quantizer encoding.
  • decoding: unused
int AVCodecContext::bits_per_coded_sample

bits per sample/pixel from the demuxer (needed for huffyuv).

  • encoding: Set by libavcodec.
  • decoding: Set by user.
int AVCodecContext::bits_per_raw_sample

Bits per sample/pixel of internal libavcodec pixel/sample format.

  • encoding: set by user.
  • decoding: set by libavcodec.
int AVCodecContext::block_align

number of bytes per packet if constant and known or 0 Used by some WAV based audio codecs.

attribute_deprecated float AVCodecContext::border_masking
Deprecated:
use encoder private options instead
attribute_deprecated int AVCodecContext::brd_scale
Deprecated:
use encoder private options instead
uint64_t AVCodecContext::channel_layout

Audio channel layout.

  • encoding: set by user.
  • decoding: set by user, may be overwritten by libavcodec.
int AVCodecContext::channels

number of audio channels

uint16_t* AVCodecContext::chroma_intra_matrix

custom intra quantization matrix Code outside libavcodec should access this field using av_codec_g/set_chroma_intra_matrix()

  • encoding: Set by user, can be NULL.
  • decoding: unused.
enum AVChromaLocation AVCodecContext::chroma_sample_location

This defines the location of chroma samples.

  • encoding: Set by user
  • decoding: Set by libavcodec
attribute_deprecated int AVCodecContext::chromaoffset
Deprecated:
use encoder private options instead
const struct AVCodec* AVCodecContext::codec
const AVCodecDescriptor* AVCodecContext::codec_descriptor

AVCodecDescriptor Code outside libavcodec should access this field using: av_codec_{get,set}_codec_descriptor(avctx)

  • encoding: unused.
  • decoding: set by libavcodec.
enum AVCodecID AVCodecContext::codec_id
attribute_deprecated char AVCodecContext::codec_name[32]
Deprecated:
this field is not used for anything in libavcodec
unsigned int AVCodecContext::codec_tag

fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A'). This is used to work around some encoder bugs. A demuxer should set this to what is stored in the field used to identify the codec. If there are multiple such fields in a container then the demuxer should choose the one which maximizes the information about the used codec. If the codec tag field in a container is larger than 32 bits then the demuxer should remap the longer ID to 32 bits with a table or other structure. Alternatively a new extra_codec_tag + size could be added but for this a clear advantage must be demonstrated first.

  • encoding: Set by user, if not then the default based on codec_id will be used.
  • decoding: Set by user, will be converted to uppercase by libavcodec during init.
enum AVMediaType AVCodecContext::codec_type
char* AVCodecContext::codec_whitelist

',' separated list of allowed decoders. If NULL then all are allowed

  • encoding: unused
  • decoding: set by user through AVOPtions (NO direct access)
attribute_deprecated AVFrame* AVCodecContext::coded_frame

the picture in the bitstream

  • encoding: Set by libavcodec.
  • decoding: unused
Deprecated:
use the quality factor packet side data instead
int AVCodecContext::coded_height
AVPacketSideData* AVCodecContext::coded_side_data

Additional data associated with the entire coded stream.

  • decoding: unused
  • encoding: may be set by libavcodec after avcodec_open2().
int AVCodecContext::coded_width

Bitstream width / height, may be different from width/height e.g. when the decoded frame is cropped before being output or lowres is enabled.

Note
Those field may not match the value of the last AVFrame output by avcodec_receive_frame() due frame reordering.
  • encoding: unused
  • decoding: May be set by the user before opening the decoder if known e.g. from the container. During decoding, the decoder may overwrite those values as required while parsing the data.
attribute_deprecated int AVCodecContext::coder_type
Deprecated:
use encoder private options instead
enum AVColorPrimaries AVCodecContext::color_primaries

Chromaticity coordinates of the source primaries.

  • encoding: Set by user
  • decoding: Set by libavcodec
enum AVColorRange AVCodecContext::color_range

MPEG vs JPEG YUV range.

  • encoding: Set by user
  • decoding: Set by libavcodec
enum AVColorTransferCharacteristic AVCodecContext::color_trc

Color Transfer Characteristic.

  • encoding: Set by user
  • decoding: Set by libavcodec
enum AVColorSpace AVCodecContext::colorspace

YUV colorspace type.

  • encoding: Set by user
  • decoding: Set by libavcodec
int AVCodecContext::compression_level
  • encoding: Set by user.
  • decoding: unused
attribute_deprecated int AVCodecContext::context_model
Deprecated:
use encoder private options instead
int AVCodecContext::cutoff

Audio cutoff bandwidth (0 means "automatic")

  • encoding: Set by user.
  • decoding: unused
float AVCodecContext::dark_masking

darkness masking (0-> disabled)

  • encoding: Set by user.
  • decoding: unused
int AVCodecContext::dct_algo

DCT algorithm, see FF_DCT_* below

  • encoding: Set by user.
  • decoding: unused
int AVCodecContext::debug

debug

  • encoding: Set by user.
  • decoding: Set by user.
int AVCodecContext::debug_mv

debug Code outside libavcodec should access this field using AVOptions

  • encoding: Set by user.
  • decoding: Set by user.
int AVCodecContext::delay

Codec delay.

Encoding: Number of frames delay there will be from the encoder input to the decoder output. (we assume the decoder matches the spec) Decoding: Number of frames delay in addition to what a standard decoder as specified in the spec would produce.

Video: Number of frames the decoded output will be delayed relative to the encoded input.

Audio: For encoding, this field is unused (see initial_padding).

For decoding, this is the number of samples the decoder needs to output before the decoder's output is valid. When seeking, you should start decoding this many samples prior to your desired seek point.

  • encoding: Set by libavcodec.
  • decoding: Set by libavcodec.
int AVCodecContext::dia_size

ME diamond size & shape

  • encoding: Set by user.
  • decoding: unused
void(* AVCodecContext::draw_horiz_band) (struct AVCodecContext *s, const AVFrame *src, int offset[AV_NUM_DATA_POINTERS], int y, int type, int height)

If non NULL, 'draw_horiz_band' is called by the libavcodec decoder to draw a horizontal band. It improves cache usage. Not all codecs can do that. You must check the codec capabilities beforehand. When multithreading is used, it may be called from multiple threads at the same time; threads might draw different parts of the same AVFrame, or multiple AVFrames, and there is no guarantee that slices will be drawn in order. The function is also used by hardware acceleration APIs. It is called at least once during frame decoding to pass the data needed for hardware render. In that mode instead of pixel data, AVFrame points to a structure specific to the acceleration API. The application reads the structure and can change some fields to indicate progress or mark state.

  • encoding: unused
  • decoding: Set by user.
    Parameters
    heightthe height of the slice
    ythe y position of the slice
    type1->top field, 2->bottom field, 3->frame
    offsetoffset into the AVFrame.data from which the slice should be read
attribute_deprecated int AVCodecContext::dtg_active_format

DTG active format information (additional aspect ratio information only used in DVB MPEG-2 transport streams) 0 if not set.

  • encoding: unused
  • decoding: Set by decoder.
    Deprecated:
    Deprecated in favor of AVSideData
uint8_t* AVCodecContext::dump_separator

dump format separator. can be ", " or "\n " or anything else Code outside libavcodec should access this field using AVOptions (NO direct access).

  • encoding: Set by user.
  • decoding: Set by user.
int AVCodecContext::err_recognition

Error recognition; may misdetect some more or less valid parts as errors.

  • encoding: unused
  • decoding: Set by user.
uint64_t AVCodecContext::error[AV_NUM_DATA_POINTERS]

error

  • encoding: Set by libavcodec if flags & AV_CODEC_FLAG_PSNR.
  • decoding: unused
int AVCodecContext::error_concealment

error concealment flags

  • encoding: unused
  • decoding: Set by user.
attribute_deprecated int AVCodecContext::error_rate
Deprecated:
use the 'error_rate' private AVOption of the mpegvideo encoders
int(* AVCodecContext::execute) (struct AVCodecContext *c, int(*func)(struct AVCodecContext *c2, void *arg), void *arg2, int *ret, int count, int size)

The codec may call this to execute several independent things. It will return only after finishing all tasks. The user may replace this with some multithreaded implementation, the default implementation will execute the parts serially.

Parameters
countthe number of things to execute
  • encoding: Set by libavcodec, user can override.
  • decoding: Set by libavcodec, user can override.
int(* AVCodecContext::execute2) (struct AVCodecContext *c, int(*func)(struct AVCodecContext *c2, void *arg, int jobnr, int threadnr), void *arg2, int *ret, int count)

The codec may call this to execute several independent things. It will return only after finishing all tasks. The user may replace this with some multithreaded implementation, the default implementation will execute the parts serially. Also see avcodec_thread_init and e.g. the –enable-pthread configure option.

Parameters
ccontext passed also to func
countthe number of things to execute
arg2argument passed unchanged to func
retreturn values of executed functions, must have space for "count" values. May be NULL.
funcfunction that will be called count times, with jobnr from 0 to count-1. threadnr will be in the range 0 to c->thread_count-1 < MAX_THREADS and so that no two instances of func executing at the same time will have the same threadnr.
Returns
always 0 currently, but code should handle a future improvement where when any call to func returns < 0 no further calls to func may be done and < 0 is returned.
  • encoding: Set by libavcodec, user can override.
  • decoding: Set by libavcodec, user can override.
uint8_t* AVCodecContext::extradata

some codecs need / can use extradata like Huffman tables. MJPEG: Huffman tables rv10: additional flags MPEG-4: global headers (they can be in the bitstream or here) The allocated memory should be AV_INPUT_BUFFER_PADDING_SIZE bytes larger than extradata_size to avoid problems if it is read with the bitstream reader. The bytewise contents of extradata must not depend on the architecture or CPU endianness.

  • encoding: Set/allocated/freed by libavcodec.
  • decoding: Set/allocated/freed by user.
int AVCodecContext::extradata_size
enum AVFieldOrder AVCodecContext::field_order

Field order

  • encoding: set by libavcodec
  • decoding: Set by user.
int AVCodecContext::flags

AV_CODEC_FLAG_*.

  • encoding: Set by user.
  • decoding: Set by user.
int AVCodecContext::flags2

AV_CODEC_FLAG2_*

  • encoding: Set by user.
  • decoding: Set by user.
attribute_deprecated int AVCodecContext::frame_bits
Deprecated:
this field is unused
int AVCodecContext::frame_number

Frame counter, set by libavcodec.

  • decoding: total number of frames returned from the decoder so far.
  • encoding: total number of frames passed to the encoder so far.

    Note
    the counter is not incremented if encoding/decoding resulted in an error.
int AVCodecContext::frame_size

Number of samples per channel in an audio frame.

  • encoding: set by libavcodec in avcodec_open2(). Each submitted frame except the last must contain exactly frame_size samples per channel. May be 0 when the codec has AV_CODEC_CAP_VARIABLE_FRAME_SIZE set, then the frame size is not restricted.
  • decoding: may be set by some decoders to indicate constant frame size
attribute_deprecated int AVCodecContext::frame_skip_cmp
Deprecated:
use encoder private options instead
attribute_deprecated int AVCodecContext::frame_skip_exp
Deprecated:
use encoder private options instead
attribute_deprecated int AVCodecContext::frame_skip_factor
Deprecated:
use encoder private options instead
attribute_deprecated int AVCodecContext::frame_skip_threshold
Deprecated:
use encoder private options instead
AVRational AVCodecContext::framerate
  • decoding: For codecs that store a framerate value in the compressed bitstream, the decoder may export it here. { 0, 1} when unknown.
  • encoding: May be used to signal the framerate of CFR content to an encoder.
int(* AVCodecContext::get_buffer2) (struct AVCodecContext *s, AVFrame *frame, int flags)

This callback is called at the beginning of each frame to get data buffer(s) for it. There may be one contiguous buffer for all the data or there may be a buffer per each data plane or anything in between. What this means is, you may set however many entries in buf[] you feel necessary. Each buffer must be reference-counted using the AVBuffer API (see description of buf[] below).

The following fields will be set in the frame before this callback is called:

  • format
  • width, height (video only)
  • sample_rate, channel_layout, nb_samples (audio only) Their values may differ from the corresponding values in AVCodecContext. This callback must use the frame values, not the codec context values, to calculate the required buffer size.

This callback must fill the following fields in the frame:

  • data[]
  • linesize[]
  • extended_data:
    • if the data is planar audio with more than 8 channels, then this callback must allocate and fill extended_data to contain all pointers to all data planes. data[] must hold as many pointers as it can. extended_data must be allocated with av_malloc() and will be freed in av_frame_unref().
    • otherwise extended_data must point to data
  • buf[] must contain one or more pointers to AVBufferRef structures. Each of the frame's data and extended_data pointers must be contained in these. That is, one AVBufferRef for each allocated chunk of memory, not necessarily one AVBufferRef per data[] entry. See: av_buffer_create(), av_buffer_alloc(), and av_buffer_ref().
  • extended_buf and nb_extended_buf must be allocated with av_malloc() by this callback and filled with the extra buffers if there are more buffers than buf[] can hold. extended_buf will be freed in av_frame_unref().

If AV_CODEC_CAP_DR1 is not set then get_buffer2() must call avcodec_default_get_buffer2() instead of providing buffers allocated by some other means.

Each data plane must be aligned to the maximum required by the target CPU.

See also
avcodec_default_get_buffer2()

Video:

If AV_GET_BUFFER_FLAG_REF is set in flags then the frame may be reused (read and/or written to if it is writable) later by libavcodec.

avcodec_align_dimensions2() should be used to find the required width and height, as they normally need to be rounded up to the next multiple of 16.

Some decoders do not support linesizes changing between frames.

If frame multithreading is used and thread_safe_callbacks is set, this callback may be called from a different thread, but not from more than one at once. Does not need to be reentrant.

See also
avcodec_align_dimensions2()

Audio:

Decoders request a buffer of a particular size by setting AVFrame.nb_samples prior to calling get_buffer2(). The decoder may, however, utilize only part of the buffer by setting AVFrame.nb_samples to a smaller value in the output frame.

As a convenience, av_samples_get_buffer_size() and av_samples_fill_arrays() in libavutil may be used by custom get_buffer2() functions to find the required data size and to fill data pointers and linesize. In AVFrame.linesize, only linesize[0] may be set for audio since all planes must be the same size.

See also
av_samples_get_buffer_size(), av_samples_fill_arrays()
  • encoding: unused
  • decoding: Set by libavcodec, user can override.
enum AVPixelFormat(* AVCodecContext::get_format) (struct AVCodecContext *s, const enum AVPixelFormat *fmt)

callback to negotiate the pixelFormat

Parameters
fmtis the list of formats which are supported by the codec, it is terminated by -1 as 0 is a valid format, the formats are ordered by quality. The first is always the native one.
Note
The callback may be called again immediately if initialization for the selected (hardware-accelerated) pixel format failed.
Warning
Behavior is undefined if the callback returns a value not in the fmt list of formats.
Returns
the chosen format
  • encoding: unused
  • decoding: Set by user, if not set the native format will be chosen.
int AVCodecContext::global_quality

Global quality for codecs which cannot change it per frame. This should be proportional to MPEG-1/2/4 qscale.

  • encoding: Set by user.
  • decoding: unused
int AVCodecContext::gop_size

the number of pictures in a group of pictures, or 0 for intra_only

  • encoding: Set by user.
  • decoding: unused
int AVCodecContext::has_b_frames

Size of the frame reordering buffer in the decoder. For MPEG-2 it is 1 IPB or 0 low delay IP.

  • encoding: Set by libavcodec.
  • decoding: Set by libavcodec.
attribute_deprecated int AVCodecContext::header_bits
int AVCodecContext::height
AVBufferRef* AVCodecContext::hw_frames_ctx

A reference to the AVHWFramesContext describing the input (for encoding) or output (decoding) frames. The reference is set by the caller and afterwards owned (and freed) by libavcodec.

struct AVHWAccel* AVCodecContext::hwaccel

Hardware accelerator in use

  • encoding: unused.
  • decoding: Set by libavcodec
void* AVCodecContext::hwaccel_context

Hardware accelerator context. For some hardware accelerators, a global context needs to be provided by the user. In that case, this holds display-dependent data FFmpeg cannot instantiate itself. Please refer to the FFmpeg HW accelerator documentation to know how to fill this is. e.g. for VA API, this is a struct vaapi_context.

  • encoding: unused
  • decoding: Set by user
attribute_deprecated int AVCodecContext::i_count
float AVCodecContext::i_quant_factor

qscale factor between P- and I-frames If > 0 then the last P-frame quantizer will be used (q = lastp_q * factor + offset). If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset).

  • encoding: Set by user.
  • decoding: unused
float AVCodecContext::i_quant_offset

qscale offset between P and I-frames

  • encoding: Set by user.
  • decoding: unused
attribute_deprecated int AVCodecContext::i_tex_bits
int AVCodecContext::idct_algo

IDCT algorithm, see FF_IDCT_* below.

  • encoding: Set by user.
  • decoding: Set by user.
int AVCodecContext::ildct_cmp

interlaced DCT comparison function

  • encoding: Set by user.
  • decoding: unused
int AVCodecContext::initial_padding

Audio only. The number of "priming" samples (padding) inserted by the encoder at the beginning of the audio. I.e. this number of leading decoded samples must be discarded by the caller to get the original audio without leading padding.

  • decoding: unused
  • encoding: Set by libavcodec. The timestamps on the output packets are adjusted by the encoder so that they always refer to the first sample of the data actually contained in the packet, including any added padding. E.g. if the timebase is 1/samplerate and the timestamp of the first input sample is 0, the timestamp of the first output packet will be -initial_padding.
uint16_t* AVCodecContext::inter_matrix

custom inter quantization matrix

  • encoding: Set by user, can be NULL.
  • decoding: Set by libavcodec.
attribute_deprecated int AVCodecContext::inter_quant_bias
Deprecated:
use encoder private option instead
struct AVCodecInternal* AVCodecContext::internal

Private context used for internal data.

Unlike priv_data, this is not codec-specific. It is used in general libavcodec functions.

int AVCodecContext::intra_dc_precision

precision of the intra DC coefficient - 8

  • encoding: Set by user.
  • decoding: Set by libavcodec
uint16_t* AVCodecContext::intra_matrix

custom intra quantization matrix

  • encoding: Set by user, can be NULL.
  • decoding: Set by libavcodec.
attribute_deprecated int AVCodecContext::intra_quant_bias
Deprecated:
use encoder private option instead
int AVCodecContext::keyint_min

minimum GOP size

  • encoding: Set by user.
  • decoding: unused
int AVCodecContext::last_predictor_count

amount of previous MV predictors (2a+1 x 2a+1 square)

  • encoding: Set by user.
  • decoding: unused
int AVCodecContext::level

level

  • encoding: Set by user.
  • decoding: Set by libavcodec.
attribute_deprecated int AVCodecContext::lmax
Deprecated:
use encoder private options instead
attribute_deprecated int AVCodecContext::lmin
Deprecated:
use encoder private options instead
int AVCodecContext::log_level_offset
int AVCodecContext::lowres

low resolution decoding, 1-> 1/2 size, 2->1/4 size

  • encoding: unused
  • decoding: Set by user. Code outside libavcodec should access this field using: av_codec_{get,set}_lowres(avctx)
float AVCodecContext::lumi_masking

luminance masking (0-> disabled)

  • encoding: Set by user.
  • decoding: unused
int AVCodecContext::max_b_frames

maximum number of B-frames between non-B-frames Note: The output will be delayed by max_b_frames+1 relative to the input.

  • encoding: Set by user.
  • decoding: unused
attribute_deprecated int AVCodecContext::max_prediction_order
Deprecated:
use encoder private options instead
int AVCodecContext::max_qdiff

maximum quantizer difference between frames

  • encoding: Set by user.
  • decoding: unused
int AVCodecContext::mb_cmp

macroblock comparison function (not supported yet)

  • encoding: Set by user.
  • decoding: unused
int AVCodecContext::mb_decision

macroblock decision mode

  • encoding: Set by user.
  • decoding: unused
int AVCodecContext::mb_lmax

maximum MB Lagrange multiplier

  • encoding: Set by user.
  • decoding: unused
int AVCodecContext::mb_lmin

minimum MB Lagrange multiplier

  • encoding: Set by user.
  • decoding: unused
attribute_deprecated int AVCodecContext::mb_threshold
Deprecated:
this field is unused
int AVCodecContext::me_cmp

motion estimation comparison function

  • encoding: Set by user.
  • decoding: unused
attribute_deprecated int AVCodecContext::me_method

This option does nothing

Deprecated:
use codec private options instead
attribute_deprecated int AVCodecContext::me_penalty_compensation
Deprecated:
use encoder private options instead
int AVCodecContext::me_pre_cmp

motion estimation prepass comparison function

  • encoding: Set by user.
  • decoding: unused
int AVCodecContext::me_range

maximum motion estimation search range in subpel units If 0 then no limit.

  • encoding: Set by user.
  • decoding: unused
int AVCodecContext::me_sub_cmp

subpixel motion estimation comparison function

  • encoding: Set by user.
  • decoding: unused
int AVCodecContext::me_subpel_quality

subpel ME quality

  • encoding: Set by user.
  • decoding: unused
attribute_deprecated int AVCodecContext::me_threshold
Deprecated:
this field is unused
attribute_deprecated int AVCodecContext::min_prediction_order
Deprecated:
use encoder private options instead
attribute_deprecated int AVCodecContext::misc_bits
attribute_deprecated int AVCodecContext::mpeg_quant
Deprecated:
use encoder private options instead
int AVCodecContext::mv0_threshold

Note: Value depends upon the compare function used for fullpel ME.

  • encoding: Set by user.
  • decoding: unused
attribute_deprecated int AVCodecContext::mv_bits
int AVCodecContext::nb_coded_side_data
attribute_deprecated int AVCodecContext::noise_reduction
Deprecated:
use encoder private options instead
int AVCodecContext::nsse_weight

noise vs. sse weight for the nsse comparison function

  • encoding: Set by user.
  • decoding: unused
void* AVCodecContext::opaque

Private data of the user, can be used to carry app specific stuff.

  • encoding: Set by user.
  • decoding: Set by user.
attribute_deprecated int AVCodecContext::p_count
float AVCodecContext::p_masking

p block masking (0-> disabled)

  • encoding: Set by user.
  • decoding: unused
attribute_deprecated int AVCodecContext::p_tex_bits
enum AVPixelFormat AVCodecContext::pix_fmt

Pixel format, see AV_PIX_FMT_xxx. May be set by the demuxer if known from headers. May be overridden by the decoder if it knows better.

Note
This field may not match the value of the last AVFrame output by avcodec_receive_frame() due frame reordering.
  • encoding: Set by user.
  • decoding: Set by user if known, overridden by libavcodec while parsing the data.
AVRational AVCodecContext::pkt_timebase

Timebase in which pkt_dts/pts and AVPacket.dts/pts are. Code outside libavcodec should access this field using: av_codec_{get,set}_pkt_timebase(avctx)

  • encoding unused.
  • decoding set by user.
int AVCodecContext::pre_dia_size

ME prepass diamond size & shape

  • encoding: Set by user.
  • decoding: unused
attribute_deprecated int AVCodecContext::pre_me
Deprecated:
use encoder private options instead
attribute_deprecated int AVCodecContext::prediction_method
Deprecated:
use encoder private options instead
void* AVCodecContext::priv_data
int AVCodecContext::profile

profile

  • encoding: Set by user.
  • decoding: Set by libavcodec.
unsigned AVCodecContext::properties
int64_t AVCodecContext::pts_correction_last_dts

PTS of the last frame.

int64_t AVCodecContext::pts_correction_last_pts

Number of incorrect DTS values so far.

int64_t AVCodecContext::pts_correction_num_faulty_dts

Number of incorrect PTS values so far.

int64_t AVCodecContext::pts_correction_num_faulty_pts

Current statistics for PTS correction.

  • decoding: maintained and used by libavcodec, not intended to be used by user apps
  • encoding: unused
float AVCodecContext::qblur

amount of qscale smoothing over time (0.0-1.0)

float AVCodecContext::qcompress

amount of qscale change between easy & hard scenes (0.0-1.0)

int AVCodecContext::qmax

maximum quantizer

  • encoding: Set by user.
  • decoding: unused
int AVCodecContext::qmin

minimum quantizer

  • encoding: Set by user.
  • decoding: unused
attribute_deprecated float AVCodecContext::rc_buffer_aggressivity
Deprecated:
use encoder private options instead
int AVCodecContext::rc_buffer_size

decoder bitstream buffer size

  • encoding: Set by user.
  • decoding: unused
attribute_deprecated const char* AVCodecContext::rc_eq
Deprecated:
use encoder private options instead
int AVCodecContext::rc_initial_buffer_occupancy

Number of bits which should be loaded into the rc buffer before decoding starts.

  • encoding: Set by user.
  • decoding: unused
attribute_deprecated float AVCodecContext::rc_initial_cplx
float AVCodecContext::rc_max_available_vbv_use

Ratecontrol attempt to use, at maximum,

of what can be used without an underflow.

  • encoding: Set by user.
  • decoding: unused.
int64_t AVCodecContext::rc_max_rate

maximum bitrate

  • encoding: Set by user.
  • decoding: Set by user, may be overwritten by libavcodec.
int64_t AVCodecContext::rc_min_rate

minimum bitrate

  • encoding: Set by user.
  • decoding: unused
float AVCodecContext::rc_min_vbv_overflow_use

Ratecontrol attempt to use, at least,

times the amount needed to prevent a vbv overflow.

  • encoding: Set by user.
  • decoding: unused.
RcOverride* AVCodecContext::rc_override
int AVCodecContext::rc_override_count

ratecontrol override, see RcOverride

  • encoding: Allocated/set/freed by user.
  • decoding: unused
attribute_deprecated float AVCodecContext::rc_qmod_amp
attribute_deprecated int AVCodecContext::rc_qmod_freq
attribute_deprecated float AVCodecContext::rc_qsquish
Deprecated:
use encoder private options instead
attribute_deprecated int AVCodecContext::rc_strategy
Deprecated:
use codec private option instead
int AVCodecContext::refcounted_frames

If non-zero, the decoded audio and video frames returned from avcodec_decode_video2() and avcodec_decode_audio4() are reference-counted and are valid indefinitely. The caller must free them with av_frame_unref() when they are not needed anymore. Otherwise, the decoded frames must not be freed by the caller and are only valid until the next decode call.

This is always automatically enabled if avcodec_receive_frame() is used.

int AVCodecContext::refs

number of reference frames

  • encoding: Set by user.
  • decoding: Set by lavc.
int64_t AVCodecContext::reordered_opaque

opaque 64-bit number (generally a PTS) that will be reordered and output in AVFrame.reordered_opaque

  • encoding: unused
  • decoding: Set by user.
uint64_t AVCodecContext::request_channel_layout

Request decoder to use this channel layout if it can (0 for default)

  • encoding: unused
  • decoding: Set by user.
enum AVSampleFormat AVCodecContext::request_sample_fmt

desired sample format

  • encoding: Not used.
  • decoding: Set by user. Decoder will decode to this format if it can.
attribute_deprecated void(* AVCodecContext::rtp_callback) (struct AVCodecContext *avctx, void *data, int size, int mb_nb)
Deprecated:
unused
attribute_deprecated int AVCodecContext::rtp_payload_size
Deprecated:
use encoder private options instead
AVRational AVCodecContext::sample_aspect_ratio

sample aspect ratio (0 if unknown) That is the width of a pixel divided by the height of the pixel. Numerator and denominator must be relatively prime and smaller than 256 for some video standards.

  • encoding: Set by user.
  • decoding: Set by libavcodec.
enum AVSampleFormat AVCodecContext::sample_fmt

sample format

audio sample format

  • encoding: Set by user.
  • decoding: Set by libavcodec.
int AVCodecContext::sample_rate

samples per second

attribute_deprecated int AVCodecContext::scenechange_factor

Multiplied by qscale for each frame and added to scene_change_score.

  • encoding: Set by user.
  • decoding: unused
attribute_deprecated int AVCodecContext::scenechange_threshold
Deprecated:
use encoder private options instead
int AVCodecContext::seek_preroll

Number of samples to skip after a discontinuity

  • decoding: unused
  • encoding: set by libavcodec
attribute_deprecated int AVCodecContext::side_data_only_packets

Encoding only and set by default. Allow encoders to output packets that do not contain any encoded data, only side data.

Some encoders need to output such packets, e.g. to update some stream parameters at the end of encoding.

Deprecated:
this field disables the default behaviour and it is kept only for compatibility.
int AVCodecContext::skip_alpha

Skip processing alpha if supported by codec. Note that if the format uses pre-multiplied alpha (common with VP6, and recommended due to better video quality/compression) the image will look as if alpha-blended onto a black background. However for formats that do not use pre-multiplied alpha there might be serious artefacts (though e.g. libswscale currently assumes pre-multiplied alpha anyway). Code outside libavcodec should access this field using AVOptions

  • decoding: set by user
  • encoding: unused
int AVCodecContext::skip_bottom

Number of macroblock rows at the bottom which are skipped.

  • encoding: unused
  • decoding: Set by user.
attribute_deprecated int AVCodecContext::skip_count
enum AVDiscard AVCodecContext::skip_frame

Skip decoding for selected frames.

  • encoding: unused
  • decoding: Set by user.
enum AVDiscard AVCodecContext::skip_idct

Skip IDCT/dequantization for selected frames.

  • encoding: unused
  • decoding: Set by user.
enum AVDiscard AVCodecContext::skip_loop_filter

Skip loop filtering for selected frames.

  • encoding: unused
  • decoding: Set by user.
int AVCodecContext::skip_top

Number of macroblock rows at the top which are skipped.

  • encoding: unused
  • decoding: Set by user.
int AVCodecContext::slice_count

slice count

  • encoding: Set by libavcodec.
  • decoding: Set by user (or 0).
int AVCodecContext::slice_flags

slice flags

  • encoding: unused
  • decoding: Set by user.
int* AVCodecContext::slice_offset

slice offsets in the frame in bytes

  • encoding: Set/allocated by libavcodec.
  • decoding: Set/allocated by user (or NULL).
int AVCodecContext::slices

Number of slices. Indicates number of picture subdivisions. Used for parallelized decoding.

  • encoding: Set by user
  • decoding: unused
float AVCodecContext::spatial_cplx_masking

spatial complexity masking (0-> disabled)

  • encoding: Set by user.
  • decoding: unused
char* AVCodecContext::stats_in

pass2 encoding statistics input buffer Concatenated stuff from stats_out of pass1 should be placed here.

  • encoding: Allocated/set/freed by user.
  • decoding: unused
char* AVCodecContext::stats_out

pass1 encoding statistics output buffer

  • encoding: Set by libavcodec.
  • decoding: unused
attribute_deprecated unsigned int AVCodecContext::stream_codec_tag
Deprecated:
this field is unused
int AVCodecContext::strict_std_compliance

strictly follow the standard (MPEG-4, ...).

  • encoding: Set by user.
  • decoding: Set by user. Setting this to STRICT or higher means the encoder and decoder will generally do stupid things, whereas setting it to unofficial or lower will mean the encoder might produce output that is not supported by all spec-compliant decoders. Decoders don't differentiate between normal, unofficial and experimental (that is, they always try to decode things when they can) unless they are explicitly asked to behave stupidly (=strictly conform to the specs)
char* AVCodecContext::sub_charenc

DTS of the last frame.

Character encoding of the input subtitles file.

  • decoding: set by user
  • encoding: unused
int AVCodecContext::sub_charenc_mode

Subtitles character encoding mode. Formats or codecs might be adjusting this setting (if they are doing the conversion themselves for instance).

  • decoding: set by libavcodec
  • encoding: unused
int AVCodecContext::sub_text_format

Control the form of AVSubtitle.rects[N]->ass

  • decoding: set by user
  • encoding: unused
uint8_t* AVCodecContext::subtitle_header

Header containing style information for text subtitles. For SUBTITLE_ASS subtitle type, it should contain the whole ASS [Script Info] and [V4+ Styles] section, plus the [Events] line and the Format line following. It shouldn't include any Dialogue line.

int AVCodecContext::subtitle_header_size
enum AVPixelFormat AVCodecContext::sw_pix_fmt

Nominal unaccelerated pixel format, see AV_PIX_FMT_xxx.

  • encoding: unused.
  • decoding: Set by libavcodec before calling get_format()
float AVCodecContext::temporal_cplx_masking

temporary complexity masking (0-> disabled)

  • encoding: Set by user.
  • decoding: unused
int AVCodecContext::thread_count

thread count is used to decide how many independent tasks should be passed to execute()

  • encoding: Set by user.
  • decoding: Set by user.
int AVCodecContext::thread_safe_callbacks

Set by the client if its custom get_buffer() callback can be called synchronously from another thread, which allows faster multithreaded decoding. draw_horiz_band() will be called from other threads regardless of this setting. Ignored if the default get_buffer() is used.

  • encoding: Set by user.
  • decoding: Set by user.
int AVCodecContext::thread_type

Which multithreading methods to use. Use of FF_THREAD_FRAME will increase decoding delay by one frame per thread, so clients which cannot provide future frames should not use it.

  • encoding: Set by user, otherwise the default is used.
  • decoding: Set by user, otherwise the default is used.
int AVCodecContext::ticks_per_frame

For some codecs, the time base is closer to the field rate than the frame rate. Most notably, H.264 and MPEG-2 specify time_base as half of frame duration if no telecine is used ...

Set to time_base ticks per frame. Default 1, e.g., H.264/MPEG-2 set it to 2.

AVRational AVCodecContext::time_base

This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented. For fixed-fps content, timebase should be 1/framerate and timestamp increments should be identically 1. This often, but not always is the inverse of the frame rate or field rate for video. 1/time_base is not the average frame rate if the frame rate is not constant.

Like containers, elementary streams also can store timestamps, 1/time_base is the unit in which these timestamps are specified. As example of such codec time base see ISO/IEC 14496-2:2001(E) vop_time_increment_resolution and fixed_vop_rate (fixed_vop_rate == 0 implies that it is different from the framerate)

  • encoding: MUST be set by user.
  • decoding: the use of this field for decoding is deprecated. Use framerate instead.
attribute_deprecated int64_t AVCodecContext::timecode_frame_start
Deprecated:
use encoder private options instead
int AVCodecContext::trailing_padding

Audio only. The amount of padding (in samples) appended by the encoder to the end of the audio. I.e. this number of decoded samples must be discarded by the caller from the end of the stream to get the original audio without any trailing padding.

  • decoding: unused
  • encoding: unused
int AVCodecContext::trellis

trellis RD quantization

  • encoding: Set by user.
  • decoding: unused
attribute_deprecated uint64_t AVCodecContext::vbv_delay

VBV delay coded in the last frame (in periods of a 27 MHz clock). Used for compliant TS muxing.

  • encoding: Set by libavcodec.
  • decoding: unused.
    Deprecated:
    this value is now exported as a part of AV_PKT_DATA_CPB_PROPERTIES packet side data
int AVCodecContext::width

picture width / height.

Note
Those fields may not match the values of the last AVFrame output by avcodec_decode_video2 due frame reordering.
  • encoding: MUST be set by user.
  • decoding: May be set by the user before opening the decoder if known e.g. from the container. Some decoders will require the dimensions to be set by the caller. During decoding, the decoder may overwrite those values as required while parsing the data.
int AVCodecContext::workaround_bugs

Work around bugs in encoders which sometimes cannot be detected automatically.

  • encoding: Set by user
  • decoding: Set by user
attribute_deprecated int AVCodecContext::xvmc_acceleration

XVideo Motion Acceleration

  • encoding: forbidden
  • decoding: set by decoder
    Deprecated:
    XvMC doesn't need it anymore.

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