summaryrefslogtreecommitdiffstats
path: root/loader
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-07-08 17:20:46 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-07-08 17:20:46 +0000
commit728e7eba4cebb564e8d9fd98d94748e21b89c0b7 (patch)
tree20ce683189e6198ae35d82a8318c6a4461733109 /loader
parent4844ff55e50fdd1689be0783ed0ae803590efcbc (diff)
downloadmpv-728e7eba4cebb564e8d9fd98d94748e21b89c0b7.tar.bz2
mpv-728e7eba4cebb564e8d9fd98d94748e21b89c0b7.tar.xz
VfwEx support
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1298 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'loader')
-rw-r--r--loader/vfl.c60
-rw-r--r--loader/wine/vfw.h13
2 files changed, 73 insertions, 0 deletions
diff --git a/loader/vfl.c b/loader/vfl.c
index 6af2d42bc1..a16986aa33 100644
--- a/loader/vfl.c
+++ b/loader/vfl.c
@@ -283,6 +283,66 @@ ICDecompress(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPB
}
/***********************************************************************
+ * ICDecompressEx [MSVFW.26]
+ */
+long VFWAPIV
+ICDecompressEx(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits) {
+ ICDECOMPRESSEX icd;
+ int result;
+
+ icd.dwFlags = dwFlags;
+
+ icd.lpbiSrc = lpbiFormat;
+ icd.lpSrc = lpData;
+
+ icd.lpbiDst = lpbi;
+ icd.lpDst = lpBits;
+
+ icd.xSrc=icd.ySrc=0;
+ icd.dxSrc=lpbiFormat->biWidth;
+ icd.dySrc=abs(lpbiFormat->biHeight);
+
+ icd.xDst=icd.yDst=0;
+ icd.dxDst=lpbi->biWidth;
+ icd.dyDst=abs(lpbi->biHeight);
+
+ //icd.ckid = 0;
+ STORE_ALL;
+ result=ICSendMessage(hic,ICM_DECOMPRESSEX,(long)&icd,sizeof(icd));
+ REST_ALL;
+ return result;
+}
+
+long VFWAPIV
+ICUniversalEx(HIC hic,int command,LPBITMAPINFOHEADER lpbiFormat,LPBITMAPINFOHEADER lpbi) {
+ ICDECOMPRESSEX icd;
+ int result;
+
+ icd.dwFlags = 0;
+
+ icd.lpbiSrc = lpbiFormat;
+ icd.lpSrc = 0;
+
+ icd.lpbiDst = lpbi;
+ icd.lpDst = 0;
+
+ icd.xSrc=icd.ySrc=0;
+ icd.dxSrc=lpbiFormat->biWidth;
+ icd.dySrc=abs(lpbiFormat->biHeight);
+
+ icd.xDst=icd.yDst=0;
+ icd.dxDst=lpbi->biWidth;
+ icd.dyDst=abs(lpbi->biHeight);
+
+ //icd.ckid = 0;
+ STORE_ALL;
+ result=ICSendMessage(hic,command,(long)&icd,sizeof(icd));
+ REST_ALL;
+ return result;
+}
+
+
+/***********************************************************************
* ICSendMessage [MSVFW.40]
*/
LRESULT VFWAPI
diff --git a/loader/wine/vfw.h b/loader/wine/vfw.h
index e60f83c502..a72da79c89 100644
--- a/loader/wine/vfw.h
+++ b/loader/wine/vfw.h
@@ -377,6 +377,7 @@ typedef struct {
long VFWAPIV ICDecompress(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits);
+long VFWAPIV ICDecompressEx(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits);
#define ICDecompressBegin(hic, lpbiInput, lpbiOutput) \
@@ -385,12 +386,24 @@ long VFWAPIV ICDecompress(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,voi
(long)(void*)(lpbiOutput) \
)
+#define ICDecompressBeginEx(hic, lpbiInput, lpbiOutput) \
+ ICUniversalEx( \
+ hic, ICM_DECOMPRESSEX_BEGIN, (long)(void*)(lpbiInput), \
+ (long)(void*)(lpbiOutput) \
+ )
+
#define ICDecompressQuery(hic, lpbiInput, lpbiOutput) \
ICSendMessage( \
hic,ICM_DECOMPRESS_QUERY, (long)(void*)(lpbiInput), \
(long) (void*)(lpbiOutput) \
)
+#define ICDecompressQueryEx(hic, lpbiInput, lpbiOutput) \
+ ICUniversalEx( \
+ hic,ICM_DECOMPRESSEX_QUERY, (long)(void*)(lpbiInput), \
+ (long) (void*)(lpbiOutput) \
+ )
+
#define ICDecompressGetFormat(hic, lpbiInput, lpbiOutput) \
((long)ICSendMessage( \
hic,ICM_DECOMPRESS_GET_FORMAT, (long)(void*)(lpbiInput), \