windows-nt/Source/XPSP1/NT/multimedia/media/avi/msvidc/msvidc.h

143 lines
5.8 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*----------------------------------------------------------------------+
| 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