mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioPlayController.cpp
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioPlayController.cpp Fri Feb 19 23:19:48 2010 +0200
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioPlayController.cpp Fri Mar 12 15:45:41 2010 +0200
@@ -783,6 +783,7 @@
MDataSource& aSource)
{
DP1(_L("CAdvancedAudioPlayController::AddDataSourceL this[%x]"), this);
+ DP2(_L("CAdvancedAudioController::AddDataSourceL iSharedBufferMaxNum[%d] iSharedBufferMaxSize[%d]"), iSharedBufferMaxNum, iSharedBufferMaxSize);
iSourceUnreadable = EFalse;
iEnablePrimedStateChangedEvent = EFalse;
// source type is intended to not be needed by controllers
@@ -798,10 +799,6 @@
{
User::Leave(KErrAlreadyExists);
}
- if (iSharedBufferMaxNum <= 2)
- {
- iSharedBufferMaxNum = 3;
- }
// set iReadHeader here in case prime is not called before set position is used.
@@ -843,6 +840,17 @@
// we need to block this until duration is calculated if using mmfplayutility
iBlockDuration = EFalse;
+// ou1cimx1#205863
+ if (!iDataSourceAdapter->IsLocalPlayback())
+ {
+ DP0(_L("CAdvancedAudioPlayController::AddDataSourceL not file source"));
+ if (iSharedBufferMaxNum <= 2)
+ {
+ iSharedBufferMaxNum = 3;
+ }
+ iSharedBufferMaxSize = iSharedBufferMaxSizeForNonSeekableSrc;
+ DP2(_L("CAdvancedAudioPlayController::AddDataSourceL new iSharedBufferMaxNum[%d] iSharedBufferMaxSize[%d]"), iSharedBufferMaxNum, iSharedBufferMaxSize);
+ }
if ((!iEventsEnabled) && (!iDataSourceAdapter->OnlyHeaderPresent()))
{
@@ -2240,11 +2248,17 @@
RArray<TInt>& codecConfigData = const_cast<RArray<TInt>&>(iAudioResource->CodecConfigParametersL());
// Override default values with values found from header, if available
GetCodecConfigData(codecConfigData);
- iAudioOutput->ConfigureL(iSampleRate, iSinkNumChannels, iDataType, codecConfigData);
- DP0(_L("CAdvancedAudioPlayController::DoInitializeSinkL, output configured"));
- iAudioOutput->PrimeL();
- DP0(_L("CAdvancedAudioPlayController::DoInitializeSinkL, output primed"));
-
+ if (!iAudioOutput)
+ {
+ User::Leave(KErrNotReady);
+ }
+ else
+ {
+ iAudioOutput->ConfigureL(iSampleRate, iSinkNumChannels, iDataType, codecConfigData);
+ DP0(_L("CAdvancedAudioPlayController::DoInitializeSinkL, output configured"));
+ iAudioOutput->PrimeL();
+ DP0(_L("CAdvancedAudioPlayController::DoInitializeSinkL, output primed"));
+ }
// we would use this code when we have a NULL sink
/* if (iDuration > 0)
{