Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expose symphonia feature of rodio for bevy_audio #6301

Closed
harudagondi opened this issue Oct 19, 2022 · 6 comments
Closed

Expose symphonia feature of rodio for bevy_audio #6301

harudagondi opened this issue Oct 19, 2022 · 6 comments
Labels
A-Audio Sounds playback and modification C-Feature A new feature, making something new possible D-Trivial Nice and easy! A great choice to get started with Bevy

Comments

@harudagondi
Copy link
Member

What problem does this solve or what need does it fill?

Related to #6299, bevy_audio is limited to wav, ogg, flac, or mp3 audio formats. However, rodio have the symphonia feature which enables file formats and codecs such as:

  • ISO/MP4
  • MKV/WebM
  • OGG
  • Wave
  • AAC-LC
  • ALAC
  • FLAC
  • MP3
  • PCM
  • Vorbis

What solution would you like?

Add a new feature in bevy_audio and possibly in bevy as well that enables this feature

What alternative(s) have you considered?

Implement your own Decodable type that uses the Decoder from rodio that has the symphonia feature enabled. (I don't think this works)

Additional context

#3145 is a tangentially related issue that discusses the viability of symphonia as a "backend". (symphonia is a decoder and a demuxing framework, not an audio backend)

@harudagondi harudagondi added C-Feature A new feature, making something new possible S-Needs-Triage This issue needs to be labelled labels Oct 19, 2022
@alice-i-cecile alice-i-cecile added D-Trivial Nice and easy! A great choice to get started with Bevy A-Audio Sounds playback and modification and removed S-Needs-Triage This issue needs to be labelled labels Oct 19, 2022
@alice-i-cecile
Copy link
Member

Fully on board. Should be a simple PR. For enabling audio formats, probably follow what was done for the various image and asset formats?

@james7132
Copy link
Member

Please keep said feature optional or at most conditional on other features. To take a page out of Unity and Unreal's books, their built games only support a small list of codecs and containers at runtime, but support transcoding many more in the editor on asset import. This avoids needing to ship the equivalent of ffmpeg with every game download.

@harudagondi
Copy link
Member Author

harudagondi commented Oct 19, 2022

Please keep said feature optional or at most conditional on other features. To take a page out of Unity and Unreal's books, their built games only support a small list of codecs and containers at runtime, but support transcoding many more in the editor on asset import. This avoids needing to ship the equivalent of ffmpeg with every game download.

Yeah I'm just asking for a Cargo feature reexport to symphonia-all of rodio. Should be simple to do.

For an example see #5857, where I reexported the mint feature of glam in bevy_math.

@Ian-Yy
Copy link
Contributor

Ian-Yy commented Oct 24, 2022

Hi. Is anyone working on this? Can I help on this?

@harudagondi
Copy link
Member Author

As far as I am aware, no one is working on this right now. =)

If you're interested in helping, you should check out rodio's features first.

@Ian-Yy
Copy link
Contributor

Ian-Yy commented Oct 27, 2022

Hi, I've went through the rodio's features and they have separate features for different audio formats. I think it's better to have control of what audio formats to support instead of symphonia-all. Thus, I make it separate like rodio.

@bors bors bot closed this as completed in a41e869 Jan 9, 2023
james7132 pushed a commit to james7132/bevy that referenced this issue Jan 21, 2023
…ne#6388)

# Objective
Fix bevyengine#6301 

## Solution
Add new features in `bevy_audio` to use `symphonia` sound format from `rodio` 
Also add in `bevy`
alradish pushed a commit to alradish/bevy that referenced this issue Jan 22, 2023
…ne#6388)

# Objective
Fix bevyengine#6301 

## Solution
Add new features in `bevy_audio` to use `symphonia` sound format from `rodio` 
Also add in `bevy`
ItsDoot pushed a commit to ItsDoot/bevy that referenced this issue Feb 1, 2023
…ne#6388)

# Objective
Fix bevyengine#6301 

## Solution
Add new features in `bevy_audio` to use `symphonia` sound format from `rodio` 
Also add in `bevy`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Audio Sounds playback and modification C-Feature A new feature, making something new possible D-Trivial Nice and easy! A great choice to get started with Bevy
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

4 participants