annotate oggdec.h @ 4608:161a36f844ce libavformat

Revert "Improve frame rate guessing for streams with two fields per frame." This reverts r17656, which broke many tests. Further investigation is necessary.
author mru
date Sat, 28 Feb 2009 15:15:54 +0000
parents dcdf236c9909
children c6abeafbec30
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2714
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
1 /**
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
2 Copyright (C) 2005 Michael Ahlberg, Måns Rullgård
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
3
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
4 Permission is hereby granted, free of charge, to any person
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
5 obtaining a copy of this software and associated documentation
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
6 files (the "Software"), to deal in the Software without
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
7 restriction, including without limitation the rights to use, copy,
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
8 modify, merge, publish, distribute, sublicense, and/or sell copies
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
9 of the Software, and to permit persons to whom the Software is
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
10 furnished to do so, subject to the following conditions:
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
11
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
12 The above copyright notice and this permission notice shall be
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
13 included in all copies or substantial portions of the Software.
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
14
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
15 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
16 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
17 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
18 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
19 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
20 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
21 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
22 DEALINGS IN THE SOFTWARE.
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
23 **/
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
24
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3770
diff changeset
25 #ifndef AVFORMAT_OGGDEC_H
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3770
diff changeset
26 #define AVFORMAT_OGGDEC_H
2714
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
27
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
28 #include "avformat.h"
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
29
4016
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
30 struct ogg_codec {
3019
46c79fb51125 String pointers of ogg_codec_t should have const attribute.
reimar
parents: 2998
diff changeset
31 const int8_t *magic;
2714
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
32 uint8_t magicsize;
3019
46c79fb51125 String pointers of ogg_codec_t should have const attribute.
reimar
parents: 2998
diff changeset
33 const int8_t *name;
2714
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
34 int (*header)(AVFormatContext *, int);
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
35 int (*packet)(AVFormatContext *, int);
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
36 uint64_t (*gptopts)(AVFormatContext *, int, uint64_t);
4016
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
37 };
2714
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
38
4016
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
39 struct ogg_stream {
2714
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
40 uint8_t *buf;
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
41 unsigned int bufsize;
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
42 unsigned int bufpos;
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
43 unsigned int pstart;
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
44 unsigned int psize;
2732
2b101e9d25c0 set PKT_FLAG_KEY for Theora and OGM streams
mru
parents: 2714
diff changeset
45 unsigned int pflags;
2714
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
46 uint32_t serial;
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
47 uint32_t seq;
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
48 uint64_t granule, lastgp;
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
49 int flags;
4016
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
50 struct ogg_codec *codec;
2714
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
51 int header;
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
52 int nsegs, segp;
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
53 uint8_t segments[255];
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
54 void *private;
4016
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
55 };
2714
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
56
4016
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
57 struct ogg_state {
2714
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
58 uint64_t pos;
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
59 int curidx;
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
60 struct ogg_state *next;
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
61 int nstreams;
4016
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
62 struct ogg_stream streams[1];
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
63 };
2714
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
64
4016
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
65 struct ogg {
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
66 struct ogg_stream *streams;
2714
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
67 int nstreams;
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
68 int headers;
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
69 int curidx;
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
70 uint64_t size;
4016
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
71 struct ogg_state *state;
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
72 };
2714
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
73
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
74 #define OGG_FLAG_CONT 1
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
75 #define OGG_FLAG_BOS 2
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
76 #define OGG_FLAG_EOS 4
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
77
4016
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
78 extern const struct ogg_codec ff_flac_codec;
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
79 extern const struct ogg_codec ff_ogm_audio_codec;
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
80 extern const struct ogg_codec ff_ogm_old_codec;
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
81 extern const struct ogg_codec ff_ogm_text_codec;
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
82 extern const struct ogg_codec ff_ogm_video_codec;
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
83 extern const struct ogg_codec ff_old_flac_codec;
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
84 extern const struct ogg_codec ff_speex_codec;
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
85 extern const struct ogg_codec ff_theora_codec;
6cd006bc2de9 OGG: untypedef demuxer structs
mru
parents: 3852
diff changeset
86 extern const struct ogg_codec ff_vorbis_codec;
2714
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
87
4058
dcdf236c9909 Delete unnecessary 'extern' keywords.
diego
parents: 4016
diff changeset
88 int vorbis_comment(AVFormatContext *ms, uint8_t *buf, int size);
2714
b22ba392ac21 Rename ogg2.[ch] to oggdec.[ch].
diego
parents:
diff changeset
89
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3770
diff changeset
90 #endif /* AVFORMAT_OGGDEC_H */