diff -r 4f62049db6ac -r 709f89d8c047 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& codecConfigData = const_cast&>(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) {