#ifndef __G_MENCODER_H__
#define __G_MENCODER_H__

#include <glib-object.h>

G_BEGIN_DECLS typedef struct _GMencoder GMencoder;
typedef struct _GMencoderClass GMencoderClass;

struct _GMencoderClass {
    GObjectClass    parent_class;
};

struct _GMencoder {
    GObject         parent;
};

/*
 * TYPE MACROS 
 */
#define G_TYPE_MENCODER \
  (g_mencoder_get_type())
#define G_MENCODER(obj) \
  (G_TYPE_CHECK_INSTANCE_CAST((obj), G_TYPE_MENCODER, GMencoder))
#define G_MENCODER_CLASS(klass) \
  (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_MENCODER, GMencoderClass))
#define G_IS_MENCODER(obj) \
  (G_TYPE_CHECK_INSTANCE_TYPE((obj), G_TYPE_MENCODER))
#define G_IS_MENCODER_CLASS(klass) \
  (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_MENCODER))
#define G_MENCODER_GET_CLASS(obj) \
  (G_TYPE_INSTANCE_GET_CLASS ((obj), G_TYPE_MENCODER, GMencoderClass))


GType           g_mencoder_get_type(void);
GMencoder      *g_mencoder_new(void);

gboolean        g_mencoder_setup_stream(GMencoder * self,
					gboolean chunked,
					gboolean deinterlace,
                                        const gchar * mux_name,
                                        const gchar * video_encode,
                                        gchar ** video_encode_prop,
                                        gdouble video_fps,
                                        gdouble video_rate,
                                        guint video_width,
                                        guint video_height,
                                        const gchar * audio_encode,
                                        gchar ** audio_encode_prop,
                                        guint audio_rate,
                                        const gchar * output_uri);

gboolean        g_mencoder_append_uri(GMencoder * self, const gchar * uri);

void            g_mencoder_remove_uri(GMencoder * self, const gchar * uri);

void            g_mencoder_play_stream(GMencoder * self);
void            g_mencoder_pause_stream(GMencoder * self);
void            g_mencoder_close_stream(GMencoder * self);

G_END_DECLS
#endif