Increased CMMFDevSound playback buffer size in Nokia N8 (Known Issue)
When playing back encoded audio (for instance, MP3 or AAC) on the Nokia N8 using the low-level interface to audio device (CMMFDevSound), the length of the playback buffers as requested by the audio device can be significantly larger than what is reported by CMMFDevSound::Config().
After initialising and starting the playback process with CMMFDevSound::PlayInitL(), the client will receive callbacks to MDevSoundObserver::BufferToBeFilled(), with a pointer to the buffer (CMMFBuffer) that needs to be filled. The amount of data that the audio device requires to start or continue playback is specified in CMMFBuffer::RequestSize(). The request size can be significantly bigger in Nokia N8 compared to previous S60 devices (eg. 48000 bytes for MP3 decoder). The client must always fill up the buffer to the requested size except at the end of playback, otherwise a KErrUnderflow error will be received.
Developers accessing the audio system through CMMFDevSound should be aware of this change, detect the buffer size at runtime, and adapt their application logic accordingly.