#ifndef ENCODER_H #define ENCODER_H #include #include struct encoder_plugin { const gchar *name; gboolean (*init)(gpointer *data); gssize (*encode)(gpointer data, const guchar *inbuf, gsize inbuf_size, guchar *outbuf, gsize outbuf_size); void (*close)(gpointer data); }; struct encoder { const struct encoder_plugin *encoder; gpointer data; }; gboolean encoder_init(struct encoder *encoder); gssize encoder_encode(struct encoder *encoder, const guchar *inbuf, gsize inbuf_size, guchar *outbuf, gsize outbuf_size); void encoder_close(struct encoder *encoder); const struct encoder_plugin *encoder_get(const gchar *name); #endif