mirror of https://github.com/mpv-player/mpv
Support for Alparysoft lossless video codec (DShow and VfW)
Patch by Melisha Johnson <adland123 (at) yahoo (dot) com> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12067 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
52fdaaef8c
commit
685c598094
|
@ -1091,6 +1091,23 @@ videocodec rv20win
|
|||
|
||||
; others:
|
||||
|
||||
videocodec alpary
|
||||
info "Alparysoft lossless codec dshow"
|
||||
status untested
|
||||
fourcc ASLC
|
||||
driver dshow
|
||||
dll "aslcodec_dshow.dll"
|
||||
guid 0x7f9de066, 0xbf3d, 0x4c17, 0x86, 0xb7, 0x33, 0xe4, 0x3e, 0xbe, 0xae, 0xf0
|
||||
out BGR24 flip
|
||||
|
||||
videocodec alpary2
|
||||
info "Alparysoft lossless codec vfw"
|
||||
status untested
|
||||
fourcc ASLC
|
||||
driver vfw
|
||||
dll "aslcodec_vfw.dll"
|
||||
out BGR24 flip
|
||||
|
||||
videocodec LEADMW20
|
||||
info "Lead CMW wavelet 2.0"
|
||||
status working
|
||||
|
|
|
@ -497,6 +497,37 @@ static int WINAPI ext_unknown()
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int WINAPI expGetVolumeInformationA( const char *root, char *label,
|
||||
unsigned int label_len, unsigned int *serial,
|
||||
unsigned int *filename_len,unsigned int *flags,
|
||||
char *fsname, unsigned int fsname_len )
|
||||
{
|
||||
dbgprintf("GetVolumeInformationA( %s, 0x%x, %ld, 0x%x, 0x%x, 0x%x, 0x%x, %ld) => 1\n",
|
||||
root,label,label_len,serial,filename_len,flags,fsname,fsname_len);
|
||||
//hack Do not return any real data - do nothing
|
||||
return 1;
|
||||
}
|
||||
|
||||
static unsigned int WINAPI expGetDriveTypeA( const char *root )
|
||||
{
|
||||
dbgprintf("GetDriveTypeA( %s ) => %d\n",root,DRIVE_FIXED);
|
||||
// hack return as Fixed Drive Type
|
||||
return DRIVE_FIXED;
|
||||
}
|
||||
|
||||
static unsigned int WINAPI expGetLogicalDriveStringsA( unsigned int len, char *buffer )
|
||||
{
|
||||
dbgprintf("GetLogicalDriveStringsA(%d, 0x%x) => 4\n",len,buffer);
|
||||
// hack only have one drive c:\ in this hack
|
||||
*buffer++='c';
|
||||
*buffer++=':';
|
||||
*buffer++='\\';
|
||||
*buffer++='\0';
|
||||
*buffer= '\0';
|
||||
return 4; // 1 drive * 4 bytes (includes null)
|
||||
}
|
||||
|
||||
|
||||
static int WINAPI expIsBadWritePtr(void* ptr, unsigned int count)
|
||||
{
|
||||
int result = (count == 0 || ptr != 0) ? 0 : 1;
|
||||
|
@ -1650,6 +1681,13 @@ static int WINAPI expGlobalSize(void* amem)
|
|||
dbgprintf("GlobalSize(0x%x)\n", amem);
|
||||
return size;
|
||||
}
|
||||
|
||||
static int WINAPI expLoadIconA( long hinstance, char *name )
|
||||
{
|
||||
dbgprintf("LoadIconA( %ld, 0x%x ) => 1\n",hinstance,name);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int WINAPI expLoadStringA(long instance, long id, void* buf, long size)
|
||||
{
|
||||
int result=LoadStringA(instance, id, buf, size);
|
||||
|
@ -3930,6 +3968,16 @@ static HRESULT WINAPI expMoDeleteMediaType(MY_MEDIA_TYPE* dest)
|
|||
return S_OK;
|
||||
}
|
||||
|
||||
static int exp_snprintf( char *str, int size, const char *format, ... )
|
||||
{
|
||||
int x;
|
||||
va_list va;
|
||||
va_start(va, format);
|
||||
x=snprintf(str,size,format,va);
|
||||
dbgprintf("_snprintf( 0x%x, %d, %s, ... ) => %d\n",str,size,format,x);
|
||||
va_end(va);
|
||||
return x;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static int exp_initterm(int v1, int v2)
|
||||
|
@ -3982,7 +4030,7 @@ static void* exp__dllonexit()
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static int expwsprintfA(char* string, char* format, ...)
|
||||
static int expwsprintfA(char* string, const char* format, ...)
|
||||
{
|
||||
va_list va;
|
||||
int result;
|
||||
|
@ -3997,7 +4045,7 @@ static int expsprintf(char* str, const char* format, ...)
|
|||
{
|
||||
va_list args;
|
||||
int r;
|
||||
dbgprintf("sprintf(%s, %s)\n", str, format);
|
||||
dbgprintf("sprintf(0x%x, %s)\n", str, format);
|
||||
va_start(args, format);
|
||||
r = vsprintf(str, format, args);
|
||||
va_end(args);
|
||||
|
@ -4513,13 +4561,13 @@ static void WINAPI expVariantInit(void* p)
|
|||
return;
|
||||
}
|
||||
|
||||
int expRegisterClassA(const void/*WNDCLASSA*/ *wc)
|
||||
static int WINAPI expRegisterClassA(const void/*WNDCLASSA*/ *wc)
|
||||
{
|
||||
dbgprintf("RegisterClassA(%p) => random id\n", wc);
|
||||
return time(NULL); /* be precise ! */
|
||||
}
|
||||
|
||||
int expUnregisterClassA(const char *className, HINSTANCE hInstance)
|
||||
static int WINAPI expUnregisterClassA(const char *className, HINSTANCE hInstance)
|
||||
{
|
||||
dbgprintf("UnregisterClassA(%s, %p) => 0\n", className, hInstance);
|
||||
return 0;
|
||||
|
@ -4656,6 +4704,9 @@ struct libs
|
|||
|
||||
struct exports exp_kernel32[]=
|
||||
{
|
||||
FF(GetVolumeInformationA,-1)
|
||||
FF(GetDriveTypeA,-1)
|
||||
FF(GetLogicalDriveStringsA,-1)
|
||||
FF(IsBadWritePtr, 357)
|
||||
FF(IsBadReadPtr, 354)
|
||||
FF(IsBadStringPtrW, -1)
|
||||
|
@ -4811,6 +4862,7 @@ struct exports exp_msvcrt[]={
|
|||
FF(malloc, -1)
|
||||
FF(_initterm, -1)
|
||||
FF(__dllonexit, -1)
|
||||
FF(_snprintf,-1)
|
||||
FF(free, -1)
|
||||
{"??3@YAXPAX@Z", -1, expdelete},
|
||||
{"??2@YAPAXI@Z", -1, expnew},
|
||||
|
@ -4878,6 +4930,7 @@ struct exports exp_winmm[]={
|
|||
#endif
|
||||
};
|
||||
struct exports exp_user32[]={
|
||||
FF(LoadIconA,-1)
|
||||
FF(LoadStringA, -1)
|
||||
FF(wsprintfA, -1)
|
||||
FF(GetDC, -1)
|
||||
|
|
|
@ -34,7 +34,5 @@ typedef struct tls_s tls_t;
|
|||
|
||||
extern void* LookupExternal(const char* library, int ordinal);
|
||||
extern void* LookupExternalByName(const char* library, const char* name);
|
||||
extern int expRegisterClassA(const void/*WNDCLASSA*/ *wc);
|
||||
extern int expUnregisterClassA(const char *className, HINSTANCE hInstance);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue