annotate swf.h @ 6145:33fe8833a439 libavformat

RTSP: Don't store the connection handles in local variables This removes some useless copying of handles, and simplifies error handling. Patch by Josh Allmann, joshua dot allmann at gmail
author mstorsjo
date Sat, 19 Jun 2010 21:36:13 +0000
parents 0d5653941bf9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
1 /*
3302
171f5664d129 split swf de/muxer
bcoudurier
parents: 3286
diff changeset
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
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
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
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
9 * modify it under the terms of the GNU Lesser General Public
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
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
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
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
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
16 * Lesser General Public License for more details.
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
17 *
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
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
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
21 */
3286
6f61c3b36632 Use full path for #includes from another directory.
diego
parents: 2959
diff changeset
22
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3618
diff changeset
23 #ifndef AVFORMAT_SWF_H
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3618
diff changeset
24 #define AVFORMAT_SWF_H
3302
171f5664d129 split swf de/muxer
bcoudurier
parents: 3286
diff changeset
25
3375
9877da0d8be3 use AVFifoBuffer
bcoudurier
parents: 3302
diff changeset
26 #include "libavutil/fifo.h"
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
27 #include "avformat.h"
3618
e77025bff589 Recommit r14497
michael
parents: 3617
diff changeset
28 #include "avio.h"
1305
541f4aa12efc VP5 and VP6 video decoder
aurel
parents: 1169
diff changeset
29 #include "riff.h" /* for CodecTag */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
30
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
31 /* should have a generic way to indicate probable size */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
32 #define DUMMY_FILE_SIZE (100 * 1024 * 1024)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
33 #define DUMMY_DURATION 600 /* in seconds */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
34
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
35 #define TAG_END 0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
36 #define TAG_SHOWFRAME 1
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
37 #define TAG_DEFINESHAPE 2
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
38 #define TAG_FREECHARACTER 3
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
39 #define TAG_PLACEOBJECT 4
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
40 #define TAG_REMOVEOBJECT 5
807
alex
parents: 806
diff changeset
41 #define TAG_STREAMHEAD 18
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
42 #define TAG_STREAMBLOCK 19
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
43 #define TAG_JPEG2 21
359
e9232aa21976 - made --extra-cflags option work on darwin
michael
parents: 325
diff changeset
44 #define TAG_PLACEOBJECT2 26
e9232aa21976 - made --extra-cflags option work on darwin
michael
parents: 325
diff changeset
45 #define TAG_STREAMHEAD2 45
887
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
46 #define TAG_VIDEOSTREAM 60
359
e9232aa21976 - made --extra-cflags option work on darwin
michael
parents: 325
diff changeset
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
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
49
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
50 #define TAG_LONG 0x100
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
51
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
52 /* flags for shape definition */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
53 #define FLAG_MOVETO 0x01
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
54 #define FLAG_SETFILL0 0x02
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
55 #define FLAG_SETFILL1 0x04
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
56
359
e9232aa21976 - made --extra-cflags option work on darwin
michael
parents: 325
diff changeset
57 #define AUDIO_FIFO_SIZE 65536
e9232aa21976 - made --extra-cflags option work on darwin
michael
parents: 325
diff changeset
58
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
59 /* character id used */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
60 #define BITMAP_ID 0
359
e9232aa21976 - made --extra-cflags option work on darwin
michael
parents: 325
diff changeset
61 #define VIDEO_ID 0
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
62 #define SHAPE_ID 1
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
63
516
59ddf98a5c65 nonsense removial
michael
parents: 482
diff changeset
64 #undef NDEBUG
59ddf98a5c65 nonsense removial
michael
parents: 482
diff changeset
65 #include <assert.h>
359
e9232aa21976 - made --extra-cflags option work on darwin
michael
parents: 325
diff changeset
66
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
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
e9232aa21976 - made --extra-cflags option work on darwin
michael
parents: 325
diff changeset
71 int samples_per_frame;
e9232aa21976 - made --extra-cflags option work on darwin
michael
parents: 325
diff changeset
72 int sound_samples;
e9232aa21976 - made --extra-cflags option work on darwin
michael
parents: 325
diff changeset
73 int swf_frame_number;
e9232aa21976 - made --extra-cflags option work on darwin
michael
parents: 325
diff changeset
74 int video_frame_number;
1889
e81bae269ae1 fix pts handling
bcoudurier
parents: 1882
diff changeset
75 int frame_rate;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
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
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
79 } SWFContext;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
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
541f4aa12efc VP5 and VP6 video decoder
aurel
parents: 1169
diff changeset
82 {CODEC_ID_FLV1, 0x02},
541f4aa12efc VP5 and VP6 video decoder
aurel
parents: 1169
diff changeset
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
541f4aa12efc VP5 and VP6 video decoder
aurel
parents: 1169
diff changeset
85 };
541f4aa12efc VP5 and VP6 video decoder
aurel
parents: 1169
diff changeset
86
1833
09a67819763e support for adpcm swf, pcm
bcoudurier
parents: 1827
diff changeset
87 static const AVCodecTag swf_audio_codec_tags[] = {
09a67819763e support for adpcm swf, pcm
bcoudurier
parents: 1827
diff changeset
88 {CODEC_ID_PCM_S16LE, 0x00},
09a67819763e support for adpcm swf, pcm
bcoudurier
parents: 1827
diff changeset
89 {CODEC_ID_ADPCM_SWF, 0x01},
09a67819763e support for adpcm swf, pcm
bcoudurier
parents: 1827
diff changeset
90 {CODEC_ID_MP3, 0x02},
09a67819763e support for adpcm swf, pcm
bcoudurier
parents: 1827
diff changeset
91 {CODEC_ID_PCM_S16LE, 0x03},
09a67819763e support for adpcm swf, pcm
bcoudurier
parents: 1827
diff changeset
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
09a67819763e support for adpcm swf, pcm
bcoudurier
parents: 1827
diff changeset
94 };
09a67819763e support for adpcm swf, pcm
bcoudurier
parents: 1827
diff changeset
95
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3618
diff changeset
96 #endif /* AVFORMAT_SWF_H */