AVIOContext Struct Reference

Bytestream IO Context. More...

#include <avio.h>

Data Fields

const AVClassav_class
 A class for private options. More...
 
unsigned char * buffer
 Start of the buffer. More...
 
int buffer_size
 Maximum buffer size. More...
 
unsigned char * buf_ptr
 Current position in the buffer. More...
 
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. More...
 
void * opaque
 A private pointer, passed to the read/write/seek/... More...
 
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 More...
 
int must_flush
 true if the next seek should flush More...
 
int eof_reached
 true if eof reached More...
 
int write_flag
 true if open for writing More...
 
int max_packet_size
 
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 More...
 
int(* read_pause )(void *opaque, int pause)
 Pause or resume playback for network streaming protocols - e.g. More...
 
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. More...
 
int seekable
 A combination of AVIO_SEEKABLE_ flags or 0 when the stream is not seekable. More...
 
int(* write_data_type )(void *opaque, uint8_t *buf, int buf_size, enum AVIODataMarkerType type, int64_t time)
 A callback that is used instead of write_packet. More...
 
int ignore_boundary_point
 If set, don't call write_data_type separately for AVIO_DATA_MARKER_BOUNDARY_POINT, but ignore them and treat them as AVIO_DATA_MARKER_UNKNOWN (to avoid needlessly small chunks of data returned from the callback). More...
 
enum AVIODataMarkerType current_type
 Internal, not meant to be used from outside of AVIOContext. More...
 
int64_t last_time
 
int64_t written
 

Detailed Description

Bytestream IO Context.

New fields can be added to the end with minor version bumps. Removal, reordering and changes to existing fields require a major version bump. sizeof(AVIOContext) must not be used outside libav*.

Note
None of the function pointers in AVIOContext should be called directly, they should only be set by the client application when implementing custom I/O. Normally these are set to the function pointers specified in avio_alloc_context()
Examples:
transcode_aac.c.

Definition at line 111 of file avio.h.

Field Documentation

◆ av_class

const AVClass* AVIOContext::av_class

A class for private options.

If this AVIOContext is created by avio_open2(), av_class is set and passes the options down to protocols.

If this AVIOContext is manually allocated, then av_class may be set by the caller.

warning – this field can be NULL, be sure to not pass this AVIOContext to any av_opt_* functions in that case.

Definition at line 124 of file avio.h.

◆ buffer

unsigned char* AVIOContext::buffer

Start of the buffer.

Definition at line 125 of file avio.h.

◆ buffer_size

int AVIOContext::buffer_size

Maximum buffer size.

Definition at line 126 of file avio.h.

◆ buf_ptr

unsigned char* AVIOContext::buf_ptr

Current position in the buffer.

Definition at line 127 of file avio.h.

◆ buf_end

unsigned char* AVIOContext::buf_end

End of the data, may be less than buffer+buffer_size if the read function returned less data than requested, e.g.

for streams where no more data has been received yet.

Definition at line 128 of file avio.h.

◆ opaque

void* AVIOContext::opaque

A private pointer, passed to the read/write/seek/...

functions.

Definition at line 132 of file avio.h.

◆ read_packet

int(* AVIOContext::read_packet) (void *opaque, uint8_t *buf, int buf_size)

Definition at line 134 of file avio.h.

◆ write_packet

int(* AVIOContext::write_packet) (void *opaque, uint8_t *buf, int buf_size)

Definition at line 135 of file avio.h.

◆ seek

int64_t(* AVIOContext::seek) (void *opaque, int64_t offset, int whence)

Definition at line 136 of file avio.h.

◆ pos

int64_t AVIOContext::pos

position in the file of the current buffer

Definition at line 137 of file avio.h.

◆ must_flush

int AVIOContext::must_flush

true if the next seek should flush

Definition at line 138 of file avio.h.

◆ eof_reached

int AVIOContext::eof_reached

true if eof reached

Definition at line 139 of file avio.h.

◆ write_flag

int AVIOContext::write_flag

true if open for writing

Definition at line 140 of file avio.h.

◆ max_packet_size

int AVIOContext::max_packet_size

Definition at line 141 of file avio.h.

◆ checksum

unsigned long AVIOContext::checksum

Definition at line 142 of file avio.h.

◆ checksum_ptr

unsigned char* AVIOContext::checksum_ptr

Definition at line 143 of file avio.h.

◆ update_checksum

unsigned long(* AVIOContext::update_checksum) (unsigned long checksum, const uint8_t *buf, unsigned int size)

Definition at line 144 of file avio.h.

◆ error

int AVIOContext::error

contains the error code or 0 if no error happened

Definition at line 145 of file avio.h.

◆ read_pause

int(* AVIOContext::read_pause) (void *opaque, int pause)

Pause or resume playback for network streaming protocols - e.g.

MMS.

Definition at line 149 of file avio.h.

◆ read_seek

int64_t(* AVIOContext::read_seek) (void *opaque, int stream_index, int64_t timestamp, int flags)

Seek to a given timestamp in stream with the specified stream_index.

Needed for some network streaming protocols which don't support seeking to byte position.

Definition at line 155 of file avio.h.

◆ seekable

int AVIOContext::seekable

A combination of AVIO_SEEKABLE_ flags or 0 when the stream is not seekable.

Definition at line 160 of file avio.h.

◆ write_data_type

int(* AVIOContext::write_data_type) (void *opaque, uint8_t *buf, int buf_size, enum AVIODataMarkerType type, int64_t time)

A callback that is used instead of write_packet.

Definition at line 165 of file avio.h.

◆ ignore_boundary_point

int AVIOContext::ignore_boundary_point

If set, don't call write_data_type separately for AVIO_DATA_MARKER_BOUNDARY_POINT, but ignore them and treat them as AVIO_DATA_MARKER_UNKNOWN (to avoid needlessly small chunks of data returned from the callback).

Definition at line 172 of file avio.h.

◆ current_type

enum AVIODataMarkerType AVIOContext::current_type

Internal, not meant to be used from outside of AVIOContext.

Definition at line 177 of file avio.h.

◆ last_time

int64_t AVIOContext::last_time

Definition at line 178 of file avio.h.

◆ written

int64_t AVIOContext::written

Definition at line 179 of file avio.h.


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