|
Post by andreaspe on Oct 29, 2013 13:49:57 GMT -5
Hello I would like to ask if its possible to use hardware audio decoding / acceleration bypassing the software environment and mixer. Something like OpenAL output in windows. Is this the functionality of the OpenSL setting in the preferences?
|
|
|
Post by GoneMAD on Oct 29, 2013 19:42:28 GMT -5
Kind of. The opensl implementation depends on the device.. some implementations still just use software. OpenSL in gmmp only is used for mp3 and aac and i've found it to be pretty buggy which is why its off by default.
Now even with opensl off gmmp uses the mp3/aac libraries that are on the device. Some might be hardware accelerated.. its really hard to say
The other file types are software only. OpenSL does support ogg flac and some other data types but the opensl interface is pretty bad and does not give me some information that is necessary to do gapless playback
|
|
|
Post by andreaspe on Oct 30, 2013 3:10:51 GMT -5
So the only reliable way to do gapless is to use the gmmp decoder. And if i understand well there is no way to bypass the mixer so i will have a perfect reproduction of the source esp for flac and other lossless formats. Even if i want to pre-amp the source (make it louder) without equalizing it, i will still route the sound through the mixer right?
|
|
|
Post by GoneMAD on Oct 30, 2013 6:44:53 GMT -5
for mp3 and aac opensl can be used and still get gapless. When I tell opensl to decode something it returns a fixed size chunk of data.. lets just say 1024 bytes.. but does not say how much of that data is actually being used. This is fine for mp3 and aac because they are fixed frame formats. Regardless the decoder is supposed to return 1024 worth of data and I am supposed to use the gapless data to say how much of that to cut off.
With formats like flac and ogg, they are naturally gapless.. so when I tell it to decode.. i need to know how much of that 1024 bytes is actually used. If at the end of a song the last decode call only has 512 bytes worth of audio data.. there is no way for me to know to cut those extra bytes off before playing it back
Besides that issue, since all the GMMP decoder code is within my control.. bugs can be fixed and i can be confident it runs the same on all devices. I cannot say the same for opensl and i've had many issues that ended up being caused by poor implementations of opensl
By mixer do you mean equalizer? If all the bands are flat (0db), the eq processing is just skipped over.. so only the preamp is applied to the audio. This saves on CPU time
|
|
|
Post by andreaspe on Oct 30, 2013 6:58:28 GMT -5
Thank you very much for the detailed explanation. One more thing, please try to consider to add the dlna / upnp functionality. You can imagine how many people have large flac collections on NAS devices and how convenient it would be if we can play them through the player and not having to depend on streaming through bubble for example. Thanks again
|
|
|
Post by GoneMAD on Oct 30, 2013 7:41:10 GMT -5
if you look on the roadmap section on my blog you will see dlna/upnp listed under future planned features
|
|