| 1 | /** | 
 
 
 
 
 | 2 | * This file is part of the mingw-w64 runtime package. | 
 
 
 
 
 | 3 | * No warranty is given; refer to the file DISCLAIMER within this package. | 
 
 
 
 
 | 4 | */ | 
 
 
 
 
 | 5 |  | 
 
 
 
 
 | 6 | #include <winapifamily.h> | 
 
 
 
 
 | 7 |  | 
 
 
 
 
 | 8 | /* The contents of this file is duplicated in vfw.h */ | 
 
 
 
 
 | 9 | #ifndef _INC_AVIFMT | 
 
 
 
 
 | 10 | #define _INC_AVIFMT 100 | 
 
 
 
 
 | 11 |  | 
 
 
 
 
 | 12 | #ifdef __cplusplus | 
 
 
 
 
 | 13 | extern "C" { | 
 
 
 
 
 | 14 | #endif | 
 
 
 
 
 | 15 |  | 
 
 
 
 
 | 16 | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) | 
 
 
 
 
 | 17 |  | 
 
 
 
 
 | 18 | #ifndef mmioFOURCC | 
 
 
 
 
 | 19 | #define mmioFOURCC(ch0, ch1, ch2, ch3) ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24)) | 
 
 
 
 
 | 20 | #endif | 
 
 
 
 
 | 21 |  | 
 
 
 
 
 | 22 | #ifndef aviTWOCC | 
 
 
 
 
 | 23 | #define aviTWOCC(ch0, ch1) ((WORD) (BYTE) (ch0) | ((WORD) (BYTE) (ch1) << 8)) | 
 
 
 
 
 | 24 | #endif | 
 
 
 
 
 | 25 |  | 
 
 
 
 
 | 26 | typedef WORD TWOCC; | 
 
 
 
 
 | 27 |  | 
 
 
 
 
 | 28 | #define formtypeAVI mmioFOURCC('A', 'V', 'I', ' ') | 
 
 
 
 
 | 29 | #define listtypeAVIHEADER mmioFOURCC('h', 'd', 'r', 'l') | 
 
 
 
 
 | 30 | #define ckidAVIMAINHDR mmioFOURCC('a', 'v', 'i', 'h') | 
 
 
 
 
 | 31 | #define listtypeSTREAMHEADER mmioFOURCC('s', 't', 'r', 'l') | 
 
 
 
 
 | 32 | #define ckidSTREAMHEADER mmioFOURCC('s', 't', 'r', 'h') | 
 
 
 
 
 | 33 | #define ckidSTREAMFORMAT mmioFOURCC('s', 't', 'r', 'f') | 
 
 
 
 
 | 34 | #define ckidSTREAMHANDLERDATA mmioFOURCC('s', 't', 'r', 'd') | 
 
 
 
 
 | 35 | #define ckidSTREAMNAME mmioFOURCC('s', 't', 'r', 'n') | 
 
 
 
 
 | 36 |  | 
 
 
 
 
 | 37 | #define listtypeAVIMOVIE mmioFOURCC('m', 'o', 'v', 'i') | 
 
 
 
 
 | 38 | #define listtypeAVIRECORD mmioFOURCC('r', 'e', 'c', ' ') | 
 
 
 
 
 | 39 |  | 
 
 
 
 
 | 40 | #define ckidAVINEWINDEX mmioFOURCC('i', 'd', 'x', '1') | 
 
 
 
 
 | 41 |  | 
 
 
 
 
 | 42 | #define streamtypeVIDEO mmioFOURCC('v', 'i', 'd', 's') | 
 
 
 
 
 | 43 | #define streamtypeAUDIO mmioFOURCC('a', 'u', 'd', 's') | 
 
 
 
 
 | 44 | #define streamtypeMIDI mmioFOURCC('m', 'i', 'd', 's') | 
 
 
 
 
 | 45 | #define streamtypeTEXT mmioFOURCC('t', 'x', 't', 's') | 
 
 
 
 
 | 46 |  | 
 
 
 
 
 | 47 | #define cktypeDIBbits aviTWOCC('d', 'b') | 
 
 
 
 
 | 48 | #define cktypeDIBcompressed aviTWOCC('d', 'c') | 
 
 
 
 
 | 49 | #define cktypePALchange aviTWOCC('p', 'c') | 
 
 
 
 
 | 50 | #define cktypeWAVEbytes aviTWOCC('w', 'b') | 
 
 
 
 
 | 51 |  | 
 
 
 
 
 | 52 | #define ckidAVIPADDING mmioFOURCC('J', 'U', 'N', 'K') | 
 
 
 
 
 | 53 |  | 
 
 
 
 
 | 54 | #define FromHex(n) (((n) >= 'A') ? ((n) + 10 - 'A') : ((n) - '0')) | 
 
 
 
 
 | 55 | #define StreamFromFOURCC(fcc) ((WORD) ((FromHex(LOBYTE(LOWORD(fcc))) << 4) + (FromHex(HIBYTE(LOWORD(fcc)))))) | 
 
 
 
 
 | 56 |  | 
 
 
 
 
 | 57 | #define TWOCCFromFOURCC(fcc) HIWORD(fcc) | 
 
 
 
 
 | 58 |  | 
 
 
 
 
 | 59 | #define ToHex(n) ((BYTE) (((n) > 9) ? ((n) - 10 + 'A') : ((n) + '0'))) | 
 
 
 
 
 | 60 | #define MAKEAVICKID(tcc, stream) MAKELONG((ToHex((stream) & 0xf) << 8) | (ToHex(((stream) & 0xf0) >> 4)), tcc) | 
 
 
 
 
 | 61 |  | 
 
 
 
 
 | 62 | #define AVIF_HASINDEX 0x00000010 | 
 
 
 
 
 | 63 | #define AVIF_MUSTUSEINDEX 0x00000020 | 
 
 
 
 
 | 64 | #define AVIF_ISINTERLEAVED 0x00000100 | 
 
 
 
 
 | 65 | #define AVIF_TRUSTCKTYPE 0x00000800 | 
 
 
 
 
 | 66 | #define AVIF_WASCAPTUREFILE 0x00010000 | 
 
 
 
 
 | 67 | #define AVIF_COPYRIGHTED 0x00020000 | 
 
 
 
 
 | 68 |  | 
 
 
 
 
 | 69 | #define AVI_HEADERSIZE 2048 | 
 
 
 
 
 | 70 |  | 
 
 
 
 
 | 71 | typedef struct { | 
 
 
 
 
 | 72 | DWORD dwMicroSecPerFrame; | 
 
 
 
 
 | 73 | DWORD dwMaxBytesPerSec; | 
 
 
 
 
 | 74 | DWORD dwPaddingGranularity; | 
 
 
 
 
 | 75 | DWORD dwFlags; | 
 
 
 
 
 | 76 | DWORD dwTotalFrames; | 
 
 
 
 
 | 77 | DWORD dwInitialFrames; | 
 
 
 
 
 | 78 | DWORD dwStreams; | 
 
 
 
 
 | 79 | DWORD dwSuggestedBufferSize; | 
 
 
 
 
 | 80 | DWORD dwWidth; | 
 
 
 
 
 | 81 | DWORD dwHeight; | 
 
 
 
 
 | 82 | DWORD dwReserved[4]; | 
 
 
 
 
 | 83 | } MainAVIHeader; | 
 
 
 
 
 | 84 | #define AVISF_DISABLED 0x00000001 | 
 
 
 
 
 | 85 |  | 
 
 
 
 
 | 86 | #define AVISF_VIDEO_PALCHANGES 0x00010000 | 
 
 
 
 
 | 87 |  | 
 
 
 
 
 | 88 | typedef struct { | 
 
 
 
 
 | 89 | FOURCC fccType; | 
 
 
 
 
 | 90 | FOURCC fccHandler; | 
 
 
 
 
 | 91 | DWORD dwFlags; | 
 
 
 
 
 | 92 | WORD wPriority; | 
 
 
 
 
 | 93 | WORD wLanguage; | 
 
 
 
 
 | 94 | DWORD dwInitialFrames; | 
 
 
 
 
 | 95 | DWORD dwScale; | 
 
 
 
 
 | 96 | DWORD dwRate; | 
 
 
 
 
 | 97 | DWORD dwStart; | 
 
 
 
 
 | 98 | DWORD dwLength; | 
 
 
 
 
 | 99 | DWORD dwSuggestedBufferSize; | 
 
 
 
 
 | 100 | DWORD dwQuality; | 
 
 
 
 
 | 101 | DWORD dwSampleSize; | 
 
 
 
 
 | 102 | RECT rcFrame; | 
 
 
 
 
 | 103 | } AVIStreamHeader; | 
 
 
 
 
 | 104 | #define AVIIF_LIST __MSABI_LONG(0x00000001) | 
 
 
 
 
 | 105 | #define AVIIF_KEYFRAME __MSABI_LONG(0x00000010) | 
 
 
 
 
 | 106 | #define AVIIF_FIRSTPART __MSABI_LONG(0x00000020) | 
 
 
 
 
 | 107 | #define AVIIF_LASTPART __MSABI_LONG(0x00000040) | 
 
 
 
 
 | 108 | #define AVIIF_MIDPART (AVIIF_LASTPART|AVIIF_FIRSTPART) | 
 
 
 
 
 | 109 |  | 
 
 
 
 
 | 110 | #define AVIIF_NOTIME __MSABI_LONG(0x00000100) | 
 
 
 
 
 | 111 | #define AVIIF_COMPUSE __MSABI_LONG(0x0fff0000) | 
 
 
 
 
 | 112 |  | 
 
 
 
 
 | 113 | typedef struct { | 
 
 
 
 
 | 114 | DWORD ckid; | 
 
 
 
 
 | 115 | DWORD dwFlags; | 
 
 
 
 
 | 116 | DWORD dwChunkOffset; | 
 
 
 
 
 | 117 | DWORD dwChunkLength; | 
 
 
 
 
 | 118 | } AVIINDEXENTRY; | 
 
 
 
 
 | 119 |  | 
 
 
 
 
 | 120 | typedef struct { | 
 
 
 
 
 | 121 | BYTE bFirstEntry; | 
 
 
 
 
 | 122 | BYTE bNumEntries; | 
 
 
 
 
 | 123 | WORD wFlags; | 
 
 
 
 
 | 124 | PALETTEENTRY peNew[]; | 
 
 
 
 
 | 125 | } AVIPALCHANGE; | 
 
 
 
 
 | 126 | #endif | 
 
 
 
 
 | 127 |  | 
 
 
 
 
 | 128 | #ifdef __cplusplus | 
 
 
 
 
 | 129 | } | 
 
 
 
 
 | 130 | #endif | 
 
 
 
 
 | 131 | #endif |