Mercurial > libavformat.hg
annotate oggdec.h @ 3148:f00aeedea66a libavformat
MSN TCP Webcam stream demuxer.
| author | ramiro |
|---|---|
| date | Tue, 18 Mar 2008 19:54:47 +0000 |
| parents | 61ea9e6ee162 |
| children | bf39ed8d3d69 |
| 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 | |
| 25 #ifndef FFMPEG_OGGDEC_H | |
| 26 #define FFMPEG_OGGDEC_H | |
| 27 | |
| 28 #include "avformat.h" | |
| 29 | |
| 30 typedef 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); | |
| 37 } ogg_codec_t; | |
| 38 | |
| 39 typedef struct ogg_stream { | |
| 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; | |
| 50 ogg_codec_t *codec; | |
| 51 int header; | |
| 52 int nsegs, segp; | |
| 53 uint8_t segments[255]; | |
| 54 void *private; | |
| 55 } ogg_stream_t; | |
| 56 | |
| 57 typedef struct ogg_state { | |
| 58 uint64_t pos; | |
| 59 int curidx; | |
| 60 struct ogg_state *next; | |
| 61 int nstreams; | |
| 62 ogg_stream_t streams[1]; | |
| 63 } ogg_state_t; | |
| 64 | |
| 65 typedef struct ogg { | |
| 66 ogg_stream_t *streams; | |
| 67 int nstreams; | |
| 68 int headers; | |
| 69 int curidx; | |
| 70 uint64_t size; | |
| 71 ogg_state_t *state; | |
| 72 } ogg_t; | |
| 73 | |
| 74 #define OGG_FLAG_CONT 1 | |
| 75 #define OGG_FLAG_BOS 2 | |
| 76 #define OGG_FLAG_EOS 4 | |
| 77 | |
| 78 extern ogg_codec_t flac_codec; | |
| 2998 | 79 extern ogg_codec_t ogm_audio_codec; |
| 80 extern ogg_codec_t ogm_old_codec; | |
| 81 extern ogg_codec_t ogm_text_codec; | |
| 82 extern ogg_codec_t ogm_video_codec; | |
| 2714 | 83 extern ogg_codec_t old_flac_codec; |
| 3023 | 84 extern ogg_codec_t speex_codec; |
| 2998 | 85 extern ogg_codec_t theora_codec; |
| 86 extern ogg_codec_t vorbis_codec; | |
| 2714 | 87 |
| 88 extern int vorbis_comment(AVFormatContext *ms, uint8_t *buf, int size); | |
| 89 | |
| 90 #endif /* FFMPEG_OGGDEC_H */ |
