Mercurial > libavformat.hg
annotate swf.h @ 5630:ebd8a1cc25e0 libavformat
Support strn tag in avidec.
author | michael |
---|---|
date | Fri, 05 Feb 2010 12:16:59 +0000 |
parents | 0d5653941bf9 |
children |
rev | line source |
---|---|
0 | 1 /* |
3302 | 2 * Flash Compatible Streaming Format common header. |
4251
77e0c7511d41
cosmetics: Remove pointless period after copyright statement non-sentences.
diego
parents:
3973
diff
changeset
|
3 * Copyright (c) 2000 Fabrice Bellard |
77e0c7511d41
cosmetics: Remove pointless period after copyright statement non-sentences.
diego
parents:
3973
diff
changeset
|
4 * Copyright (c) 2003 Tinic Uro |
0 | 5 * |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1305
diff
changeset
|
6 * This file is part of FFmpeg. |
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1305
diff
changeset
|
7 * |
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1305
diff
changeset
|
8 * FFmpeg is free software; you can redistribute it and/or |
0 | 9 * modify it under the terms of the GNU Lesser General Public |
10 * License as published by the Free Software Foundation; either | |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1305
diff
changeset
|
11 * version 2.1 of the License, or (at your option) any later version. |
0 | 12 * |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1305
diff
changeset
|
13 * FFmpeg is distributed in the hope that it will be useful, |
0 | 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 | |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1305
diff
changeset
|
19 * License along with FFmpeg; if not, write to the Free Software |
896
edbe5c3717f9
Update licensing information: The FSF changed postal address.
diego
parents:
887
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
0 | 21 */ |
3286 | 22 |
3852 | 23 #ifndef AVFORMAT_SWF_H |
24 #define AVFORMAT_SWF_H | |
3302 | 25 |
3375 | 26 #include "libavutil/fifo.h" |
0 | 27 #include "avformat.h" |
3618 | 28 #include "avio.h" |
1305 | 29 #include "riff.h" /* for CodecTag */ |
0 | 30 |
31 /* should have a generic way to indicate probable size */ | |
32 #define DUMMY_FILE_SIZE (100 * 1024 * 1024) | |
33 #define DUMMY_DURATION 600 /* in seconds */ | |
34 | |
35 #define TAG_END 0 | |
36 #define TAG_SHOWFRAME 1 | |
37 #define TAG_DEFINESHAPE 2 | |
38 #define TAG_FREECHARACTER 3 | |
39 #define TAG_PLACEOBJECT 4 | |
40 #define TAG_REMOVEOBJECT 5 | |
807 | 41 #define TAG_STREAMHEAD 18 |
0 | 42 #define TAG_STREAMBLOCK 19 |
43 #define TAG_JPEG2 21 | |
359 | 44 #define TAG_PLACEOBJECT2 26 |
45 #define TAG_STREAMHEAD2 45 | |
887 | 46 #define TAG_VIDEOSTREAM 60 |
359 | 47 #define TAG_VIDEOFRAME 61 |
2955
b2d1cd7ab383
new avm2 (flash 9) muxer, patch by Paul Egan, paulegan at mail dot com
bcoudurier
parents:
2913
diff
changeset
|
48 #define TAG_FILEATTRIBUTES 69 |
0 | 49 |
50 #define TAG_LONG 0x100 | |
51 | |
52 /* flags for shape definition */ | |
53 #define FLAG_MOVETO 0x01 | |
54 #define FLAG_SETFILL0 0x02 | |
55 #define FLAG_SETFILL1 0x04 | |
56 | |
359 | 57 #define AUDIO_FIFO_SIZE 65536 |
58 | |
0 | 59 /* character id used */ |
60 #define BITMAP_ID 0 | |
359 | 61 #define VIDEO_ID 0 |
0 | 62 #define SHAPE_ID 1 |
63 | |
516 | 64 #undef NDEBUG |
65 #include <assert.h> | |
359 | 66 |
0 | 67 typedef struct { |
3973
549a09cf23fe
Remove offset_t typedef and use int64_t directly instead.
diego
parents:
3852
diff
changeset
|
68 int64_t duration_pos; |
549a09cf23fe
Remove offset_t typedef and use int64_t directly instead.
diego
parents:
3852
diff
changeset
|
69 int64_t tag_pos; |
549a09cf23fe
Remove offset_t typedef and use int64_t directly instead.
diego
parents:
3852
diff
changeset
|
70 int64_t vframes_pos; |
359 | 71 int samples_per_frame; |
72 int sound_samples; | |
73 int swf_frame_number; | |
74 int video_frame_number; | |
1889 | 75 int frame_rate; |
0 | 76 int tag; |
4669
d6eb19c43e99
Allocate AVFifoBuffer through the fifo API to reduce future API/ABI issues.
michael
parents:
4251
diff
changeset
|
77 AVFifoBuffer *audio_fifo; |
3380
c202c3486e49
simplify, use pointer to codec context in struct instead of only id
bcoudurier
parents:
3375
diff
changeset
|
78 AVCodecContext *audio_enc, *video_enc; |
0 | 79 } SWFContext; |
80 | |
1677
2a85c82b8538
add codec_id <-> codec_tag tables to AVIn/OutputFormat
michael
parents:
1673
diff
changeset
|
81 static const AVCodecTag swf_codec_tags[] = { |
1305 | 82 {CODEC_ID_FLV1, 0x02}, |
83 {CODEC_ID_VP6F, 0x04}, | |
5290
0d5653941bf9
Make AVCodecTag.id enum CodecID and use CODEC_ID_NONE instead of 0.
cehoyos
parents:
4714
diff
changeset
|
84 {CODEC_ID_NONE, 0}, |
1305 | 85 }; |
86 | |
1833 | 87 static const AVCodecTag swf_audio_codec_tags[] = { |
88 {CODEC_ID_PCM_S16LE, 0x00}, | |
89 {CODEC_ID_ADPCM_SWF, 0x01}, | |
90 {CODEC_ID_MP3, 0x02}, | |
91 {CODEC_ID_PCM_S16LE, 0x03}, | |
92 //{CODEC_ID_NELLYMOSER, 0x06}, | |
5290
0d5653941bf9
Make AVCodecTag.id enum CodecID and use CODEC_ID_NONE instead of 0.
cehoyos
parents:
4714
diff
changeset
|
93 {CODEC_ID_NONE, 0}, |
1833 | 94 }; |
95 | |
3852 | 96 #endif /* AVFORMAT_SWF_H */ |