Looks good. ============================================= Eric Hyche ([EMAIL PROTECTED]) Technical Lead RealNetworks, Inc.
> -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of > [EMAIL PROTECTED] > Sent: Monday, November 06, 2006 12:15 PM > To: [email protected] > Subject: [Audio-dev] CR: Removing Assert on Symbian Audio session MMF > > "Nokia submits this code under the terms of a commercial > contribution agreement with RealNetworks, and I am authorized > to contribute this code under said agreement." > > Modified by: [EMAIL PROTECTED] > > Reviewed by: > > Date: 06-Nov-2006. > > Project: SymbianMmf > > ErrorId: EMBI-6V7GS7 > > Synopsis: CR: Removing Assert on Symbian Audio session MMF > > In emulator, the if PrepareForDeviceReset on audio > session MMF is called twice used to raise an assert. This > case happens frequently when a Stop is followed by Pause and > also during the underflow cases (Happens on emulator alone). > > Removed the assert and updated the function to prevent > the variable reset twice. > > Also updated some logs to level 2 (mostly error cases). > > The error has been tested for local & streaming both on > emulator and hardware. > > > Files Modified: > ========= > > audio/device/platform/symbian/audiosvr/mmf/audio_session-mmf.cpp > > Image Size and Heap Use impact: no major impact > > Platforms and Profiles Build Verified: > helix-client-s60-32-mmf-mdf-arm > > Platforms and Profiles Functionality verified: armv5, winscw > > Branch: Head & 210CayS > > > Index: platform/symbian/audiosvr/mmf/audio_session-mmf.cpp > =================================================================== > RCS file: > /cvsroot/audio/device/platform/symbian/audiosvr/mmf/audio_sess > ion-mmf. > cpp,v > retrieving revision 1.14.2.4 > diff -w -u -b -r1.14.2.4 audio_session-mmf.cpp > --- platform/symbian/audiosvr/mmf/audio_session-mmf.cpp 21 > Aug 2006 21:26:32 -00 > 00 1.14.2.4 > +++ platform/symbian/audiosvr/mmf/audio_session-mmf.cpp 6 Nov > 2006 17:14:16 -000 > 0 > @@ -394,7 +394,7 @@ > m_Settings.iChannels = channelCount; > m_Settings.iEncoding = EMMFSoundEncoding16BitPCM; > > - HXLOGL3(HXLOG_ADEV, "HXSymbianAudioSession::Init(): rate > = %ld; chan = %ld; > sample frame = %lu bytes", m_sampleRate, > m_Settings.iChannels, m_cbSample); > + HXLOGL2(HXLOG_ADEV, "HXSymbianAudioSession::Init(): rate > = %ld; chan = %ld; > sample frame = %lu bytes", m_sampleRate, > m_Settings.iChannels, m_cbSample); > > switch (m_state) > { > @@ -585,9 +585,9 @@ > // For now only KErrServerBusy is handled as recoverable error > if(m_bDevSoundInitErr) > { > - HXLOGL3(HXLOG_ADEV, > "HXSymbianAudioSession::GetTime(): Previous PlayInit > Failed. Retrying....\n"); > + HXLOGL2(HXLOG_ADEV, > "HXSymbianAudioSession::GetTime(): Previous PlayInit > Failed. Retrying....\n"); > TRAPD(err, m_pStream->PlayInitL()); > - HXLOGL3(HXLOG_ADEV, > "HXSymbianAudioSession::GetTime(): PlayInit RetVal:: > %d\n", err); > + HXLOGL2(HXLOG_ADEV, > "HXSymbianAudioSession::GetTime(): PlayInit RetVal:: > %d\n", err); > if(err != KErrNone) > { > if(err != KErrServerBusy) > @@ -743,7 +743,7 @@ > void > HXSymbianAudioSession::RequestDeviceTakenNotification() > { > - HXLOGL3(HXLOG_ADEV, > "HXSymbianAudioSession::RequestDeviceTakenNotification( > )"); > + HXLOGL2(HXLOG_ADEV, > "HXSymbianAudioSession::RequestDeviceTakenNotification( > )"); > m_wantsNotify = TRUE; > m_notifyRequest = Message(); > } > @@ -936,7 +936,7 @@ > { > // DevSound error KErrServerBusy is recoverable. > // Hence flag is marked for retry > - HXLOGL3(HXLOG_ADEV, > "HXSymbianAudioSession::DoPlayInit() PlayInit F > ailed. Mark flag for retry\n"); > + HXLOGL2(HXLOG_ADEV, > "HXSymbianAudioSession::DoPlayInit() PlayInit F > ailed. Mark flag for retry\n"); > m_bDevSoundInitErr = TRUE; > } > else > @@ -1181,14 +1181,14 @@ > } > } > > -// Called when a stop or pause (omap-based device) is issued. > +// Called when a stop or pause is issued. > // > void HXSymbianAudioSession::PrepareForDeviceReset() > { > #ifdef HELIX_CONFIG_SYMBIAN_SAMPLESPLAYED > > - HX_ASSERT(!m_sampleCountResetPending); > - > + if(m_sampleCountResetPending == FALSE) > + { > if (KErrNone == m_lastPlayError) > { > // preserve monotically increasing time when device resumes > @@ -1210,6 +1210,12 @@ > } > > m_sampleCountResetPending = TRUE; > + } > + else > + { > + // Session has been prepared already for reset, So ignore. > + // One possible scenario is Pause followed by Stop > + } > > #endif > // this tracks samples written after device reset trigger > > _______________________________________________ Audio-dev mailing list [email protected] http://lists.helixcommunity.org/mailman/listinfo/audio-dev
