Can you see what is done on the 210CayS branch and HEAD?
Do the timestamps out of GetCurrentAudioTime now look good
and smooth or do they still jump?
--greg.
Pankaj Gupta wrote:
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.cpp 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_session-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