diff --git a/etc/codecs.conf b/etc/codecs.conf index aefb741985..21a9cc4855 100644 --- a/etc/codecs.conf +++ b/etc/codecs.conf @@ -1960,6 +1960,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/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;