I'm trying to play back audio (duh), and I have a few questions that I just can't find proper answers to. Hopefully someone here can answer them...
First, what is the point of OMX.broadcom.audio_decode? Does it serve any purpose whatsoever? I hear that it can only decode PCM to PCM, so does it do anything at all? Can it at least do resampling/upmixing/downmixing in hardware, or can it literally only push out what you push into it? I know it *could* decode other types of audio in the future, but I've also heard that there are no plans to add that kind of support. So...is there any reason why I should feed my audio data through it, or should I just skip it and go straight to the renderer?
Second, I'm having trouble with rendering more than 2 channels with OMX.broadcom.audio_render. When I try to output 6 channels (i.e. 5.1), the pitch is fine, but it sounds like a really fast studder. If I downmix it to stereo, it sounds fine. And if I play back normal stereo source (i.e. no downmixing), that sounds fine too. It says here - http://home.nouwen.name/RaspberryPi/doc ... ender.html - that it will only accept a power of 2 number of channels, but I can't confirm that information from any other source. But if I use ffmpeg to upmix to 7.1 or even if I manually pad each sample with 4 bytes of zeros to fill out 2 more channels, it sounds very low pitch and all around terrible. So it seems to be "ok" with 6 channels other than the quick studdering. Do I need to do something else, like specify the channel layout to OMX? Should I still be able to go with 6 channels or do I really need to give it 8 channels?
From what I can tell, omxplayer doesn't actually upmix to 8 channels unless I'm missing something. I see a few places where it takes into account the power of 2 requirement when it's fiddling with the OMX components, but I don't actually see it fiddling with the channel count of the audio data itself before it gets sent to OMX.
Thanks a million to anyone with any answers!