I had an idea that could help solving the codec issue. It consists of some sort of API, a compiler, and some mechanism on the GPU firmware that allows it to load modules. One would build codec modules with this API, compile it, and place the modules on the SD card. After being initialised, the GPU would look for codec modules, and, if present, would load them. This sounds like a lot of work, also rather uneconomical to implement, so I suppose this won't be done, but it seemed like a good idea so I decided to have a go at posting it here.
Pretty much what is done anyway on mobile devices using the Videocore - the codecs are components (like DLL's) which the GPU can load. In the Raspi case, these components are statically linked to the GPU binary blob.
A big problem is that codecs are really really difficult to write. You cannot just port an existing one you have the source for - it won't be fast enough. You need to rewrite it to utilise the capabilities of the GPU. Vector code, hardware blocks etc. All this has already been done for most codecs. The only issue is licencing them.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
“I own the world’s worst thesaurus. Not only is it awful, it’s awful."