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

Reply via email to