diff options
Diffstat (limited to 'Src/Plugins/Encoder/enc_lame/MP3Coder.h')
-rw-r--r-- | Src/Plugins/Encoder/enc_lame/MP3Coder.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/Src/Plugins/Encoder/enc_lame/MP3Coder.h b/Src/Plugins/Encoder/enc_lame/MP3Coder.h new file mode 100644 index 00000000..9a16b603 --- /dev/null +++ b/Src/Plugins/Encoder/enc_lame/MP3Coder.h @@ -0,0 +1,62 @@ +#ifndef NULLSOFT_MP3_CODER_H +#define NULLSOFT_MP3_CODER_H + +#include <windows.h> +#include "../nsv/enc_if.h" +#include "BladeMP3EncDLL.h" +#ifndef _BLADEDLL +extern BEINITSTREAM beInitStream; +extern BECLOSESTREAM beCloseStream; +extern BEENCODECHUNK beEncodeChunk; +extern BEDEINITSTREAM beDeinitStream; +extern BEWRITEVBRHEADER beWriteVBRHeader; +extern BEVERSION beVersion; +extern BEENCODECHUNKFLOATS16NI beEncodeChunkFloatS16NI; +#endif // !_BLADEDLL + + + +typedef struct +{ + int bitrate; + int vbr_max_bitrate; + int abr_bitrate; + int stereo_mode; //0=stereo,1=jstereo,2=mchannel,3=mono + int quality; //0=normal,1=low,2=high,3=voice,4=r3mix,5=vh + + int vbr; // 0=high-9=low + int vbr_method; // -1=none, 0=default, 1=old, 2=new, 3=mtrh, 4=abr + +} +configtype; +class AudioCoderMP3 : public AudioCoder +{ +public: + AudioCoderMP3(int nch, int srate, int bps, configtype *cfg); + int Encode(int framepos, void *in, int in_avail, int *in_used, void *out, int out_avail); + virtual ~AudioCoderMP3(); + int GetLastError(); + void setVbrFilename(char *filename); + void PrepareToFinish(); +protected: + int m_err; + DWORD obuf_size; + DWORD ibuf_size, ibuf_size_spls; + HBE_STREAM hbeStream; + BE_CONFIG beConfig; + int bytesPerSample; + int done; + char *bs; + int bs_size; + int is_downmix; + int mono_input; +}; + +class AudioCoderMP3_24 : public AudioCoderMP3 +{ +public: + AudioCoderMP3_24(int nch, int srate, int bps, configtype *cfg) : AudioCoderMP3(nch, srate, bps, cfg) {} +int Encode(int framepos, void *in, int in_avail, int *in_used, void *out, int out_avail); +}; + +#endif
\ No newline at end of file |