use kithara_stream::AudioCodec;
#[must_use]
pub fn codec_priming_frames(codec: AudioCodec) -> u64 {
match codec {
AudioCodec::Mp3 => 1105,
AudioCodec::Opus => 312,
AudioCodec::AacLc
| AudioCodec::AacHe
| AudioCodec::AacHeV2
| AudioCodec::Vorbis
| AudioCodec::Flac
| AudioCodec::Alac
| AudioCodec::Pcm
| AudioCodec::Adpcm => 0,
}
}
#[cfg(test)]
mod tests {
use kithara_test_utils::kithara;
use super::*;
#[kithara::test]
#[case::aac_lc_in_container(AudioCodec::AacLc, 0)]
#[case::aac_he_in_container(AudioCodec::AacHe, 0)]
#[case::aac_he_v2_in_container(AudioCodec::AacHeV2, 0)]
#[case::mp3_lame_default(AudioCodec::Mp3, 1105)]
#[case::opus_standard_preskip(AudioCodec::Opus, 312)]
#[case::flac_no_priming(AudioCodec::Flac, 0)]
#[case::alac_no_priming(AudioCodec::Alac, 0)]
#[case::pcm_no_priming(AudioCodec::Pcm, 0)]
#[case::adpcm_no_priming(AudioCodec::Adpcm, 0)]
#[case::vorbis_no_priming(AudioCodec::Vorbis, 0)]
fn codec_priming_matches_documented_defaults(
#[case] codec: AudioCodec,
#[case] expected_frames: u64,
) {
assert_eq!(codec_priming_frames(codec), expected_frames);
}
}