Mercurial > libavformat.hg
annotate oggdec.h @ 4281:f1d8951d6813 libavformat
Skip m= blocks in the SDP if the media type is unknown. This prevents
subsequent a= lines from the m= block to be applied to the previous
m= line, thus breaking otherwise functional RTP streams. See discussion in
[PATCH] RTSP-MS 7/15: parse and allow unknown m= line codes" thread on
mailinglist.
author | rbultje |
---|---|
date | Sat, 24 Jan 2009 04:56:18 +0000 |
parents | dcdf236c9909 |
children | c6abeafbec30 |
rev | line source |
---|---|
2714 | 1 /** |
2 Copyright (C) 2005 Michael Ahlberg, Måns Rullgård | |
3 | |
4 Permission is hereby granted, free of charge, to any person | |
5 obtaining a copy of this software and associated documentation | |
6 files (the "Software"), to deal in the Software without | |
7 restriction, including without limitation the rights to use, copy, | |
8 modify, merge, publish, distribute, sublicense, and/or sell copies | |
9 of the Software, and to permit persons to whom the Software is | |
10 furnished to do so, subject to the following conditions: | |
11 | |
12 The above copyright notice and this permission notice shall be | |
13 included in all copies or substantial portions of the Software. | |
14 | |
15 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
16 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
17 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |
18 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | |
19 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | |
20 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
21 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | |
22 DEALINGS IN THE SOFTWARE. | |
23 **/ | |
24 | |
3852 | 25 #ifndef AVFORMAT_OGGDEC_H |
26 #define AVFORMAT_OGGDEC_H | |
2714 | 27 |
28 #include "avformat.h" | |
29 | |
4016 | 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 | 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 | 34 int (*header)(AVFormatContext *, int); |
35 int (*packet)(AVFormatContext *, int); | |
36 uint64_t (*gptopts)(AVFormatContext *, int, uint64_t); | |
4016 | 37 }; |
2714 | 38 |
4016 | 39 struct ogg_stream { |
2714 | 40 uint8_t *buf; |
41 unsigned int bufsize; | |
42 unsigned int bufpos; | |
43 unsigned int pstart; | |
44 unsigned int psize; | |
2732 | 45 unsigned int pflags; |
2714 | 46 uint32_t serial; |
47 uint32_t seq; | |
48 uint64_t granule, lastgp; | |
49 int flags; | |
4016 | 50 struct ogg_codec *codec; |
2714 | 51 int header; |
52 int nsegs, segp; | |
53 uint8_t segments[255]; | |
54 void *private; | |
4016 | 55 }; |
2714 | 56 |
4016 | 57 struct ogg_state { |
2714 | 58 uint64_t pos; |
59 int curidx; | |
60 struct ogg_state *next; | |
61 int nstreams; | |
4016 | 62 struct ogg_stream streams[1]; |
63 }; | |
2714 | 64 |
4016 | 65 struct ogg { |
66 struct ogg_stream *streams; | |
2714 | 67 int nstreams; |
68 int headers; | |
69 int curidx; | |
70 uint64_t size; | |
4016 | 71 struct ogg_state *state; |
72 }; | |
2714 | 73 |
74 #define OGG_FLAG_CONT 1 | |
75 #define OGG_FLAG_BOS 2 | |
76 #define OGG_FLAG_EOS 4 | |
77 | |
4016 | 78 extern const struct ogg_codec ff_flac_codec; |
79 extern const struct ogg_codec ff_ogm_audio_codec; | |
80 extern const struct ogg_codec ff_ogm_old_codec; | |
81 extern const struct ogg_codec ff_ogm_text_codec; | |
82 extern const struct ogg_codec ff_ogm_video_codec; | |
83 extern const struct ogg_codec ff_old_flac_codec; | |
84 extern const struct ogg_codec ff_speex_codec; | |
85 extern const struct ogg_codec ff_theora_codec; | |
86 extern const struct ogg_codec ff_vorbis_codec; | |
2714 | 87 |
4058 | 88 int vorbis_comment(AVFormatContext *ms, uint8_t *buf, int size); |
2714 | 89 |
3852 | 90 #endif /* AVFORMAT_OGGDEC_H */ |