ff_encode/video/builder/
audio.rs1use super::VideoEncoderBuilder;
4use crate::AudioCodec;
5
6impl VideoEncoderBuilder {
7 #[must_use]
9 pub fn audio(mut self, sample_rate: u32, channels: u32) -> Self {
10 self.audio_sample_rate = Some(sample_rate);
11 self.audio_channels = Some(channels);
12 self
13 }
14
15 #[must_use]
17 pub fn audio_codec(mut self, codec: AudioCodec) -> Self {
18 self.audio_codec = codec;
19 self.audio_codec_explicit = true;
20 self
21 }
22
23 #[must_use]
25 pub fn audio_bitrate(mut self, bitrate: u64) -> Self {
26 self.audio_bitrate = Some(bitrate);
27 self
28 }
29}
30
31#[cfg(test)]
32mod tests {
33 use super::*;
34 use std::path::PathBuf;
35
36 #[test]
37 fn builder_audio_settings_should_be_stored() {
38 let builder = VideoEncoderBuilder::new(PathBuf::from("output.mp4"))
39 .audio(48000, 2)
40 .audio_codec(AudioCodec::Aac)
41 .audio_bitrate(192_000);
42 assert_eq!(builder.audio_sample_rate, Some(48000));
43 assert_eq!(builder.audio_channels, Some(2));
44 assert_eq!(builder.audio_codec, AudioCodec::Aac);
45 assert_eq!(builder.audio_bitrate, Some(192_000));
46 }
47}