summaryrefslogtreecommitdiffstats
path: root/loader
diff options
context:
space:
mode:
authorUoti Urpala <uau@glyph.nonexistent.invalid>2010-04-26 16:57:25 +0300
committerUoti Urpala <uau@glyph.nonexistent.invalid>2010-04-26 16:57:25 +0300
commitff559b8e90c343eb465400d77fe8881eff09c6e3 (patch)
treef97a23e6945e91be5be86baf2cfc06e0d384e867 /loader
parentd2e25a90c40c47b97becaa6eaefa16e61f7f0cdf (diff)
parentb864ff1b8d73616e2e5bab1e00ef2bdb8fe50278 (diff)
downloadmpv-ff559b8e90c343eb465400d77fe8881eff09c6e3.tar.bz2
mpv-ff559b8e90c343eb465400d77fe8881eff09c6e3.tar.xz
Merge svn changes up to r30907
Diffstat (limited to 'loader')
-rw-r--r--loader/drv.c4
-rw-r--r--loader/qt_comp.h2
-rw-r--r--loader/qtx/qtxsdk/components.h8
-rw-r--r--loader/win32.c69
4 files changed, 80 insertions, 3 deletions
diff --git a/loader/drv.c b/loader/drv.c
index 9479e6944d..13945538d2 100644
--- a/loader/drv.c
+++ b/loader/drv.c
@@ -27,7 +27,7 @@
#endif
#ifndef WIN32_LOADER
-char* def_path=WIN32_PATH;
+char* def_path = BINARY_CODECS_PATH;
#else
extern char* def_path;
#endif
@@ -71,7 +71,7 @@ void SetCodecPath(const char* path)
if(needs_free)free(def_path);
if(path==0)
{
- def_path=WIN32_PATH;
+ def_path = BINARY_CODECS_PATH;
needs_free=0;
return;
}
diff --git a/loader/qt_comp.h b/loader/qt_comp.h
index 4c1d8d165c..9da5c35e33 100644
--- a/loader/qt_comp.h
+++ b/loader/qt_comp.h
@@ -25,6 +25,8 @@ DECL_COMPONENT(yuvu,"YUVU_CDComponentDispatch",0)
DECL_COMPONENT(qdm2d,"QDM2Decompressor",0)
DECL_COMPONENT(mace3d,"Mace3DecompDispatch",0)
+DECL_COMPONENT(prores,"IcpDecompressorComponentDispatch",0)
+
//DECL_COMPONENT(,"",0)
#endif /* MPLAYER_QT_COMP_H */
diff --git a/loader/qtx/qtxsdk/components.h b/loader/qtx/qtxsdk/components.h
index 2e42a0412f..19a3219060 100644
--- a/loader/qtx/qtxsdk/components.h
+++ b/loader/qtx/qtxsdk/components.h
@@ -29,6 +29,14 @@ typedef int32_t SInt32;
typedef void *GlobalsPtr;
typedef void **Globals;
+enum {
+ kInitializeQTMLNoSoundFlag = (1L << 0),
+ kInitializeQTMLUseGDIFlag = (1L << 1),
+ kInitializeQTMLDisableDirectSound = (1L << 2),
+ kInitializeQTMLUseExclusiveFullScreenModeFlag = (1L << 3),
+ kInitializeQTMLDisableDDClippers = (1L << 4)
+};
+
//==================== COMPONENTS ===========================
struct __attribute__((__packed__)) ComponentParameters {
diff --git a/loader/win32.c b/loader/win32.c
index d540e6dfe2..9143702878 100644
--- a/loader/win32.c
+++ b/loader/win32.c
@@ -77,7 +77,7 @@ for DLL to know too much about its environment.
#include "osdep/mmap_anon.h"
#include "libavutil/avstring.h"
-char* def_path = WIN32_PATH;
+char* def_path = BINARY_CODECS_PATH;
static void do_cpuid(unsigned int ax, unsigned int *regs)
{
@@ -792,6 +792,18 @@ static void* WINAPI expCreateEventA(void* pSecAttr, char bManualReset,
return ret;
}
+static void* WINAPI expCreateEventW(void* pSecAttr, char bManualReset,
+ char bInitialState, const WCHAR* name)
+{
+ char ascii_name[256];
+ char *aname = NULL;
+ if (name) {
+ WideCharToMultiByte(65001, 0x0, name, -1, ascii_name, 256, NULL, NULL);
+ aname = ascii_name;
+ }
+ return expCreateEventA(pSecAttr, bManualReset, bInitialState, aname);
+}
+
static void* WINAPI expSetEvent(void* event)
{
mutex_list *ml = (mutex_list *)event;
@@ -1798,6 +1810,7 @@ static long WINAPI expWideCharToMultiByte(long v1, long v2, short* s1, long siz1
if(s2)dbgprintf(" dest: %s\n", s2);
return result;
}
+
static long WINAPI expGetVersionExA(OSVERSIONINFOA* c)
{
dbgprintf("GetVersionExA(0x%x) => 1\n");
@@ -1817,6 +1830,33 @@ static long WINAPI expGetVersionExA(OSVERSIONINFOA* c)
" Platform Id: VER_PLATFORM_WIN32_NT\n Version string: 'Service Pack 3'\n");
return 1;
}
+
+static long WINAPI expGetVersionExW(OSVERSIONINFOW* c)
+{
+ char CSDVersion[128];
+ dbgprintf("GetVersionExW(0x%x) => 1\n");
+ c->dwOSVersionInfoSize=sizeof(*c);
+ c->dwMajorVersion=5;
+ c->dwMinorVersion=0;
+ c->dwBuildNumber=0x5000457;
+#if 1
+ // leave it here for testing win9x-only codecs
+ c->dwPlatformId=VER_PLATFORM_WIN32_WINDOWS;
+ strcpy(CSDVersion, " B");
+#else
+ c->dwPlatformId=VER_PLATFORM_WIN32_NT; // let's not make DLL assume that it can read CR* registers
+ strcpy(CSDVersion, "Service Pack 3");
+#endif
+ MultiByteToWideChar(65001, 0x0, CSDVersion, -1, c->szCSDVersion, 128);
+ dbgprintf(" Major version: %d\n Minor version: %d\n Build number: 0x%08x\n"
+ " Platform Id: %s\n Version string: '%s'\n",
+ c->dwMajorVersion, c->dwMinorVersion, c->dwBuildNumber,
+ (c->dwPlatformId==VER_PLATFORM_WIN32_WINDOWS ? "VER_PLATFORM_WIN32_WINDOWS" :
+ (c->dwPlatformId==VER_PLATFORM_WIN32_NT ? "VER_PLATFORM_WIN32_NT" : "Unknown")),
+ CSDVersion);
+ return 1;
+}
+
static HANDLE WINAPI expCreateSemaphoreA(char* v1, long init_count,
long max_count, char* name)
{
@@ -1891,6 +1931,18 @@ static HANDLE WINAPI expCreateSemaphoreA(char* v1, long init_count,
return ret;
}
+static HANDLE WINAPI expCreateSemaphoreW(char* v1, long init_count,
+ long max_count, const WCHAR* name)
+{
+ char ascii_name[256];
+ char *aname = NULL;
+ if (name) {
+ WideCharToMultiByte(65001, 0x0, name, -1, ascii_name, 256, NULL, NULL);
+ aname = ascii_name;
+ }
+ return expCreateSemaphoreA(v1, init_count, max_count, aname);
+}
+
static long WINAPI expReleaseSemaphore(long hsem, long increment, long* prev_count)
{
// The state of a semaphore object is signaled when its count
@@ -1977,6 +2029,17 @@ static HANDLE WINAPI expCreateMutexA(void *pSecAttr,
return ret;
}
+static HANDLE WINAPI expCreateMutexW(void *pSecAttr, char bInitialOwner, const WCHAR *name)
+{
+ char ascii_name[256];
+ char *aname = NULL;
+ if (name) {
+ WideCharToMultiByte(65001, 0x0, name, -1, ascii_name, 256, NULL, NULL);
+ aname = ascii_name;
+ }
+ return expCreateMutexA(pSecAttr, bInitialOwner, aname);
+}
+
static int WINAPI expReleaseMutex(HANDLE hMutex)
{
mutex_list *ml = (mutex_list *)hMutex;
@@ -5130,6 +5193,7 @@ struct exports exp_kernel32[]=
FF(CreateThread, -1)
FF(ResumeThread, -1)
FF(CreateEventA, -1)
+ FF(CreateEventW, -1)
FF(SetEvent, -1)
FF(ResetEvent, -1)
FF(WaitForSingleObject, -1)
@@ -5169,7 +5233,9 @@ struct exports exp_kernel32[]=
FF(MultiByteToWideChar, 427)
FF(WideCharToMultiByte, -1)
FF(GetVersionExA, -1)
+ FF(GetVersionExW, -1)
FF(CreateSemaphoreA, -1)
+ FF(CreateSemaphoreW, -1)
FF(QueryPerformanceCounter, -1)
FF(QueryPerformanceFrequency, -1)
FF(LocalHandle, -1)
@@ -5181,6 +5247,7 @@ struct exports exp_kernel32[]=
FF(LoadResource, -1)
FF(ReleaseSemaphore, -1)
FF(CreateMutexA, -1)
+ FF(CreateMutexW, -1)
FF(ReleaseMutex, -1)
FF(SignalObjectAndWait, -1)
FF(FindResourceA, -1)