mmplugins/lib3gp/impl/src/mp4compose.cpp
branchRCL_3
changeset 11 d5f04de580b7
parent 0 40261b775718
child 39 3f0ddfac3ede
--- a/mmplugins/lib3gp/impl/src/mp4compose.cpp	Mon Mar 15 12:46:07 2010 +0200
+++ b/mmplugins/lib3gp/impl/src/mp4compose.cpp	Wed Mar 31 23:56:23 2010 +0300
@@ -1311,7 +1311,8 @@
 
     return MP4_OK;
     }
-
+	
+	
 extern EXPORT_C MP4Err MP4SetCustomFileBufferSizes( MP4Handle apihandle, 
                                                                mp4_u32 mediaWriteBufferSize,
                                                                mp4_u32 writeBufferMaxCount,
@@ -1322,14 +1323,19 @@
     if (!handle)
         return MP4_ERROR;
     
-    // Read Buffer size
-    if ( (readBufferSize) && 
-         (readBufferSize != handle->readBufferSize) )
+    // If no specific file size is given we try to use an 'optimal' buffer size.
+    if (readBufferSize == 0)
+    	{
+    	readBufferSize = RecommendedBufferSize(handle);
+		}
+
+	if (readBufferSize > handle->readBufferSize)
         {
         handle->readBufferSize = readBufferSize;
         if (handle->diskReadBuf)
             {
             mp4free(handle->diskReadBuf);
+            handle->diskReadBuf = NULL;
             if ((handle->diskReadBuf = (mp4_u8 *)mp4malloc(handle->readBufferSize)) == NULL)
                 {
                 return MP4_OUT_OF_MEMORY;