⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vfw.h

📁 coreavc for linux in unix_linux
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * Modified for use with MPlayer, detailed changelog at * http://svn.mplayerhq.hu/mplayer/trunk/ */#ifndef MPLAYER_VFW_H#define MPLAYER_VFW_H//#include "pshpack1.h"#ifdef __cplusplusextern "C" {#endiftypedef struct __attribute__((__packed__)){    short    bfType;    long   bfSize;    short    bfReserved1;    short    bfReserved2;    long   bfOffBits;} BITMAPFILEHEADER;#ifndef _BITMAPINFOHEADER_#define _BITMAPINFOHEADER_typedef struct __attribute__((__packed__)){    long 	biSize;    long  	biWidth;    long  	biHeight;    short 	biPlanes;    short 	biBitCount;    long 	biCompression;    long 	biSizeImage;    long  	biXPelsPerMeter;    long  	biYPelsPerMeter;    long 	biClrUsed;    long 	biClrImportant;} BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;typedef struct {	BITMAPINFOHEADER bmiHeader;	int	bmiColors[1];} BITMAPINFO, *LPBITMAPINFO;#endif#define VFWAPI	#define VFWAPIV	#ifndef MPLAYER_WINDEF_Htypedef long (__stdcall__ *DRIVERPROC)(long,HDRVR,unsigned int,long,long);#endif#ifndef mmioFOURCC#define mmioFOURCC( ch0, ch1, ch2, ch3 )				\	( (long)(unsigned char)(ch0) | ( (long)(unsigned char)(ch1) << 8 ) |		\	( (long)(unsigned char)(ch2) << 16 ) | ( (long)(unsigned char)(ch3) << 24 ) )#endif#ifndef aviTWOCC#define aviTWOCC(ch0, ch1) ((short)(unsigned char)(ch0) | ((short)(unsigned char)(ch1) << 8))#endif#define ICTYPE_VIDEO	mmioFOURCC('v', 'i', 'd', 'c')#define ICTYPE_AUDIO	mmioFOURCC('a', 'u', 'd', 'c')/* Installable Compressor M? *//* HIC struct (same layout as Win95 one) */typedef struct tagWINE_HIC {	long		magic;		/* 00: 'Smag' */	HANDLE	curthread;	/* 04: */	long		type;		/* 08: */	long		handler;	/* 0C: */	HDRVR		hdrv;		/* 10: */	long		driverid;	/* 14:(handled by SendDriverMessage)*/	DRIVERPROC	driverproc;	/* 18:(handled by SendDriverMessage)*/	long		x1;		/* 1c: name? */	short		x2;		/* 20: */	long		x3;		/* 22: */					/* 26: */} WINE_HIC;/* error return codes */#define	ICERR_OK		0#define	ICERR_DONTDRAW		1#define	ICERR_NEWPALETTE	2#define	ICERR_GOTOKEYFRAME	3#define	ICERR_STOPDRAWING	4#define	ICERR_UNSUPPORTED	-1#define	ICERR_BADFORMAT		-2#define	ICERR_MEMORY		-3#define	ICERR_INTERNAL		-4#define	ICERR_BADFLAGS		-5#define	ICERR_BADPARAM		-6#define	ICERR_BADSIZE		-7#define	ICERR_BADHANDLE		-8#define	ICERR_CANTUPDATE	-9#define	ICERR_ABORT		-10#define	ICERR_ERROR		-100#define	ICERR_BADBITDEPTH	-200#define	ICERR_BADIMAGESIZE	-201#define	ICERR_CUSTOM		-400/* ICM Messages */#define	ICM_USER		(DRV_USER+0x0000)/* ICM driver message range */#define	ICM_RESERVED_LOW	(DRV_USER+0x1000)#define	ICM_RESERVED_HIGH	(DRV_USER+0x2000)#define	ICM_RESERVED		ICM_RESERVED_LOW#define	ICM_GETSTATE		(ICM_RESERVED+0)#define	ICM_SETSTATE		(ICM_RESERVED+1)#define	ICM_GETINFO		(ICM_RESERVED+2)#define	ICM_CONFIGURE		(ICM_RESERVED+10)#define	ICM_ABOUT		(ICM_RESERVED+11)/* */#define	ICM_GETDEFAULTQUALITY	(ICM_RESERVED+30)#define	ICM_GETQUALITY		(ICM_RESERVED+31)#define	ICM_SETQUALITY		(ICM_RESERVED+32)#define	ICM_SET			(ICM_RESERVED+40)#define	ICM_GET			(ICM_RESERVED+41)/* 2 constant FOURCC codes */#define ICM_FRAMERATE		mmioFOURCC('F','r','m','R')#define ICM_KEYFRAMERATE	mmioFOURCC('K','e','y','R')#define	ICM_COMPRESS_GET_FORMAT		(ICM_USER+4)#define	ICM_COMPRESS_GET_SIZE		(ICM_USER+5)#define	ICM_COMPRESS_QUERY		(ICM_USER+6)#define	ICM_COMPRESS_BEGIN		(ICM_USER+7)#define	ICM_COMPRESS			(ICM_USER+8)#define	ICM_COMPRESS_END		(ICM_USER+9)#define	ICM_DECOMPRESS_GET_FORMAT	(ICM_USER+10)#define	ICM_DECOMPRESS_QUERY		(ICM_USER+11)#define	ICM_DECOMPRESS_BEGIN		(ICM_USER+12)#define	ICM_DECOMPRESS			(ICM_USER+13)#define	ICM_DECOMPRESS_END		(ICM_USER+14)#define	ICM_DECOMPRESS_SET_PALETTE	(ICM_USER+29)#define	ICM_DECOMPRESS_GET_PALETTE	(ICM_USER+30)#define	ICM_DRAW_QUERY			(ICM_USER+31)#define	ICM_DRAW_BEGIN			(ICM_USER+15)#define	ICM_DRAW_GET_PALETTE		(ICM_USER+16)#define	ICM_DRAW_START			(ICM_USER+18)#define	ICM_DRAW_STOP			(ICM_USER+19)#define	ICM_DRAW_END			(ICM_USER+21)#define	ICM_DRAW_GETTIME		(ICM_USER+32)#define	ICM_DRAW			(ICM_USER+33)#define	ICM_DRAW_WINDOW			(ICM_USER+34)#define	ICM_DRAW_SETTIME		(ICM_USER+35)#define	ICM_DRAW_REALIZE		(ICM_USER+36)#define	ICM_DRAW_FLUSH			(ICM_USER+37)#define	ICM_DRAW_RENDERBUFFER		(ICM_USER+38)#define	ICM_DRAW_START_PLAY		(ICM_USER+39)#define	ICM_DRAW_STOP_PLAY		(ICM_USER+40)#define	ICM_DRAW_SUGGESTFORMAT		(ICM_USER+50)#define	ICM_DRAW_CHANGEPALETTE		(ICM_USER+51)#define	ICM_GETBUFFERSWANTED		(ICM_USER+41)#define	ICM_GETDEFAULTKEYFRAMERATE	(ICM_USER+42)#define	ICM_DECOMPRESSEX_BEGIN		(ICM_USER+60)#define	ICM_DECOMPRESSEX_QUERY		(ICM_USER+61)#define	ICM_DECOMPRESSEX		(ICM_USER+62)#define	ICM_DECOMPRESSEX_END		(ICM_USER+63)#define	ICM_COMPRESS_FRAMES_INFO	(ICM_USER+70)#define	ICM_SET_STATUS_PROC		(ICM_USER+72)/* structs */typedef struct {	long	dwSize;		/* 00: size */	long	fccType;	/* 04: type 'vidc' usually */	long	fccHandler;	/* 08: */	long	dwVersion;	/* 0c: version of compman opening you */	long	dwFlags;	/* 10: LOshort is type specific */	LRESULT	dwError;	/* 14: */	void*	pV1Reserved;	/* 18: */	void*	pV2Reserved;	/* 1c: */	long	dnDevNode;	/* 20: */				/* 24: */} ICOPEN,*LPICOPEN;#define ICCOMPRESS_KEYFRAME     0x00000001Ltypedef struct {    long		dwFlags;    LPBITMAPINFOHEADER	lpbiOutput;    void*		lpOutput;    LPBITMAPINFOHEADER	lpbiInput;    const void*		lpInput;    long*		lpckid;    long*		lpdwFlags;    long		lFrameNum;    long		dwFrameSize;    long		dwQuality;    LPBITMAPINFOHEADER	lpbiPrev;    void*		lpPrev;} ICCOMPRESS;long VFWAPIV ICCompress(	HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiOutput,void* lpData,	LPBITMAPINFOHEADER lpbiInput,void* lpBits,long* lpckid,	long* lpdwFlags,long lFrameNum,long dwFrameSize,long dwQuality,	LPBITMAPINFOHEADER lpbiPrev,void* lpPrev);#define ICCompressGetFormat(hic, lpbiInput, lpbiOutput) 		\	ICSendMessage(							\	    hic,ICM_COMPRESS_GET_FORMAT,(long)(void*)(lpbiInput),	\	    (long)(void*)(lpbiOutput)					\	)#define ICCompressGetFormatSize(hic,lpbi) ICCompressGetFormat(hic,lpbi,NULL)#define ICGetDefaultKeyFrameRate(hic,lpint) 		\	ICSendMessage(					\	    hic, ICM_GETDEFAULTKEYFRAMERATE,		\	    (long)(void*)(lpint), 			\	    0	)		#define ICGetDefaultQuality(hic,lpint) 			\	ICSendMessage(					\	    hic, ICM_GETDEFAULTQUALITY,			\	    (long)(void*)(lpint), 			\	    0	)			    	#define ICCompressBegin(hic, lpbiInput, lpbiOutput) 			\    ICSendMessage(							\    	hic, ICM_COMPRESS_BEGIN, (long)(void*)(lpbiInput),		\	(long)(void*)(lpbiOutput)					\    )#define ICCompressGetSize(hic, lpbiInput, lpbiOutput) 		\    ICSendMessage(							\    	hic, ICM_COMPRESS_GET_SIZE, (long)(void*)(lpbiInput), 	\	(long)(void*)(lpbiOutput)					\    )#define ICCompressQuery(hic, lpbiInput, lpbiOutput)		\    ICSendMessage(						\    	hic, ICM_COMPRESS_QUERY, (long)(void*)(lpbiInput),	\	(long)(void*)(lpbiOutput)				\    )#define ICCompressEnd(hic) ICSendMessage(hic, ICM_COMPRESS_END, 0, 0)/* ICCOMPRESSFRAMES.dwFlags */#define ICCOMPRESSFRAMES_PADDING        0x00000001typedef struct {    long               dwFlags;    LPBITMAPINFOHEADER  lpbiOutput;    LPARAM              lOutput;    LPBITMAPINFOHEADER  lpbiInput;    LPARAM              lInput;    long                lStartFrame;    long                lFrameCount;    long                lQuality;    long                lDataRate;    long                lKeyRate;    long               dwRate;    long               dwScale;    long               dwOverheadPerFrame;    long               dwReserved2;    long CALLBACK (*GetData)(LPARAM lInput,long lFrame,void* lpBits,long len);    long CALLBACK (*PutData)(LPARAM lOutput,long lFrame,void* lpBits,long len);} ICCOMPRESSFRAMES;/* Values for wMode of ICOpen() */#define	ICMODE_COMPRESS		1#define	ICMODE_DECOMPRESS	2#define	ICMODE_FASTDECOMPRESS	3#define	ICMODE_QUERY		4#define	ICMODE_FASTCOMPRESS	5#define	ICMODE_DRAW		8/* quality flags */#define ICQUALITY_LOW       0#define ICQUALITY_HIGH      10000#define ICQUALITY_DEFAULT   -1typedef struct {	long	dwSize;		/* 00: */	long	fccType;	/* 04:compressor type     'vidc' 'audc' */	long	fccHandler;	/* 08:compressor sub-type 'rle ' 'jpeg' 'pcm '*/	long	dwFlags;	/* 0c:flags LOshort is type specific */	long	dwVersion;	/* 10:version of the driver */	long	dwVersionICM;	/* 14:version of the ICM used */	/*	 * under Win32, the driver always returns UNICODE strings.	 */	WCHAR	szName[16];		/* 18:short name */	WCHAR	szDescription[128];	/* 38:long name */	WCHAR	szDriver[128];		/* 138:driver that contains compressor*/					/* 238: */} ICINFO;/* ICINFO.dwFlags */#define	VIDCF_QUALITY		0x0001  /* supports quality */#define	VIDCF_CRUNCH		0x0002  /* supports crunching to a frame size */#define	VIDCF_TEMPORAL		0x0004  /* supports inter-frame compress */#define	VIDCF_COMPRESSFRAMES	0x0008  /* wants the compress all frames message */#define	VIDCF_DRAW		0x0010  /* supports drawing */#define	VIDCF_FASTTEMPORALC	0x0020  /* does not need prev frame on compress */#define	VIDCF_FASTTEMPORALD	0x0080  /* does not need prev frame on decompress */#define	VIDCF_QUALITYTIME	0x0040  /* supports temporal quality */#define	VIDCF_FASTTEMPORAL	(VIDCF_FASTTEMPORALC|VIDCF_FASTTEMPORALD)/* function shortcuts *//* ICM_ABOUT */#define ICMF_ABOUT_QUERY         0x00000001#define ICQueryAbout(hic) \	(ICSendMessage(hic,ICM_ABOUT,(long)-1,ICMF_ABOUT_QUERY)==ICERR_OK)#define ICAbout(hic, hwnd) ICSendMessage(hic,ICM_ABOUT,(long)(unsigned int)(hwnd),0)/* ICM_CONFIGURE */#define ICMF_CONFIGURE_QUERY	0x00000001#define ICQueryConfigure(hic) \

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -