forked from KolibriOS/kolibrios
1634ac97c2
git-svn-id: svn://kolibrios.org@165 a494cfbc-eb01-0410-851d-a64ba20cac60
77 lines
1.9 KiB
C
77 lines
1.9 KiB
C
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
#define MP3_ERROR_UNKNOWN 1
|
||
#define MP3_ERROR_INVALID_PARAMETER 2
|
||
#define MP3_ERROR_INVALID_SYNC 3
|
||
#define MP3_ERROR_INVALID_HEADER 4
|
||
#define MP3_ERROR_OUT_OF_BUFFER 5
|
||
|
||
typedef struct {
|
||
int version; //1:MPEG-1, 2:MPEG-2, 3:MPEG-2.5
|
||
int layer; //1:Layer1, 2:Layer2, 3:Layer3
|
||
int error_prot; //1:CRC on, 0:CRC off
|
||
int br_index;
|
||
int fr_index;
|
||
int padding;
|
||
int extension;
|
||
int mode;
|
||
int mode_ext;
|
||
int copyright;
|
||
int original;
|
||
int emphasis;
|
||
} MPEG_HEADER;
|
||
|
||
typedef struct {
|
||
int reduction;
|
||
int convert;
|
||
int freqLimit;
|
||
} MPEG_DECODE_OPTION;
|
||
|
||
typedef struct {
|
||
MPEG_HEADER header;
|
||
int channels; //出力チャネル
|
||
int bitsPerSample; //
|
||
int frequency; //サンプリングレート(Hz)
|
||
int bitRate; //ビットレート(bps)
|
||
|
||
int frames; //フレーム数(VBR only)
|
||
int skipSize; //(VBR only)
|
||
int dataSize; //データサイズ(VBR only)
|
||
|
||
int minInputSize; //1フレームの最小入力サイズ
|
||
int maxInputSize; //1フレームの最大入力サイズ
|
||
int outputSize; //1フレームの出力サイズ
|
||
} MPEG_DECODE_INFO;
|
||
|
||
typedef struct {
|
||
MPEG_HEADER header;
|
||
int bitRate; //ビットレート(bps)
|
||
|
||
void* inputBuf;
|
||
int inputSize;
|
||
void* outputBuf;
|
||
int outputSize;
|
||
} MPEG_DECODE_PARAM;
|
||
|
||
void mp3DecodeInit();
|
||
int mp3GetLastError();
|
||
int mp3SetDecodeOption(MPEG_DECODE_OPTION* option);
|
||
void mp3GetDecodeOption(MPEG_DECODE_OPTION* option);
|
||
int mp3SetEqualizer(int* value);
|
||
|
||
int mp3FindSync(void* buf, int size, int* sync);
|
||
int mp3GetDecodeInfo(void* mpeg, int size, MPEG_DECODE_INFO* info, int decFlag);
|
||
int mp3DecodeStart(void* buf, int size);
|
||
int mp3DecodeFrame(MPEG_DECODE_PARAM* param);
|
||
|
||
void mp3MuteStart(MPEG_DECODE_PARAM* param);
|
||
void mp3MuteEnd(MPEG_DECODE_PARAM* param);
|
||
|
||
double pow_test(double, double);
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|