1#![allow(dead_code,
4 non_camel_case_types,
5 non_upper_case_globals,
6 non_snake_case)]
7
8extern crate libc;
9
10use libc::FILE;
11use std::os::raw::*;
12
13pub type size_t = usize;
14
15#[derive(Copy, Clone)]
20#[repr(u32)]
21#[derive(Debug)]
22pub enum vbr_mode {
23 vbr_off = 0,
24 vbr_mt = 1,
25 vbr_rh = 2,
26 vbr_abr = 3,
27 vbr_mtrh = 4,
28 vbr_max_indicator = 5,
29}
30pub const vbr_default: vbr_mode = vbr_mode::vbr_mtrh;
31
32#[derive(Copy, Clone)]
33#[repr(u32)]
34#[derive(Debug)]
35pub enum MPEG_mode {
36 STEREO = 0,
37 JOINT_STEREO = 1,
38 DUAL_CHANNEL = 2,
39 MONO = 3,
40 NOT_SET = 4,
41 MAX_INDICATOR = 5,
42}
43
44#[derive(Copy, Clone)]
45#[repr(u32)]
46#[derive(Debug)]
47pub enum Padding_type {
48 PAD_NO = 0,
49 PAD_ALL = 1,
50 PAD_ADJUST = 2,
51 PAD_MAX_INDICATOR = 3,
52}
53
54#[derive(Copy, Clone)]
55#[repr(u32)]
56#[derive(Debug)]
57pub enum preset_mode {
58 ABR_8 = 8,
59 ABR_320 = 320,
60 V9 = 410,
61 V8 = 420,
62 V7 = 430,
63 V6 = 440,
64 V5 = 450,
65 V4 = 460,
66 V3 = 470,
67 V2 = 480,
68 V1 = 490,
69 V0 = 500,
70 R3MIX = 1000,
71 STANDARD = 1001,
72 EXTREME = 1002,
73 INSANE = 1003,
74 STANDARD_FAST = 1004,
75 EXTREME_FAST = 1005,
76 MEDIUM = 1006,
77 MEDIUM_FAST = 1007,
78}
79
80pub const VBR_10: preset_mode = preset_mode::V9;
81pub const VBR_20: preset_mode = preset_mode::V8;
82pub const VBR_30: preset_mode = preset_mode::V7;
83pub const VBR_40: preset_mode = preset_mode::V6;
84pub const VBR_50: preset_mode = preset_mode::V5;
85pub const VBR_60: preset_mode = preset_mode::V4;
86pub const VBR_70: preset_mode = preset_mode::V3;
87pub const VBR_80: preset_mode = preset_mode::V2;
88pub const VBR_90: preset_mode = preset_mode::V1;
89pub const VBR_100: preset_mode = preset_mode::V0;
90
91#[derive(Copy, Clone)]
92#[repr(u32)]
93#[derive(Debug)]
94pub enum asm_optimizations {
95 MMX = 1,
96 AMD_3DNOW = 2,
97 SSE = 3,
98}
99
100#[derive(Copy, Clone)]
101#[repr(u32)]
102#[derive(Debug)]
103pub enum Psy_model {
104 PSY_GPSYCHO = 1,
105 PSY_NSPSYTUNE = 2,
106}
107
108#[derive(Copy, Clone)]
109#[repr(u32)]
110#[derive(Debug)]
111pub enum buffer_constraint {
112 MDB_DEFAULT = 0,
113 MDB_STRICT_ISO = 1,
114 MDB_MAXIMUM = 2,
115}
116
117pub enum lame_global_flags { }
118pub type lame_t = *mut lame_global_flags;
119
120#[repr(C)]
121#[derive(Copy, Clone)]
122#[derive(Debug)]
123pub struct lame_version_t {
124 pub major: c_int,
125 pub minor: c_int,
126 pub alpha: c_int,
127 pub beta: c_int,
128 pub psy_major: c_int,
129 pub psy_minor: c_int,
130 pub psy_alpha: c_int,
131 pub psy_beta: c_int,
132 pub features: *const c_char,
133}
134
135impl ::std::default::Default for lame_version_t {
136 fn default() -> Self {
137 unsafe { ::std::mem::zeroed() }
138 }
139}
140
141pub enum hip_global_flags { }
142pub type hip_t = *mut hip_global_flags;
143
144#[repr(C)]
145#[derive(Copy, Clone)]
146#[derive(Debug)]
147pub struct mp3data_struct {
148 pub header_parsed: c_int,
149 pub stereo: c_int,
150 pub samplerate: c_int,
151 pub bitrate: c_int,
152 pub mode: c_int,
153 pub mode_ext: c_int,
154 pub framesize: c_int,
155 pub nsamp: c_ulong,
156 pub totalframes: c_int,
157 pub framenum: c_int,
158}
159
160impl ::std::default::Default for mp3data_struct {
161 fn default() -> Self {
162 unsafe { ::std::mem::zeroed() }
163 }
164}
165
166#[derive(Copy, Clone)]
167#[repr(i32)]
168#[derive(Debug)]
169pub enum lame_errorcodes_t {
170 LAME_OKAY = 0,
171 LAME_GENERICERROR = -1,
172 LAME_NOMEM = -10,
173 LAME_BADBITRATE = -11,
174 LAME_BADSAMPFREQ = -12,
175 LAME_INTERNALERROR = -13,
176 FRONTEND_READERROR = -80,
177 FRONTEND_WRITEERROR = -81,
178 FRONTEND_FILETOOLARGE = -82,
179}
180pub const LAME_NOERROR: lame_errorcodes_t = lame_errorcodes_t::LAME_OKAY;
181
182extern "C" {
183 pub static mut bitrate_table: [[c_int; 16usize]; 3usize];
184 pub static mut samplerate_table: [[c_int; 4usize]; 3usize];
185 pub fn lame_init() -> *mut lame_global_flags;
186 pub fn lame_set_num_samples(arg1: *mut lame_global_flags, arg2: c_ulong) -> c_int;
187 pub fn lame_get_num_samples(arg1: *const lame_global_flags) -> c_ulong;
188 pub fn lame_set_in_samplerate(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
189 pub fn lame_get_in_samplerate(arg1: *const lame_global_flags) -> c_int;
190 pub fn lame_set_num_channels(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
191 pub fn lame_get_num_channels(arg1: *const lame_global_flags) -> c_int;
192 pub fn lame_set_scale(arg1: *mut lame_global_flags, arg2: f32) -> c_int;
193 pub fn lame_get_scale(arg1: *const lame_global_flags) -> f32;
194 pub fn lame_set_scale_left(arg1: *mut lame_global_flags, arg2: f32) -> c_int;
195 pub fn lame_get_scale_left(arg1: *const lame_global_flags) -> f32;
196 pub fn lame_set_scale_right(arg1: *mut lame_global_flags, arg2: f32) -> c_int;
197 pub fn lame_get_scale_right(arg1: *const lame_global_flags) -> f32;
198 pub fn lame_set_out_samplerate(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
199 pub fn lame_get_out_samplerate(arg1: *const lame_global_flags) -> c_int;
200 pub fn lame_set_analysis(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
201 pub fn lame_get_analysis(arg1: *const lame_global_flags) -> c_int;
202 pub fn lame_set_bWriteVbrTag(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
203 pub fn lame_get_bWriteVbrTag(arg1: *const lame_global_flags) -> c_int;
204 pub fn lame_set_decode_only(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
205 pub fn lame_get_decode_only(arg1: *const lame_global_flags) -> c_int;
206 pub fn lame_set_quality(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
207 pub fn lame_get_quality(arg1: *const lame_global_flags) -> c_int;
208 pub fn lame_set_mode(arg1: *mut lame_global_flags, arg2: MPEG_mode) -> c_int;
209 pub fn lame_get_mode(arg1: *const lame_global_flags) -> MPEG_mode;
210 pub fn lame_set_force_ms(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
211 pub fn lame_get_force_ms(arg1: *const lame_global_flags) -> c_int;
212 pub fn lame_set_free_format(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
213 pub fn lame_get_free_format(arg1: *const lame_global_flags) -> c_int;
214 pub fn lame_set_findReplayGain(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
215 pub fn lame_get_findReplayGain(arg1: *const lame_global_flags) -> c_int;
216 pub fn lame_set_decode_on_the_fly(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
217 pub fn lame_get_decode_on_the_fly(arg1: *const lame_global_flags) -> c_int;
218 pub fn lame_set_nogap_total(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
219 pub fn lame_get_nogap_total(arg1: *const lame_global_flags) -> c_int;
220 pub fn lame_set_nogap_currentindex(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
221 pub fn lame_get_nogap_currentindex(arg1: *const lame_global_flags) -> c_int;
222 pub fn lame_set_brate(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
227 pub fn lame_get_brate(arg1: *const lame_global_flags) -> c_int;
228 pub fn lame_set_compression_ratio(arg1: *mut lame_global_flags, arg2: f32) -> c_int;
229 pub fn lame_get_compression_ratio(arg1: *const lame_global_flags) -> f32;
230 pub fn lame_set_preset(gfp: *mut lame_global_flags, arg1: c_int) -> c_int;
231 pub fn lame_set_asm_optimizations(gfp: *mut lame_global_flags,
232 arg1: c_int,
233 arg2: c_int)
234 -> c_int;
235 pub fn lame_set_copyright(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
236 pub fn lame_get_copyright(arg1: *const lame_global_flags) -> c_int;
237 pub fn lame_set_original(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
238 pub fn lame_get_original(arg1: *const lame_global_flags) -> c_int;
239 pub fn lame_set_error_protection(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
240 pub fn lame_get_error_protection(arg1: *const lame_global_flags) -> c_int;
241 pub fn lame_set_extension(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
242 pub fn lame_get_extension(arg1: *const lame_global_flags) -> c_int;
243 pub fn lame_set_strict_ISO(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
244 pub fn lame_get_strict_ISO(arg1: *const lame_global_flags) -> c_int;
245 pub fn lame_set_disable_reservoir(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
246 pub fn lame_get_disable_reservoir(arg1: *const lame_global_flags) -> c_int;
247 pub fn lame_set_quant_comp(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
248 pub fn lame_get_quant_comp(arg1: *const lame_global_flags) -> c_int;
249 pub fn lame_set_quant_comp_short(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
250 pub fn lame_get_quant_comp_short(arg1: *const lame_global_flags) -> c_int;
251 pub fn lame_set_experimentalX(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
252 pub fn lame_get_experimentalX(arg1: *const lame_global_flags) -> c_int;
253 pub fn lame_set_experimentalY(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
254 pub fn lame_get_experimentalY(arg1: *const lame_global_flags) -> c_int;
255 pub fn lame_set_experimentalZ(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
256 pub fn lame_get_experimentalZ(arg1: *const lame_global_flags) -> c_int;
257 pub fn lame_set_exp_nspsytune(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
258 pub fn lame_get_exp_nspsytune(arg1: *const lame_global_flags) -> c_int;
259 pub fn lame_set_msfix(arg1: *mut lame_global_flags, arg2: f64);
260 pub fn lame_get_msfix(arg1: *const lame_global_flags) -> f32;
261 pub fn lame_set_VBR(arg1: *mut lame_global_flags, arg2: vbr_mode) -> c_int;
262 pub fn lame_get_VBR(arg1: *const lame_global_flags) -> vbr_mode;
263 pub fn lame_set_VBR_q(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
264 pub fn lame_get_VBR_q(arg1: *const lame_global_flags) -> c_int;
265 pub fn lame_set_VBR_quality(arg1: *mut lame_global_flags, arg2: f32) -> c_int;
266 pub fn lame_get_VBR_quality(arg1: *const lame_global_flags) -> f32;
267 pub fn lame_set_VBR_mean_bitrate_kbps(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
268 pub fn lame_get_VBR_mean_bitrate_kbps(arg1: *const lame_global_flags) -> c_int;
269 pub fn lame_set_VBR_min_bitrate_kbps(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
270 pub fn lame_get_VBR_min_bitrate_kbps(arg1: *const lame_global_flags) -> c_int;
271 pub fn lame_set_VBR_max_bitrate_kbps(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
272 pub fn lame_get_VBR_max_bitrate_kbps(arg1: *const lame_global_flags) -> c_int;
273 pub fn lame_set_VBR_hard_min(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
274 pub fn lame_get_VBR_hard_min(arg1: *const lame_global_flags) -> c_int;
275 pub fn lame_set_lowpassfreq(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
276 pub fn lame_get_lowpassfreq(arg1: *const lame_global_flags) -> c_int;
277 pub fn lame_set_lowpasswidth(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
278 pub fn lame_get_lowpasswidth(arg1: *const lame_global_flags) -> c_int;
279 pub fn lame_set_highpassfreq(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
280 pub fn lame_get_highpassfreq(arg1: *const lame_global_flags) -> c_int;
281 pub fn lame_set_highpasswidth(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
282 pub fn lame_get_highpasswidth(arg1: *const lame_global_flags) -> c_int;
283 pub fn lame_set_ATHonly(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
284 pub fn lame_get_ATHonly(arg1: *const lame_global_flags) -> c_int;
285 pub fn lame_set_ATHshort(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
286 pub fn lame_get_ATHshort(arg1: *const lame_global_flags) -> c_int;
287 pub fn lame_set_noATH(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
288 pub fn lame_get_noATH(arg1: *const lame_global_flags) -> c_int;
289 pub fn lame_set_ATHtype(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
290 pub fn lame_get_ATHtype(arg1: *const lame_global_flags) -> c_int;
291 pub fn lame_set_ATHlower(arg1: *mut lame_global_flags, arg2: f32) -> c_int;
292 pub fn lame_get_ATHlower(arg1: *const lame_global_flags) -> f32;
293 pub fn lame_set_athaa_type(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
294 pub fn lame_get_athaa_type(arg1: *const lame_global_flags) -> c_int;
295 pub fn lame_set_athaa_sensitivity(arg1: *mut lame_global_flags, arg2: f32) -> c_int;
296 pub fn lame_get_athaa_sensitivity(arg1: *const lame_global_flags) -> f32;
297 pub fn lame_set_allow_diff_short(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
298 pub fn lame_get_allow_diff_short(arg1: *const lame_global_flags) -> c_int;
299 pub fn lame_set_useTemporal(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
300 pub fn lame_get_useTemporal(arg1: *const lame_global_flags) -> c_int;
301 pub fn lame_set_interChRatio(arg1: *mut lame_global_flags, arg2: f32) -> c_int;
302 pub fn lame_get_interChRatio(arg1: *const lame_global_flags) -> f32;
303 pub fn lame_set_no_short_blocks(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
304 pub fn lame_get_no_short_blocks(arg1: *const lame_global_flags) -> c_int;
305 pub fn lame_set_force_short_blocks(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
306 pub fn lame_get_force_short_blocks(arg1: *const lame_global_flags) -> c_int;
307 pub fn lame_set_emphasis(arg1: *mut lame_global_flags, arg2: c_int) -> c_int;
308 pub fn lame_get_emphasis(arg1: *const lame_global_flags) -> c_int;
309 pub fn lame_get_version(arg1: *const lame_global_flags) -> c_int;
310 pub fn lame_get_encoder_delay(arg1: *const lame_global_flags) -> c_int;
311 pub fn lame_get_encoder_padding(arg1: *const lame_global_flags) -> c_int;
312 pub fn lame_get_framesize(arg1: *const lame_global_flags) -> c_int;
313 pub fn lame_get_mf_samples_to_encode(gfp: *const lame_global_flags) -> c_int;
314 pub fn lame_get_size_mp3buffer(gfp: *const lame_global_flags) -> c_int;
315 pub fn lame_get_frameNum(arg1: *const lame_global_flags) -> c_int;
316 pub fn lame_get_totalframes(arg1: *const lame_global_flags) -> c_int;
317 pub fn lame_get_RadioGain(arg1: *const lame_global_flags) -> c_int;
318 pub fn lame_get_AudiophileGain(arg1: *const lame_global_flags) -> c_int;
319 pub fn lame_get_PeakSample(arg1: *const lame_global_flags) -> f32;
320 pub fn lame_get_noclipGainChange(arg1: *const lame_global_flags) -> c_int;
321 pub fn lame_get_noclipScale(arg1: *const lame_global_flags) -> f32;
322 pub fn lame_init_params(arg1: *mut lame_global_flags) -> c_int;
323 pub fn get_lame_version() -> *const c_char;
324 pub fn get_lame_short_version() -> *const c_char;
325 pub fn get_lame_very_short_version() -> *const c_char;
326 pub fn get_psy_version() -> *const c_char;
327 pub fn get_lame_url() -> *const c_char;
328 pub fn get_lame_os_bitness() -> *const c_char;
329 pub fn get_lame_version_numerical(arg1: *mut lame_version_t);
330 pub fn lame_print_config(gfp: *const lame_global_flags);
331 pub fn lame_print_internals(gfp: *const lame_global_flags);
332 pub fn lame_encode_buffer(gfp: *mut lame_global_flags,
333 buffer_l: *mut c_short,
334 buffer_r: *mut c_short,
335 nsamples: c_int,
336 mp3buf: *mut c_uchar,
337 mp3buf_size: c_int)
338 -> c_int;
339 pub fn lame_encode_buffer_interleaved(gfp: *mut lame_global_flags,
340 pcm: *mut c_short,
341 num_samples: c_int,
342 mp3buf: *mut c_uchar,
343 mp3buf_size: c_int)
344 -> c_int;
345 pub fn lame_encode_buffer_float(gfp: *mut lame_global_flags,
346 pcm_l: *mut f32,
347 pcm_r: *mut f32,
348 nsamples: c_int,
349 mp3buf: *mut c_uchar,
350 mp3buf_size: c_int)
351 -> c_int;
352 pub fn lame_encode_buffer_ieee_float(gfp: lame_t,
353 pcm_l: *mut f32,
354 pcm_r: *mut f32,
355 nsamples: c_int,
356 mp3buf: *mut c_uchar,
357 mp3buf_size: c_int)
358 -> c_int;
359 pub fn lame_encode_buffer_interleaved_ieee_float(gfp: lame_t,
360 pcm: *mut f32,
361 nsamples: c_int,
362 mp3buf: *mut c_uchar,
363 mp3buf_size: c_int)
364 -> c_int;
365 pub fn lame_encode_buffer_ieee_double(gfp: lame_t,
366 pcm_l: *mut f64,
367 pcm_r: *mut f64,
368 nsamples: c_int,
369 mp3buf: *mut c_uchar,
370 mp3buf_size: c_int)
371 -> c_int;
372 pub fn lame_encode_buffer_interleaved_ieee_double(gfp: lame_t,
373 pcm: *mut f64,
374 nsamples: c_int,
375 mp3buf: *mut c_uchar,
376 mp3buf_size: c_int)
377 -> c_int;
378 pub fn lame_encode_buffer_long(gfp: *mut lame_global_flags,
379 buffer_l: *mut c_long,
380 buffer_r: *mut c_long,
381 nsamples: c_int,
382 mp3buf: *mut c_uchar,
383 mp3buf_size: c_int)
384 -> c_int;
385 pub fn lame_encode_buffer_long2(gfp: *mut lame_global_flags,
386 buffer_l: *mut c_long,
387 buffer_r: *mut c_long,
388 nsamples: c_int,
389 mp3buf: *mut c_uchar,
390 mp3buf_size: c_int)
391 -> c_int;
392 pub fn lame_encode_buffer_int(gfp: *mut lame_global_flags,
393 buffer_l: *mut c_int,
394 buffer_r: *mut c_int,
395 nsamples: c_int,
396 mp3buf: *mut c_uchar,
397 mp3buf_size: c_int)
398 -> c_int;
399 pub fn lame_encode_flush(gfp: *mut lame_global_flags,
400 mp3buf: *mut c_uchar,
401 size: c_int)
402 -> c_int;
403 pub fn lame_encode_flush_nogap(gfp: *mut lame_global_flags,
404 mp3buf: *mut c_uchar,
405 size: c_int)
406 -> c_int;
407 pub fn lame_init_bitstream(gfp: *mut lame_global_flags) -> c_int;
408 pub fn lame_bitrate_hist(gfp: *const lame_global_flags, bitrate_count: *mut c_int);
409 pub fn lame_bitrate_kbps(gfp: *const lame_global_flags, bitrate_kbps: *mut c_int);
410 pub fn lame_stereo_mode_hist(gfp: *const lame_global_flags, stereo_mode_count: *mut c_int);
411 pub fn lame_bitrate_stereo_mode_hist(gfp: *const lame_global_flags,
412 bitrate_stmode_count: *mut [c_int; 4usize]);
413 pub fn lame_block_type_hist(gfp: *const lame_global_flags, btype_count: *mut c_int);
414 pub fn lame_bitrate_block_type_hist(gfp: *const lame_global_flags,
415 bitrate_btype_count: *mut [c_int; 6usize]);
416 pub fn lame_mp3_tags_fid(arg1: *mut lame_global_flags, fid: *mut FILE);
417 pub fn lame_get_lametag_frame(arg1: *const lame_global_flags,
418 buffer: *mut c_uchar,
419 size: size_t)
420 -> size_t;
421 pub fn lame_close(arg1: *mut lame_global_flags) -> c_int;
422 pub fn hip_decode_init() -> hip_t;
423 pub fn hip_decode_exit(gfp: hip_t) -> c_int;
424 pub fn hip_decode(gfp: hip_t,
429 mp3buf: *mut c_uchar,
430 len: size_t,
431 pcm_l: *mut c_short,
432 pcm_r: *mut c_short)
433 -> c_int;
434 pub fn hip_decode_headers(gfp: hip_t,
435 mp3buf: *mut c_uchar,
436 len: size_t,
437 pcm_l: *mut c_short,
438 pcm_r: *mut c_short,
439 mp3data: *mut mp3data_struct)
440 -> c_int;
441 pub fn hip_decode1(gfp: hip_t,
442 mp3buf: *mut c_uchar,
443 len: size_t,
444 pcm_l: *mut c_short,
445 pcm_r: *mut c_short)
446 -> c_int;
447 pub fn hip_decode1_headers(gfp: hip_t,
448 mp3buf: *mut c_uchar,
449 len: size_t,
450 pcm_l: *mut c_short,
451 pcm_r: *mut c_short,
452 mp3data: *mut mp3data_struct)
453 -> c_int;
454 pub fn hip_decode1_headersB(gfp: hip_t,
455 mp3buf: *mut c_uchar,
456 len: size_t,
457 pcm_l: *mut c_short,
458 pcm_r: *mut c_short,
459 mp3data: *mut mp3data_struct,
460 enc_delay: *mut c_int,
461 enc_padding: *mut c_int)
462 -> c_int;
463 pub fn id3tag_genre_list(handler:
464 ::std::option::Option<unsafe extern "C" fn(arg1:
465 c_int,
466 arg2:
467 *const c_char,
468 arg3:
469 *mut c_void)>,
470 cookie: *mut c_void);
471 pub fn id3tag_init(gfp: lame_t);
472 pub fn id3tag_add_v2(gfp: lame_t);
473 pub fn id3tag_v1_only(gfp: lame_t);
474 pub fn id3tag_v2_only(gfp: lame_t);
475 pub fn id3tag_space_v1(gfp: lame_t);
476 pub fn id3tag_pad_v2(gfp: lame_t);
477 pub fn id3tag_set_pad(gfp: lame_t, n: size_t);
478 pub fn id3tag_set_title(gfp: lame_t, title: *const c_char);
479 pub fn id3tag_set_artist(gfp: lame_t, artist: *const c_char);
480 pub fn id3tag_set_album(gfp: lame_t, album: *const c_char);
481 pub fn id3tag_set_year(gfp: lame_t, year: *const c_char);
482 pub fn id3tag_set_comment(gfp: lame_t, comment: *const c_char);
483 pub fn id3tag_set_track(gfp: lame_t, track: *const c_char) -> c_int;
484 pub fn id3tag_set_genre(gfp: lame_t, genre: *const c_char) -> c_int;
485 pub fn id3tag_set_fieldvalue(gfp: lame_t, fieldvalue: *const c_char) -> c_int;
486 pub fn id3tag_set_albumart(gfp: lame_t, image: *const c_char, size: size_t) -> c_int;
487 pub fn lame_get_id3v1_tag(gfp: lame_t, buffer: *mut c_uchar, size: size_t) -> size_t;
488 pub fn lame_get_id3v2_tag(gfp: lame_t, buffer: *mut c_uchar, size: size_t) -> size_t;
489 pub fn lame_set_write_id3tag_automatic(gfp: *mut lame_global_flags, arg1: c_int);
490 pub fn lame_get_write_id3tag_automatic(gfp: *const lame_global_flags) -> c_int;
491 pub fn id3tag_set_textinfo_latin1(gfp: lame_t,
492 id: *const c_char,
493 text: *const c_char)
494 -> c_int;
495 pub fn id3tag_set_comment_latin1(gfp: lame_t,
496 lang: *const c_char,
497 desc: *const c_char,
498 text: *const c_char)
499 -> c_int;
500 pub fn id3tag_set_fieldvalue_utf16(gfp: lame_t, fieldvalue: *const c_ushort) -> c_int;
501 pub fn id3tag_set_textinfo_utf16(gfp: lame_t,
502 id: *const c_char,
503 text: *const c_ushort)
504 -> c_int;
505 pub fn id3tag_set_comment_utf16(gfp: lame_t,
506 lang: *const c_char,
507 desc: *const c_ushort,
508 text: *const c_ushort)
509 -> c_int;
510 pub fn lame_get_bitrate(mpeg_version: c_int, table_index: c_int) -> c_int;
511 pub fn lame_get_samplerate(mpeg_version: c_int, table_index: c_int) -> c_int;
512}