diff -r efebd1779a59 -r c1e808730d6c mmplugins/lib3gp/impl/src/file.cpp --- a/mmplugins/lib3gp/impl/src/file.cpp Fri Apr 16 16:34:49 2010 +0300 +++ b/mmplugins/lib3gp/impl/src/file.cpp Mon May 03 13:56:28 2010 +0300 @@ -1758,4 +1758,48 @@ } +TInt RecommendedBufferSize(MP4HandleImp aHandle) + { + TInt recommendedSize = READBUFSIZE; + + MP4HandleImp handle = (MP4HandleImp)aHandle; + if (handle) + { + // handle->rfile will be set in the cases of + // - MP4ParseOpen(MP4FileName) + // - MP4ParseOpenFileHandle64(RFile64) + // - MP4ParseOpenFileHandle(RFile) + // + // It will not be set by MP4ParseOpenCAF() + + RFs* fs = (RFs*)handle->fs; + RFile64* file64 = (RFile64*)handle->rfile; + + if (fs && file64) + { + TInt driveNumber = 0; + TDriveInfo driveInfo; + TVolumeIOParamInfo volumeInfo; + + TInt err = file64->Drive(driveNumber, driveInfo); + if (err == KErrNone) + { + err = fs->VolumeIOParam(driveNumber, volumeInfo); + } + + if (err == KErrNone) + { + if (volumeInfo.iRecReadBufSize != KErrNotSupported) + { + recommendedSize = Max(recommendedSize, volumeInfo.iRecReadBufSize); + } + } + + } + } + + return recommendedSize; + } + + // End of File