• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Flash Compatible Streaming Format common header.
3  * Copyright (c) 2000 Fabrice Bellard
4  * Copyright (c) 2003 Tinic Uro
5  *
6  * This file is part of FFmpeg.
7  *
8  * FFmpeg is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * FFmpeg is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with FFmpeg; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  */
22 
23 #ifndef AVFORMAT_SWF_H
24 #define AVFORMAT_SWF_H
25 
26 #include "internal.h"
27 
28 /* should have a generic way to indicate probable size */
29 #define DUMMY_FILE_SIZE   (100 * 1024 * 1024)
30 #define DUMMY_DURATION    600 /* in seconds */
31 
32 enum {
33     TAG_END                          =  0,
34     TAG_SHOWFRAME                    =  1,
35     TAG_DEFINESHAPE                  =  2,
36     TAG_FREECHARACTER                =  3,
37     TAG_PLACEOBJECT                  =  4,
38     TAG_REMOVEOBJECT                 =  5,
39     TAG_DEFINEBITS                   =  6,
40     TAG_DEFINEBUTTON                 =  7,
41     TAG_JPEGTABLES                   =  8,
42     TAG_SETBACKGROUNDCOLOR           =  9,
43     TAG_DEFINEFONT                   = 10,
44     TAG_DEFINETEXT                   = 11,
45     TAG_DOACTION                     = 12,
46     TAG_DEFINEFONTINFO               = 13,
47     TAG_DEFINESOUND                  = 14,
48     TAG_STARTSOUND                   = 15,
49     TAG_DEFINEBUTTONSOUND            = 17,
50     TAG_STREAMHEAD                   = 18,
51     TAG_STREAMBLOCK                  = 19,
52     TAG_DEFINEBITSLOSSLESS           = 20,
53     TAG_JPEG2                        = 21,
54     TAG_DEFINESHAPE2                 = 22,
55     TAG_DEFINEBUTTONCXFORM           = 23,
56     TAG_PROTECT                      = 24,
57     TAG_PLACEOBJECT2                 = 26,
58     TAG_REMOVEOBJECT2                = 28,
59     TAG_DEFINESHAPE3                 = 32,
60     TAG_DEFINETEXT2                  = 33,
61     TAG_DEFINEBUTTON2                = 34,
62     TAG_DEFINEBITSJPEG3              = 35,
63     TAG_DEFINEBITSLOSSLESS2          = 36,
64     TAG_DEFINEEDITTEXT               = 37,
65     TAG_DEFINESPRITE                 = 39,
66     TAG_FRAMELABEL                   = 43,
67     TAG_STREAMHEAD2                  = 45,
68     TAG_DEFINEMORPHSHAPE             = 46,
69     TAG_DEFINEFONT2                  = 48,
70     TAG_EXPORTASSETS                 = 56,
71     TAG_IMPORTASSETS                 = 57,
72     TAG_ENABLEDEBUGGER               = 58,
73     TAG_DOINITACTION                 = 59,
74     TAG_VIDEOSTREAM                  = 60,
75     TAG_VIDEOFRAME                   = 61,
76     TAG_DEFINEFONTINFO2              = 62,
77     TAG_ENABLEDEBUGGER2              = 64,
78     TAG_SCRIPTLIMITS                 = 65,
79     TAG_SETTABINDEX                  = 66,
80     TAG_FILEATTRIBUTES               = 69,
81     TAG_PLACEOBJECT3                 = 70,
82     TAG_IMPORTASSETS2                = 71,
83     TAG_DEFINEFONTALIGNZONES         = 73,
84     TAG_CSMTEXTSETTINGS              = 74,
85     TAG_DEFINEFONT3                  = 75,
86     TAG_SYMBOLCLASS                  = 76,
87     TAG_METADATA                     = 77,
88     TAG_DEFINESCALINGGRID            = 78,
89     TAG_DOABC                        = 82,
90     TAG_DEFINESHAPE4                 = 83,
91     TAG_DEFINEMORPHSHAPE2            = 84,
92     TAG_DEFINESCENEANDFRAMELABELDATA = 86,
93     TAG_DEFINEBINARYDATA             = 87,
94     TAG_DEFINEFONTNAME               = 88,
95     TAG_STARTSOUND2                  = 89,
96     TAG_DEFINEBITSJPEG4              = 90,
97     TAG_DEFINEFONT4                  = 91,
98 };
99 
100 #define TAG_LONG         0x100
101 
102 /* flags for shape definition */
103 #define FLAG_MOVETO      0x01
104 #define FLAG_SETFILL0    0x02
105 #define FLAG_SETFILL1    0x04
106 
107 /* character id used */
108 #define BITMAP_ID 0
109 #define VIDEO_ID 0
110 #define SHAPE_ID  1
111 
112 extern const AVCodecTag ff_swf_codec_tags[];
113 
114 #endif /* AVFORMAT_SWF_H */
115