From Gnash Project Wiki

Jump to: navigation, search

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 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...