Mercurial > hg > sv-dependency-builds
comparison osx/include/ogg/ogg.h @ 2:cc5d363db385
Add OS/X 64-bit builds
author | Chris Cannam |
---|---|
date | Tue, 19 Mar 2013 20:33:28 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
1:05aa0afa9217 | 2:cc5d363db385 |
---|---|
1 /******************************************************************** | |
2 * * | |
3 * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * | |
4 * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * | |
5 * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * | |
6 * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * | |
7 * * | |
8 * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * | |
9 * by the Xiph.Org Foundation http://www.xiph.org/ * | |
10 * * | |
11 ******************************************************************** | |
12 | |
13 function: toplevel libogg include | |
14 last mod: $Id: ogg.h 18044 2011-08-01 17:55:20Z gmaxwell $ | |
15 | |
16 ********************************************************************/ | |
17 #ifndef _OGG_H | |
18 #define _OGG_H | |
19 | |
20 #ifdef __cplusplus | |
21 extern "C" { | |
22 #endif | |
23 | |
24 #include <stddef.h> | |
25 #include <ogg/os_types.h> | |
26 | |
27 typedef struct { | |
28 void *iov_base; | |
29 size_t iov_len; | |
30 } ogg_iovec_t; | |
31 | |
32 typedef struct { | |
33 long endbyte; | |
34 int endbit; | |
35 | |
36 unsigned char *buffer; | |
37 unsigned char *ptr; | |
38 long storage; | |
39 } oggpack_buffer; | |
40 | |
41 /* ogg_page is used to encapsulate the data in one Ogg bitstream page *****/ | |
42 | |
43 typedef struct { | |
44 unsigned char *header; | |
45 long header_len; | |
46 unsigned char *body; | |
47 long body_len; | |
48 } ogg_page; | |
49 | |
50 /* ogg_stream_state contains the current encode/decode state of a logical | |
51 Ogg bitstream **********************************************************/ | |
52 | |
53 typedef struct { | |
54 unsigned char *body_data; /* bytes from packet bodies */ | |
55 long body_storage; /* storage elements allocated */ | |
56 long body_fill; /* elements stored; fill mark */ | |
57 long body_returned; /* elements of fill returned */ | |
58 | |
59 | |
60 int *lacing_vals; /* The values that will go to the segment table */ | |
61 ogg_int64_t *granule_vals; /* granulepos values for headers. Not compact | |
62 this way, but it is simple coupled to the | |
63 lacing fifo */ | |
64 long lacing_storage; | |
65 long lacing_fill; | |
66 long lacing_packet; | |
67 long lacing_returned; | |
68 | |
69 unsigned char header[282]; /* working space for header encode */ | |
70 int header_fill; | |
71 | |
72 int e_o_s; /* set when we have buffered the last packet in the | |
73 logical bitstream */ | |
74 int b_o_s; /* set after we've written the initial page | |
75 of a logical bitstream */ | |
76 long serialno; | |
77 long pageno; | |
78 ogg_int64_t packetno; /* sequence number for decode; the framing | |
79 knows where there's a hole in the data, | |
80 but we need coupling so that the codec | |
81 (which is in a separate abstraction | |
82 layer) also knows about the gap */ | |
83 ogg_int64_t granulepos; | |
84 | |
85 } ogg_stream_state; | |
86 | |
87 /* ogg_packet is used to encapsulate the data and metadata belonging | |
88 to a single raw Ogg/Vorbis packet *************************************/ | |
89 | |
90 typedef struct { | |
91 unsigned char *packet; | |
92 long bytes; | |
93 long b_o_s; | |
94 long e_o_s; | |
95 | |
96 ogg_int64_t granulepos; | |
97 | |
98 ogg_int64_t packetno; /* sequence number for decode; the framing | |
99 knows where there's a hole in the data, | |
100 but we need coupling so that the codec | |
101 (which is in a separate abstraction | |
102 layer) also knows about the gap */ | |
103 } ogg_packet; | |
104 | |
105 typedef struct { | |
106 unsigned char *data; | |
107 int storage; | |
108 int fill; | |
109 int returned; | |
110 | |
111 int unsynced; | |
112 int headerbytes; | |
113 int bodybytes; | |
114 } ogg_sync_state; | |
115 | |
116 /* Ogg BITSTREAM PRIMITIVES: bitstream ************************/ | |
117 | |
118 extern void oggpack_writeinit(oggpack_buffer *b); | |
119 extern int oggpack_writecheck(oggpack_buffer *b); | |
120 extern void oggpack_writetrunc(oggpack_buffer *b,long bits); | |
121 extern void oggpack_writealign(oggpack_buffer *b); | |
122 extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits); | |
123 extern void oggpack_reset(oggpack_buffer *b); | |
124 extern void oggpack_writeclear(oggpack_buffer *b); | |
125 extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); | |
126 extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits); | |
127 extern long oggpack_look(oggpack_buffer *b,int bits); | |
128 extern long oggpack_look1(oggpack_buffer *b); | |
129 extern void oggpack_adv(oggpack_buffer *b,int bits); | |
130 extern void oggpack_adv1(oggpack_buffer *b); | |
131 extern long oggpack_read(oggpack_buffer *b,int bits); | |
132 extern long oggpack_read1(oggpack_buffer *b); | |
133 extern long oggpack_bytes(oggpack_buffer *b); | |
134 extern long oggpack_bits(oggpack_buffer *b); | |
135 extern unsigned char *oggpack_get_buffer(oggpack_buffer *b); | |
136 | |
137 extern void oggpackB_writeinit(oggpack_buffer *b); | |
138 extern int oggpackB_writecheck(oggpack_buffer *b); | |
139 extern void oggpackB_writetrunc(oggpack_buffer *b,long bits); | |
140 extern void oggpackB_writealign(oggpack_buffer *b); | |
141 extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits); | |
142 extern void oggpackB_reset(oggpack_buffer *b); | |
143 extern void oggpackB_writeclear(oggpack_buffer *b); | |
144 extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); | |
145 extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits); | |
146 extern long oggpackB_look(oggpack_buffer *b,int bits); | |
147 extern long oggpackB_look1(oggpack_buffer *b); | |
148 extern void oggpackB_adv(oggpack_buffer *b,int bits); | |
149 extern void oggpackB_adv1(oggpack_buffer *b); | |
150 extern long oggpackB_read(oggpack_buffer *b,int bits); | |
151 extern long oggpackB_read1(oggpack_buffer *b); | |
152 extern long oggpackB_bytes(oggpack_buffer *b); | |
153 extern long oggpackB_bits(oggpack_buffer *b); | |
154 extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b); | |
155 | |
156 /* Ogg BITSTREAM PRIMITIVES: encoding **************************/ | |
157 | |
158 extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); | |
159 extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, | |
160 int count, long e_o_s, ogg_int64_t granulepos); | |
161 extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); | |
162 extern int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill); | |
163 extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og); | |
164 extern int ogg_stream_flush_fill(ogg_stream_state *os, ogg_page *og, int nfill); | |
165 | |
166 /* Ogg BITSTREAM PRIMITIVES: decoding **************************/ | |
167 | |
168 extern int ogg_sync_init(ogg_sync_state *oy); | |
169 extern int ogg_sync_clear(ogg_sync_state *oy); | |
170 extern int ogg_sync_reset(ogg_sync_state *oy); | |
171 extern int ogg_sync_destroy(ogg_sync_state *oy); | |
172 extern int ogg_sync_check(ogg_sync_state *oy); | |
173 | |
174 extern char *ogg_sync_buffer(ogg_sync_state *oy, long size); | |
175 extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); | |
176 extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); | |
177 extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); | |
178 extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); | |
179 extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); | |
180 extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); | |
181 | |
182 /* Ogg BITSTREAM PRIMITIVES: general ***************************/ | |
183 | |
184 extern int ogg_stream_init(ogg_stream_state *os,int serialno); | |
185 extern int ogg_stream_clear(ogg_stream_state *os); | |
186 extern int ogg_stream_reset(ogg_stream_state *os); | |
187 extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); | |
188 extern int ogg_stream_destroy(ogg_stream_state *os); | |
189 extern int ogg_stream_check(ogg_stream_state *os); | |
190 extern int ogg_stream_eos(ogg_stream_state *os); | |
191 | |
192 extern void ogg_page_checksum_set(ogg_page *og); | |
193 | |
194 extern int ogg_page_version(const ogg_page *og); | |
195 extern int ogg_page_continued(const ogg_page *og); | |
196 extern int ogg_page_bos(const ogg_page *og); | |
197 extern int ogg_page_eos(const ogg_page *og); | |
198 extern ogg_int64_t ogg_page_granulepos(const ogg_page *og); | |
199 extern int ogg_page_serialno(const ogg_page *og); | |
200 extern long ogg_page_pageno(const ogg_page *og); | |
201 extern int ogg_page_packets(const ogg_page *og); | |
202 | |
203 extern void ogg_packet_clear(ogg_packet *op); | |
204 | |
205 | |
206 #ifdef __cplusplus | |
207 } | |
208 #endif | |
209 | |
210 #endif /* _OGG_H */ |