Mercurial > libavformat.hg
annotate swf.h @ 6491:b7f807b4cd88 libavformat tip
In mov demuxer, check that nb_streams is valid before using it in read_dac3
| author | bcoudurier |
|---|---|
| date | Tue, 28 Sep 2010 00:33:21 +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 */ |
