From Gnash Project Wiki
Plan for libmedia interface improvements (to complete for Release 0.8.5
Define an interface for MediaHandler::createAudioResampler
An AudioResampler converts a number of samples in input to a number of samples in output.
The conversion is specified in terms of input and output audio specifications: sample rate, sample size, number of channels.
Resampling is codec agnostic.
Question: does number of channels affect interpretation of sample size ? How ?
Make AudioResamplerCrude, FFMPEG and GST implement that
Have MediaHandler*::createAudioDecoder handle the "corner cases"
I've added a protected MediaHandler::createFlashAudioDecoder method to use for the "corner cases" and implemented this handling in MediaHandlerFfmpeg as a fallback (ie: tries the custom decoders if can't create the ffmpeg-specific ones).
Gstreamer side of things is still to do (guess bjacques will do it?).
Also, I noticed that AudioDecoderSpeex (one of the custom decoders) doesn't implement the decoding interface required currently for embedded event (streaming too?) sounds, which is the ::decode taking pointers and integers....
Have AudioDecoder* use ::createAudioResampler for resampling
Collect testcases containing all known FLASH codecs audio in all known embedded forms (event,streaming)
Bwy prepared http://benjaminwolsey.de/tmp/sound_swfs/ with what he had about embedded event sounds. Would be nicer if it also contained info about which movie contained what, but I guess the best would be klaus producing actual controlled tests ...
Also, to consider adding a new section in ExternalFlashMovies for audio, as there's currently one for External Video Testcases in there...