Struct rsmpeg::ffi::AVIOContext[][src]

#[repr(C)]
pub struct AVIOContext {
Show fields pub av_class: *const AVClass, pub buffer: *mut u8, pub buffer_size: i32, pub buf_ptr: *mut u8, pub buf_end: *mut u8, pub opaque: *mut c_void, pub read_packet: Option<unsafe extern "C" fn(*mut c_void, *mut u8, i32) -> i32>, pub write_packet: Option<unsafe extern "C" fn(*mut c_void, *mut u8, i32) -> i32>, pub seek: Option<unsafe extern "C" fn(*mut c_void, i64, i32) -> i64>, pub pos: i64, pub eof_reached: i32, pub write_flag: i32, pub max_packet_size: i32, pub checksum: u64, pub checksum_ptr: *mut u8, pub update_checksum: Option<unsafe extern "C" fn(u64, *const u8, u32) -> u64>, pub error: i32, pub read_pause: Option<unsafe extern "C" fn(*mut c_void, i32) -> i32>, pub read_seek: Option<unsafe extern "C" fn(*mut c_void, i32, i64, i32) -> i64>, pub seekable: i32, pub maxsize: i64, pub direct: i32, pub bytes_read: i64, pub seek_count: i32, pub writeout_count: i32, pub orig_buffer_size: i32, pub short_seek_threshold: i32, pub protocol_whitelist: *const i8, pub protocol_blacklist: *const i8, pub write_data_type: Option<unsafe extern "C" fn(*mut c_void, *mut u8, i32, u32, i64) -> i32>, pub ignore_boundary_point: i32, pub current_type: u32, pub last_time: i64, pub short_seek_get: Option<unsafe extern "C" fn(*mut c_void) -> i32>, pub written: i64, pub buf_ptr_max: *mut u8, pub min_packet_size: i32,
}
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
Expand description

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 u8
Expand description

< Start of the buffer.

buffer_size: i32
Expand description

< Maximum buffer size

buf_ptr: *mut u8
Expand description

< Current position in the buffer

buf_end: *mut u8
Expand description

< 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
Expand description

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

read_packet: Option<unsafe extern "C" fn(*mut c_void, *mut u8, i32) -> i32>write_packet: Option<unsafe extern "C" fn(*mut c_void, *mut u8, i32) -> i32>seek: Option<unsafe extern "C" fn(*mut c_void, i64, i32) -> i64>pos: i64
Expand description

< position in the file of the current buffer

eof_reached: i32
Expand description

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

write_flag: i32
Expand description

< true if open for writing

max_packet_size: i32checksum: u64checksum_ptr: *mut u8update_checksum: Option<unsafe extern "C" fn(u64, *const u8, u32) -> u64>error: i32
Expand description

< contains the error code or 0 if no error happened

read_pause: Option<unsafe extern "C" fn(*mut c_void, i32) -> i32>
Expand description

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

read_seek: Option<unsafe extern "C" fn(*mut c_void, i32, i64, i32) -> i64>
Expand description

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: i32
Expand description

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

maxsize: i64
Expand description

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

direct: i32
Expand description

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
Expand description

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

seek_count: i32
Expand description

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

writeout_count: i32
Expand description

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

orig_buffer_size: i32
Expand description

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: i32
Expand description

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

protocol_whitelist: *const i8
Expand description

‘,’ separated list of allowed protocols.

protocol_blacklist: *const i8
Expand description

‘,’ separated list of disallowed protocols.

write_data_type: Option<unsafe extern "C" fn(*mut c_void, *mut u8, i32, u32, i64) -> i32>
Expand description

A callback that is used instead of write_packet.

ignore_boundary_point: i32
Expand description

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: u32
Expand description

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

last_time: i64short_seek_get: Option<unsafe extern "C" fn(*mut c_void) -> i32>
Expand description

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

written: i64buf_ptr_max: *mut u8
Expand description

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: i32
Expand description

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

Trait Implementations

impl Clone for AVIOContext[src]

pub fn clone(&self) -> AVIOContext[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for AVIOContext[src]

pub fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>[src]

Formats the value using the given formatter. Read more

impl Copy for AVIOContext[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

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

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.