#[repr(C)]pub struct AVIOContext {Show 29 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, *const u8, i32) -> i32>,
pub seek: Option<unsafe extern "C" fn(*mut c_void, i64, i32) -> i64>,
pub pos: i64,
pub eof_reached: i32,
pub error: i32,
pub write_flag: i32,
pub max_packet_size: i32,
pub min_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 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 direct: i32,
pub protocol_whitelist: *const i8,
pub protocol_blacklist: *const i8,
pub write_data_type: Option<unsafe extern "C" fn(*mut c_void, *const u8, i32, u32, i64) -> i32>,
pub ignore_boundary_point: i32,
pub buf_ptr_max: *mut u8,
pub bytes_read: i64,
pub bytes_written: i64,
}
Expand description
Bytestream IO Context. New public fields can be added with minor version bumps. Removal, reordering and changes to existing public 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 u8
< Start of the buffer.
buffer_size: i32
< Maximum buffer size
buf_ptr: *mut u8
< Current position in the buffer
buf_end: *mut u8
< 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(*mut c_void, *mut u8, i32) -> i32>
§write_packet: Option<unsafe extern "C" fn(*mut c_void, *const u8, i32) -> i32>
§seek: Option<unsafe extern "C" fn(*mut c_void, i64, i32) -> i64>
§pos: i64
< position in the file of the current buffer
eof_reached: i32
< true if was unable to read due to error or eof
error: i32
< contains the error code or 0 if no error happened
write_flag: i32
< true if open for writing
max_packet_size: i32
§min_packet_size: i32
< Try to buffer at least this amount of data before flushing it.
checksum: u64
§checksum_ptr: *mut u8
§update_checksum: Option<unsafe extern "C" fn(u64, *const u8, u32) -> u64>
§read_pause: Option<unsafe extern "C" fn(*mut c_void, i32) -> i32>
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>
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
A combination of AVIO_SEEKABLE_ flags or 0 when the stream is not seekable.
direct: i32
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.
protocol_whitelist: *const i8
‘,’ separated list of allowed protocols.
protocol_blacklist: *const i8
‘,’ separated list of disallowed protocols.
write_data_type: Option<unsafe extern "C" fn(*mut c_void, *const u8, i32, u32, i64) -> i32>
A callback that is used instead of write_packet.
ignore_boundary_point: i32
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).
buf_ptr_max: *mut u8
Maximum reached position before a backward seek in the write buffer, used keeping track of already written data for a later flush.
bytes_read: i64
Read-only statistic of bytes read for this AVIOContext.
bytes_written: i64
Read-only statistic of bytes written for this AVIOContext.
Trait Implementations§
Source§impl Clone for AVIOContext
impl Clone for AVIOContext
Source§fn clone(&self) -> AVIOContext
fn clone(&self) -> AVIOContext
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more