143 lines
5.8 KiB
C
143 lines
5.8 KiB
C
|
/*----------------------------------------------------------------------+
|
||
|
| msvidc.h - Microsoft Video 1 Compressor - header file |
|
||
|
| |
|
||
|
| Copyright (c) 1990-1994 Microsoft Corporation. |
|
||
|
| Portions Copyright Media Vision Inc. |
|
||
|
| All Rights Reserved. |
|
||
|
| |
|
||
|
| You have a non-exclusive, worldwide, royalty-free, and perpetual |
|
||
|
| license to use this source code in developing hardware, software |
|
||
|
| (limited to drivers and other software required for hardware |
|
||
|
| functionality), and firmware for video display and/or processing |
|
||
|
| boards. Microsoft makes no warranties, express or implied, with |
|
||
|
| respect to the Video 1 codec, including without limitation warranties |
|
||
|
| of merchantability or fitness for a particular purpose. Microsoft |
|
||
|
| shall not be liable for any damages whatsoever, including without |
|
||
|
| limitation consequential damages arising from your use of the Video 1 |
|
||
|
| codec. |
|
||
|
| |
|
||
|
| |
|
||
|
+----------------------------------------------------------------------*/
|
||
|
|
||
|
#ifndef RC_INVOKED
|
||
|
|
||
|
#ifndef _INC_COMPDDK
|
||
|
#define _INC_COMPDDK 50 /* version number */
|
||
|
#endif
|
||
|
|
||
|
#include <vfw.h>
|
||
|
|
||
|
#include "decmprss.h" // Must include DECMPRSS.H first
|
||
|
#include "compress.h"
|
||
|
#endif
|
||
|
|
||
|
#define ID_SCROLL 100
|
||
|
#define ID_TEXT 101
|
||
|
|
||
|
#define IDS_DESCRIPTION 42
|
||
|
#define IDS_NAME 43
|
||
|
#define IDS_ABOUT 44
|
||
|
|
||
|
extern HMODULE ghModule;
|
||
|
|
||
|
#define ALIGNULONG(i) ((i+3)&(~3)) /* ULONG aligned ! */
|
||
|
#define WIDTHBYTES(i) ((unsigned)((i+31)&(~31))/8) /* ULONG aligned ! */
|
||
|
#define DIBWIDTHBYTES(bi) (int)WIDTHBYTES((int)(bi).biWidth * (int)(bi).biBitCount)
|
||
|
|
||
|
#ifndef _WIN32
|
||
|
extern long FAR PASCAL muldiv32(long, long, long);
|
||
|
#endif
|
||
|
|
||
|
// in invcmap.c
|
||
|
LPVOID FAR PASCAL MakeITable(LPRGBQUAD lprgbq, int nColors);
|
||
|
|
||
|
typedef WORD RGB555;
|
||
|
typedef DWORD RGBDWORD;
|
||
|
typedef BYTE HUGE *HPBYTE;
|
||
|
typedef WORD HUGE *HPWORD;
|
||
|
typedef LONG HUGE *HPLONG;
|
||
|
typedef RGBDWORD HUGE *HPRGBDWORD;
|
||
|
typedef RGB555 HUGE *HPRGB555;
|
||
|
typedef RGBTRIPLE HUGE *HPRGBTRIPLE;
|
||
|
typedef RGBQUAD HUGE *HPRGBQUAD;
|
||
|
|
||
|
typedef struct {
|
||
|
UINT wTemporalRatio; // 100 = 1.0, 50 = .50 etc...
|
||
|
} ICSTATE;
|
||
|
|
||
|
typedef struct {
|
||
|
DWORD dwFlags; // flags from ICOPEN
|
||
|
DECOMPPROC DecompressProc; // current decomp proc...
|
||
|
DECOMPPROC DecompressTest; // decomp proc...
|
||
|
ICSTATE CurrentState; // current state of compressor.
|
||
|
int nCompress; // count of COMPRESS_BEGIN calls
|
||
|
int nDecompress; // count of DECOMPRESS_BEGIN calls
|
||
|
int nDraw; // count of DRAW_BEGIN calls
|
||
|
LONG (CALLBACK *Status) (LPARAM lParam, UINT message, LONG l);
|
||
|
LPARAM lParam;
|
||
|
LPBYTE lpITable;
|
||
|
RGBQUAD rgbqOut[256];
|
||
|
} INSTINFO, *PINSTINFO;
|
||
|
|
||
|
|
||
|
#ifdef _WIN32
|
||
|
#define VideoLoad() TRUE
|
||
|
#else
|
||
|
BOOL NEAR PASCAL VideoLoad(void);
|
||
|
#endif
|
||
|
void NEAR PASCAL VideoFree(void);
|
||
|
INSTINFO *NEAR PASCAL VideoOpen(ICOPEN FAR *icinfo);
|
||
|
LONG NEAR PASCAL VideoClose(INSTINFO * pinst);
|
||
|
LONG NEAR PASCAL GetState(INSTINFO * pinst, LPVOID pv, DWORD dwSize);
|
||
|
LONG NEAR PASCAL SetState(INSTINFO * pinst, LPVOID pv, DWORD dwSize);
|
||
|
LONG NEAR PASCAL GetInfo(INSTINFO * pinst, ICINFO FAR *icinfo, DWORD dwSize);
|
||
|
|
||
|
#define QueryAbout(x) (TRUE)
|
||
|
//BOOL NEAR PASCAL QueryAbout(INSTINFO * pinst);
|
||
|
LONG NEAR PASCAL About(INSTINFO * pinst, HWND hwnd);
|
||
|
#define QueryConfigure(x) (TRUE)
|
||
|
//BOOL NEAR PASCAL QueryConfigure(INSTINFO * pinst);
|
||
|
LONG NEAR PASCAL Configure(INSTINFO * pinst, HWND hwnd);
|
||
|
|
||
|
LONG FAR PASCAL CompressBegin(INSTINFO * pinst, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut);
|
||
|
LONG FAR PASCAL CompressQuery(INSTINFO * pinst, LPBITMAPINFOHEADER lpbiIn,LPBITMAPINFOHEADER lpbiOut);
|
||
|
LONG FAR PASCAL CompressGetFormat(INSTINFO * pinst, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut);
|
||
|
LONG FAR PASCAL Compress(INSTINFO * pinst,ICCOMPRESS FAR *icinfo, DWORD dwSize);
|
||
|
LONG FAR PASCAL CompressGetSize(INSTINFO * pinst, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut);
|
||
|
LONG FAR PASCAL CompressEnd(INSTINFO * lpinst);
|
||
|
|
||
|
LONG NEAR PASCAL DecompressGetFormat(INSTINFO * pinst, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut);
|
||
|
LONG NEAR PASCAL DecompressGetPalette(INSTINFO * pinst, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut);
|
||
|
LONG NEAR PASCAL DecompressBegin(INSTINFO * pinst, DWORD dwFlags, LPBITMAPINFOHEADER lpbiSrc, LPVOID pSrc, int xSrc, int ySrc, int dxSrc, int dySrc, LPBITMAPINFOHEADER lpbiDst, LPVOID pDst, int xDst, int yDst, int dxDst, int dyDst);
|
||
|
LONG NEAR PASCAL DecompressQuery(INSTINFO * pinst, DWORD dwFlags, LPBITMAPINFOHEADER lpbiSrc, LPVOID pSrc, int xSrc, int ySrc, int dxSrc, int dySrc, LPBITMAPINFOHEADER lpbiDst, LPVOID pDst, int xDst, int yDst, int dxDst, int dyDst);
|
||
|
LONG NEAR PASCAL Decompress(INSTINFO * pinst, DWORD dwFlags, LPBITMAPINFOHEADER lpbiSrc, LPVOID pSrc, int xSrc, int ySrc, int dxSrc, int dySrc, LPBITMAPINFOHEADER lpbiDst, LPVOID pDst, int xDst, int yDst, int dxDst, int dyDst);
|
||
|
LONG NEAR PASCAL DecompressEnd(INSTINFO * pinst);
|
||
|
|
||
|
LONG NEAR PASCAL DrawQuery(INSTINFO * pinst,ICDRAWBEGIN FAR *icinfo, DWORD dwSize);
|
||
|
LONG NEAR PASCAL DrawBegin(INSTINFO * pinst,ICDRAWBEGIN FAR *icinfo, DWORD dwSize);
|
||
|
LONG NEAR PASCAL Draw(INSTINFO * pinst,ICDRAW FAR *icinfo, DWORD dwSize);
|
||
|
LONG NEAR PASCAL DrawEnd(INSTINFO * pinst);
|
||
|
|
||
|
#ifdef DEBUG
|
||
|
extern void FAR CDECL dprintf(LPSTR, ...);
|
||
|
// Allow DPF statements to span multiple lines
|
||
|
#define DPF( _x_ ) dprintf _x_
|
||
|
#else
|
||
|
#define DPF(x)
|
||
|
#endif
|
||
|
|
||
|
#ifdef DEBUG
|
||
|
/* Assert() macros */
|
||
|
#define Assert(expr) _Assert((expr), __FILE__, __LINE__)
|
||
|
#define AssertEval(expr) _Assert((expr), __FILE__, __LINE__)
|
||
|
|
||
|
/* prototypes */
|
||
|
BOOL FAR PASCAL _Assert(BOOL fExpr, LPSTR szFile, int iLine);
|
||
|
|
||
|
#else
|
||
|
/* Assert() macros */
|
||
|
#define Assert(expr) (TRUE)
|
||
|
#define AssertEval(expr) (expr)
|
||
|
|
||
|
#endif
|