From 63ce7ed7a6849e85d3a87f1b6a4eab43720d705e Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Tue, 17 Aug 2010 18:18:27 +0200 Subject: Added LAME encoder. --- encoders/encoder_lame.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 encoders/encoder_lame.c diff --git a/encoders/encoder_lame.c b/encoders/encoder_lame.c new file mode 100644 index 0000000..5c48913 --- /dev/null +++ b/encoders/encoder_lame.c @@ -0,0 +1,35 @@ +#include "encoder.h" + +#include + +static gboolean lame_encoder_init(gpointer *data) { + lame_global_flags *gfp; + + gfp = lame_init(); + int ret = lame_init_params(gfp); + *data = gfp; + + return (ret >= 0 ? TRUE : FALSE); +} + +static gssize lame_encoder_encode(gpointer data, const guchar *inbuf, gsize inbuf_size, + guchar *outbuf, gsize outbuf_size) { + lame_global_flags *gfp = data; + + int ret = lame_encode_buffer_interleaved(gfp, (short*)inbuf, inbuf_size / 4, + outbuf, outbuf_size); + + return ret; +} + +static void lame_encoder_close(gpointer data) { + lame_global_flags *gfp = data; + lame_close(gfp); +} + +const struct encoder_plugin encoder_lame_encoder = { + .name = "lame encoder", + .init = lame_encoder_init, + .encode = lame_encoder_encode, + .close = lame_encoder_close, +}; -- cgit v1.2.3