fix case when video has no audio, but separate audio is set. add test case for it
This commit is contained in:
parent
2f7041d15b
commit
a93440e06b
@ -429,6 +429,7 @@ pub fn filter_chains(
|
||||
.as_ref()
|
||||
.and_then(|p| p.audio_streams.get(i as usize))
|
||||
.is_some()
|
||||
|| Path::new(&node.audio).is_file()
|
||||
{
|
||||
extend_audio(node, &mut filters, i);
|
||||
} else if !node.is_live.unwrap_or(false) {
|
||||
|
@ -97,6 +97,40 @@ fn dual_audio_input() {
|
||||
assert_eq!(media.filter, test_filter_cmd);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn video_separate_audio_input() {
|
||||
let mut config = PlayoutConfig::new(Some("../assets/ffplayout.yml".to_string()));
|
||||
config.out.mode = Stream;
|
||||
config.processing.audio_tracks = 1;
|
||||
config.processing.add_logo = false;
|
||||
|
||||
let mut media_obj = Media::new(0, "./assets/no_audio.mp4", true);
|
||||
media_obj.audio = "./assets/audio.mp3".to_string();
|
||||
let media = gen_source(&config, media_obj, &Arc::new(Mutex::new(vec![])));
|
||||
|
||||
let test_filter_cmd = Some(vec_strings![
|
||||
"-filter_complex",
|
||||
"[0:v:0]scale=1024:576[vout0];[1:a:0]anull[aout0]",
|
||||
"-map",
|
||||
"[vout0]",
|
||||
"-map",
|
||||
"[aout0]"
|
||||
]);
|
||||
|
||||
assert_eq!(
|
||||
media.cmd,
|
||||
Some(vec_strings![
|
||||
"-i",
|
||||
"./assets/no_audio.mp4",
|
||||
"-i",
|
||||
"./assets/audio.mp3",
|
||||
"-t",
|
||||
"30"
|
||||
])
|
||||
);
|
||||
assert_eq!(media.filter, test_filter_cmd);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn video_audio_stream() {
|
||||
let mut config = PlayoutConfig::new(Some("../assets/ffplayout.yml".to_string()));
|
||||
|
Loading…
Reference in New Issue
Block a user