Struct ffmpeg_sys_the_third::AVIOContext

source ·
#[repr(C)]
pub struct AVIOContext {
Show 37 fields pub av_class: *const AVClass, pub buffer: *mut c_uchar, pub buffer_size: c_int, pub buf_ptr: *mut c_uchar, pub buf_end: *mut c_uchar, pub opaque: *mut c_void, pub read_packet: Option<unsafe extern "C" fn(opaque: *mut c_void, buf: *mut u8, buf_size: c_int) -> c_int>, pub write_packet: Option<unsafe extern "C" fn(opaque: *mut c_void, buf: *mut u8, buf_size: c_int) -> c_int>, pub seek: Option<unsafe extern "C" fn(opaque: *mut c_void, offset: i64, whence: c_int) -> i64>, pub pos: i64, pub eof_reached: c_int, pub write_flag: c_int, pub max_packet_size: c_int, pub checksum: c_ulong, pub checksum_ptr: *mut c_uchar, pub update_checksum: Option<unsafe extern "C" fn(checksum: c_ulong, buf: *const u8, size: c_uint) -> c_ulong>, pub error: c_int, pub read_pause: Option<unsafe extern "C" fn(opaque: *mut c_void, pause: c_int) -> c_int>, pub read_seek: Option<unsafe extern "C" fn(opaque: *mut c_void, stream_index: c_int, timestamp: i64, flags: c_int) -> i64>, pub seekable: c_int, pub maxsize: i64, pub direct: c_int, pub bytes_read: i64, pub seek_count: c_int, pub writeout_count: c_int, pub orig_buffer_size: c_int, pub short_seek_threshold: c_int, pub protocol_whitelist: *const c_char, pub protocol_blacklist: *const c_char, pub write_data_type: Option<unsafe extern "C" fn(opaque: *mut c_void, buf: *mut u8, buf_size: c_int, type_: AVIODataMarkerType, time: i64) -> c_int>, pub ignore_boundary_point: c_int, pub current_type: AVIODataMarkerType, pub last_time: i64, pub short_seek_get: Option<unsafe extern "C" fn(opaque: *mut c_void) -> c_int>, pub written: i64, pub buf_ptr_max: *mut c_uchar, pub min_packet_size: c_int,
}
Expand 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()

Fields§

§av_class: *const AVClass

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.

§buffer: *mut c_uchar

< Start of the buffer.

§buffer_size: c_int

< Maximum buffer size

§buf_ptr: *mut c_uchar

< Current position in the buffer

§buf_end: *mut c_uchar

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

§opaque: *mut c_void

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

§read_packet: Option<unsafe extern "C" fn(opaque: *mut c_void, buf: *mut u8, buf_size: c_int) -> c_int>§write_packet: Option<unsafe extern "C" fn(opaque: *mut c_void, buf: *mut u8, buf_size: c_int) -> c_int>§seek: Option<unsafe extern "C" fn(opaque: *mut c_void, offset: i64, whence: c_int) -> i64>§pos: i64

< position in the file of the current buffer

§eof_reached: c_int

< true if was unable to read due to error or eof

§write_flag: c_int

< true if open for writing

§max_packet_size: c_int§checksum: c_ulong§checksum_ptr: *mut c_uchar§update_checksum: Option<unsafe extern "C" fn(checksum: c_ulong, buf: *const u8, size: c_uint) -> c_ulong>§error: c_int

< contains the error code or 0 if no error happened

§read_pause: Option<unsafe extern "C" fn(opaque: *mut c_void, pause: c_int) -> c_int>

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

§read_seek: Option<unsafe extern "C" fn(opaque: *mut c_void, stream_index: c_int, timestamp: i64, flags: c_int) -> i64>

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.

§seekable: c_int

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

§maxsize: i64

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

§direct: c_int

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.

§bytes_read: i64

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

§seek_count: c_int

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

§writeout_count: c_int

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

§orig_buffer_size: c_int

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.

§short_seek_threshold: c_int

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

§protocol_whitelist: *const c_char

‘,’ separated list of allowed protocols.

§protocol_blacklist: *const c_char

‘,’ separated list of disallowed protocols.

§write_data_type: Option<unsafe extern "C" fn(opaque: *mut c_void, buf: *mut u8, buf_size: c_int, type_: AVIODataMarkerType, time: i64) -> c_int>

A callback that is used instead of write_packet.

§ignore_boundary_point: c_int

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

§current_type: AVIODataMarkerType

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

§last_time: i64§short_seek_get: Option<unsafe extern "C" fn(opaque: *mut c_void) -> c_int>

A callback that is used instead of short_seek_threshold. This is current internal only, do not use from outside.

§written: i64§buf_ptr_max: *mut c_uchar

Maximum reached position before a backward seek in the write buffer, used keeping track of already written data for a later flush.

§min_packet_size: c_int

Try to buffer at least this amount of data before flushing it

Trait Implementations§

source§

impl Clone for AVIOContext

source§

fn clone(&self) -> AVIOContext

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for AVIOContext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for AVIOContext

source§

fn eq(&self, other: &AVIOContext) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for AVIOContext

source§

impl Eq for AVIOContext

source§

impl StructuralPartialEq for AVIOContext

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.