#[cfg(feature = "aiff")]
mod aiff;
#[cfg(feature = "aiff")]
mod aiff_output;
#[cfg(feature = "caf")]
mod caf;
#[cfg(feature = "caf")]
mod caf_output;
mod config;
mod convenience;
mod crc;
mod decode;
mod decode_output;
mod encode_pipeline;
mod encoder;
mod error;
mod input;
mod md5;
mod metadata;
mod model;
mod pcm;
mod plan;
mod progress;
mod raw;
mod read;
mod recompress;
mod reconstruct;
mod stream_info;
mod wav_input;
mod wav_output;
mod write;
pub mod level;
pub mod builtin {
pub use crate::convenience::{
decode_bytes, decode_file, encode_bytes, encode_file, inspect_flac_total_samples,
inspect_pcm_total_samples, inspect_raw_pcm_total_samples, recompress_bytes,
recompress_file,
};
}
#[cfg(feature = "aiff")]
pub use aiff::{AiffPcmDescriptor, AiffPcmStream, AiffReader};
#[cfg(feature = "caf")]
pub use caf::{CafPcmStream, CafReader};
pub use config::{DecodeBuilder, DecodeConfig, EncoderBuilder, EncoderConfig};
pub use decode::{DecodeSummary, Decoder};
pub use encoder::{EncodeSummary, Encoder};
pub use error::{Error, Result};
pub use input::{
EncodePcmStream, EncodeSource, PcmReader, PcmSpec, PcmSpec as PcmStreamSpec, PcmStream,
};
pub use metadata::Metadata;
pub use pcm::PcmContainer;
pub use raw::{
RawPcmByteOrder, RawPcmDescriptor, RawPcmReader, RawPcmStream, inspect_raw_pcm_total_samples,
};
pub use read::{
DecodePcmStream, DecodeSource, FlacPcmStream, FlacPcmStreamBuilder, FlacReader,
FlacReaderOptions, read_flac_reader, read_flac_reader_with_options,
};
pub use recompress::{
FlacRecompressSource, RecompressBuilder, RecompressConfig, RecompressMode, RecompressSummary,
Recompressor,
};
pub use stream_info::StreamInfo;
pub use wav_input::{WavPcmStream, WavPcmStreamBuilder, WavReader, WavReaderOptions};
#[cfg(feature = "progress")]
pub use recompress::{RecompressPhase, RecompressProgress};
pub use input::inspect_wav_total_samples as inspect_pcm_total_samples;
pub use read::inspect_flac_total_samples;
pub fn write_pcm_stream<W: std::io::Write>(
writer: &mut W,
stream: &PcmStream,
container: PcmContainer,
) -> Result<()> {
wav_output::write_wav_with_metadata_and_md5_with_options(
writer,
stream.spec,
&stream.samples,
&metadata::Metadata::default(),
wav_output::WavMetadataWriteOptions {
emit_fxmd: false,
container,
},
)?;
Ok(())
}
pub mod core {
#[cfg(feature = "aiff")]
pub use crate::{AiffPcmDescriptor, AiffPcmStream, AiffReader};
#[cfg(feature = "caf")]
pub use crate::{CafPcmStream, CafReader};
pub use crate::{
DecodeBuilder, DecodeConfig, DecodePcmStream, DecodeSource, DecodeSummary, Decoder,
EncodePcmStream, EncodeSource, EncodeSummary, Encoder, EncoderBuilder, EncoderConfig,
FlacPcmStream, FlacPcmStreamBuilder, FlacReader, FlacReaderOptions, Metadata, PcmContainer,
PcmReader, PcmStream, PcmStreamSpec, RawPcmByteOrder, RawPcmDescriptor, RawPcmReader,
RawPcmStream, RecompressBuilder, RecompressConfig, RecompressMode, Recompressor,
StreamInfo, inspect_pcm_total_samples, inspect_raw_pcm_total_samples, read_flac_reader,
read_flac_reader_with_options, write_pcm_stream,
};
pub use crate::{WavPcmStream, WavPcmStreamBuilder, WavReader, WavReaderOptions};
#[cfg(feature = "progress")]
pub use crate::{RecompressPhase, RecompressProgress};
#[cfg(feature = "progress")]
pub use crate::{DecodeProgress, EncodeProgress, ProgressSnapshot};
}
#[cfg(feature = "progress")]
pub use progress::{DecodeProgress, EncodeProgress, ProgressSnapshot};
#[doc(hidden)]
pub fn __set_encode_profile_path_for_current_thread(path: Option<std::path::PathBuf>) {
encode_pipeline::set_encode_profile_path_for_current_thread(path);
}
#[doc(hidden)]
pub fn __set_decode_profile_path_for_current_thread(path: Option<std::path::PathBuf>) {
read::set_decode_profile_path_for_current_thread(path);
}
#[cfg(not(feature = "progress"))]
#[doc = r#"```compile_fail
use flacx::EncodeProgress;
fn main() {}
```"#]
#[doc(hidden)]
pub struct _ProgressTypeFeatureDisabledDoc;
#[cfg(not(feature = "progress"))]
#[doc = r#"```compile_fail
use flacx::{EncoderConfig, PcmReader};
fn main() {
let input = std::io::Cursor::new(Vec::<u8>::new());
let reader = PcmReader::new(input).unwrap();
let source = reader.into_source();
let output = std::io::Cursor::new(Vec::<u8>::new());
let mut encoder = EncoderConfig::default().into_encoder(output);
let _ = encoder.encode_source_with_progress(source, |_| Ok(()));
}
```"#]
#[doc(hidden)]
pub struct _ProgressMethodFeatureDisabledDoc;
#[cfg(not(feature = "progress"))]
#[doc = r#"```compile_fail
use flacx::{DecodeConfig, read_flac_reader};
fn main() {
let input = std::io::Cursor::new(Vec::<u8>::new());
let reader = read_flac_reader(input).unwrap();
let source = reader.into_decode_source();
let output = std::io::Cursor::new(Vec::<u8>::new());
let mut decoder = DecodeConfig::default().into_decoder(output);
let _ = decoder.decode_source_with_progress(source, |_| Ok(()));
}
```"#]
#[doc(hidden)]
pub struct _ProgressDecodeMethodFeatureDisabledDoc;