I already posted a similar message about this here:
but I want to start a new thread with a more explanatory title.
I figured out that CMdaAudioOutputStream latency is due directly (and only) to the internal buffering of DevSound.
From "How to successfully stream audio on Symbian OS v7.0s"
Very low latency...but how much? How much of the audio data it needs before starting the playout?It should be noted that unlike many of the other multimedia framework
(MMF) APIs in Symbian OS v7.0s the streaming utility does not make use of
MMF controllers or the MMF controller framework. It interfaces directly
with the MMF DevSound layer which is the highest level abstraction for the
sound device itself. This allows for very low-latency audio processing to
be performed without the overhead of the MMF or the MMF plugins."
In my audio streaming app I pass 320byte frames by using the MaoscbufferCopied callback but don't know after how many of them the Devsound starts to play.
When using CMMFDevSound instead of CMdaAudioOutputStream, there are two method ( Config() and SetConfigL() ) to get and set some settings of the DevSound via a TMMFCapabilities objet which contains an "iBuffersize" member.
But in my 6630 when querying using Config() , I always get "0" (that might mean "none" or "unlimited") for iBufferSize even if i set it to any other value via SetConfigL() ).The phone reports all zeroes for all the encodings too so I fear these calls are somehow not supported or ignored in this device.
Also a constant exists, related to DevSound buffer KBufferLength:
but in my S60 2nd Ed. FP2 SDK it is not present in the SoundDevice.h header...
Anyone adding some words?... :-)