annotate ffmpeg/libavformat/swf.h @ 13:844d341cf643 tip

Back up before ISMIR
author Yading Song <yading.song@eecs.qmul.ac.uk>
date Thu, 31 Oct 2013 13:17:06 +0000
parents f445c3017523
children
rev   line source
yading@11 1 /*
yading@11 2 * Flash Compatible Streaming Format common header.
yading@11 3 * Copyright (c) 2000 Fabrice Bellard
yading@11 4 * Copyright (c) 2003 Tinic Uro
yading@11 5 *
yading@11 6 * This file is part of FFmpeg.
yading@11 7 *
yading@11 8 * FFmpeg is free software; you can redistribute it and/or
yading@11 9 * modify it under the terms of the GNU Lesser General Public
yading@11 10 * License as published by the Free Software Foundation; either
yading@11 11 * version 2.1 of the License, or (at your option) any later version.
yading@11 12 *
yading@11 13 * FFmpeg is distributed in the hope that it will be useful,
yading@11 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
yading@11 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
yading@11 16 * Lesser General Public License for more details.
yading@11 17 *
yading@11 18 * You should have received a copy of the GNU Lesser General Public
yading@11 19 * License along with FFmpeg; if not, write to the Free Software
yading@11 20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
yading@11 21 */
yading@11 22
yading@11 23 #ifndef AVFORMAT_SWF_H
yading@11 24 #define AVFORMAT_SWF_H
yading@11 25
yading@11 26 #include "config.h"
yading@11 27
yading@11 28 #if CONFIG_ZLIB
yading@11 29 #include <zlib.h>
yading@11 30 #endif
yading@11 31
yading@11 32 #include "libavutil/fifo.h"
yading@11 33 #include "avformat.h"
yading@11 34 #include "avio.h"
yading@11 35 #include "internal.h"
yading@11 36
yading@11 37 /* should have a generic way to indicate probable size */
yading@11 38 #define DUMMY_FILE_SIZE (100 * 1024 * 1024)
yading@11 39 #define DUMMY_DURATION 600 /* in seconds */
yading@11 40
yading@11 41 enum {
yading@11 42 TAG_END = 0,
yading@11 43 TAG_SHOWFRAME = 1,
yading@11 44 TAG_DEFINESHAPE = 2,
yading@11 45 TAG_FREECHARACTER = 3,
yading@11 46 TAG_PLACEOBJECT = 4,
yading@11 47 TAG_REMOVEOBJECT = 5,
yading@11 48 TAG_DEFINEBITS = 6,
yading@11 49 TAG_DEFINEBUTTON = 7,
yading@11 50 TAG_JPEGTABLES = 8,
yading@11 51 TAG_SETBACKGROUNDCOLOR = 9,
yading@11 52 TAG_DEFINEFONT = 10,
yading@11 53 TAG_DEFINETEXT = 11,
yading@11 54 TAG_DOACTION = 12,
yading@11 55 TAG_DEFINEFONTINFO = 13,
yading@11 56 TAG_DEFINESOUND = 14,
yading@11 57 TAG_STARTSOUND = 15,
yading@11 58 TAG_DEFINEBUTTONSOUND = 17,
yading@11 59 TAG_STREAMHEAD = 18,
yading@11 60 TAG_STREAMBLOCK = 19,
yading@11 61 TAG_DEFINEBITSLOSSLESS = 20,
yading@11 62 TAG_JPEG2 = 21,
yading@11 63 TAG_DEFINESHAPE2 = 22,
yading@11 64 TAG_DEFINEBUTTONCXFORM = 23,
yading@11 65 TAG_PROTECT = 24,
yading@11 66 TAG_PLACEOBJECT2 = 26,
yading@11 67 TAG_REMOVEOBJECT2 = 28,
yading@11 68 TAG_DEFINESHAPE3 = 32,
yading@11 69 TAG_DEFINETEXT2 = 33,
yading@11 70 TAG_DEFINEBUTTON2 = 34,
yading@11 71 TAG_DEFINEBITSJPEG3 = 35,
yading@11 72 TAG_DEFINEBITSLOSSLESS2 = 36,
yading@11 73 TAG_DEFINEEDITTEXT = 37,
yading@11 74 TAG_DEFINESPRITE = 39,
yading@11 75 TAG_FRAMELABEL = 43,
yading@11 76 TAG_STREAMHEAD2 = 45,
yading@11 77 TAG_DEFINEMORPHSHAPE = 46,
yading@11 78 TAG_DEFINEFONT2 = 48,
yading@11 79 TAG_EXPORTASSETS = 56,
yading@11 80 TAG_IMPORTASSETS = 57,
yading@11 81 TAG_ENABLEDEBUGGER = 58,
yading@11 82 TAG_DOINITACTION = 59,
yading@11 83 TAG_VIDEOSTREAM = 60,
yading@11 84 TAG_VIDEOFRAME = 61,
yading@11 85 TAG_DEFINEFONTINFO2 = 62,
yading@11 86 TAG_ENABLEDEBUGGER2 = 64,
yading@11 87 TAG_SCRIPTLIMITS = 65,
yading@11 88 TAG_SETTABINDEX = 66,
yading@11 89 TAG_FILEATTRIBUTES = 69,
yading@11 90 TAG_PLACEOBJECT3 = 70,
yading@11 91 TAG_IMPORTASSETS2 = 71,
yading@11 92 TAG_DEFINEFONTALIGNZONES = 73,
yading@11 93 TAG_CSMTEXTSETTINGS = 74,
yading@11 94 TAG_DEFINEFONT3 = 75,
yading@11 95 TAG_SYMBOLCLASS = 76,
yading@11 96 TAG_METADATA = 77,
yading@11 97 TAG_DEFINESCALINGGRID = 78,
yading@11 98 TAG_DOABC = 82,
yading@11 99 TAG_DEFINESHAPE4 = 83,
yading@11 100 TAG_DEFINEMORPHSHAPE2 = 84,
yading@11 101 TAG_DEFINESCENEANDFRAMELABELDATA = 86,
yading@11 102 TAG_DEFINEBINARYDATA = 87,
yading@11 103 TAG_DEFINEFONTNAME = 88,
yading@11 104 TAG_STARTSOUND2 = 89,
yading@11 105 TAG_DEFINEBITSJPEG4 = 90,
yading@11 106 TAG_DEFINEFONT4 = 91,
yading@11 107 };
yading@11 108
yading@11 109 #define TAG_LONG 0x100
yading@11 110
yading@11 111 /* flags for shape definition */
yading@11 112 #define FLAG_MOVETO 0x01
yading@11 113 #define FLAG_SETFILL0 0x02
yading@11 114 #define FLAG_SETFILL1 0x04
yading@11 115
yading@11 116 #define AUDIO_FIFO_SIZE 65536
yading@11 117
yading@11 118 /* character id used */
yading@11 119 #define BITMAP_ID 0
yading@11 120 #define VIDEO_ID 0
yading@11 121 #define SHAPE_ID 1
yading@11 122
yading@11 123 #undef NDEBUG
yading@11 124 #include <assert.h>
yading@11 125
yading@11 126 typedef struct SWFContext {
yading@11 127 int64_t duration_pos;
yading@11 128 int64_t tag_pos;
yading@11 129 int64_t vframes_pos;
yading@11 130 int samples_per_frame;
yading@11 131 int sound_samples;
yading@11 132 int swf_frame_number;
yading@11 133 int video_frame_number;
yading@11 134 int frame_rate;
yading@11 135 int tag;
yading@11 136 AVFifoBuffer *audio_fifo;
yading@11 137 AVCodecContext *audio_enc, *video_enc;
yading@11 138 #if CONFIG_ZLIB
yading@11 139 AVIOContext *zpb;
yading@11 140 #define ZBUF_SIZE 4096
yading@11 141 uint8_t *zbuf_in;
yading@11 142 uint8_t *zbuf_out;
yading@11 143 z_stream zstream;
yading@11 144 #endif
yading@11 145 } SWFContext;
yading@11 146
yading@11 147 extern const AVCodecTag ff_swf_codec_tags[];
yading@11 148
yading@11 149 #endif /* AVFORMAT_SWF_H */