Re: PATCH - Video For Windows

Steven Edwards <steven_ed4153-/[email protected]> Wed, 20 Aug 2003 10:59:30 -0700 (PDT)
Newsgroups gmane.comp.gnu.mingw.patches
Message-ID <[email protected]>
Thanks. I was going to do this as we need this header to port some of the WINE dlls.

Thanks Again
Steven

--- Filip Navara <xnavara-VIXq6x/[email protected]> wrote:
> Reference:
>
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_video_for_windows.asp
> 
> Changelog (?):
>  * include/vfw.h: New file.
> 
> FiN <xnavara-VIXq6x/[email protected]>> #ifndef _VFW_H
> #define _VFW_H
> #if __GNUC__ >=3
> #pragma GCC system_header
> #endif
> 
> #ifndef _WINDOWS_H
> #include <windows.h>
> #endif
> #ifndef _MMSYSTEM_H
> #include <mmsystem.h>
> #endif
> #ifndef _OLE2_H
> #include <ole2.h>
> #endif
> 
> #define VFWAPI WINAPI
> #define VFWAPIV WINAPIV
> 
> #ifdef __cplusplus
> extern "C" {
> #endif
> 
> #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
> #define ICCOMPRESSFRAMES_PADDING	0x01
> #define	ICM_USER	(DRV_USER+0x0000)
> #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)
> #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)
> #define ICMF_CONFIGURE_QUERY	0x01
> #define ICCOMPRESS_KEYFRAME	0x01
> #define ICSTATUS_START	0
> #define ICSTATUS_STATUS	1
> #define ICSTATUS_END	2
> #define ICSTATUS_ERROR	3
> #define ICSTATUS_YIELD	4
> #define	ICMODE_COMPRESS	1
> #define	ICMODE_DECOMPRESS	2
> #define	ICMODE_FASTDECOMPRESS	3
> #define	ICMODE_QUERY	4
> #define	ICMODE_FASTCOMPRESS	5
> #define	ICMODE_DRAW	8
> #define ICQUALITY_LOW	0
> #define ICQUALITY_HIGH	10000
> #define ICQUALITY_DEFAULT	-1
> #define	VIDCF_QUALITY	0x01
> #define	VIDCF_CRUNCH	0x02
> #define	VIDCF_TEMPORAL	0x04
> #define	VIDCF_COMPRESSFRAMES	0x08
> #define	VIDCF_DRAW	0x10
> #define	VIDCF_FASTTEMPORALC	0x20
> #define	VIDCF_FASTTEMPORALD	0x80
> #define	VIDCF_QUALITYTIME	0x40
> #define	VIDCF_FASTTEMPORAL	(VIDCF_FASTTEMPORALC|VIDCF_FASTTEMPORALD)
> #define ICMF_ABOUT_QUERY	0x01
> #define ICDECOMPRESS_HURRYUP	0x80000000
> #define ICDECOMPRESS_UPDATE	0x40000000
> #define ICDECOMPRESS_PREROLL	0x20000000
> #define ICDECOMPRESS_NULLFRAME	0x10000000
> #define ICDECOMPRESS_NOTKEYFRAME	0x8000000
> #define ICDRAW_QUERY	0x01L
> #define ICDRAW_FULLSCREEN	0x02L
> #define ICDRAW_HDC	0x04L
> #define ICDRAW_ANIMATE	0x08L
> #define ICDRAW_CONTINUE	0x10L
> #define ICDRAW_MEMORYDC	0x20L
> #define ICDRAW_UPDATING	0x40L
> #define ICDRAW_RENDER	0x80L
> #define ICDRAW_BUFFER	0x100L
> #define ICINSTALL_UNICODE	0x8000
> #define ICINSTALL_FUNCTION	0x01
> #define ICINSTALL_DRIVER	0x02
> #define ICINSTALL_HDRV	0x04
> #define ICINSTALL_DRIVERW	0x8002
> #define ICDRAW_HURRYUP	0x80000000L
> #define ICDRAW_UPDATE	0x40000000L
> #define ICDRAW_PREROLL	0x20000000L
> #define ICDRAW_NULLFRAME	0x10000000L
> #define ICDRAW_NOTKEYFRAME	0x8000000L
> #define ICMF_COMPVARS_VALID	0x01
> #define ICMF_CHOOSE_KEYFRAME	0x01
> #define ICMF_CHOOSE_DATARATE	0x02
> #define ICMF_CHOOSE_PREVIEW	0x04
> #define ICMF_CHOOSE_ALLCOMPRESSORS	0x08
> #define ICTYPE_VIDEO	mmioFOURCC('v','i','d','c')
> #define ICTYPE_AUDIO	mmioFOURCC('a','u','d','c')
> #define formtypeAVI	mmioFOURCC('A','V','I',' ')
> #define listtypeAVIHEADER	mmioFOURCC('h','d','r','l')
> #define ckidAVIMAINHDR	mmioFOURCC('a','v','i','h')
> #define listtypeSTREAMHEADER	mmioFOURCC('s','t','r','l')
> #define ckidSTREAMHEADER	mmioFOURCC('s','t','r','h')
> #define ckidSTREAMFORMAT	mmioFOURCC('s','t','r','f')
> #define ckidSTREAMHANDLERDATA	mmioFOURCC('s','t','r','d')
> #define ckidSTREAMNAME	mmioFOURCC('s','t','r','n')
> #define listtypeAVIMOVIE	mmioFOURCC('m','o','v','i')
> #define listtypeAVIRECORD	mmioFOURCC('r','e','c',' ')
> #define ckidAVINEWINDEX	mmioFOURCC('i', 'd', 'x', '1')
> #define streamtypeANY	0UL
> #define streamtypeVIDEO	mmioFOURCC('v','i','d','s')
> #define streamtypeAUDIO	mmioFOURCC('a','u','d','s')
> #define streamtypeMIDI	mmioFOURCC('m','i','d','s')
> #define streamtypeTEXT	mmioFOURCC('t','x','t','s')
> #define cktypeDIBbits	aviTWOCC('d','b')
> #define cktypeDIBcompressed	aviTWOCC('d','c')
> #define cktypePALchange	aviTWOCC('p','c')
> #define cktypeWAVEbytes	aviTWOCC('w','b')
> #define ckidAVIPADDING	mmioFOURCC('J','U','N','K')
> #define FromHex(n) (((n)>='A')?((n)+10-'A'):((n)-'0'))
> #define StreamFromFOURCC(fcc)
> ((WORD)((FromHex(LOBYTE(LOWORD(fcc)))<<4)+(FromHex(HIBYTE(LOWORD(fcc))))))
> #define TWOCCFromFOURCC(fcc) HIWORD(fcc)
> #define ToHex(n) ((BYTE)(((n)>9)?((n)-10+'A'):((n)+'0')))
> #define MAKEAVICKID(tcc, stream)
> MAKELONG((ToHex((stream)&0x0f)<<8)|(ToHex(((stream)&0xf0)>>4)),tcc)
> #define AVIF_HASINDEX	0x10
> #define AVIF_MUSTUSEINDEX	0x20
> #define AVIF_ISINTERLEAVED	0x100
> #define AVIF_TRUSTCKTYPE	0x800
> #define AVIF_WASCAPTUREFILE	0x10000
> #define AVIF_COPYRIGHTED	0x20000
> #define AVI_HEADERSIZE	2048
> #define AVISF_DISABLED	0x01
> #define AVISF_VIDEO_PALCHANGES	0x10000
> #define AVIIF_LIST	0x01
> #define AVIIF_TWOCC	0x02
> #define AVIIF_KEYFRAME	0x10
> #define AVIIF_NOTIME	0x100
> #define AVIIF_COMPUSE	0xfff0000
> #define AVIIF_KEYFRAME	0x10
> #define	AVIGETFRAMEF_BESTDISPLAYFMT	1
> #define AVISTREAMINFO_DISABLED	0x01
> #define AVISTREAMINFO_FORMATCHANGES	0x10000
> #define AVIFILEINFO_HASINDEX	0x10
> 
=== message truncated ===


__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com


-------------------------------------------------------
This SF.net email is sponsored by Dice.com.
Did you know that Dice has over 25,000 tech jobs available today? From
careers in IT to Engineering to Tech Sales, Dice has tech jobs from the
best hiring companies. http://www.dice.com/index.epl?rel_code=104