rtpbin : Re-adding use-rtsp-buffering property removed by gstreamer update
[platform/upstream/gst-plugins-good.git] / gst / flx / flx_fmt.h
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__ */