shithub: aacdec

Download patch

ref: d2663a0bb271b9a4e6df3e081f76bfb2d93b2136
parent: 05ed1c55a1c43b8746c7d4ca5efd7641b3ba80e9
author: menno <menno>
date: Thu Aug 7 14:58:43 EDT 2003

Added MP4CreateCb()

--- a/common/mp4v2/mp4.cpp
+++ b/common/mp4v2/mp4.cpp
@@ -52,6 +52,43 @@
 }
 
 #ifdef USE_FILE_CALLBACKS
+extern "C" MP4FileHandle MP4CreateCb(u_int32_t verbosity,
+                                     bool use64bits,
+                                     bool useExtensibleFormat,
+                                     MP4OpenCallback MP4fopen,
+                                     MP4CloseCallback MP4fclose,
+                                     MP4ReadCallback MP4fread,
+                                     MP4WriteCallback MP4fwrite,
+                                     MP4SetposCallback MP4fsetpos,
+                                     MP4GetposCallback MP4fgetpos,
+                                     MP4FilesizeCallback MP4filesize,
+                                     void *userData)
+{
+	MP4File* pFile = NULL;
+	try {
+		pFile = new MP4File(verbosity);
+		// LATER useExtensibleFormat, moov first, then mvex's
+
+        // Set user data and callbacks
+        pFile->m_userData = userData;
+        pFile->m_MP4fopen = MP4fopen;
+        pFile->m_MP4fclose = MP4fclose;
+        pFile->m_MP4fread = MP4fread;
+        pFile->m_MP4fwrite = MP4fwrite;
+        pFile->m_MP4fsetpos = MP4fsetpos;
+        pFile->m_MP4fgetpos = MP4fgetpos;
+        pFile->m_MP4filesize = MP4filesize;
+		pFile->Create("", use64bits);
+		return (MP4FileHandle)pFile;
+	}
+	catch (MP4Error* e) {
+		VERBOSE_ERROR(verbosity, e->Print());
+		delete e;
+		delete pFile;
+		return MP4_INVALID_FILE_HANDLE;
+	}
+}
+
 extern "C" MP4FileHandle MP4ReadCb(u_int32_t verbosity,
                                    MP4OpenCallback MP4fopen,
                                    MP4CloseCallback MP4fclose,
--- a/common/mp4v2/mp4.h
+++ b/common/mp4v2/mp4.h
@@ -967,6 +967,18 @@
 typedef int64_t (*MP4GetposCallback)(void *userData);
 typedef int64_t (*MP4FilesizeCallback)(void *userData);
 
+MP4FileHandle MP4CreateCb(u_int32_t verbosity,
+	                      bool use64bits,
+	                      bool useExtensibleFormat,
+                          MP4OpenCallback MP4fopen,
+                          MP4CloseCallback MP4fclose,
+                          MP4ReadCallback MP4fread,
+                          MP4WriteCallback MP4fwrite,
+                          MP4SetposCallback MP4fsetpos,
+                          MP4GetposCallback MP4fgetpos,
+                          MP4FilesizeCallback MP4filesize,
+                          void *userData);
+
 MP4FileHandle MP4ReadCb(u_int32_t verbosity,
                         MP4OpenCallback MP4fopen,
                         MP4CloseCallback MP4fclose,