From 398114468e86df5cacf2ad3ff09e9822e074e4b4 Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Tue, 28 Dec 2010 15:14:45 +0100 Subject: Added LAME encoder. --- encoders/lame_encoder.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 encoders/lame_encoder.cpp (limited to 'encoders/lame_encoder.cpp') diff --git a/encoders/lame_encoder.cpp b/encoders/lame_encoder.cpp new file mode 100644 index 0000000..4cbfc9c --- /dev/null +++ b/encoders/lame_encoder.cpp @@ -0,0 +1,26 @@ +#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; +} -- cgit v1.2.3