From b5cb7ed10b85f722aa318be93ae42fc7d86404ef Mon Sep 17 00:00:00 2001 From: Yyee Date: Mon, 9 Jan 2023 19:05:30 +0000 Subject: [PATCH] Expose symphonia features from rodio in bevy_audio and bevy (#6388) # Objective Fix #6301 ## Solution Add new features in `bevy_audio` to use `symphonia` sound format from `rodio` Also add in `bevy` --- Cargo.toml | 7 +++++++ crates/bevy_audio/Cargo.toml | 7 +++++++ crates/bevy_internal/Cargo.toml | 7 +++++++ docs/cargo_features.md | 7 +++++++ 4 files changed, 28 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 6097e73f84685..190dcf724ca18 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -89,6 +89,13 @@ flac = ["bevy_internal/flac"] mp3 = ["bevy_internal/mp3"] vorbis = ["bevy_internal/vorbis"] wav = ["bevy_internal/wav"] +symphonia-aac = ["bevy_internal/symphonia-aac"] +symphonia-all = ["bevy_internal/symphonia-all"] +symphonia-flac = ["bevy_internal/symphonia-flac"] +symphonia-isomp4 = ["bevy_internal/symphonia-isomp4"] +symphonia-mp3 = ["bevy_internal/symphonia-mp3"] +symphonia-vorbis = ["bevy_internal/symphonia-vorbis"] +symphonia-wav = ["bevy_internal/symphonia-wav"] # Enable watching file system for asset hot reload filesystem_watcher = ["bevy_internal/filesystem_watcher"] diff --git a/crates/bevy_audio/Cargo.toml b/crates/bevy_audio/Cargo.toml index e25c7c4ce39de..97517b9029fec 100644 --- a/crates/bevy_audio/Cargo.toml +++ b/crates/bevy_audio/Cargo.toml @@ -30,3 +30,10 @@ mp3 = ["rodio/mp3"] flac = ["rodio/flac"] wav = ["rodio/wav"] vorbis = ["rodio/vorbis"] +symphonia-aac = ["rodio/symphonia-aac"] +symphonia-all = ["rodio/symphonia-all"] +symphonia-flac = ["rodio/symphonia-flac"] +symphonia-isomp4 = ["rodio/symphonia-isomp4"] +symphonia-mp3 = ["rodio/symphonia-mp3"] +symphonia-vorbis = ["rodio/symphonia-vorbis"] +symphonia-wav = ["rodio/symphonia-wav"] diff --git a/crates/bevy_internal/Cargo.toml b/crates/bevy_internal/Cargo.toml index 91621d23d3b7f..04c0da704dc06 100644 --- a/crates/bevy_internal/Cargo.toml +++ b/crates/bevy_internal/Cargo.toml @@ -42,6 +42,13 @@ flac = ["bevy_audio/flac"] mp3 = ["bevy_audio/mp3"] vorbis = ["bevy_audio/vorbis"] wav = ["bevy_audio/wav"] +symphonia-aac = ["bevy_audio/symphonia-aac"] +symphonia-all = ["bevy_audio/symphonia-all"] +symphonia-flac = ["bevy_audio/symphonia-flac"] +symphonia-isomp4 = ["bevy_audio/symphonia-isomp4"] +symphonia-mp3 = ["bevy_audio/symphonia-mp3"] +symphonia-vorbis = ["bevy_audio/symphonia-vorbis"] +symphonia-wav = ["bevy_audio/symphonia-wav"] # Enable watching file system for asset hot reload filesystem_watcher = ["bevy_asset/filesystem_watcher"] diff --git a/docs/cargo_features.md b/docs/cargo_features.md index 8d0db4604380e..8934ad65ba63b 100644 --- a/docs/cargo_features.md +++ b/docs/cargo_features.md @@ -39,6 +39,13 @@ |flac|FLAC audio format support. It's included in bevy_audio feature.| |mp3|MP3 audio format support.| |wav|WAV audio format support.| +|symphonia-aac|AAC audio format support by Symphonia. For more details, see `symphonia-all`.| +|symphonia-all|AAC, FLAC, MP4, MP3, Vorbis, and WAV support by Symphonia. Add support for parsing multiple file formats using a single crate instead of compiling different crates. The other non-`symphonia` features are disabled when its corresponding `symphonia` feature is enabled. [Link to `symphonia` documentation](https://docs.rs/symphonia/latest/symphonia/). More information about this topic can be found [here](https://github.com/bevyengine/bevy/pull/6388#discussion_r1009622883) | +|symphonia-flac|FLAC audio format support by Symphonia. For more details, see `symphonia-all`.| +|symphonia-isomp4|MP4 audio format support by Symphonia. For more details, see `symphonia-all`.| +|symphonia-mp3|MP3 audio format support by Symphonia. For more details, see `symphonia-all`.| +|symphonia-vorbis|Vorbis audio format support by Symphonia. For more details, see `symphonia-all`.| +|symphonia-wav|WAV audio format support by Symphonia. For more details, see `symphonia-all`.| |serialize|Enables serialization of `bevy_input` types.| |wayland|Enable this to use Wayland display server protocol other than X11.| |subpixel_glyph_atlas|Enable this to cache glyphs using subpixel accuracy. This increases texture memory usage as each position requires a separate sprite in the glyph atlas, but provide more accurate character spacing.|