1 /* GStreamer 2 * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu> 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Library General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Library General Public License for more details. 13 * 14 * You should have received a copy of the GNU Library General Public 15 * License along with this library; if not, write to the 16 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 * Boston, MA 02110-1301, USA. 18 */ 19 20 21 #ifndef __GST_FLX_FMT_H__ 22 #define __GST_FLX_FMT_H__ 23 24 #include <gst/gst.h> 25 26 G_BEGIN_DECLS 27 28 enum Flx_TypeChunk 29 { 30 /* frame chunks */ 31 FLX_PREFIX_TYPE = 0xf100, 32 FLX_SCRIPT_CHUNK = 0xf1e0, 33 FLX_FRAME_TYPE = 0xf1fa, 34 FLX_SEGMENT_TABLE = 0xf1fb, 35 FLX_HUFFMAN_TABLE = 0xf1fc, 36 37 /* sub chunks */ 38 FLX_CEL_DATA = 3, 39 FLX_COLOR256 = 4, 40 FLX_SS2 = 7, 41 FLX_COLOR64 = 11, 42 FLX_LC = 12, 43 FLX_BLACK = 13, 44 FLX_BRUN = 15, 45 FLX_COPY = 16, 46 FLX_MINI = 18, 47 FLX_DTA_RUN = 25, 48 FLX_DTA_COPY = 26, 49 FLX_DTA_LC = 27, 50 FLX_LABEL = 31, 51 FLX_BMP_MASK = 32, 52 FLX_MLEV_MASK = 33, 53 FLX_SEGMENT = 34, 54 FLX_KEY_IMAGE = 35, 55 FLX_KEY_PAL = 36, 56 FLX_REGION = 37, 57 FLX_WAVE = 38, 58 FLX_USERSTRING = 39, 59 FLX_RGN_MASK = 40 60 61 }; 62 63 enum Flx_MagicHdr 64 { 65 FLX_MAGICHDR_FLI = 0xaf11, 66 FLX_MAGICHDR_FLC = 0xaf12, 67 FLX_MAGICHDR_FLX = 0xaf44, 68 FLX_MAGICHDR_HUFFBWT = 0xaf30 69 }; 70 71 typedef struct _FlxHeader 72 { 73 guint32 size; 74 guint16 type; 75 guint16 frames; 76 guint16 width,height,depth,flags; 77 guint32 speed; 78 guint16 reserved1; 79 /* FLC */ 80 guint32 created,creator,updated,updater; 81 guint16 aspect_dx, aspect_dy; 82 /* EGI */ 83 guint16 ext_flags,keyframes,totalframes; 84 guint32 req_memory; 85 guint16 max_regions,transp_num; 86 guchar reserved2[24]; 87 /* FLC */ 88 guint32 oframe1,oframe2; 89 guchar reserved3[40]; 90 } FlxHeader; 91 #define FlxHeaderSize 128 92 93 typedef struct _FlxFrameChunk 94 { 95 guint32 size; 96 guint16 id; 97 } FlxFrameChunk; 98 #define FlxFrameChunkSize 6 99 100 typedef struct _FlxPrefixChunk 101 { 102 guint16 chunks; 103 guchar reserved[8]; 104 } FlxPrefixChunk; 105 106 typedef struct _FlxSegmentTable 107 { 108 guint16 segments; 109 } FlxSegmentTable; 110 111 typedef struct _FlxHuffmanTable 112 { 113 guint16 codelength; 114 guint16 numcodes; 115 guchar reserved[6]; 116 } FlxHuffmanTable; 117 118 typedef struct _FlxFrameType 119 { 120 guint16 chunks; 121 guint16 delay; 122 guchar reserved[6]; 123 } FlxFrameType; 124 #define FlxFrameTypeSize 10 125 126 G_END_DECLS 127 128 #endif /* __GST_FLX_FMT_H__ */ 129