AVRational time_base: frames per sec
int sample_rate: samples per sec
int channels: number of channels
For a full list (this thing is huge), see http://www.irisa.fr/texmex/people/dufouil/ffmpegdoxy/structAVCodecContext.html Many of the options are used mostly for encoding rather than decoding.
const AVClass * av_class
AVInputFormat * iformat
AVOutputFormat * oformat
void * priv_data:
ByteIOContext pb: ByteIOContext of the file, used for the low level file manipulation
unsigned int nb_streams: Number of streams in the file
AVStream * streams [MAX_STREAMS]: Stream data for each stream is stored here.
char filename : duh
char title :
char author :
char copyright :
char comment :
char album :
char genre :
Any of AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_SHOW_IDS, AVFMT_RAWPICTURE, AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_GENERIC_INDEX AVPacketList * packet_buffer: This buffer is only needed when packets were already buffered but not decoded, for example to get the codec parameters in mpeg streams
int64_t start_time: decoding: position of the first frame of the component, in AV_TIME_BASE fractional seconds. NEVER set this value directly: it is deduced from the AVStream values.
int64_t duration: decoding: duration of the stream, in AV_TIME_BASE fractional seconds. NEVER set this value directly: it is deduced from the AVStream values.
int64_t file_size: total file size, 0 if unknown
int bit_rate: decoding: total stream bitrate in bit/s, 0 if not available. Never set it directly if the file_size and the duration are known as ffmpeg can compute it automatically.
AVStream * cur_st
const uint8_t * cur_ptr
int index_built: offset of the first packet
int loop_output: number of times to loop output in formats that support it
unsigned int probesize: decoding: size of data to probe; encoding unused
int max_analyze_duration: maximum duration in AV_TIME_BASE units over which the input should be analyzed in av_find_stream_info()
const uint8_t * key:
const AVClass * av_class
A class for private options.
unsigned char * buffer Start of the buffer.
int buffer_size Maximum buffer size.
unsigned char * buf_ptr Current position in the buffer.
unsigned char * buf_end End of the data, may be less than buffer+buffer_size if the read function returned less data than requested, e.g.
void * opaque A private pointer, passed to the read/write/seek/...
int(* read_packet )(void *opaque, uint8_t *buf, int buf_size)
int(* write_packet )(void *opaque, uint8_t *buf, int buf_size)
int64_t(* seek )(void *opaque, int64_t offset, int whence)
int64_t pos position in the file of the current buffer
int must_flush true if the next seek should flush
int eof_reached true if eof reached
int write_flag true if open for writing
unsigned long checksum
unsigned char * checksum_ptr
unsigned long(* update_checksum )(unsigned long checksum, const uint8_t *buf, unsigned int size)
int error contains the error code or 0 if no error happened
int(* read_pause )(void *opaque, int pause) Pause or resume playback for network streaming protocols - e.g.
int64_t(* read_seek )(void *opaque, int stream_index, int64_t timestamp, int flags) Seek to a given timestamp in stream with the specified stream_index.
int seekable A combination of AVIO_SEEKABLE_ flags or 0 when the stream is not seekable.
int64_t maxsize max filesize, used to limit allocations This field is internal to libavformat and access from outside is not allowed.
int direct avio_read and avio_write should if possible be satisfied directly instead of going through a buffer, and avio_seek will always call the underlying seek function directly.
int64_t bytes_read Bytes read statistic This field is internal to libavformat and access from outside is not allowed.
int seek_count seek statistic This field is internal to libavformat and access from outside is not allowed.
int writeout_count writeout statistic This field is internal to libavformat and access from outside is not allowed.
int orig_buffer_size Original buffer size used internally after probing and ensure seekback to reset the buffer size This field is internal to libavformat and access from outside is not allowed.
int linesize: Stride information
int64_t pts: This is not the pts you want when decoding.
void *opaque: User-defined data
int repeat_pict: Indicates we should repeat this picture this number of times
int64_t pts: presentation time stamp in time_base units
int64_t dts: decompression time stamp in time_base units
uint8_t * data: the raw data
int size: size of data
int stream_index: the stream it came from, based on the number in the AVFormatContext
int flags: set to PKT_FLAG_KEY if packet is a key frame
int duration: presentation duration in time_base units (0 if not available)
void(* destruct )(struct AVPacket *): deallocation function for this packet (defaults to av_destruct_packet)
void * priv:
int64_t pos: byte position in stream, -1 if unknown
AVPacketList * next
uint8_t * data 
int linesize : number of bytes per line
int den: denominator
AVCodecContext * codec:
void * priv_data:
enum AVDiscard discard: selects which packets can be discarded at will and dont need to be demuxed
char language :
int need_parsing: 1->full parsing needed, 2->only parse headers dont repack
AVCodecParserContext * parser:
AVIndexEntry * index_entries:
unsigned int index_entries_allocated_size:
int64_t nb_frames: number of frames in this stream if known or 0
int64_t pts_buffer [MAX_REORDER_DELAY+1]:
unsigned char * buffer:
unsigned char * buf_ptr:
unsigned char * buf_end:
void * opaque:
int(* read_packet )(void *opaque, uint8_t *buf, int buf_size):
int(* write_packet )(void *opaque, uint8_t *buf, int buf_size):
offset_t(* seek )(void *opaque, offset_t offset, int whence):
unsigned long checksum:
unsigned char * checksum_ptr:
unsigned long(* update_checksum )(unsigned long checksum,:
const uint8_t *buf, unsigned int size):
int error: contains the error code or 0 if no error happened
freq: Audio frequency in samples per second
format: Audio data format
channels: Number of channels: 1 mono, 2 stereo, 4 surround, 6 surround with center and lfe
silence: Audio buffer silence value (calculated)
samples: Audio buffer size in samples
size: Audio buffer size in bytes (calculated)
callback(..): Callback function for filling the audio buffer
userdata: Pointer the user data which is passed to the callback function
The following format values are acceptable:
AUDIO_U8 Unsigned 8-bit samples.
AUDIO_S8 Signed 8-bit samples.
AUDIO_U16 or AUDIO_U16LSB not supported by all hardware (unsigned 16-bit little-endian)
AUDIO_S16 or AUDIO_S16LSBnot supported by all hardware (signed 16-bit little-endian)
AUDIO_U16MSB not supported by all hardware (unsigned 16-bit big-endian)
AUDIO_S16MSBnot supported by all hardware (signed 16-bit big-endian)
AUDIO_U16SYS Either AUDIO_U16LSB or AUDIO_U16MSB depending on hardware CPU endianness
AUDIO_S16SYS Either AUDIO_S16LSB or AUDIO_S16MSB depending on hardware CPU endianness
type: The type of event
active: Activation event (see SDL_ActiveEvent)
key: Keyboard event (see SDL_KeyboardEvent)
motion: Mouse motion event (see SDL_MouseMotionEvent)
button: Mouse button event (see SDL_MouseButtonEvent)
jaxis: Joystick axis motion event (see SDL_JoyAxisEvent)
jball: Joystick trackball motion event (see SDL_JoyBallEvent)
jhat: Joystick hat motion event (see SDL_JoyHatEvent)
jbutton: Joystick button event (see SDL_JoyButtonEvent)
resize: Application window resize event (see SDL_ResizeEvent)
expose: Application window expose event (see SDL_ExposeEvent)
quit: Application quit request event (see SDL_QuitEvent)
user: User defined event (see SDL_UserEvent)
syswm: Undefined window manager event (see SDL_SysWMEvent)
Here are the event types. See the SDL documentation for more info:
format: Overlay format (see below)
w, h: Width and height of overlay
planes: Number of planes in the overlay. Usually either 1 or 3
pitches: An array of pitches, one for each plane. Pitch is the length of a row in bytes.
pixels: An array of pointers to the data of each plane. The overlay be locked before these pointers are used.
hw_overlay: This will be set to 1 if the overlay is hardware accelerated.
Sint16 x, y Uint16 w, h
x, y: Position of the upper-left corner of the rectangle w, h: The width and height of the rectangle
A SDL_Rect defines a rectangular area of pixels. It is used by SDL_BlitSurface to define blitting regions and by several other video functions.
Uint32 flags (Read-only): Surface flags
SDL_PixelFormat *format (Read-only)
int w, h (Read-only): Width and height
Uint16 pitch (Read-only): stride
void *pixels (Read-write): pointer to actual pixel data
SDL_Rect clip_rect (Read-only): Surface clip rectangle
int refcount (Read-mostly): used for mem allocation
This structure also contains private fields not shown here.
An SDL_Surface represents an area of "graphical" memory, memory that can be drawn to. The video framebuffer is returned as a SDL_Surface by SDL_SetVideoMode and SDL_GetVideoSurface. The w and h fields are values representing the width and height of the surface in pixels. The pixels field is a pointer to the actual pixel data. Note: the surface should be locked (via SDL_LockSurface) before accessing this field. The clip_rect field is the clipping rectangle as set by SDL_SetClipRect.
The flags field supports the following OR-ed values:
SDL_SWSURFACE Surface is stored in system memory
SDL_HWSURFACE Surface is stored in video memory
SDL_ASYNCBLIT Surface uses asynchronous blits if possible
SDL_ANYFORMAT Allows any pixel-format (Display surface)
SDL_HWPALETTE Surface has exclusive palette
SDL_DOUBLEBUF Surface is double buffered (Display surface)
SDL_FULLSCREEN Surface is full screen (Display Surface)
SDL_OPENGL Surface has an OpenGL context (Display Surface)
SDL_OPENGLBLIT Surface supports OpenGL blitting (Display Surface). NOTE: This option is kept for compatibility only, and is not recommended for new code.
SDL_RESIZABLE Surface is resizable (Display Surface)
SDL_HWACCEL Surface blit uses hardware acceleration
SDL_SRCCOLORKEY Surface use colorkey blitting
SDL_RLEACCEL Colorkey blitting is accelerated with RLE
SDL_SRCALPHA Surface blit uses alpha blending
SDL_PREALLOC Surface uses preallocated memory