diff --git a/Changelog b/Changelog index e7391a3e74..d9013a7283 100644 --- a/Changelog +++ b/Changelog @@ -16,6 +16,7 @@ MPlayer (1.0) * SoftLab-NSK Forward MPEG-2 I-frames (SLIF) via binary DLL * JPEG 2000 support via OpenJPEG * internal liba52 copy removed + * CineForm HD (CFHD) via binary DLL Demuxers: * support for TrueHD in Blu-ray streams in libmpdemux diff --git a/etc/codecs.conf b/etc/codecs.conf index b132f40d9e..cbd8e58233 100644 --- a/etc/codecs.conf +++ b/etc/codecs.conf @@ -1959,6 +1959,15 @@ videocodec LEADMW20 guid 0xe2b7dc56, 0x38c5, 0x11d5, 0x91, 0xf6, 0x00, 0x10, 0x4b, 0xdb, 0x8f, 0xf9 out BGR24,BGR8 flip +videocodec cineformhd + info "CineForm HD" + status working + fourcc CFHD + driver dshow + dll "CFDecode2.ax" + guid 0xAD83011E, 0x01d1, 0x4623, 0x91, 0xfd, 0x6b, 0x75, 0xf1, 0x83, 0xc5, 0xa9 + out UYVY + videocodec lagarith info "Lagarith Lossless Video Codec" comment "http://lags.leetcode.net/codec.html, requires an MMX2 CPU." diff --git a/loader/module.c b/loader/module.c index b9dcfa5869..4a292ce0ac 100644 --- a/loader/module.c +++ b/loader/module.c @@ -347,9 +347,6 @@ static WIN_BOOL MODULE_FreeLibrary( WINE_MODREF *wm ) { TRACE("(%s) - START\n", wm->modname ); - /* Recursively decrement reference counts */ - //MODULE_DecRefCount( wm ); - /* Call process detach notifications */ MODULE_DllProcessDetach( wm, FALSE, NULL ); @@ -609,36 +606,6 @@ WIN_BOOL WINAPI FreeLibrary(HINSTANCE hLibModule) return retv; } -/*********************************************************************** - * MODULE_DecRefCount - * - * NOTE: Assumes that the process critical section is held! - */ -static void MODULE_DecRefCount( WINE_MODREF *wm ) -{ - int i; - - if ( wm->flags & WINE_MODREF_MARKER ) - return; - - if ( wm->refCount <= 0 ) - return; - - --wm->refCount; - TRACE("(%s) refCount: %d\n", wm->modname, wm->refCount ); - - if ( wm->refCount == 0 ) - { - wm->flags |= WINE_MODREF_MARKER; - - for ( i = 0; i < wm->nDeps; i++ ) - if ( wm->deps[i] ) - MODULE_DecRefCount( wm->deps[i] ); - - wm->flags &= ~WINE_MODREF_MARKER; - } -} - /*********************************************************************** * GetProcAddress (KERNEL32.257) */ diff --git a/loader/registry.c b/loader/registry.c index cab63ceb72..4a41911cdf 100644 --- a/loader/registry.c +++ b/loader/registry.c @@ -400,9 +400,32 @@ long __stdcall RegQueryValueExA(long key, const char* value, int* reserved, int* if (!c) return 1; t=find_value_by_name(c); + if (t==0) { + // Hacks for CineForm. + if (strcmp(c, "HKCU\\SOFTWARE\\CineForm\\DecoderProperties\\Resolution") == 0) { + if (data) + *data = 1000; + if (type) + *type = REG_DWORD; + if (count) + *count = sizeof(DWORD); + free(c); + return ERROR_SUCCESS; + } + if (strcmp(c, "HKCU\\SOFTWARE\\CineForm\\DecoderProperties\\PixelFormats") == 0) { + if (data) + *data = 0xffff; + if (type) + *type = REG_DWORD; + if (count) + *count = sizeof(DWORD); + free(c); + return ERROR_SUCCESS; + } + free(c); + return ERROR_FILE_NOT_FOUND; + } free(c); - if (t==0) - return 2; if (type) *type=t->type; if (data) @@ -419,7 +442,7 @@ long __stdcall RegQueryValueExA(long key, const char* value, int* reserved, int* { *count=t->len; } - return 0; + return ERROR_SUCCESS; } long __stdcall RegCreateKeyExA(long key, const char* name, long reserved, void* classs, long options, long security, diff --git a/loader/win32.c b/loader/win32.c index 0b1999a043..ab07574803 100644 --- a/loader/win32.c +++ b/loader/win32.c @@ -3764,7 +3764,7 @@ static HANDLE WINAPI expCreateFileA(LPCSTR cs1,DWORD i1,DWORD i2, free(tmp); return result; } - if (strstr(cs1, "vp3") || strstr(cs1, ".fpf")) + if (strstr(cs1, "vp3") || strstr(cs1, ".fpf") || strstr(cs1, ".col")) { int r; int flg = 0;