changeset 9502:241bba8f60e8

MACOSX support patch, based on Dan Christiansens work
author alex
date Tue, 25 Feb 2003 15:39:36 +0000
parents d64c56172220
children f47d484d8f28
files libmpcodecs/ad.c libmpcodecs/ad_qtaudio.c libmpcodecs/vd.c libmpcodecs/vd_qtvideo.c libmpdemux/demux_mov.c
diffstat 5 files changed, 40 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/libmpcodecs/ad.c	Tue Feb 25 08:22:00 2003 +0000
+++ b/libmpcodecs/ad.c	Tue Feb 25 15:39:36 2003 +0000
@@ -67,7 +67,7 @@
 #endif
   &mpcodecs_ad_acm,
 #endif
-#ifdef USE_QTX_CODECS
+#if defined(USE_QTX_CODECS) || defined(MACOSX)
   &mpcodecs_ad_qtaudio,
 #endif
 #ifdef HAVE_FAAD
--- a/libmpcodecs/ad_qtaudio.c	Tue Feb 25 08:22:00 2003 +0000
+++ b/libmpcodecs/ad_qtaudio.c	Tue Feb 25 15:39:36 2003 +0000
@@ -5,7 +5,7 @@
 
 #include "config.h"
 
-#ifdef USE_QTX_CODECS
+#if defined(USE_QTX_CODECS) || defined(MACOSX)
 
 #include "ad_internal.h"
 #include "bswap.h"
@@ -14,6 +14,10 @@
 #include "ldt_keeper.h"
 #endif
 
+#ifdef MACOSX
+#include <QuickTime/QuickTimeComponents.h>
+#endif
+
 static ad_info_t info =  {
 	"QuickTime Audio Decoder",
 	"qtaudio",
@@ -24,6 +28,7 @@
 
 LIBAD_EXTERN(qtaudio)
 
+#ifdef USE_QTX_CODECS
 typedef struct OpaqueSoundConverter*    SoundConverter;
 typedef unsigned long                   OSType;
 typedef unsigned long                   UnsignedFixed;
@@ -150,6 +155,7 @@
     printf("loader_init DONE???\n");
 	return 0;
 }
+#endif /* USE_QTX_CODECS */
 
 static SoundConverter			   myConverter = NULL;
 static SoundComponentData		   InputFormatInfo,OutputFormatInfo;
@@ -166,7 +172,11 @@
 
     printf("win32 libquicktime loader (c) Sascha Sommer\n");
 
+#ifdef MACOSX
+    EnterMovies();
+#else
     if(loader_init()) return 0; // failed to load DLL
+#endif
     
     printf("loader_init DONE!\n");
 
@@ -258,6 +268,9 @@
 //    FreeLibrary( qtml_dll );
 //    qtml_dll = NULL;
 //    printf("qt dll loader uninit done\n");
+#ifdef MACOSX
+    ExitMovies();
+#endif
 }
 
 static int decode_audio(sh_audio_t *sh,unsigned char *buf,int minlen,int maxlen){
--- a/libmpcodecs/vd.c	Tue Feb 25 08:22:00 2003 +0000
+++ b/libmpcodecs/vd.c	Tue Feb 25 15:39:36 2003 +0000
@@ -118,7 +118,7 @@
 	&mpcodecs_vd_libdv,
 #endif
 	&mpcodecs_vd_lcl,
-#ifdef USE_QTX_CODECS
+#if defined(USE_QTX_CODECS) || defined(MACOSX)
 	&mpcodecs_vd_qtvideo,
 #endif
 	NULL
--- a/libmpcodecs/vd_qtvideo.c	Tue Feb 25 08:22:00 2003 +0000
+++ b/libmpcodecs/vd_qtvideo.c	Tue Feb 25 15:39:36 2003 +0000
@@ -3,7 +3,7 @@
 
 #include "config.h"
 
-#ifdef USE_QTX_CODECS
+#if defined(USE_QTX_CODECS) || defined(MACOSX)
 
 #include "mp_msg.h"
 #include "vd_internal.h"
@@ -23,13 +23,21 @@
 LIBVD_EXTERN(qtvideo)
 
 #include "../bswap.h"
+
+#ifdef MACOSX
+#include <QuickTime/ImageCodec.h>
+#define dump_ImageDescription(x)
+#else
 #include "qtx/qtxsdk/components.h"
+#endif
 
+#ifdef USE_QTX_CODECS
 //#include "wine/windef.h"
 
 HMODULE   WINAPI LoadLibraryA(LPCSTR);
 FARPROC   WINAPI GetProcAddress(HMODULE,LPCSTR);
 int       WINAPI FreeLibrary(HMODULE);
+#endif
 
 //static ComponentDescription desc; // for FindNextComponent()
 static ComponentInstance ci=NULL; // codec handle
@@ -46,6 +54,7 @@
 //static HINSTANCE qtml_dll;
 static HMODULE handler;
 
+#ifdef USE_QTX_CODECS
 static    Component (*FindNextComponent)(Component prev,ComponentDescription* desc);
 static    OSErr (*GetComponentInfo)(Component prev,ComponentDescription* desc,Handle h1,Handle h2,Handle h3);
 static    long (*CountComponents)(ComponentDescription* desc);
@@ -80,7 +89,7 @@
                                void *baseAddr,
                                long rowBytes); 
 static    OSErr           (*NewHandleClear)(Size byteCount);                          
-
+#endif
 
 // to set/get/query special features/parameters
 static int control(sh_video_t *sh,int cmd,void* arg,...){
@@ -98,6 +107,10 @@
     CodecInfo cinfo;	// for ImageCodecGetCodecInfo()
     ImageSubCodecDecompressCapabilities icap; // for ImageCodecInitialize()
 
+#ifdef MACOSX
+    EnterMovies();
+#else
+
 #ifdef WIN32_LOADER
     Setup_LDT_Keeper();
 #endif
@@ -130,6 +143,7 @@
     printf("InitializeQTML returned %i\n",result);
 //    result=EnterMovies();
 //    printf("EnterMovies->%d\n",result);
+#endif /* !MACOSX */
 
 #if 0
     memset(&desc,0,sizeof(desc));
@@ -268,6 +282,9 @@
 
 // uninit driver
 static void uninit(sh_video_t *sh){
+#ifdef MACOSX
+    ExitMovies();
+#endif
 }
 
 // decode a frame
--- a/libmpdemux/demux_mov.c	Tue Feb 25 08:22:00 2003 +0000
+++ b/libmpdemux/demux_mov.c	Tue Feb 25 15:39:36 2003 +0000
@@ -36,6 +36,10 @@
 #include "../loader/qtx/qtxsdk/components.h"
 #endif
 
+#ifdef MACOSX
+#include <QuickTime/QuickTime.h>
+#endif
+
 #ifdef HAVE_ZLIB
 #include <zlib.h>
 #endif
@@ -1000,7 +1004,7 @@
 //      82  char[4]	atom type
 //	86  ...		atom data
 
-#ifdef USE_QTX_CODECS
+#if defined(USE_QTX_CODECS) || defined(MACOSX)
 	{	ImageDescription* id=malloc(8+trak->stdata_len);
 		trak->desc=id;
 		id->idSize=8+trak->stdata_len;