Miam-Player  0.8.0
A nice music player
AVIOContext Struct Reference

#include <avio.h>

Public Attributes

const AVClassav_class
 
unsigned char * buffer
 
int buffer_size
 
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)
 
int64_t(* seek )(void *opaque, int64_t offset, int whence)
 
int64_t pos
 
int must_flush
 
int eof_reached
 
int write_flag
 
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
 
int(* read_pause )(void *opaque, int pause)
 
int64_t(* read_seek )(void *opaque, int stream_index, int64_t timestamp, int flags)
 
int seekable
 
int64_t maxsize
 
int direct
 
int64_t bytes_read
 
int seek_count
 
int writeout_count
 
int orig_buffer_size
 
int short_seek_threshold
 
const char * protocol_whitelist
 
const char * protocol_blacklist
 
int(* write_data_type )(void *opaque, uint8_t *buf, int buf_size, enum AVIODataMarkerType type, int64_t time)
 
int ignore_boundary_point
 
enum AVIODataMarkerType current_type
 
int64_t last_time
 

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()

Member Data 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.

◆ 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.

◆ buf_ptr

unsigned char* AVIOContext::buf_ptr

Current position in the buffer

◆ buffer

unsigned char* AVIOContext::buffer

Start of the buffer.

◆ buffer_size

int AVIOContext::buffer_size

Maximum buffer size

◆ bytes_read

int64_t AVIOContext::bytes_read

Bytes read statistic This field is internal to libavformat and access from outside is not allowed.

◆ checksum

unsigned long AVIOContext::checksum

◆ checksum_ptr

unsigned char* AVIOContext::checksum_ptr

◆ current_type

enum AVIODataMarkerType AVIOContext::current_type

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

◆ direct

int AVIOContext::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.

◆ eof_reached

int AVIOContext::eof_reached

true if eof reached

◆ error

int AVIOContext::error

contains the error code or 0 if no error happened

◆ 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).

◆ last_time

int64_t AVIOContext::last_time

◆ max_packet_size

int AVIOContext::max_packet_size

◆ maxsize

int64_t AVIOContext::maxsize

max filesize, used to limit allocations This field is internal to libavformat and access from outside is not allowed.

◆ must_flush

int AVIOContext::must_flush

true if the next seek should flush

◆ opaque

void* AVIOContext::opaque

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

◆ orig_buffer_size

int AVIOContext::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.

◆ pos

int64_t AVIOContext::pos

position in the file of the current buffer

◆ protocol_blacklist

const char* AVIOContext::protocol_blacklist

',' separated list of disallowed protocols.

◆ protocol_whitelist

const char* AVIOContext::protocol_whitelist

',' separated list of allowed protocols.

◆ read_packet

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

◆ read_pause

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

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

◆ 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.

◆ seek

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

◆ seek_count

int AVIOContext::seek_count

seek statistic This field is internal to libavformat and access from outside is not allowed.

◆ seekable

int AVIOContext::seekable

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

◆ short_seek_threshold

int AVIOContext::short_seek_threshold

Threshold to favor readahead over seek. This is current internal only, do not use from outside.

◆ update_checksum

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

◆ 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.

◆ write_flag

int AVIOContext::write_flag

true if open for writing

◆ write_packet

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

◆ writeout_count

int AVIOContext::writeout_count

writeout statistic This field is internal to libavformat and access from outside is not allowed.


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