flexaudio_encode/lib.rs
1//! flexaudio-encode — 録音チャンクを逐次 FLAC ファイルへ圧縮保存するアドオン。
2//!
3//! `flexaudio-core` には依存せず、interleaved `&[f32]` のサンプル列だけを受け取る。
4//! エンコードは純 Rust の flacenc で行うので、システムライブラリも実行時ネットワークも
5//! 要らない。長時間録音を WAV のまま置くとギガバイト級になるところを、可逆のまま
6//! おおむね半分前後まで圧縮できる(例: 3 時間の会議録音 WAV 約 2GB → FLAC 数百 MB)。
7//!
8//! チャンクを受け取るたびにブロック単位でエンコードしてファイルへ流すため、録音の
9//! 長さに関係なくメモリ使用量は一定。ストリーム情報(総サンプル数・MD5 など)は
10//! [`FlacWriter::finalize`] でヘッダに書き戻して確定する。
11//!
12//! # 例
13//! ```no_run
14//! use flexaudio_encode::FlacWriter;
15//!
16//! // flexaudio の正規形 (48kHz / stereo) をそのまま渡す想定。
17//! let mut writer = FlacWriter::create("meeting.flac", 48_000, 2).unwrap();
18//! for chunk in some_audio_chunks() {
19//! writer.write_chunk(chunk).unwrap();
20//! }
21//! writer.finalize().unwrap();
22//! # fn some_audio_chunks() -> Vec<&'static [f32]> { vec![] }
23//! ```
24
25#![warn(missing_docs)]
26
27mod error;
28mod writer;
29
30pub use error::{EncodeError, Result};
31pub use writer::FlacWriter;