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,