diff options
Diffstat (limited to 'encoder.h')
-rw-r--r-- | encoder.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/encoder.h b/encoder.h new file mode 100644 index 0000000..e55dfb0 --- /dev/null +++ b/encoder.h @@ -0,0 +1,29 @@ +#ifndef _ENCODER_H_ +#define _ENCODER_H_ + +#include <glib.h> +#include <gio/gio.h> + +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; +}; + +extern struct encoder_plugin *encoder_plugniss; + +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); + +#endif |