mmlibs/mmfw/src/utils/audioutils/rateconvert.cpp
changeset 31 ae0addfe117e
parent 0 40261b775718
child 32 ae690a8c4a18
equal deleted inserted replaced
30:9707f1c07383 31:ae0addfe117e
   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 //