xbmc/xbmc — pull request #2814 by popcornmix (2013-06-02 12:36:53+00:00)
Title: [rbp/omxplayer] Support planar float format audio directly

The update to ffmpeg1.2 has produced a significant performance hit on the Pi when decoding multichannel audio without passthrough.
This is because (most) audio codecs now output planar floating point, rather than interleaved S16 samples.
OpenMax/GPU can handle interleaved S16 samples directly, whereas the floating point planar samples get converted with swr_convert.
This is a slow operation, and a quick profile showed it to be taking about 150MHz of ARM CPU when using 6 channel audio.

I've added support on GPU for a new floating point planar format in audio_decode component.
This PR makes this format also supported for sending audio to the GPU.
The GPU now also handles the 6->8 channel padding so the UpMix() function is no longer required,
which may improve performance compared to pre-ffpeg1.2 version.

This PR requires recent GPU firmware. (384946 or later).