From 03b0803a1d08b4d4e420192ff15da359d4b1fb4c Mon Sep 17 00:00:00 2001 From: Kyle Simpson Date: Wed, 7 Sep 2022 01:32:57 +0100 Subject: [PATCH] Input: Fix audio stream selection for video files. (#150) `youtube-dl` has a tendency to return mp4 files containing video and audio data vs `yt-dlp`. Naturally, the default stream in such cases will be the video data, so we fail to create a decoder. This PR changes `LiveInput::promote` to first attempt to instantiate a decoder for the default track. If this fails to do so, then we reattempt this for all available tracks until one can be found. Previously, this method chose the default (or first available) track ID, and then failed if *that* track could not be decoded even if a compatible stream existed. This was tested using `cargo make ready`, as well as manually verifying and adding a test case with a simple mp4 file. --- Cargo.toml | 2 +- resources/ting-vid.mp4 | Bin 0 -> 110899 bytes src/constants.rs | 3 ++ src/input/live_input.rs | 64 ++++++++++++++++++++++++++-------------- 4 files changed, 46 insertions(+), 23 deletions(-) create mode 100644 resources/ting-vid.mp4 diff --git a/Cargo.toml b/Cargo.toml index 642e9a5..a908243 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -74,7 +74,7 @@ version = "0.5" [dev-dependencies] criterion = "0.3" ntest = "0.8" -symphonia = { version = "0.5", features = ["mp3"], git = "https://github.com/FelixMcFelix/Symphonia", branch = "songbird-fixes" } +symphonia = { version = "0.5", features = ["aac", "isomp4", "mp3"], git = "https://github.com/FelixMcFelix/Symphonia", branch = "songbird-fixes" } utils = { path = "utils" } tokio = { version = "1", features = ["rt", "rt-multi-thread"] } diff --git a/resources/ting-vid.mp4 b/resources/ting-vid.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..0d68855dd31297b0cd89f5b78783bf20647b18bc GIT binary patch literal 110899 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 literal 0 HcmV?d00001 diff --git a/src/constants.rs b/src/constants.rs index bf7e6d5..48976a5 100644 --- a/src/constants.rs +++ b/src/constants.rs @@ -114,4 +114,7 @@ pub mod test_data { /// Path to a Wav source which can be read via a File. pub const FILE_WAV_TARGET: &str = "resources/loop.wav"; + + /// Path to an MP4 (H264 + AAC) source which can be read via a File. + pub const FILE_VID_TARGET: &str = "resources/ting-vid.mp4"; } diff --git a/src/input/live_input.rs b/src/input/live_input.rs index a44166a..ee3cf9a 100644 --- a/src/input/live_input.rs +++ b/src/input/live_input.rs @@ -1,7 +1,7 @@ use super::{AudioStream, Metadata, MetadataError, Parsed}; use symphonia_core::{ - codecs::{CodecRegistry, Decoder, DecoderOptions}, + codecs::{CodecRegistry, DecoderOptions}, errors::Error as SymphError, formats::FormatOptions, io::{MediaSource, MediaSourceStream, MediaSourceStreamOptions}, @@ -66,31 +66,30 @@ impl LiveInput { let format = probe_data.format; let meta = probe_data.metadata; - let mut default_track_id = format.default_track().map(|track| track.id); - let mut decoder: Option> = None; - - // Awkward loop: we need BOTH a track ID, and a decoder matching that track ID. - // Take default track (if it exists), take first track to be found otherwise. - for track in format.tracks() { - if default_track_id.is_some() && Some(track.id) != default_track_id { - continue; - } - - let this_decoder = codecs.make(&track.codec_params, &DecoderOptions::default())?; - - decoder = Some(this_decoder); - default_track_id = Some(track.id); - - break; - } + // if default track exists, try to make a decoder + // if that fails, linear scan and take first that succeeds + let decoder = format + .default_track() + .and_then(|track| { + codecs + .make(&track.codec_params, &DecoderOptions::default()) + .ok() + .map(|d| (d, track.id)) + }) + .or_else(|| { + format.tracks().iter().find_map(|track| { + codecs + .make(&track.codec_params, &DecoderOptions::default()) + .ok() + .map(|d| (d, track.id)) + }) + }); // No tracks is a playout error, a bad default track is also possible. // These are probably malformed? We could go best-effort, and fall back to tracks[0] // but drop such tracks for now. - let track_id = default_track_id.ok_or(SymphError::DecodeError("no track found"))?; - let decoder = decoder.ok_or(SymphError::DecodeError( - "reported default track did not exist", - ))?; + let (decoder, track_id) = + decoder.ok_or(SymphError::DecodeError("no compatible track found"))?; let p = Parsed { format, @@ -145,3 +144,24 @@ impl LiveInput { } } } + +#[cfg(test)] +mod tests { + use crate::{ + constants::test_data::FILE_VID_TARGET, + input::{codecs::*, File, Input}, + }; + + #[tokio::test] + #[ntest::timeout(10_000)] + async fn promote_finds_valid_audio() { + // Video files often set their default to... the video stream, unsurprisingly. + // In these cases we still want to play the attached audio -- this checks that songbird + // finds the audio on a non-default track via `LiveInput::promote`. + let input = Input::from(File::new(FILE_VID_TARGET)); + input + .make_playable_async(&CODEC_REGISTRY, &PROBE) + .await + .unwrap(); + } +}