00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef _TWOLAME_H_
00025
#define _TWOLAME_H_
00026
00027
#ifndef TRUE
00028 #define TRUE (1)
00029
#endif
00030
00031
#ifndef FALSE
00032 #define FALSE (0)
00033
#endif
00034
00035
00037 typedef enum {
00038
TWOLAME_STEREO = 0,
00039
TWOLAME_JOINT_STEREO,
00040
TWOLAME_DUAL_CHANNEL,
00041
TWOLAME_MONO,
00042
TWOLAME_NOT_SET
00043 }
TWOLAME_MPEG_mode;
00044
00045
00050 typedef enum {
00051
TWOLAME_MPEG2 = 0,
00052
TWOLAME_MPEG1
00053 }
TWOLAME_MPEG_version;
00054
00055
00057 typedef enum {
00058
TWOLAME_PAD_NO = 0,
00059
TWOLAME_PAD_ALL
00060
00061 }
TWOLAME_Padding;
00062
00064 typedef enum {
00065
TWOLAME_EMPHASIS_N = 0,
00066
TWOLAME_EMPHASIS_5 = 1,
00067
00068
TWOLAME_EMPHASIS_C = 3,
00069 }
TWOLAME_Emphasis;
00070
00071
00073
struct twolame_options_struct;
00074
00076 typedef struct twolame_options_struct
twolame_options;
00077
00078
00079
00080
00081
00087
const char*
get_twolame_version(
void );
00088
00089
00099
twolame_options *
twolame_init(
void);
00100
00101
00113
int twolame_init_params(twolame_options *glopts);
00114
00115
00129
int twolame_encode_buffer(
00130 twolame_options *glopts,
00131
const short int leftpcm[],
00132
const short int rightpcm[],
00133
int num_samples,
00134
unsigned char *mp2buffer,
00135
int mp2buffer_size );
00136
00137
00150
int twolame_encode_buffer_interleaved(
00151 twolame_options *glopts,
00152
const short int pcm[],
00153
int num_samples,
00154
unsigned char *mp2buffer,
00155
int mp2buffer_size );
00156
00157
00169
int twolame_encode_flush(
00170 twolame_options *glopts,
00171
unsigned char *mp2buffer,
00172
int mp2buffer_size);
00173
00174
00184
void twolame_close(twolame_options **glopts);
00185
00186
00187
00201
int twolame_set_verbosity(twolame_options *glopts,
int verbosity);
00202
00203
00209
int twolame_get_verbosity(twolame_options *glopts);
00210
00211
00223
int twolame_get_bitrate_index(TWOLAME_MPEG_version version,
int bitrate);
00224
00225
00236
int twolame_get_samplerate_index(
long sampleRate, TWOLAME_MPEG_version *version);
00237
00238
00249
int twolame_set_mode(twolame_options *glopts, TWOLAME_MPEG_mode mode);
00250
00251
00257
TWOLAME_MPEG_mode twolame_get_mode(twolame_options *glopts);
00258
00259
00265
const char *
twolame_get_mode_name(twolame_options *glopts);
00266
00267
00277
int twolame_set_version(twolame_options *glopts, TWOLAME_MPEG_version version);
00278
00279
00285
TWOLAME_MPEG_version twolame_get_version(twolame_options *glopts);
00286
00287
00293
const char *
twolame_get_version_name( twolame_options *glopts );
00294
00295
00305
int twolame_set_psymodel(twolame_options *glopts,
int psymodel);
00306
00307
00313
int twolame_get_psymodel(twolame_options *glopts);
00314
00315
00329
int twolame_set_num_channels(twolame_options* glopts,
int num_channels);
00330
00331
00337
int twolame_get_num_channels(twolame_options* glopts);
00338
00339
00351
int twolame_set_scale(twolame_options* glopts,
float scale);
00352
00353
00359
float twolame_get_scale(twolame_options* glopts);
00360
00372
int twolame_set_scale_left(twolame_options* glopts,
float scale);
00373
00374
00380
float twolame_get_scale_left(twolame_options* glopts);
00381
00382
00394
int twolame_set_scale_right(twolame_options* glopts,
float scale);
00395
00396
00402
float twolame_get_scale_right(twolame_options* glopts);
00403
00404
00414
int twolame_set_in_samplerate(twolame_options *glopts,
int samplerate);
00415
00416
00422
int twolame_get_in_samplerate(twolame_options *glopts);
00423
00424
00434
int twolame_set_out_samplerate(twolame_options *glopts,
int samplerate);
00435
00436
00442
int twolame_get_out_samplerate(twolame_options *glopts);
00443
00444
00454
int twolame_set_bitrate(twolame_options *glopts,
int bitrate);
00455
00456
00462
int twolame_get_bitrate(twolame_options *glopts);
00463
00464
00469
int twolame_set_brate(twolame_options *glopts,
int bitrate);
00470
00471
00476
int twolame_get_brate(twolame_options *glopts);
00477
00478
00490
int twolame_set_padding(twolame_options *glopts, TWOLAME_Padding padding);
00491
00497
TWOLAME_Padding twolame_get_padding(twolame_options *glopts);
00498
00499
00509
int twolame_set_energy_levels(twolame_options *glopts,
int energylevels );
00510
00511
00517
int twolame_get_energy_levels(twolame_options *glopts);
00518
00519
00529
int twolame_set_num_ancillary_bits(twolame_options *glopts,
int num);
00530
00531
00537
int twolame_get_num_ancillary_bits(twolame_options *glopts);
00538
00539
00540
00550
int twolame_set_emphasis(twolame_options *glopts, TWOLAME_Emphasis emphasis);
00551
00552
00558
TWOLAME_Emphasis twolame_get_emphasis(twolame_options *glopts);
00559
00560
00570
int twolame_set_error_protection(twolame_options *glopts,
int err_protection);
00571
00572
00578
int twolame_get_error_protection(twolame_options *glopts);
00579
00580
00592
int twolame_set_copyright(twolame_options *glopts,
int copyright);
00593
00594
00600
int twolame_get_copyright(twolame_options *glopts);
00601
00602
00612
int twolame_set_original(twolame_options *glopts,
int original);
00613
00614
00620
int twolame_get_original(twolame_options *glopts);
00621
00622
00632
int twolame_set_VBR(twolame_options *glopts,
int vbr);
00633
00634
00640
int twolame_get_VBR(twolame_options *glopts);
00641
00642
00655
int twolame_set_VBR_q(twolame_options *glopts,
float level);
00656
00657
00663
float twolame_get_VBR_q(twolame_options *glopts);
00664
00665
00675
int twolame_set_ATH_level(twolame_options *glopts,
float level);
00676
00677
00683
float twolame_get_ATH_level(twolame_options *glopts);
00684
00685
00695
int twolame_set_VBR_max_bitrate_kbps(twolame_options *glopts,
int bitrate);
00696
00702
int twolame_get_VBR_max_bitrate_kbps(twolame_options *glopts);
00703
00704
00714
int twolame_set_quick_mode(twolame_options *glopts,
int quickmode);
00715
00721
int twolame_get_quick_mode(twolame_options *glopts);
00722
00723
00733
int twolame_set_quick_count(twolame_options *glopts,
int quickcount );
00734
00740
int twolame_get_quick_count(twolame_options *glopts);
00741
00742
00752
int twolame_set_DAB(twolame_options *glopts,
int dab);
00753
00759
int twolame_get_DAB(twolame_options *glopts);
00760
00761
00771
int twolame_set_DAB_xpad_length(twolame_options *glopts,
int length);
00772
00773
00779
int twolame_get_DAB_xpad_length(twolame_options *glopts);
00780
00781
00791
int twolame_set_DAB_crc_length(twolame_options *glopts,
int length);
00792
00793
00799
int twolame_get_DAB_crc_length(twolame_options *glopts);
00800
00801
00802
#endif
00803
00804