#[repr(C)]pub struct AVCodecInternal {Show 34 fields
pub is_copy: c_int,
pub allocate_progress: c_int,
pub last_audio_frame: c_int,
pub to_free: *mut AVFrame,
pub pool: *mut FramePool,
pub thread_ctx: *mut c_void,
pub ds: DecodeSimpleContext,
pub filter: DecodeFilterContext,
pub last_pkt_props: *mut AVPacket,
pub byte_buffer: *mut u8,
pub byte_buffer_size: c_uint,
pub frame_thread_encoder: *mut c_void,
pub skip_samples: c_int,
pub hwaccel_priv_data: *mut c_void,
pub draining: c_int,
pub buffer_pkt: *mut AVPacket,
pub buffer_pkt_valid: c_int,
pub buffer_frame: *mut AVFrame,
pub draining_done: c_int,
pub compat_decode: c_int,
pub compat_decode_warned: c_int,
pub compat_decode_consumed: usize,
pub compat_decode_partial_size: usize,
pub compat_decode_frame: *mut AVFrame,
pub showed_multi_packet_warning: c_int,
pub skip_samples_multiplier: c_int,
pub nb_draining_errors: c_int,
pub changed_frames_dropped: c_int,
pub initial_format: c_int,
pub initial_width: c_int,
pub initial_height: c_int,
pub initial_sample_rate: c_int,
pub initial_channels: c_int,
pub initial_channel_layout: u64,
}Expand description
@}
Fields§
§is_copy: c_intWhether the parent AVCodecContext is a copy of the context which had init() called on it. This is used by multithreading - shared tables and picture pointers should be freed from the original context only.
allocate_progress: c_intWhether to allocate progress for frame threading.
The codec must set it to 1 if it uses ff_thread_await/report_progress(), then progress will be allocated in ff_thread_get_buffer(). The frames then MUST be freed with ff_thread_release_buffer().
If the codec does not need to call the progress functions (there are no dependencies between the frames), it should leave this at 0. Then it can decode straight to the user-provided frames (which the user will then free with av_frame_unref()), there is no need to call ff_thread_release_buffer().
last_audio_frame: c_intAn audio frame with less than required samples has been submitted and padded with silence. Reject all subsequent frames.
to_free: *mut AVFrame§pool: *mut FramePool§thread_ctx: *mut c_void§ds: DecodeSimpleContext§filter: DecodeFilterContext§last_pkt_props: *mut AVPacketProperties (timestamps+side data) extracted from the last packet passed for decoding.
byte_buffer: *mut u8temporary buffer used for encoders to store their bitstream
byte_buffer_size: c_uint§frame_thread_encoder: *mut c_void§skip_samples: c_intNumber of audio samples to skip at the start of the next decoded frame
hwaccel_priv_data: *mut c_voidhwaccel-specific private data
draining: c_intchecks API usage: after codec draining, flush is required to resume operation
buffer_pkt: *mut AVPacketbuffers for using new encode/decode API through legacy API
buffer_pkt_valid: c_int§buffer_frame: *mut AVFrame§draining_done: c_int§compat_decode: c_int§compat_decode_warned: c_int§compat_decode_consumed: usize§compat_decode_partial_size: usize§compat_decode_frame: *mut AVFrame§showed_multi_packet_warning: c_int§skip_samples_multiplier: c_int§nb_draining_errors: c_int§changed_frames_dropped: c_int§initial_format: c_int§initial_width: c_int§initial_height: c_int§initial_sample_rate: c_int§initial_channels: c_int§initial_channel_layout: u64Trait Implementations§
Source§impl Clone for AVCodecInternal
impl Clone for AVCodecInternal
Source§fn clone(&self) -> AVCodecInternal
fn clone(&self) -> AVCodecInternal
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more