"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:
TSW Id: EADA-7H2MNG
Date: 08/01/2008
Project: SymbianMmf_rel
Synopsis: Helix not handling Error from MDF
Devsound
Overview:
MDF Audio Device returns an unknown Error Code
which is not handled in Helix. So helix still tries to send more packets
to Device whereas device doesn't play any more packets. This causes
video to appear frozen.
Fix:
On receiving any unknown errors from Device,
abort and send error code to UI for displaying appropriate error
message. Make similar changes for both MDF and ARM Audio.
Files modified & changes:
/audio/device/platform/symbian/CHXSymbianAudioSession.cpp
/audio/device/platform/symbian/audsymbian.cpp
/datatype/mdf/audio/dsp/mdfdevsound.cpp
/datatype/mdf/audio/dsp/mdfauddevice.cpp
Image Size and Heap Use impact: None
Module Release testing (STIF, Audio) : Passed
Test case(s) Added : No
Memory leak check performed : Passed, No leaks
found
Platforms and Profiles Build Verified:
helix-client-s60-32-mmf-mdf-dsp
Platforms and Profiles Functionality verified:
armv5
Branch: Head, 210CayS, 221Cays
Index: CHXSymbianAudioSession.cpp
===================================================================
RCS file:
/cvsroot/audio/device/platform/symbian/CHXSymbianAudioSession.cpp,v
retrieving revision 1.1
diff -u -w -r1.1 CHXSymbianAudioSession.cpp
--- CHXSymbianAudioSession.cpp 3 Apr 2007 18:24:49 -0000
1.1
+++ CHXSymbianAudioSession.cpp 4 Aug 2008 22:52:51 -0000
@@ -275,6 +275,10 @@
break;
}
default:
+ if(m_pAudDevStatusObserver != NULL)
+ {
+
m_pAudDevStatusObserver->OnAudDevStatusChange(aError);
+ }
break;
}
} // End of if (aError != KErrNone)
Index: audsymbian.cpp
===================================================================
RCS file:
/cvsroot/audio/device/platform/symbian/audsymbian.cpp,v
retrieving revision 1.35.2.7
diff -u -w -r1.35.2.7 audsymbian.cpp
--- audsymbian.cpp 3 Apr 2007 18:33:09 -0000 1.35.2.7
+++ audsymbian.cpp 4 Aug 2008 22:53:10 -0000
@@ -496,6 +496,11 @@
HX_ASSERT(m_pErrorMessages != NULL);
m_pErrorMessages->Report(HXLOG_INFO,
HXR_AUDIODEVICETAKEN, 0, NULL, NULL);
}
+ else
+ {
+ HX_ASSERT(m_pErrorMessages != NULL);
+ m_pErrorMessages->Report(HXLOG_ERR, HXR_AUDIO_DRIVER,
0, NULL, NULL);
+ }
}
//
Index: mdfdevsound.cpp
===================================================================
RCS file: /cvsroot/datatype/mdf/audio/dsp/mdfdevsound.cpp,v
retrieving revision 1.1.2.17.2.1
diff -u -w -r1.1.2.17.2.1 mdfdevsound.cpp
--- mdfdevsound.cpp 3 Apr 2008 18:58:00 -0000
1.1.2.17.2.1
+++ mdfdevsound.cpp 4 Aug 2008 20:28:10 -0000
@@ -951,6 +951,18 @@
m_devStatus = DevPlayError;
}
+ if(m_devStatus == DevPlayError)
+ {
+ //Retry later in case of KErrNotReady(-18) and
KErrServerBusy (-16)
+ //for any other errors Bail out
+ if((m_lDevError != KErrNotReady) &&
+ (m_lDevError != KErrServerBusy) &&
+ m_pDevObserver)
+ {
+ m_pDevObserver->OnDeviceError(HXR_AUDIO_DRIVER);
+ }
+ }
HXLOGL4(HXLOG_MDFA, "---devsnd:PlyErr >\n");
}
Index: mdfauddevice.cpp
===================================================================
RCS file:
/cvsroot/datatype/mdf/audio/dsp/mdfauddevice.cpp,v
retrieving revision 1.1.2.10
diff -u -w -r1.1.2.10 mdfauddevice.cpp
--- mdfauddevice.cpp 3 Nov 2006 21:15:11 -0000
1.1.2.10
+++ mdfauddevice.cpp 4 Aug 2008 19:47:04 -0000
@@ -788,8 +788,15 @@
// Report error to Error Messages
if(m_pErrorMessage)
{
+ if(hxr == HXR_AUDIODEVICETAKEN)
+ {
m_pErrorMessage->Report(HXLOG_INFO, hxr, 0,
NULL, NULL);
}
+ else //All other errors are reported as ERROR
+ {
+ m_pErrorMessage->Report(HXLOG_ERR, hxr, 0,
NULL, NULL);
+ }
+ }
HXLOGL4(HXLOG_MDFA, "mdfdeV:OnDeviceError >");
}
_______________________________________________
Audio-dev mailing list
[email protected]
http://lists.helixcommunity.org/mailman/listinfo/audio-dev