#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", .init = lame_encoder_init, .encode = lame_encoder_encode, .close = lame_encoder_close, };