use ff_format::NetworkOptions;
use super::VideoDecoderBuilder;
impl VideoDecoderBuilder {
#[must_use]
pub fn frame_rate(mut self, fps: u32) -> Self {
self.frame_rate = Some(fps);
self
}
#[must_use]
pub fn network(mut self, opts: NetworkOptions) -> Self {
self.network_opts = Some(opts);
self
}
}
#[cfg(test)]
mod tests {
use super::*;
use std::path::PathBuf;
#[test]
fn builder_frame_rate_should_set_fps() {
let builder =
VideoDecoderBuilder::new(PathBuf::from("frames/frame%04d.png")).frame_rate(30);
assert_eq!(builder.frame_rate, Some(30));
}
#[test]
fn builder_frame_rate_last_setter_wins() {
let builder = VideoDecoderBuilder::new(PathBuf::from("frames/frame%04d.png"))
.frame_rate(25)
.frame_rate(60);
assert_eq!(builder.frame_rate, Some(60));
}
#[test]
fn builder_network_should_set_network_opts() {
let builder = VideoDecoderBuilder::new(PathBuf::from("rtmp://example.com/live/stream"))
.network(NetworkOptions::default());
assert!(builder.network_opts.is_some());
}
#[test]
fn builder_frame_rate_default_should_be_none() {
let builder = VideoDecoderBuilder::new(PathBuf::from("frames/frame%04d.png"));
assert!(builder.frame_rate.is_none());
}
}