From c6c22cebc9b433c8a8664d8bdcfff3d6249b7bfe Mon Sep 17 00:00:00 2001 From: = Date: Fri, 26 Aug 2022 03:50:11 +0200 Subject: [PATCH] core: Make nellymoser optional, enable on desktop and web --- core/Cargo.toml | 3 ++- core/src/backend/audio/decoders.rs | 3 +++ core/src/backend/audio/mixer.rs | 12 ++++++------ desktop/Cargo.toml | 2 +- web/Cargo.toml | 2 +- 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/core/Cargo.toml b/core/Cargo.toml index e4ae6dea8..2a9f65ec0 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -35,7 +35,7 @@ encoding_rs = "0.8.31" rand = { version = "0.8.5", features = ["std", "small_rng"], default-features = false } serde = { version = "1.0.144", features = ["derive"] } serde_json = { version = "1.0", features = ["preserve_order"] } -nellymoser-rs = { git = "https://github.com/ruffle-rs/nellymoser", rev = "4a33521c29a918950df8ae9fe07e527ac65553f5" } +nellymoser-rs = { git = "https://github.com/ruffle-rs/nellymoser", rev = "4a33521c29a918950df8ae9fe07e527ac65553f5", optional = true } h263-rs = { git = "https://github.com/ruffle-rs/h263-rs", rev = "023e14c73e565c4c778d41f66cfbac5ece6419b2", optional = true } h263-rs-yuv = { git = "https://github.com/ruffle-rs/h263-rs", rev = "023e14c73e565c4c778d41f66cfbac5ece6419b2", optional = true } regress = "0.4" @@ -63,6 +63,7 @@ wasm-bindgen = [ "instant/wasm-bindgen" ] avm_debug = [] deterministic = [] timeline_debug = [] +nellymoser = ["nellymoser-rs"] [build-dependencies] build_playerglobal = { path = "build_playerglobal" } diff --git a/core/src/backend/audio/decoders.rs b/core/src/backend/audio/decoders.rs index a5c327e6b..9a64af8d8 100644 --- a/core/src/backend/audio/decoders.rs +++ b/core/src/backend/audio/decoders.rs @@ -3,6 +3,7 @@ mod adpcm; #[cfg(any(feature = "minimp3", feature = "symphonia"))] mod mp3; +#[cfg(feature = "nellymoser")] mod nellymoser; mod pcm; @@ -11,6 +12,7 @@ pub use adpcm::AdpcmDecoder; pub use mp3::minimp3::Mp3Decoder; #[cfg(all(feature = "symphonia", not(feature = "minimp3")))] pub use mp3::symphonia::Mp3Decoder; +#[cfg(feature = "nellymoser")] pub use nellymoser::NellymoserDecoder; pub use pcm::PcmDecoder; @@ -75,6 +77,7 @@ pub fn make_decoder( )?), #[cfg(any(feature = "minimp3", feature = "symphonia"))] AudioCompression::Mp3 => Box::new(Mp3Decoder::new(data)?), + #[cfg(feature = "nellymoser")] AudioCompression::Nellymoser => { Box::new(NellymoserDecoder::new(data, format.sample_rate.into())) } diff --git a/core/src/backend/audio/mixer.rs b/core/src/backend/audio/mixer.rs index 7cea8554d..692dd1e92 100644 --- a/core/src/backend/audio/mixer.rs +++ b/core/src/backend/audio/mixer.rs @@ -1,6 +1,4 @@ -use super::decoders::{ - self, AdpcmDecoder, Decoder, NellymoserDecoder, PcmDecoder, SeekableDecoder, -}; +use super::decoders::{self, AdpcmDecoder, Decoder, PcmDecoder, SeekableDecoder}; use super::{SoundHandle, SoundInstanceHandle, SoundTransform}; use crate::backend::audio::{DecodeError, RegisterError}; use crate::tag_utils::SwfSlice; @@ -224,9 +222,11 @@ impl AudioMixer { AudioCompression::Mp3 => Box::new(decoders::Mp3Decoder::new(data)?), #[cfg(all(feature = "symphonia", not(feature = "minimp3")))] AudioCompression::Mp3 => Box::new(decoders::Mp3Decoder::new_seekable(data)?), - AudioCompression::Nellymoser => { - Box::new(NellymoserDecoder::new(data, format.sample_rate.into())) - } + #[cfg(feature = "nellymoser")] + AudioCompression::Nellymoser => Box::new(decoders::NellymoserDecoder::new( + data, + format.sample_rate.into(), + )), _ => return Err(decoders::Error::UnhandledCompression(format.compression)), }; Ok(decoder) diff --git a/desktop/Cargo.toml b/desktop/Cargo.toml index cc61f7bd7..c6b0b2d76 100644 --- a/desktop/Cargo.toml +++ b/desktop/Cargo.toml @@ -9,7 +9,7 @@ license = "MIT OR Apache-2.0" [dependencies] clap = { version = "3.2.17", features = ["derive"] } cpal = "0.13.5" -ruffle_core = { path = "../core", features = ["minimp3"] } +ruffle_core = { path = "../core", features = ["minimp3", "nellymoser"] } ruffle_render_wgpu = { path = "../render/wgpu", features = ["clap"] } env_logger = { version = "0.9", default-features = false, features = ["humantime"] } generational-arena = "0.2.8" diff --git a/web/Cargo.toml b/web/Cargo.toml index b8b4fb8bc..7cb80d1d7 100644 --- a/web/Cargo.toml +++ b/web/Cargo.toml @@ -48,7 +48,7 @@ base64 = "0.13.0" [dependencies.ruffle_core] path = "../core" default-features = false -features = ["h263", "vp6", "screenvideo", "symphonia", "wasm-bindgen"] +features = ["h263", "vp6", "screenvideo", "symphonia", "wasm-bindgen", "nellymoser"] [dependencies.web-sys] version = "0.3.58"