pub enum OggVorbisMode {
OriginalStreamCompatible = 1,
HaveIndependentHeader = 2,
HaveNoCodebookHeader = 3,
NakedVorbis = 4,
}
Expand description
- OggVorbis encoder mode
Variants§
OriginalStreamCompatible = 1
- Please use this mode, it works well because it just uses the WAV
data
chunk to encapsulate the whole Ogg Vorbis audio stream.
HaveIndependentHeader = 2
- This mode works on some players. It separates the Ogg Vorbis header into the
fmt
chunk extension data. - Some players with the Ogg Vorbis decoder for the WAV file may fail because the header is separated.
HaveNoCodebookHeader = 3
- Please don’t use this mode. The encoder strips the Ogg Vorbis header in this mode, and to decode it, the decoder should use another encoder to create an Ogg Vorbis header for the audio stream to be decoded.
- What if the decoder has a different version of
libvorbis
, the header info is misaligned to the audio body, then BAM, it’s unable to play. - I’m still wondering why the Japanese developer invented this mode. to reduce the audio file size? Or to use the
fmt
chunk info to create the header? - The result is that you can’t control the bitrate, thus the file would be very large at full bitrate settings by default.
NakedVorbis = 4
- Another mode that exists but doesn’t work.
- The naked Vorbis audio without Ogg encapsulation, invented by the author of FFmpeg? I guess.
- Without the Ogg packet header
granule position
field,libvorbis
is unable to decode it correctly. - The decoder will try to fake the Ogg encapsulation, and if you are lucky enough, it still has some chance to decode correctly.
- BTW. FFmpeg can encode audio into this format, but can’t decode it correctly.
Trait Implementations§
Source§impl Clone for OggVorbisMode
impl Clone for OggVorbisMode
Source§fn clone(&self) -> OggVorbisMode
fn clone(&self) -> OggVorbisMode
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for OggVorbisMode
impl Debug for OggVorbisMode
Source§impl Default for OggVorbisMode
impl Default for OggVorbisMode
Source§fn default() -> OggVorbisMode
fn default() -> OggVorbisMode
Returns the “default value” for a type. Read more
Source§impl PartialEq for OggVorbisMode
impl PartialEq for OggVorbisMode
impl Copy for OggVorbisMode
impl StructuralPartialEq for OggVorbisMode
Auto Trait Implementations§
impl Freeze for OggVorbisMode
impl RefUnwindSafe for OggVorbisMode
impl Send for OggVorbisMode
impl Sync for OggVorbisMode
impl Unpin for OggVorbisMode
impl UnwindSafe for OggVorbisMode
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