1 /* 2 $VER: video.h 51.8 (16.9.2007) 3 */ 4 5 /* video objects methods and attributes */ 6 7 #ifndef CLASSES_MULTIMEDIA_VIDEO_H 8 #define CLASSES_MULTIMEDIA_VIDEO_H 9 10 #include <classes/multimedia/multimedia.h> 11 12 /* formats */ 13 14 #define MMF_VIDEO_BMP (MMF_VIDEOMASK + 1) 15 #define MMF_VIDEO_PNG (MMF_VIDEOMASK + 2) /* PNG zlib stream */ 16 #define MMF_VIDEO_BITPLANES (MMF_VIDEOMASK + 3) /* bitplanes */ 17 #define MMF_VIDEO_GRAY8 (MMF_VIDEOMASK + 4) /* raw 8-bit grayscale */ 18 #define MMF_VIDEO_GRAY16BE (MMF_VIDEOMASK + 5) /* raw 16-bit grayscale, big endian */ 19 #define MMF_VIDEO_RGB24 (MMF_VIDEOMASK + 6) /* raw RGB, 8 bits per gun */ 20 #define MMF_VIDEO_RGB48BE (MMF_VIDEOMASK + 7) /* raw RGB, 16 bits per gun, big endian */ 21 #define MMF_VIDEO_GIF (MMF_VIDEOMASK + 8) /* GIF compressed stream */ 22 #define MMF_VIDEO_LUT8 (MMF_VIDEOMASK + 9) /* raw, palette based, 256 colors */ 23 #define MMF_VIDEO_IFFDEEP (MMF_VIDEOMASK + 10) /* IFF DEEP */ 24 #define MMF_VIDEO_IFFILBM (MMF_VIDEOMASK + 11) /* IFF ILBM */ 25 #define MMF_VIDEO_PCX (MMF_VIDEOMASK + 12) 26 #define MMF_VIDEO_JPEG (MMF_VIDEOMASK + 13) 27 #define MMF_VIDEO_ZXSPECTRUM (MMF_VIDEOMASK + 14) /* ZX Spectrum screen dump */ 28 #define MMF_VIDEO_TARGA (MMF_VIDEOMASK + 15) /* Targa */ 29 #define MMF_VIDEO_IFFANIM5 (MMF_VIDEOMASK + 16) 30 #define MMF_VIDEO_IFFANIM7 (MMF_VIDEOMASK + 17) 31 #define MMF_VIDEO_SUNRASTER (MMF_VIDEOMASK + 18) 32 #define MMF_VIDEO_AMIGAICON (MMF_VIDEOMASK + 19) 33 #define MMF_VIDEO_RGBA32 (MMF_VIDEOMASK + 20) /* raw RGBA, 8 bits per gun */ 34 #define MMF_VIDEO_DEGAS (MMF_VIDEOMASK + 21) /* Atari Degas */ 35 #define MMF_VIDEO_BGR24 (MMF_VIDEOMASK + 22) /* raw data, 8 bits per gun */ 36 #define MMF_VIDEO_ABGR32 (MMF_VIDEOMASK + 23) /* raw data, 8 bits per gun */ 37 #define MMF_VIDEO_ARGB32 (MMF_VIDEOMASK + 24) /* raw data, 8 bits per gun */ 38 #define MMF_VIDEO_TIFF (MMF_VIDEOMASK + 25) 39 #define MMF_VIDEO_BGRA32 (MMF_VIDEOMASK + 26) /* raw data, 8 bits per gun */ 40 #define MMF_VIDEO_QOI (MMF_VIDEOMASK + 26) /* Quite Ok Image Format */ 41 #define MMF_VIDEO_PHOTOCD (MMF_VIDEOMASK + 27) /* Kodak PhotoCD */ 42 #define MMF_VIDEO_INGF (MMF_VIDEOMASK + 28) /* ImageFX native format */ 43 #define MMF_VIDEO_WEBP (MMF_VIDEOMASK + 29) /* WebP */ 44 45 /* methods */ 46 47 /* attributes */ 48 49 #define MMA_Video_Width (MMA_Dummy + 400) 50 #define MMA_Video_Height (MMA_Dummy + 401) 51 #define MMA_Video_BitsPerPixel (MMA_Dummy + 402) 52 #define MMA_Video_FrameCount (MMA_Dummy + 403) 53 #define MMA_Video_SrcOffsetX (MMA_Dummy + 404) 54 #define MMA_Video_SrcOffsetY (MMA_Dummy + 405) 55 #define MMA_Video_RastPort (MMA_Dummy + 406) 56 #define MMA_Video_DestOffsetX (MMA_Dummy + 407) 57 #define MMA_Video_DestOffsetY (MMA_Dummy + 408) 58 #define MMA_Video_UseAlpha (MMA_Dummy + 409) 59 #define MMA_Video_GlobalAlpha (MMA_Dummy + 410) 60 #define MMA_Video_Progressive (MMA_Dummy + 411) 61 #define MMA_Video_FinalTouch (MMA_Dummy + 412) 62 #define MMA_Video_Palette (MMA_Dummy + 413) 63 #define MMA_Video_GammaCorrection (MMA_Dummy + 414) 64 #define MMA_Video_SourceWidth (MMA_Dummy + 415) 65 #define MMA_Video_SourceHeight (MMA_Dummy + 416) 66 #define MMA_Video_FpsNumerator (MMA_Dummy + 417) 67 #define MMA_Video_BgColor (MMA_Dummy + 418) 68 #define MMA_Video_FpsDenominator (MMA_Dummy + 419) 69 #define MMA_Video_SyncSignal (MMA_Dummy + 420) 70 #define MMA_Video_SyncTask (MMA_Dummy + 421) 71 #define MMA_Video_SyncPort (MMA_Dummy + 422) 72 #define MMA_Video_Unbuffered (MMA_Dummy + 423) 73 #define MMA_Video_ToGray (MMA_Dummy + 424) 74 #define MMA_Video_PaletteLength (MMA_Dummy + 425) 75 #define MMA_Video_LinePadding (MMA_Dummy + 426) /* videopcm.encoder, in bytes, 1, 2 or 4 */ 76 77 /* Mask data right after image (used by bmp.decoder) */ 78 79 #define MMA_Video_MaskAfterImage (MMA_Dummy + 499) 80 81 /* Bytes per line (modulo) used by bitplane.decoder. */ 82 83 #define MMA_Video_BytesPerLine (MMA_Dummy + 498) 84 85 /* Color to gray conversion types. */ 86 87 #define MMV_Video_ToGray_Mean 1 88 #define MMV_Video_ToGray_Luma 2 89 #define MMV_Video_ToGray_Min 3 90 #define MMV_Video_ToGray_Max 4 91 92 /* Video metaformat */ 93 94 #define MMMF_PIXMAP 1 95 #define MMMF_RECTFILL 2 96 #define MMMF_WAIT 3 97 #define MMMF_SAVE 4 98 #define MMMF_RESTORE 5 99 #define MMMF_END 6 100 101 struct MFHeader 102 { 103 ULONG Type; /* one of MMMF_XXXXX above */ 104 ULONG Length; /* in LONG-s */ 105 }; 106 107 /*============================================================================*/ 108 /* MMMF_RECTFILL draws a filled rectangle. */ 109 /*============================================================================*/ 110 111 struct MFRectFill /* 0 pixels follow */ 112 { 113 ULONG Left; 114 ULONG Top; 115 ULONG Width; 116 ULONG Height; 117 ULONG Color; 118 }; 119 120 /*============================================================================*/ 121 /* MMMF_PIXMAP draws a rectangular pixmap, ARGB32 pixmap data directly */ 122 /* follows this structure in the metastream. There are exactly Width * Height */ 123 /* longwords. */ 124 /*============================================================================*/ 125 126 struct MFPixMap /* mfpm_Width * mfpm_Height pixels follow */ 127 { 128 ULONG Left; 129 ULONG Top; 130 ULONG Width; 131 ULONG Height; 132 ULONG Transparent; 133 }; 134 135 /*============================================================================*/ 136 /* MMMF_WAIT directs player to wait to the specified timepoint of stream. */ 137 /*============================================================================*/ 138 139 struct MFWait 140 { 141 ULONG MicrosHigh; 142 ULONG MicrosLow; 143 }; 144 145 /*============================================================================*/ 146 /* MMMF_SAVE instructs player to save a rectangular output area to a buffer */ 147 /* identified by 'Id' for later use. */ 148 /*============================================================================*/ 149 150 struct MFSave 151 { 152 ULONG Left; 153 ULONG Top; 154 ULONG Width; 155 ULONG Height; 156 ULONG Id; 157 }; 158 159 /*============================================================================*/ 160 /* MMMF_RESTORE requests restoring rectangular pixmap from a buffer identi- */ 161 /* fied by 'Id' and place it at specified coordinates. */ 162 /*============================================================================*/ 163 164 struct MFRestore 165 { 166 ULONG Left; 167 ULONG Top; 168 ULONG Id; 169 }; 170 171 #endif /* CLASSES_MULTIMEDIA_PICTURE_H */