LibmediaImprovements

From Gnash Project Wiki

Jump to: navigation, search

Plan for libmedia interface improvements (to complete for Release 0.8.5

Contents

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.

See http://en.wikipedia.org/wiki/Sample_rate_conversion

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