Make JOAL javax.audio Agnostic for non J2SE VMs
- javax.sound.* cannot be used in JOAL
since it's missing on Android and other java'ish subsets.
- Hence the *Audio*Exception shall be replaced completely to our namespace,
i.e. like com.jogamp.openal.UnsupportedAudioFileException
- WavLoader's wav parsing must be replaced platform agnostic ..
.. never mind 'compatibility' .. since it must run well on Android and other platforms.
FFMPEG/libav can easily provide WAV file decoding, and may decode many more audio formats. The tricky part is to build and bundle native FFMPEG/libav libraries for all supported platforms. Thus this bug now depend on 686.
(In reply to comment #2)
> FFMPEG/libav can easily provide WAV file decoding, and may decode many more
> audio formats. The tricky part is to build and bundle native FFMPEG/libav
> libraries for all supported platforms. Thus this bug now depend on 686.
There is nothing too special about wav, i.e. usually it's simply a header w/
followup PCM data. Hence only the header needs to be parsed, no WAV audio
data needs to be decoded!
Julien already started some parsing support from Java.
Problem: Relying on FFMPEG/libav for JOAL would create a dependency not always fullfilled,
hence this is not a solution.
Would love to see the Java WAV header parsing work getting matured
Removing dependency - impossible to support.
Review and merge gouessej's JOAL fix: Removes all references to javax.sound.* in order to allow JOAL to work in non-J2SE environments:
Pure Java WAV/OGG parsing should be moved to JOAL-utils in order to keep the API modular as such services are already provided by other libraries based on JOAL (for example Paul Lamb's Sound Library) or it would be possible to have a JAR containing the core features and another one containing all features including our WAV/OGG parsing.
Merged gouessej's fix into JOAL:
http://jogamp.org/git/?p=joal.git;a=commit;h=6292ed9712b17f849f22221aea9d586c3a363c09 - Removes all references to javax.sound.* in order to allow JOAL to work in non-J2SE environments.
Proposed junit test: ALutWAVLoaderTest: Test WAV decoder impl. Bug 684
WAVLoader: Use Bitstream and support big-endian RIFX; Fix ALutWAVLoaderTest
ALExtLoopbackDeviceSOFTTest: Remove javax.sound.sampled.UnsupportedAudioFileException dependency