mmlibs/mmfw/src/utils/audioutils/rateconvert.cpp
changeset 38 4269ca484c7b
parent 0 40261b775718
child 32 ae690a8c4a18
equal deleted inserted replaced
34:31d6e1ae5283 38:4269ca484c7b
   217 TInt CChannelAndSampleRateConvert::SizeOfUpsampleBuffer(TInt aBufferLength)
   217 TInt CChannelAndSampleRateConvert::SizeOfUpsampleBuffer(TInt aBufferLength)
   218 	{
   218 	{
   219 	TInt rawValue = aBufferLength;
   219 	TInt rawValue = aBufferLength;
   220 	ASSERT(iFromRate < iToRate); // should not be called otherwise
   220 	ASSERT(iFromRate < iToRate); // should not be called otherwise
   221 	// upsample - will generate more data. use floats to avoid extra round error
   221 	// upsample - will generate more data. use floats to avoid extra round error
   222 	rawValue = TInt(rawValue * TReal(iToRate) / TReal(iFromRate) + 0.5) + 4*sizeof(TInt16); // add some fudge factor just in case
   222 	rawValue = TInt(rawValue * TReal(iToRate) / TReal(iFromRate) + 0.5) + 4*sizeof(TInt16); // add some buffer extra buffer
   223 	rawValue = NextPowerUp(rawValue); // when upscaling always give nice power
   223 	rawValue = NextPowerUp(rawValue); // when upscaling always give nice power
   224 	return rawValue;	
   224 	return rawValue;	
   225 	}
   225 	}
   226 
   226 
   227 //
   227 //