FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavformat
swf.h
Go to the documentation of this file.
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 "
config.h
"
27
28
#if CONFIG_ZLIB
29
#include <zlib.h>
30
#endif
31
32
#include "
libavutil/fifo.h
"
33
#include "
avformat.h
"
34
#include "
avio.h
"
35
#include "
internal.h
"
36
37
/* should have a generic way to indicate probable size */
38
#define DUMMY_FILE_SIZE (100 * 1024 * 1024)
39
#define DUMMY_DURATION 600
/* in seconds */
40
41
enum
{
42
TAG_END
= 0,
43
TAG_SHOWFRAME
= 1,
44
TAG_DEFINESHAPE
= 2,
45
TAG_FREECHARACTER
= 3,
46
TAG_PLACEOBJECT
= 4,
47
TAG_REMOVEOBJECT
= 5,
48
TAG_DEFINEBITS
= 6,
49
TAG_DEFINEBUTTON
= 7,
50
TAG_JPEGTABLES
= 8,
51
TAG_SETBACKGROUNDCOLOR
= 9,
52
TAG_DEFINEFONT
= 10,
53
TAG_DEFINETEXT
= 11,
54
TAG_DOACTION
= 12,
55
TAG_DEFINEFONTINFO
= 13,
56
TAG_DEFINESOUND
= 14,
57
TAG_STARTSOUND
= 15,
58
TAG_DEFINEBUTTONSOUND
= 17,
59
TAG_STREAMHEAD
= 18,
60
TAG_STREAMBLOCK
= 19,
61
TAG_DEFINEBITSLOSSLESS
= 20,
62
TAG_JPEG2
= 21,
63
TAG_DEFINESHAPE2
= 22,
64
TAG_DEFINEBUTTONCXFORM
= 23,
65
TAG_PROTECT
= 24,
66
TAG_PLACEOBJECT2
= 26,
67
TAG_REMOVEOBJECT2
= 28,
68
TAG_DEFINESHAPE3
= 32,
69
TAG_DEFINETEXT2
= 33,
70
TAG_DEFINEBUTTON2
= 34,
71
TAG_DEFINEBITSJPEG3
= 35,
72
TAG_DEFINEBITSLOSSLESS2
= 36,
73
TAG_DEFINEEDITTEXT
= 37,
74
TAG_DEFINESPRITE
= 39,
75
TAG_FRAMELABEL
= 43,
76
TAG_STREAMHEAD2
= 45,
77
TAG_DEFINEMORPHSHAPE
= 46,
78
TAG_DEFINEFONT2
= 48,
79
TAG_EXPORTASSETS
= 56,
80
TAG_IMPORTASSETS
= 57,
81
TAG_ENABLEDEBUGGER
= 58,
82
TAG_DOINITACTION
= 59,
83
TAG_VIDEOSTREAM
= 60,
84
TAG_VIDEOFRAME
= 61,
85
TAG_DEFINEFONTINFO2
= 62,
86
TAG_ENABLEDEBUGGER2
= 64,
87
TAG_SCRIPTLIMITS
= 65,
88
TAG_SETTABINDEX
= 66,
89
TAG_FILEATTRIBUTES
= 69,
90
TAG_PLACEOBJECT3
= 70,
91
TAG_IMPORTASSETS2
= 71,
92
TAG_DEFINEFONTALIGNZONES
= 73,
93
TAG_CSMTEXTSETTINGS
= 74,
94
TAG_DEFINEFONT3
= 75,
95
TAG_SYMBOLCLASS
= 76,
96
TAG_METADATA
= 77,
97
TAG_DEFINESCALINGGRID
= 78,
98
TAG_DOABC
= 82,
99
TAG_DEFINESHAPE4
= 83,
100
TAG_DEFINEMORPHSHAPE2
= 84,
101
TAG_DEFINESCENEANDFRAMELABELDATA
= 86,
102
TAG_DEFINEBINARYDATA
= 87,
103
TAG_DEFINEFONTNAME
= 88,
104
TAG_STARTSOUND2
= 89,
105
TAG_DEFINEBITSJPEG4
= 90,
106
TAG_DEFINEFONT4
= 91,
107
};
108
109
#define TAG_LONG 0x100
110
111
/* flags for shape definition */
112
#define FLAG_MOVETO 0x01
113
#define FLAG_SETFILL0 0x02
114
#define FLAG_SETFILL1 0x04
115
116
#define AUDIO_FIFO_SIZE 65536
117
118
/* character id used */
119
#define BITMAP_ID 0
120
#define VIDEO_ID 0
121
#define SHAPE_ID 1
122
123
typedef
struct
SWFContext
{
124
int64_t
duration_pos
;
125
int64_t
tag_pos
;
126
int64_t
vframes_pos
;
127
int
samples_per_frame
;
128
int
sound_samples
;
129
int
swf_frame_number
;
130
int
video_frame_number
;
131
int
frame_rate
;
132
int
tag
;
133
AVFifoBuffer
*
audio_fifo
;
134
AVCodecContext
*
audio_enc
, *
video_enc
;
135
AVStream
*
video_st
;
136
#if CONFIG_ZLIB
137
AVIOContext
*zpb;
138
#define ZBUF_SIZE 4096
139
uint8_t
*zbuf_in;
140
uint8_t
*zbuf_out;
141
z_stream zstream;
142
#endif
143
}
SWFContext
;
144
145
extern
const
AVCodecTag
ff_swf_codec_tags
[];
146
147
#endif
/* AVFORMAT_SWF_H */
AVIOContext
Bytestream IO Context.
Definition:
avio.h:111
TAG_DEFINEFONT
Definition:
swf.h:52
avio.h
Buffered I/O operations.
TAG_DEFINEFONTINFO2
Definition:
swf.h:85
SWFContext
Definition:
swf.h:123
TAG_JPEG2
Definition:
swf.h:62
SWFContext::video_st
AVStream * video_st
Definition:
swf.h:135
TAG_FREECHARACTER
Definition:
swf.h:45
TAG_DEFINESPRITE
Definition:
swf.h:74
TAG_DEFINESCENEANDFRAMELABELDATA
Definition:
swf.h:101
TAG_VIDEOSTREAM
Definition:
swf.h:83
TAG_STREAMHEAD
Definition:
swf.h:59
TAG_DOABC
Definition:
swf.h:98
TAG_PLACEOBJECT3
Definition:
swf.h:90
TAG_DEFINEFONTINFO
Definition:
swf.h:55
SWFContext::frame_rate
int frame_rate
Definition:
swf.h:131
config.h
uint8_t
uint8_t
Definition:
audio_convert.c:194
TAG_PLACEOBJECT
Definition:
swf.h:46
TAG_DEFINEFONT2
Definition:
swf.h:78
TAG_DEFINESHAPE
Definition:
swf.h:44
TAG_DEFINESHAPE3
Definition:
swf.h:68
TAG_FRAMELABEL
Definition:
swf.h:75
AVCodecTag
Definition:
internal.h:42
TAG_DEFINESOUND
Definition:
swf.h:56
TAG_PLACEOBJECT2
Definition:
swf.h:66
TAG_STARTSOUND
Definition:
swf.h:57
TAG_ENABLEDEBUGGER2
Definition:
swf.h:86
SWFContext::swf_frame_number
int swf_frame_number
Definition:
swf.h:129
TAG_END
Definition:
swf.h:42
TAG_DEFINEBUTTON2
Definition:
swf.h:70
TAG_SCRIPTLIMITS
Definition:
swf.h:87
TAG_VIDEOFRAME
Definition:
swf.h:84
TAG_REMOVEOBJECT
Definition:
swf.h:47
TAG_DEFINETEXT
Definition:
swf.h:53
SWFContext::video_frame_number
int video_frame_number
Definition:
swf.h:130
TAG_STREAMBLOCK
Definition:
swf.h:60
TAG_SYMBOLCLASS
Definition:
swf.h:95
TAG_STREAMHEAD2
Definition:
swf.h:76
internal.h
SWFContext::sound_samples
int sound_samples
Definition:
swf.h:128
TAG_DEFINETEXT2
Definition:
swf.h:69
TAG_DEFINEBUTTONSOUND
Definition:
swf.h:58
SWFContext::samples_per_frame
int samples_per_frame
Definition:
swf.h:127
TAG_STARTSOUND2
Definition:
swf.h:104
TAG_IMPORTASSETS2
Definition:
swf.h:91
TAG_DEFINEEDITTEXT
Definition:
swf.h:73
TAG_CSMTEXTSETTINGS
Definition:
swf.h:93
ff_swf_codec_tags
const AVCodecTag ff_swf_codec_tags[]
Definition:
swf.c:25
TAG_IMPORTASSETS
Definition:
swf.h:80
TAG_DOINITACTION
Definition:
swf.h:82
TAG_FILEATTRIBUTES
Definition:
swf.h:89
TAG_SHOWFRAME
Definition:
swf.h:43
SWFContext::audio_enc
AVCodecContext * audio_enc
Definition:
swf.h:134
AVStream
Stream structure.
Definition:
avformat.h:842
AVFifoBuffer
Definition:
fifo.h:31
TAG_DEFINESHAPE4
Definition:
swf.h:99
TAG_PROTECT
Definition:
swf.h:65
TAG_REMOVEOBJECT2
Definition:
swf.h:67
TAG_JPEGTABLES
Definition:
swf.h:50
TAG_DEFINESHAPE2
Definition:
swf.h:63
AVCodecContext
main external API structure.
Definition:
avcodec.h:1502
TAG_SETTABINDEX
Definition:
swf.h:88
TAG_METADATA
Definition:
swf.h:96
fifo.h
a very simple circular buffer FIFO implementation
TAG_SETBACKGROUNDCOLOR
Definition:
swf.h:51
SWFContext::video_enc
AVCodecContext * video_enc
Definition:
swf.h:134
TAG_DEFINEBITS
Definition:
swf.h:48
TAG_DEFINEBINARYDATA
Definition:
swf.h:102
SWFContext::vframes_pos
int64_t vframes_pos
Definition:
swf.h:126
avformat.h
Main libavformat public API header.
TAG_DEFINEMORPHSHAPE2
Definition:
swf.h:100
SWFContext::tag_pos
int64_t tag_pos
Definition:
swf.h:125
TAG_DEFINEFONTALIGNZONES
Definition:
swf.h:92
TAG_ENABLEDEBUGGER
Definition:
swf.h:81
TAG_DEFINEFONT4
Definition:
swf.h:106
TAG_DEFINEBUTTON
Definition:
swf.h:49
TAG_DEFINEBITSJPEG3
Definition:
swf.h:71
SWFContext::tag
int tag
Definition:
swf.h:132
TAG_EXPORTASSETS
Definition:
swf.h:79
TAG_DOACTION
Definition:
swf.h:54
TAG_DEFINESCALINGGRID
Definition:
swf.h:97
TAG_DEFINEMORPHSHAPE
Definition:
swf.h:77
SWFContext::audio_fifo
AVFifoBuffer * audio_fifo
Definition:
swf.h:133
SWFContext::duration_pos
int64_t duration_pos
Definition:
swf.h:124
TAG_DEFINEBITSLOSSLESS
Definition:
swf.h:61
TAG_DEFINEBITSLOSSLESS2
Definition:
swf.h:72
TAG_DEFINEBUTTONCXFORM
Definition:
swf.h:64
TAG_DEFINEFONT3
Definition:
swf.h:94
TAG_DEFINEBITSJPEG4
Definition:
swf.h:105
TAG_DEFINEFONTNAME
Definition:
swf.h:103
Generated on Thu Sep 10 2015 11:39:06 for FFmpeg by
1.8.6