Hi Pankaj,
Even though Audio session writes data in chunks to DevSound, the
SamplesPlayed API is supposed to report the samples Played stat in real
time. It should not wait for the complete playout of data to report
samples played. For example even if u write 200msecs of data in one
shot, the samplesPlayed will be queried for every 30msec interval and
the samplesplayed api should start reporting the progress counts instead
of waiting for 200msec to playout.
Now the code increases the number of BTBF (BufferToBeFilled ) calls.
More number of BTBF calls results in that many server-client interaction
(and also that many copy on buffers descriptor)on the DevSound layer.
Apart from that the Audio buffer flow between AudioSession and Engine's
audio layer is already throttled by BlocksBufferred API. Too much of
data accumulation would not happen on the Audio session. The Supply of
data will be cut down from engine's Audio Service to Audio-session which
means u may not have lot of data in AudioSession.
If SamplesPlayed reporting is jumping in a big number, then this change
might actually hide the problem in DevSound.
What version of Symbian u r running ? (Is that Series 60 or UIQ )
Hope it helps !
Thanks,
Rajesh.
>-----Original Message-----
>From: [EMAIL PROTECTED]
>[mailto:[EMAIL PROTECTED] On Behalf Of ext
>Pankaj Gupta
>Sent: Tuesday, April 11, 2006 5:33 AM
>To: [email protected]
>Subject: [Audio-dev] CR: Fix to improve symbian player performance
>
>Modified by: [EMAIL PROTECTED]
>
>Date :11/04/2006
>
>Issue :Performance issue in 150 cayenne symbian player
>
>Overview:
>
>In 150Cayenne symbian player video is not smooth and observed
>visible frame dropping usually once per second.
>This is happening because the audio device is not driving time
>line smoothly.
>
>In
>audio\device\platform\symbian\audiosvr\mmf\audio_session-mmf.cp
>p file the time calculation is based on SamplesPlayed returned
>by device/samplingRate.
>
>The HXSymbianAudioSession::BufferToBeFilled() function writes
>large amount of data in device because of which
>m_pStream->SamplesPlayed() function returns same value for
>quite some time and then suddenly returns higher value causing
>sudden time change of the tune of ~500ms.
>
>Fix.
>
>In HXSymbianAudioSession::BufferToBeFilled() function is
>writing only one buffer from the m_bufferList at a time. This
>same fix was applied in 142NeptuneX branch also.
>
>Platform: symbian
>
>Branch : 150Cay
>
>File Modified:
>
>- audio/device/platform/symbian/audiosvr/mmf/audio_session-mmf.cpp
>
>Files Added: Nil
>
>Thanks and Regards,
>Pankaj Gupta
>
>CVS Diff:
>
>Index: audio_session-mmf.cpp
>===================================================================
>RCS file:
>/cvsroot/audio/device/platform/symbian/audiosvr/mmf/audio_sessi
>on-mmf.cpp,v
>retrieving revision 1.4.2.6
>diff -u -w -r1.4.2.6 audio_session-mmf.cpp
>--- audio_session-mmf.cpp 20 Apr 2005 23:50:58 -0000 1.4.2.6
>+++ audio_session-mmf.cpp 11 Apr 2006 10:30:54 -0000
>@@ -981,7 +981,12 @@
>
> //HXLOGL4(HXLOG_ADEV,
>"HXSymbianAudioSession::BufferToBeFilled(): req size = %ld;
>dest buffer size = %lu; desc max = %lu; buffer list count =
>%ld", aBuffer->RequestSize(), aBuffer->BufferSize(),
>dataDesc.MaxSize(), m_bufferList.GetCount());
>
>- while ( !m_bufferList.IsEmpty() && cbDest >= m_cbSample)
>+ // Used if statement in place of while as writing complete data
>+ causes
>sudden
>+ // large time differences in GetTime() calls. Since
>m_pStream->SamplesPlayed()
>+ // returns same value for quite some time and then
>suddenly returns
>higher value,
>+ // which causes sudden jump of around 300ms-700ms in GetTime calls
>causing
>+ // TimeSync problem and frame dropping in vidrend.cpp
>+ if ( !m_bufferList.IsEmpty() && cbDest >= m_cbSample)
> {
> // get buffer at front
> IHXBuffer* pBuffer = (IHXBuffer*)m_bufferList.GetHead();
>
>
>_______________________________________________
>Audio-dev mailing list
>[email protected]
>http://lists.helixcommunity.org/mailman/listinfo/audio-dev
>
_______________________________________________
Audio-dev mailing list
[email protected]
http://lists.helixcommunity.org/mailman/listinfo/audio-dev