#include "lame_encoder.h" #include EncoderLame::EncoderLame() { gfp = lame_init(); int error = lame_init_params(gfp); if(error < 0) { throw std::runtime_error("failed to initialize LAME"); } } EncoderLame::~EncoderLame() { lame_close(gfp); } size_t EncoderLame::encode(uint8_t *input, size_t input_size, uint8_t *output, size_t output_size) { size_t size = lame_encode_buffer_interleaved(gfp, (short*)input, input_size / 4, output, output_size); return size; } size_t EncoderLame::flush(uint8_t *output, size_t output_size) { size_t size = lame_encode_flush(gfp, output, output_size); return size; }