diff -r 71ca22bcf22a -r 5a06f39ad45b mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioDecoder.cpp --- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioDecoder.cpp Tue Feb 02 01:08:46 2010 +0200 +++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/AdvancedAudioController/Src/AdvancedAudioDecoder.cpp Fri Apr 16 15:29:42 2010 +0300 @@ -122,7 +122,7 @@ QueueThisBuffer(aIndex); // will set iNextBuffer (current buffer) and update iSharedBufferIndex (to next buffer) - if(aSourceSampleRate != aSWConvertSampleRate) // Sampling Rate Conversion is needed + if(aSourceSampleRate != aSWConvertSampleRate && !IsHwAccelerated()) // Sampling Rate Conversion is needed { if (!iChannelAndSampleRateConverterFactory) { @@ -421,7 +421,9 @@ { CMMFBuffer* refillBuffer = NULL; // index is the next buffer, index-1 is current buffer, check 2 buffers back from the one being selected - TInt checkBufIndex = iSharedBufferIndex-2; +// ou1cimx1#205863 + //TInt checkBufIndex = iSharedBufferIndex-2; + TInt checkBufIndex = iSharedBufferIndex- (iSharedBuffers->Count()-1) ; if (checkBufIndex < 0) { @@ -430,11 +432,13 @@ if ((*iSharedBuffers)[checkBufIndex]->Status() == EBeingEmptied) { - if (iSharedBuffers->Count() <= 2) +// ou1cimx1#205863 +/* if (iSharedBuffers->Count() <= 2) { DP1(_L("CAdvancedAudioDecoder::NextSharedBufferL leave, EBeingEmptied is used on Count[%d]"), iSharedBuffers->Count()); User::Leave(KErrAbort); } +*/ DP2(_L("CAdvancedAudioDecoder::NextSharedBufferL, index[%d] [%x] is EBeingEmptied"), checkBufIndex, static_cast((*iSharedBuffers)[checkBufIndex])->Data().Ptr() ); refillBuffer = (*iSharedBuffers)[checkBufIndex]; @@ -488,9 +492,9 @@ DP3(_L("CAdvancedAudioDecoder::HandleFillBufferL ptr[%x] iRenderEnabled[%d] Position[%d]"), static_cast(iNextBuffer)->Data().Ptr(), iRenderEnabled, iNextBuffer->Position()); DP3(_L("CAdvancedAudioDecoder::HandleFillBufferL frm#[%d] d0[%x] dp[%x]"), static_cast(iNextBuffer)->FrameNumber(), static_cast(iNextBuffer)->Data().Ptr()[0], static_cast(iNextBuffer)->Data().Ptr()[iNextBuffer->Position()]); - - iBufferToFill->SetPosition(0); - static_cast(iBufferToFill)->Data().SetLength(0); +// ou1cimx1#205863 +// iBufferToFill->SetPosition(0); +// static_cast(iBufferToFill)->Data().SetLength(0); iBufferToFill->SetLastBuffer(EFalse); TCodecProcessResult result;