pub struct FmtChunk {
pub format_tag: u16,
pub channels: u16,
pub sample_rate: u32,
pub byte_rate: u32,
pub block_align: u16,
pub bits_per_sample: u16,
pub extension: Option<FmtExtension>,
}
Expand description
- The
fmt
chunk for the WAV file.
Fields§
§format_tag: u16
§channels: u16
- Num channels
sample_rate: u32
- Sample rate. It’s actually
frame_rate
because it’s the rate of how frequently the audio frames are played. - Each audio frame contains samples for each channel. For example, your audio file has two samples, which means an audio frame is two samples for each channel.
- For another example, if the sample rate is 44100, but the channels are 2, it plays 88200 samples per second.
byte_rate: u32
- How many bytes are to be played in a second. This field is important because lots of audio players use this field to calculate the playback progress.
block_align: u16
- Block size. For PCM, it’s sample size in bytes times to channel number. For non-PCM, it’s the block size for the audio blocks.
- The block size field is for quickly
seek()
the audio file.
bits_per_sample: u16
- For PCM, this indicates how many bits are in a sample. For non-PCM, this field is either zero or some other meaningful value for the encoded format.
extension: Option<FmtExtension>
- The extension block for the
fmt
chunk, its type depends on theformat_tag
value.
Implementations§
Source§impl FmtChunk
impl FmtChunk
pub fn new() -> Self
pub fn read( reader: &mut impl Reader, chunk_size: u32, ) -> Result<Self, AudioReadError>
pub fn write(&self, writer: &mut dyn Writer) -> Result<(), AudioWriteError>
pub fn get_sample_format(&self) -> SampleFormat
pub fn get_sample_type(&self) -> WaveSampleType
Trait Implementations§
Auto Trait Implementations§
impl Freeze for FmtChunk
impl RefUnwindSafe for FmtChunk
impl Send for FmtChunk
impl Sync for FmtChunk
impl Unpin for FmtChunk
impl UnwindSafe for FmtChunk
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more