Struct divans::DivansCodec [−][src]
pub struct DivansCodec<ArithmeticCoder: ArithmeticEncoderOrDecoder, Specialization: EncoderOrDecoderSpecialization, LinearInputBytes: StreamDemuxer<AllocU8> + ThreadToMain<AllocU8>, LinearOutputBytes: StreamMuxer<AllocU8> + Default, Cdf16: CDF16, AllocU8: Allocator<u8>, AllocCDF16: Allocator<Cdf16>> { pub cross_command_state: CrossCommandState<ArithmeticCoder, Specialization, LinearInputBytes, LinearOutputBytes, Cdf16, AllocU8, AllocCDF16>, // some fields omitted }
Fields
cross_command_state: CrossCommandState<ArithmeticCoder, Specialization, LinearInputBytes, LinearOutputBytes, Cdf16, AllocU8, AllocCDF16>
Methods
impl<AllocU8: Allocator<u8>, ArithmeticCoder: ArithmeticEncoderOrDecoder + NewWithAllocator<AllocU8>, Specialization: EncoderOrDecoderSpecialization, LinearInputBytes: StreamDemuxer<AllocU8> + ThreadToMain<AllocU8>, LinearOutputBytes: StreamMuxer<AllocU8> + Default, Cdf16: CDF16, AllocCDF16: Allocator<Cdf16>> DivansCodec<ArithmeticCoder, Specialization, LinearInputBytes, LinearOutputBytes, Cdf16, AllocU8, AllocCDF16>
[src]
impl<AllocU8: Allocator<u8>, ArithmeticCoder: ArithmeticEncoderOrDecoder + NewWithAllocator<AllocU8>, Specialization: EncoderOrDecoderSpecialization, LinearInputBytes: StreamDemuxer<AllocU8> + ThreadToMain<AllocU8>, LinearOutputBytes: StreamMuxer<AllocU8> + Default, Cdf16: CDF16, AllocCDF16: Allocator<Cdf16>> DivansCodec<ArithmeticCoder, Specialization, LinearInputBytes, LinearOutputBytes, Cdf16, AllocU8, AllocCDF16>
pub fn new(
m8: AllocU8,
mcdf16: AllocCDF16,
cmd_coder: ArithmeticCoder,
lit_coder: ArithmeticCoder,
specialization: Specialization,
linear_input_bytes: LinearInputBytes,
ring_buffer_size: usize,
dynamic_context_mixing: u8,
prior_depth: Option<u8>,
literal_adaptation_rate: Option<[Speed; 4]>,
do_context_map: bool,
force_stride: StrideSelection,
skip_checksum: bool
) -> Self
[src]
pub fn new(
m8: AllocU8,
mcdf16: AllocCDF16,
cmd_coder: ArithmeticCoder,
lit_coder: ArithmeticCoder,
specialization: Specialization,
linear_input_bytes: LinearInputBytes,
ring_buffer_size: usize,
dynamic_context_mixing: u8,
prior_depth: Option<u8>,
literal_adaptation_rate: Option<[Speed; 4]>,
do_context_map: bool,
force_stride: StrideSelection,
skip_checksum: bool
) -> Self
pub fn join<AllocCommand: Allocator<StaticCommand>>(
&mut self,
decoder: DivansDecoderCodec<Cdf16, AllocU8, AllocCDF16, AllocCommand, ArithmeticCoder, Mux<AllocU8>>,
mcommand: &mut AllocCommand
)
[src]
pub fn join<AllocCommand: Allocator<StaticCommand>>(
&mut self,
decoder: DivansDecoderCodec<Cdf16, AllocU8, AllocCDF16, AllocCommand, ArithmeticCoder, Mux<AllocU8>>,
mcommand: &mut AllocCommand
)
pub fn fork<AllocCommand: Allocator<StaticCommand>>(
&mut self,
mcommand: &mut AllocCommand
) -> DivansDecoderCodec<Cdf16, AllocU8, AllocCDF16, AllocCommand, ArithmeticCoder, Mux<AllocU8>>
[src]
pub fn fork<AllocCommand: Allocator<StaticCommand>>(
&mut self,
mcommand: &mut AllocCommand
) -> DivansDecoderCodec<Cdf16, AllocU8, AllocCDF16, AllocCommand, ArithmeticCoder, Mux<AllocU8>>
ⓘImportant traits for &'a mut Ipub fn demuxer(&mut self) -> &mut LinearInputBytes
[src]
ⓘImportant traits for &'a mut I
pub fn demuxer(&mut self) -> &mut LinearInputBytes
pub fn free(self) -> (AllocU8, AllocCDF16)
[src]
pub fn free(self) -> (AllocU8, AllocCDF16)
pub fn free_ref(&mut self)
[src]
pub fn free_ref(&mut self)
ⓘImportant traits for &'a mut Ipub fn get_coder(&self, index: StreamID) -> &ArithmeticCoder
[src]
ⓘImportant traits for &'a mut I
pub fn get_coder(&self, index: StreamID) -> &ArithmeticCoder
ⓘImportant traits for &'a mut Ipub fn coder_mut(&mut self, index: StreamID) -> &mut ArithmeticCoder
[src]
ⓘImportant traits for &'a mut I
pub fn coder_mut(&mut self, index: StreamID) -> &mut ArithmeticCoder
pub fn get_m8(&mut self) -> Option<&mut RepurposingAlloc<u8, AllocU8>>
[src]
pub fn get_m8(&mut self) -> Option<&mut RepurposingAlloc<u8, AllocU8>>
ⓘImportant traits for &'a mut Ipub fn specialization(&mut self) -> &mut Specialization
[src]
ⓘImportant traits for &'a mut I
pub fn specialization(&mut self) -> &mut Specialization
pub fn get_crc(&mut self) -> &mut SubDigest
[src]
pub fn get_crc(&mut self) -> &mut SubDigest
pub fn flush(
&mut self,
output_bytes: &mut [u8],
output_bytes_offset: &mut usize
) -> DivansOutputResult
[src]
pub fn flush(
&mut self,
output_bytes: &mut [u8],
output_bytes_offset: &mut usize
) -> DivansOutputResult
pub fn encode_or_decode<Commands: CommandArray>(
&mut self,
input_bytes: &[u8],
input_bytes_offset: &mut usize,
output_bytes: &mut [u8],
output_bytes_offset: &mut usize,
input_commands: &Commands,
input_command_offset: &mut usize
) -> DivansResult
[src]
pub fn encode_or_decode<Commands: CommandArray>(
&mut self,
input_bytes: &[u8],
input_bytes_offset: &mut usize,
output_bytes: &mut [u8],
output_bytes_offset: &mut usize,
input_commands: &Commands,
input_command_offset: &mut usize
) -> DivansResult
Auto Trait Implementations
impl<ArithmeticCoder, Specialization, LinearInputBytes, LinearOutputBytes, Cdf16, AllocU8, AllocCDF16> Send for DivansCodec<ArithmeticCoder, Specialization, LinearInputBytes, LinearOutputBytes, Cdf16, AllocU8, AllocCDF16> where
AllocCDF16: Send,
AllocU8: Send,
ArithmeticCoder: Send,
LinearInputBytes: Send,
LinearOutputBytes: Send,
Specialization: Send,
<AllocCDF16 as Allocator<Cdf16>>::AllocatedMemory: Send,
<AllocU8 as Allocator<u8>>::AllocatedMemory: Send,
impl<ArithmeticCoder, Specialization, LinearInputBytes, LinearOutputBytes, Cdf16, AllocU8, AllocCDF16> Send for DivansCodec<ArithmeticCoder, Specialization, LinearInputBytes, LinearOutputBytes, Cdf16, AllocU8, AllocCDF16> where
AllocCDF16: Send,
AllocU8: Send,
ArithmeticCoder: Send,
LinearInputBytes: Send,
LinearOutputBytes: Send,
Specialization: Send,
<AllocCDF16 as Allocator<Cdf16>>::AllocatedMemory: Send,
<AllocU8 as Allocator<u8>>::AllocatedMemory: Send,
impl<ArithmeticCoder, Specialization, LinearInputBytes, LinearOutputBytes, Cdf16, AllocU8, AllocCDF16> Sync for DivansCodec<ArithmeticCoder, Specialization, LinearInputBytes, LinearOutputBytes, Cdf16, AllocU8, AllocCDF16> where
AllocCDF16: Sync,
AllocU8: Sync,
ArithmeticCoder: Sync,
LinearInputBytes: Sync,
LinearOutputBytes: Sync,
Specialization: Sync,
<AllocCDF16 as Allocator<Cdf16>>::AllocatedMemory: Sync,
<AllocU8 as Allocator<u8>>::AllocatedMemory: Sync,
impl<ArithmeticCoder, Specialization, LinearInputBytes, LinearOutputBytes, Cdf16, AllocU8, AllocCDF16> Sync for DivansCodec<ArithmeticCoder, Specialization, LinearInputBytes, LinearOutputBytes, Cdf16, AllocU8, AllocCDF16> where
AllocCDF16: Sync,
AllocU8: Sync,
ArithmeticCoder: Sync,
LinearInputBytes: Sync,
LinearOutputBytes: Sync,
Specialization: Sync,
<AllocCDF16 as Allocator<Cdf16>>::AllocatedMemory: Sync,
<AllocU8 as Allocator<u8>>::AllocatedMemory: Sync,