1 #![allow(missing_copy_implementations)]
2 #![allow(non_camel_case_types)]
3 
4 extern crate libc;
5 
6 pub type ogg_int64_t = libc::int64_t;
7 
8 #[repr(C)]
9 pub struct ogg_iovec_t {
10     pub iov_base: *mut libc::c_void,
11     pub iov_len: libc::size_t,
12 }
13 
14 #[repr(C)]
15 pub struct oggpack_buffer {
16     pub endbyte: libc::c_long,
17     pub endbit: libc::c_int,
18 
19     pub buffer: *mut libc::c_uchar,
20     pub ptr: *mut libc::c_uchar,
21     pub storage: libc::c_long,
22 }
23 
24 #[repr(C)]
25 pub struct ogg_page {
26     pub header: *mut libc::c_uchar,
27     pub header_len: libc::c_long,
28     pub body: *mut libc::c_uchar,
29     pub body_len: libc::c_long,
30 }
31 
32 #[repr(C)]
33 pub struct ogg_stream_state {
34     pub body_data: *mut libc::c_uchar,
35     pub body_storage: libc::c_long,
36     pub body_fill: libc::c_long,
37     pub body_returned: libc::c_long,
38 
39     pub lacing_vals: *mut libc::c_int,
40     pub granule_vals: *mut ogg_int64_t,
41 
42     pub lacing_storage: libc::c_long,
43     pub lacing_fill: libc::c_long,
44     pub lacing_packet: libc::c_long,
45     pub lacing_returned: libc::c_long,
46 
47     pub header: [libc::c_uchar; 282],
48     pub header_fill: libc::c_int,
49 
50     pub e_o_s: libc::c_int,
51     pub b_o_s: libc::c_int,
52     pub serialno: libc::c_long,
53     pub pageno: libc::c_long,
54     pub packetno: ogg_int64_t,
55     pub granulepos: ogg_int64_t,
56 }
57 
58 #[repr(C)]
59 pub struct ogg_packet {
60     pub packet: *mut libc::c_uchar,
61     pub bytes: libc::c_long,
62     pub b_o_s: libc::c_long,
63     pub e_o_s: libc::c_long,
64 
65     pub granulepos: ogg_int64_t,
66 
67     pub packetno: ogg_int64_t,
68 }
69 
70 #[repr(C)]
71 pub struct ogg_sync_state {
72     pub data: *mut libc::c_uchar,
73     pub storage: libc::c_int,
74     pub fill: libc::c_int,
75     pub returned: libc::c_int,
76 
77     pub unsynced: libc::c_int,
78     pub headerbytes: libc::c_int,
79     pub bodybytes: libc::c_int,
80 }
81 
82 extern {
83     pub fn oggpack_writeinit(b: *mut oggpack_buffer);
84     pub fn oggpack_writecheck(b: *mut oggpack_buffer) -> libc::c_int;
85     pub fn oggpack_writetrunc(b: *mut oggpack_buffer, bits: libc::c_long);
86     pub fn oggpack_writealign(b: *mut oggpack_buffer);
87     pub fn oggpack_writecopy(b: *mut oggpack_buffer, source: *mut libc::c_void, bits: libc::c_long);
88     pub fn oggpack_reset(b: *mut oggpack_buffer);
89     pub fn oggpack_writeclear(b: *mut oggpack_buffer);
90     pub fn oggpack_readinit(b: *mut oggpack_buffer, buf: *mut libc::c_uchar, bytes: libc::c_int)
91         -> libc::c_int;
92     pub fn oggpack_write(b: *mut oggpack_buffer, value: libc::c_ulong, bits: libc::c_int)
93         -> libc::c_int;
94     pub fn oggpack_look(b: *mut oggpack_buffer, bits: libc::c_int) -> libc::c_long;
95     pub fn oggpack_look1(b: *mut oggpack_buffer) -> libc::c_long;
96     pub fn oggpack_adv(b: *mut oggpack_buffer, bits: libc::c_int) -> libc::c_int;
97     pub fn oggpack_adv1(b: *mut oggpack_buffer);
98     pub fn oggpack_read(b: *mut oggpack_buffer, bits: libc::c_int) -> libc::c_long;
99     pub fn oggpack_read1(b: *mut oggpack_buffer) -> libc::c_long;
100     pub fn oggpack_bytes(b: *mut oggpack_buffer) -> libc::c_long;
101     pub fn oggpack_bits(b: *mut oggpack_buffer) -> libc::c_long;
102     pub fn oggpack_get_buffer(b: *mut oggpack_buffer) -> *const libc::c_uchar;
103 
104     pub fn oggpackB_writeinit(b: *mut oggpack_buffer);
105     pub fn oggpackB_writecheck(b: *mut oggpack_buffer) -> libc::c_int;
106     pub fn oggpackB_writetrunc(b: *mut oggpack_buffer, bits: libc::c_long);
107     pub fn oggpackB_writealign(b: *mut oggpack_buffer);
108     pub fn oggpackB_writecopy(b: *mut oggpack_buffer, source: *mut libc::c_void,
109         bits: libc::c_long);
110     pub fn oggpackB_reset(b: *mut oggpack_buffer);
111     pub fn oggpackB_writeclear(b: *mut oggpack_buffer);
112     pub fn oggpackB_readinit(b: *mut oggpack_buffer, buf: *mut libc::c_uchar, bytes: libc::c_int)
113         -> libc::c_int;
114     pub fn oggpackB_write(b: *mut oggpack_buffer, value: libc::c_ulong, bits: libc::c_int)
115         -> libc::c_int;
116     pub fn oggpackB_look(b: *mut oggpack_buffer,bits: libc::c_int) -> libc::c_long;
117     pub fn oggpackB_look1(b: *mut oggpack_buffer) -> libc::c_long;
118     pub fn oggpackB_adv(b: *mut oggpack_buffer, bits: libc::c_int) -> libc::c_int;
119     pub fn oggpackB_adv1(b: *mut oggpack_buffer);
120     pub fn oggpackB_read(b: *mut oggpack_buffer, bits: libc::c_int) -> libc::c_long;
121     pub fn oggpackB_read1(b: *mut oggpack_buffer) -> libc::c_long;
122     pub fn oggpackB_bytes(b: *mut oggpack_buffer) -> libc::c_long;
123     pub fn oggpackB_bits(b: *mut oggpack_buffer) -> libc::c_long;
124     pub fn oggpackB_get_buffer(b: *mut oggpack_buffer) -> *const libc::c_uchar;
125 
126     pub fn ogg_stream_packetin(os: *mut ogg_stream_state, op: *mut ogg_packet) -> libc::c_int;
127     pub fn ogg_stream_iovecin(os: *mut ogg_stream_state, iov: *mut ogg_iovec_t, count: libc::c_int,
128         e_o_s: libc::c_long, granulepos: ogg_int64_t) -> libc::c_int;
129     pub fn ogg_stream_pageout(os: *mut ogg_stream_state, og: *mut ogg_page) -> libc::c_int;
130     pub fn ogg_stream_pageout_fill(os: *mut ogg_stream_state, og: *mut ogg_page,
131         nfill: libc::c_int) -> libc::c_int;
132     pub fn ogg_stream_flush(os: *mut ogg_stream_state, og: *mut ogg_page) -> libc::c_int;
133     pub fn ogg_stream_flush_fill(os: *mut ogg_stream_state, og: *mut ogg_page,
134         nfill: libc::c_int) -> libc::c_int;
135 
136     pub fn ogg_sync_init(oy: *mut ogg_sync_state) -> libc::c_int;
137     pub fn ogg_sync_clear(oy: *mut ogg_sync_state) -> libc::c_int;
138     pub fn ogg_sync_reset(oy: *mut ogg_sync_state) -> libc::c_int;
139     pub fn ogg_sync_destroy(oy: *mut ogg_sync_state) -> libc::c_int;
140     pub fn ogg_sync_check(oy: *mut ogg_sync_state) -> libc::c_int;
141 
142     pub fn ogg_sync_buffer(oy: *mut ogg_sync_state, size: libc::c_long) -> *const libc::c_char;
143     pub fn ogg_sync_wrote(oy: *mut ogg_sync_state, bytes: libc::c_long) -> libc::c_int;
144     pub fn ogg_sync_pageseek(oy: *mut ogg_sync_state,og: *mut ogg_page) -> libc::c_long;
145     pub fn ogg_sync_pageout(oy: *mut ogg_sync_state, og: *mut ogg_page) -> libc::c_int;
146     pub fn ogg_stream_pagein(os: *mut ogg_stream_state, og: *mut ogg_page) -> libc::c_int;
147     pub fn ogg_stream_packetout(os: *mut ogg_stream_state,op: *mut ogg_packet) -> libc::c_int;
148     pub fn ogg_stream_packetpeek(os: *mut ogg_stream_state,op: *mut ogg_packet) -> libc::c_int;
149 
150     pub fn ogg_stream_init(os: *mut ogg_stream_state, serialno: libc::c_int) -> libc::c_int;
151     pub fn ogg_stream_clear(os: *mut ogg_stream_state) -> libc::c_int;
152     pub fn ogg_stream_reset(os: *mut ogg_stream_state) -> libc::c_int;
153     pub fn ogg_stream_reset_serialno(os: *mut ogg_stream_state, serialno: libc::c_int)
154         -> libc::c_int;
155     pub fn ogg_stream_destroy(os: *mut ogg_stream_state) -> libc::c_int;
156     pub fn ogg_stream_check(os: *mut ogg_stream_state) -> libc::c_int;
157     pub fn ogg_stream_eos(os: *mut ogg_stream_state) -> libc::c_int;
158 
159     pub fn ogg_page_checksum_set(og: *mut ogg_page);
160 
161     pub fn ogg_page_version(og: *const ogg_page) -> libc::c_int;
162     pub fn ogg_page_continued(og: *const ogg_page) -> libc::c_int;
163     pub fn ogg_page_bos(og: *const ogg_page) -> libc::c_int;
164     pub fn ogg_page_eos(og: *const ogg_page) -> libc::c_int;
165     pub fn ogg_page_granulepos(og: *const ogg_page) -> ogg_int64_t;
166     pub fn ogg_page_serialno(og: *const ogg_page) -> libc::c_int;
167     pub fn ogg_page_pageno(og: *const ogg_page) -> libc::c_long;
168     pub fn ogg_page_packets(og: *const ogg_page) -> libc::c_int;
169 
170     pub fn ogg_packet_clear(op: *mut ogg_packet);
171 
172 }
173