I coded some lines to reveal the 1600 byte magic number. Like suspected MaiscBufferCopied gets called when 1600 bytes (800 16-bit PCM) samples have been captured. This is actually better - reducing the latency nicely and appx. 100+ ms gap still leaves good room for DSP in same thread. That Length() method does not seem to return a correct value at any time...
Sample rate was 8000Hz, PCM-mode, not tested with other rates/modes as this is the domain of interest.
DUT
Nokia E71
110.07.127
09-10-2008
RM-346
Code:
MaiscBufferCopied entry clocking and sample counting
Since Last 16-bit PCM TDesC Length()
Entry ms
- 0 4096
251 0 4096
132 800 4096
143 800 4096
170 800 4096
125 800 4096
186 800 4096
201 800 4096
233 800 4096
216 800 4096
115 800 4096
172 800 4096
93 800 4096
124 800 4096
176 800 4096
94 800 4096
195 800 4096
93 800 4096
157 800 4096
179 800 4096
94 800 4096
122 800 4096
...