add GStreamer bindings
authorJuerg Billeter <j@bitron.ch>
Tue, 17 Jul 2007 11:07:26 +0000 (11:07 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Tue, 17 Jul 2007 11:07:26 +0000 (11:07 +0000)
2007-07-17  Juerg Billeter  <j@bitron.ch>

* vapigen/valagidlparser.vala, vapi/glib-2.0.vala,
  vapi/gstreamer-0.10.vala, vapi/packages/gstreamer-0.10/: add GStreamer
  bindings

svn path=/trunk/; revision=358

ChangeLog
vapi/glib-2.0.vala
vapi/gstreamer-0.10.vala [new file with mode: 0644]
vapi/packages/gstreamer-0.10/gstreamer-0.10-custom.vala [new file with mode: 0644]
vapi/packages/gstreamer-0.10/gstreamer-0.10.excludes [new file with mode: 0644]
vapi/packages/gstreamer-0.10/gstreamer-0.10.files [new file with mode: 0644]
vapi/packages/gstreamer-0.10/gstreamer-0.10.gidl [new file with mode: 0644]
vapi/packages/gstreamer-0.10/gstreamer-0.10.metadata [new file with mode: 0644]
vapi/packages/gstreamer-0.10/gstreamer-0.10.namespace [new file with mode: 0644]
vapi/packages/gstreamer-0.10/gstreamer-0.10.patch [new file with mode: 0644]
vapigen/valagidlparser.vala

index 646fdb4..08e4f95 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-07-17  Jürg Billeter  <j@bitron.ch>
+
+       * vapigen/valagidlparser.vala, vapi/glib-2.0.vala,
+         vapi/gstreamer-0.10.vala, vapi/packages/gstreamer-0.10/: add GStreamer
+         bindings
+
 2007-07-13  Jürg Billeter  <j@bitron.ch>
 
        * configure.ac: Post-release version bump
index e6534aa..9a97618 100644 (file)
@@ -558,7 +558,11 @@ namespace GLib {
                public TypeClass class_ref ();
                
        }
-       
+
+       [ReferenceType]
+       public struct TypeInstance {
+       }
+
        [ReferenceType]
        public struct TypeClass {
                [CCode (cname = "G_TYPE_FROM_CLASS")]
@@ -577,7 +581,19 @@ namespace GLib {
        [ReferenceType ()]
        public struct ParamSpec {
        }
-       
+
+       [CCode (cprefix = "G_PARAM_")]
+       public enum ParamFlags {
+               READABLE,
+               WRITABLE,
+               CONSTRUCT,
+               CONSTRUCT_ONLY,
+               LAX_VALIDATION,
+               STATIC_NAME,
+               STATIC_NICK,
+               STATIC_BLURB
+       }
+
        [ReferenceType ()]
        public struct ObjectClass {
                public ParamSpec[] list_properties (out int n_properties);
@@ -593,6 +609,7 @@ namespace GLib {
                public Object @ref ();
                public void unref ();
                public Object ref_sink ();
+               public void set (...);
        }
        
        public class InitiallyUnowned : Object {
@@ -1373,7 +1390,7 @@ namespace GLib {
 
        [CCode (cprefix = "g_file_", cheader_filename = "glib/gstdio.h")]
        public struct FileUtils {
-               public static bool get_contents (string! filename, out string contents, out long length = null) throws FileError;
+               public static bool get_contents (string! filename, out string contents, out ulong length = null) throws FileError;
                public static bool set_contents (string! filename, string contents, long length = -1) throws FileError;
                public static bool test (string filename, FileTest test);
                public static int open_tmp (string tmpl, out string name_used) throws FileError;
diff --git a/vapi/gstreamer-0.10.vala b/vapi/gstreamer-0.10.vala
new file mode 100644 (file)
index 0000000..62771b5
--- /dev/null
@@ -0,0 +1,1755 @@
+[CCode (cprefix = "Gst", lower_case_cprefix = "gst_", cheader_filename = "gst/gst.h")]
+namespace Gst {
+       [CCode (cprefix = "GST_ACTIVATE_")]
+       public enum ActivateMode {
+               NONE,
+               PUSH,
+               PULL,
+       }
+       [CCode (cprefix = "GST_ALLOC_TRACE_")]
+       public enum AllocTraceFlags {
+               LIVE,
+               MEM_LIVE,
+       }
+       [CCode (cprefix = "GST_ASSOCIATION_FLAG_")]
+       public enum AssocFlags {
+               NONE,
+               KEY_UNIT,
+               DELTA_UNIT,
+               LAST,
+       }
+       [CCode (cprefix = "GST_BIN_FLAG_")]
+       public enum BinFlags {
+               LAST,
+       }
+       [CCode (cprefix = "GST_BUFFER_COPY_")]
+       public enum BufferCopyFlags {
+               FLAGS,
+               TIMESTAMPS,
+               CAPS,
+       }
+       [CCode (cprefix = "GST_BUFFER_FLAG_")]
+       public enum BufferFlag {
+               READONLY,
+               PREROLL,
+               DISCONT,
+               IN_CAPS,
+               GAP,
+               DELTA_UNIT,
+               LAST,
+       }
+       [CCode (cprefix = "GST_BUS_")]
+       public enum BusFlags {
+               FLUSHING,
+               FLAG_LAST,
+       }
+       [CCode (cprefix = "GST_BUS_")]
+       public enum BusSyncReply {
+               DROP,
+               PASS,
+               ASYNC,
+       }
+       [CCode (cprefix = "GST_CAPS_FLAGS_")]
+       public enum CapsFlags {
+               ANY,
+       }
+       [CCode (cprefix = "GST_CLOCK_ENTRY_")]
+       public enum ClockEntryType {
+               SINGLE,
+               PERIODIC,
+       }
+       [CCode (cprefix = "GST_CLOCK_FLAG_")]
+       public enum ClockFlags {
+               CAN_DO_SINGLE_SYNC,
+               CAN_DO_SINGLE_ASYNC,
+               CAN_DO_PERIODIC_SYNC,
+               CAN_DO_PERIODIC_ASYNC,
+               CAN_SET_RESOLUTION,
+               CAN_SET_MASTER,
+               LAST,
+       }
+       [CCode (cprefix = "GST_CLOCK_")]
+       public enum ClockReturn {
+               OK,
+               EARLY,
+               UNSCHEDULED,
+               BUSY,
+               BADTIME,
+               ERROR,
+               UNSUPPORTED,
+       }
+       [CCode (cprefix = "GST_CORE_ERROR_")]
+       public enum CoreError {
+               FAILED,
+               TOO_LAZY,
+               NOT_IMPLEMENTED,
+               STATE_CHANGE,
+               PAD,
+               THREAD,
+               NEGOTIATION,
+               EVENT,
+               SEEK,
+               CAPS,
+               TAG,
+               MISSING_PLUGIN,
+               CLOCK,
+               DISABLED,
+               NUM_ERRORS,
+       }
+       [CCode (cprefix = "GST_DEBUG_")]
+       public enum DebugColorFlags {
+               FG_BLACK,
+               FG_RED,
+               FG_GREEN,
+               FG_YELLOW,
+               FG_BLUE,
+               FG_MAGENTA,
+               FG_CYAN,
+               FG_WHITE,
+               BG_BLACK,
+               BG_RED,
+               BG_GREEN,
+               BG_YELLOW,
+               BG_BLUE,
+               BG_MAGENTA,
+               BG_CYAN,
+               BG_WHITE,
+               BOLD,
+               UNDERLINE,
+       }
+       [CCode (cprefix = "GST_LEVEL_")]
+       public enum DebugLevel {
+               NONE,
+               ERROR,
+               WARNING,
+               INFO,
+               DEBUG,
+               LOG,
+               COUNT,
+       }
+       [CCode (cprefix = "GST_ELEMENT_")]
+       public enum ElementFlags {
+               LOCKED_STATE,
+               IS_SINK,
+               UNPARENTING,
+               FLAG_LAST,
+       }
+       [CCode (cprefix = "GST_EVENT_")]
+       public enum EventType {
+               UNKNOWN,
+               FLUSH_START,
+               FLUSH_STOP,
+               EOS,
+               NEWSEGMENT,
+               TAG,
+               BUFFERSIZE,
+               QOS,
+               SEEK,
+               NAVIGATION,
+               LATENCY,
+               CUSTOM_UPSTREAM,
+               CUSTOM_DOWNSTREAM,
+               CUSTOM_DOWNSTREAM_OOB,
+               CUSTOM_BOTH,
+               CUSTOM_BOTH_OOB,
+       }
+       [CCode (cprefix = "GST_EVENT_TYPE_")]
+       public enum EventTypeFlags {
+               UPSTREAM,
+               DOWNSTREAM,
+               SERIALIZED,
+       }
+       [CCode (cprefix = "GST_FLOW_")]
+       public enum FlowReturn {
+               CUSTOM_SUCCESS,
+               RESEND,
+               OK,
+               NOT_LINKED,
+               WRONG_STATE,
+               UNEXPECTED,
+               NOT_NEGOTIATED,
+               ERROR,
+               NOT_SUPPORTED,
+               CUSTOM_ERROR,
+       }
+       [CCode (cprefix = "GST_FORMAT_")]
+       public enum Format {
+               UNDEFINED,
+               DEFAULT,
+               BYTES,
+               TIME,
+               BUFFERS,
+               PERCENT,
+       }
+       [CCode (cprefix = "GST_INDEX_")]
+       public enum IndexCertainty {
+               UNKNOWN,
+               CERTAIN,
+               FUZZY,
+       }
+       [CCode (cprefix = "GST_INDEX_ENTRY_")]
+       public enum IndexEntryType {
+               ID,
+               ASSOCIATION,
+               OBJECT,
+               FORMAT,
+       }
+       [CCode (cprefix = "GST_INDEX_")]
+       public enum IndexFlags {
+               WRITABLE,
+               READABLE,
+               FLAG_LAST,
+       }
+       [CCode (cprefix = "GST_INDEX_LOOKUP_")]
+       public enum IndexLookupMethod {
+               EXACT,
+               BEFORE,
+               AFTER,
+       }
+       [CCode (cprefix = "GST_INDEX_RESOLVER_")]
+       public enum IndexResolverMethod {
+               CUSTOM,
+               GTYPE,
+               PATH,
+       }
+       [CCode (cprefix = "GST_ITERATOR_ITEM_")]
+       public enum IteratorItem {
+               SKIP,
+               PASS,
+               END,
+       }
+       [CCode (cprefix = "GST_ITERATOR_")]
+       public enum IteratorResult {
+               DONE,
+               OK,
+               RESYNC,
+               ERROR,
+       }
+       [CCode (cprefix = "GST_LIBRARY_ERROR_")]
+       public enum LibraryError {
+               FAILED,
+               TOO_LAZY,
+               INIT,
+               SHUTDOWN,
+               SETTINGS,
+               ENCODE,
+               NUM_ERRORS,
+       }
+       [CCode (cprefix = "GST_MESSAGE_")]
+       public enum MessageType {
+               UNKNOWN,
+               EOS,
+               ERROR,
+               WARNING,
+               INFO,
+               TAG,
+               BUFFERING,
+               STATE_CHANGED,
+               STATE_DIRTY,
+               STEP_DONE,
+               CLOCK_PROVIDE,
+               CLOCK_LOST,
+               NEW_CLOCK,
+               STRUCTURE_CHANGE,
+               STREAM_STATUS,
+               APPLICATION,
+               ELEMENT,
+               SEGMENT_START,
+               SEGMENT_DONE,
+               DURATION,
+               LATENCY,
+               ASYNC_START,
+               ASYNC_DONE,
+               ANY,
+       }
+       [CCode (cprefix = "GST_MINI_OBJECT_FLAG_")]
+       public enum MiniObjectFlags {
+               READONLY,
+               LAST,
+       }
+       [CCode (cprefix = "GST_OBJECT_")]
+       public enum ObjectFlags {
+               DISPOSING,
+               FLOATING,
+               FLAG_LAST,
+       }
+       [CCode (cprefix = "GST_PAD_")]
+       public enum PadDirection {
+               UNKNOWN,
+               SRC,
+               SINK,
+       }
+       [CCode (cprefix = "GST_PAD_")]
+       public enum PadFlags {
+               BLOCKED,
+               FLUSHING,
+               IN_GETCAPS,
+               IN_SETCAPS,
+               BLOCKING,
+               FLAG_LAST,
+       }
+       [CCode (cprefix = "GST_PAD_LINK_")]
+       public enum PadLinkReturn {
+               OK,
+               WRONG_HIERARCHY,
+               WAS_LINKED,
+               WRONG_DIRECTION,
+               NOFORMAT,
+               NOSCHED,
+               REFUSED,
+       }
+       [CCode (cprefix = "GST_PAD_")]
+       public enum PadPresence {
+               ALWAYS,
+               SOMETIMES,
+               REQUEST,
+       }
+       [CCode (cprefix = "GST_PAD_TEMPLATE_")]
+       public enum PadTemplateFlags {
+               FIXED,
+               FLAG_LAST,
+       }
+       [CCode (cprefix = "GST_PARSE_ERROR_")]
+       public enum ParseError {
+               SYNTAX,
+               NO_SUCH_ELEMENT,
+               NO_SUCH_PROPERTY,
+               LINK,
+               COULD_NOT_SET_PROPERTY,
+               EMPTY_BIN,
+               EMPTY,
+       }
+       [CCode (cprefix = "GST_PIPELINE_FLAG_")]
+       public enum PipelineFlags {
+               FIXED_CLOCK,
+               LAST,
+       }
+       [CCode (cprefix = "GST_PLUGIN_ERROR_")]
+       public enum PluginError {
+               MODULE,
+               DEPENDENCIES,
+               NAME_MISMATCH,
+       }
+       [CCode (cprefix = "GST_PLUGIN_FLAG_")]
+       public enum PluginFlags {
+               CACHED,
+       }
+       [CCode (cprefix = "GST_QUARK_")]
+       public enum QuarkId {
+               FORMAT,
+               CURRENT,
+               DURATION,
+               RATE,
+               SEEKABLE,
+               SEGMENT_START,
+               SEGMENT_END,
+               SRC_FORMAT,
+               SRC_VALUE,
+               DEST_FORMAT,
+               DEST_VALUE,
+               START_FORMAT,
+               START_VALUE,
+               STOP_FORMAT,
+               STOP_VALUE,
+               MAX,
+       }
+       [CCode (cprefix = "GST_QUERY_")]
+       public enum QueryType {
+               NONE,
+               POSITION,
+               DURATION,
+               LATENCY,
+               JITTER,
+               RATE,
+               SEEKING,
+               SEGMENT,
+               CONVERT,
+               FORMATS,
+       }
+       [CCode (cprefix = "GST_RANK_")]
+       public enum Rank {
+               NONE,
+               MARGINAL,
+               SECONDARY,
+               PRIMARY,
+       }
+       [CCode (cprefix = "GST_RESOURCE_ERROR_")]
+       public enum ResourceError {
+               FAILED,
+               TOO_LAZY,
+               NOT_FOUND,
+               BUSY,
+               OPEN_READ,
+               OPEN_WRITE,
+               OPEN_READ_WRITE,
+               CLOSE,
+               READ,
+               WRITE,
+               SEEK,
+               SYNC,
+               SETTINGS,
+               NO_SPACE_LEFT,
+               NUM_ERRORS,
+       }
+       [CCode (cprefix = "GST_SEEK_FLAG_")]
+       public enum SeekFlags {
+               NONE,
+               FLUSH,
+               ACCURATE,
+               KEY_UNIT,
+               SEGMENT,
+       }
+       [CCode (cprefix = "GST_SEEK_TYPE_")]
+       public enum SeekType {
+               NONE,
+               CUR,
+               SET,
+               END,
+       }
+       [CCode (cprefix = "GST_STATE_")]
+       public enum State {
+               VOID_PENDING,
+               NULL,
+               READY,
+               PAUSED,
+               PLAYING,
+       }
+       [CCode (cprefix = "GST_STATE_CHANGE_")]
+       public enum StateChange {
+               NULL_TO_READY,
+               READY_TO_PAUSED,
+               PAUSED_TO_PLAYING,
+               PLAYING_TO_PAUSED,
+               PAUSED_TO_READY,
+               READY_TO_NULL,
+       }
+       [CCode (cprefix = "GST_STATE_CHANGE_")]
+       public enum StateChangeReturn {
+               FAILURE,
+               SUCCESS,
+               ASYNC,
+               NO_PREROLL,
+       }
+       [CCode (cprefix = "GST_STREAM_ERROR_")]
+       public enum StreamError {
+               FAILED,
+               TOO_LAZY,
+               NOT_IMPLEMENTED,
+               TYPE_NOT_FOUND,
+               WRONG_TYPE,
+               CODEC_NOT_FOUND,
+               DECODE,
+               ENCODE,
+               DEMUX,
+               MUX,
+               FORMAT,
+               NUM_ERRORS,
+       }
+       [CCode (cprefix = "GST_TAG_FLAG_")]
+       public enum TagFlag {
+               UNDEFINED,
+               META,
+               ENCODED,
+               DECODED,
+               COUNT,
+       }
+       [CCode (cprefix = "GST_TAG_MERGE_")]
+       public enum TagMergeMode {
+               UNDEFINED,
+               REPLACE_ALL,
+               REPLACE,
+               APPEND,
+               PREPEND,
+               KEEP,
+               KEEP_ALL,
+               COUNT,
+       }
+       [CCode (cprefix = "GST_TASK_")]
+       public enum TaskState {
+               STARTED,
+               STOPPED,
+               PAUSED,
+       }
+       [CCode (cprefix = "GST_TYPE_FIND_")]
+       public enum TypeFindProbability {
+               MINIMUM,
+               POSSIBLE,
+               LIKELY,
+               NEARLY_CERTAIN,
+               MAXIMUM,
+       }
+       [CCode (cprefix = "GST_URI_")]
+       public enum URIType {
+               UNKNOWN,
+               SINK,
+               SRC,
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class Bin : Gst.Element, Gst.ChildProxy {
+               public int numchildren;
+               public weak GLib.List children;
+               public uint children_cookie;
+               public weak Gst.Bus child_bus;
+               public weak GLib.List messages;
+               public bool polling;
+               public bool state_dirty;
+               public bool clock_dirty;
+               public weak Gst.Clock provided_clock;
+               public weak Gst.Element clock_provider;
+               public bool add (Gst.Element element);
+               public void add_many (Gst.Element element_1);
+               public weak Gst.Pad find_unconnected_pad (Gst.PadDirection direction);
+               public weak Gst.Element get_by_interface (GLib.Type iface);
+               public weak Gst.Element get_by_name (string name);
+               public weak Gst.Element get_by_name_recurse_up (string name);
+               public static GLib.Type get_type ();
+               public weak Gst.Iterator iterate_all_by_interface (GLib.Type iface);
+               public weak Gst.Iterator iterate_elements ();
+               public weak Gst.Iterator iterate_recurse ();
+               public weak Gst.Iterator iterate_sinks ();
+               public weak Gst.Iterator iterate_sorted ();
+               public weak Gst.Iterator iterate_sources ();
+               public Bin (string name);
+               public bool remove (Gst.Element element);
+               public void remove_many (Gst.Element element_1);
+               [NoAccessorMethod]
+               public weak bool async_handling { get; set; }
+               public signal void element_added (Gst.Element child);
+               public signal void element_removed (Gst.Element child);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class Buffer : Gst.MiniObject {
+               public uchar data;
+               public uint size;
+               public uint64 timestamp;
+               public uint64 duration;
+               public weak Gst.Caps caps;
+               public uint64 offset;
+               public uint64 offset_end;
+               public uchar malloc_data;
+               public void copy_metadata (Gst.Buffer src, Gst.BufferCopyFlags @flags);
+               public weak Gst.Buffer create_sub (uint offset, uint size);
+               public weak Gst.Caps get_caps ();
+               public static GLib.Type get_type ();
+               public bool is_metadata_writable ();
+               public bool is_span_fast (Gst.Buffer buf2);
+               public weak Gst.Buffer join (Gst.Buffer buf2);
+               public weak Gst.Buffer make_metadata_writable ();
+               public weak Gst.Buffer merge (Gst.Buffer buf2);
+               public Buffer ();
+               public Buffer.and_alloc (uint size);
+               public void set_caps (Gst.Caps caps);
+               public weak Gst.Buffer span (uint offset, Gst.Buffer buf2, uint len);
+               public void stamp (Gst.Buffer src);
+               public static weak Gst.Buffer try_new_and_alloc (uint size);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class Bus : Gst.Object {
+               public void add_signal_watch ();
+               public void add_signal_watch_full (int priority);
+               public uint add_watch (Gst.BusFunc func, pointer user_data);
+               public uint add_watch_full (int priority, Gst.BusFunc func, pointer user_data, GLib.DestroyNotify notify);
+               public bool async_signal_func (Gst.Message message, pointer data);
+               public weak GLib.Source create_watch ();
+               public void disable_sync_message_emission ();
+               public void enable_sync_message_emission ();
+               public static GLib.Type get_type ();
+               public bool have_pending ();
+               public Bus ();
+               public weak Gst.Message peek ();
+               public weak Gst.Message poll (Gst.MessageType events, int64 timeout);
+               public weak Gst.Message pop ();
+               public bool post (Gst.Message message);
+               public void remove_signal_watch ();
+               public void set_flushing (bool flushing);
+               public void set_sync_handler (Gst.BusSyncHandler func, pointer data);
+               public Gst.BusSyncReply sync_signal_handler (Gst.Message message, pointer data);
+               public weak Gst.Message timed_pop (uint64 timeout);
+               public signal void sync_message (Gst.Message message);
+               public signal void message (Gst.Message message);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class Clock : Gst.Object {
+               public bool add_observation (uint64 slave, uint64 master, double r_squared);
+               public uint64 adjust_unlocked (uint64 internal);
+               public void get_calibration (uint64 internal, uint64 external, uint64 rate_num, uint64 rate_denom);
+               public virtual uint64 get_internal_time ();
+               public weak Gst.Clock get_master ();
+               public virtual uint64 get_resolution ();
+               public uint64 get_time ();
+               public static GLib.Type get_type ();
+               public static int id_compare_func (pointer id1, pointer id2);
+               public static uint64 id_get_time (pointer id);
+               public static pointer id_ref (pointer id);
+               public static void id_unref (pointer id);
+               public static void id_unschedule (pointer id);
+               public static Gst.ClockReturn id_wait (pointer id, int64 jitter);
+               public static Gst.ClockReturn id_wait_async (pointer id, Gst.ClockCallback func, pointer user_data);
+               public Clock.periodic_id (uint64 start_time, uint64 interval);
+               public Clock.single_shot_id (uint64 time);
+               public void set_calibration (uint64 internal, uint64 external, uint64 rate_num, uint64 rate_denom);
+               public bool set_master (Gst.Clock master);
+               public uint64 set_resolution (uint64 resolution);
+               public uint64 unadjust_unlocked (uint64 external);
+               [NoAccessorMethod]
+               public weak bool stats { get; set; }
+               [NoAccessorMethod]
+               public weak int window_size { get; set; }
+               [NoAccessorMethod]
+               public weak int window_threshold { get; set; }
+               [NoAccessorMethod]
+               public weak uint64 timeout { get; set; }
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class Element : Gst.Object {
+               public pointer state_lock;
+               public weak GLib.Cond state_cond;
+               public uint state_cookie;
+               public Gst.State current_state;
+               public Gst.State next_state;
+               public Gst.State pending_state;
+               public Gst.StateChangeReturn last_return;
+               public weak Gst.Bus bus;
+               public weak Gst.Clock clock;
+               public int64 base_time;
+               public ushort numpads;
+               public weak GLib.List pads;
+               public ushort numsrcpads;
+               public weak GLib.List srcpads;
+               public ushort numsinkpads;
+               public weak GLib.List sinkpads;
+               public uint pads_cookie;
+               public void abort_state ();
+               public bool add_pad (Gst.Pad pad);
+               public virtual Gst.StateChangeReturn change_state (Gst.StateChange transition);
+               public static void class_add_pad_template (pointer klass, Gst.PadTemplate templ);
+               public static weak Gst.PadTemplate class_get_pad_template (pointer element_class, string name);
+               public static weak GLib.List class_get_pad_template_list (pointer element_class);
+               public static void class_install_std_props (pointer klass, string first_name);
+               public static void class_set_details (pointer klass, Gst.ElementDetails details);
+               public Gst.StateChangeReturn continue_state (Gst.StateChangeReturn ret);
+               public void create_all_pads ();
+               public void found_tags (Gst.TagList list);
+               public void found_tags_for_pad (Gst.Pad pad, Gst.TagList list);
+               public uint64 get_base_time ();
+               public weak Gst.Bus get_bus ();
+               public weak Gst.Clock get_clock ();
+               public weak Gst.Pad get_compatible_pad (Gst.Pad pad, Gst.Caps caps);
+               public weak Gst.PadTemplate get_compatible_pad_template (Gst.PadTemplate compattempl);
+               public weak Gst.ElementFactory get_factory ();
+               public virtual weak Gst.Index get_index ();
+               public weak Gst.Pad get_pad (string name);
+               public weak Gst.Pad get_request_pad (string name);
+               public virtual Gst.StateChangeReturn get_state (Gst.State state, Gst.State pending, uint64 timeout);
+               public weak Gst.Pad get_static_pad (string name);
+               public static GLib.Type get_type ();
+               public bool implements_interface (GLib.Type iface_type);
+               public bool is_indexable ();
+               public bool is_locked_state ();
+               public weak Gst.Iterator iterate_pads ();
+               public weak Gst.Iterator iterate_sink_pads ();
+               public weak Gst.Iterator iterate_src_pads ();
+               public bool link (Gst.Element dest);
+               public bool link_filtered (Gst.Element dest, Gst.Caps filter);
+               public bool link_many (Gst.Element element_2);
+               public bool link_pads (string srcpadname, Gst.Element dest, string destpadname);
+               public bool link_pads_filtered (string srcpadname, Gst.Element dest, string destpadname, Gst.Caps filter);
+               public void lost_state ();
+               public static weak Gst.Element make_from_uri (Gst.URIType type, string uri, string elementname);
+               public void message_full (Gst.MessageType type, GLib.Quark domain, int code, string text, string debug, string file, string function, int line);
+               public bool post_message (Gst.Message message);
+               public virtual weak Gst.Clock provide_clock ();
+               public bool provides_clock ();
+               public virtual bool query (Gst.Query query);
+               public bool query_convert (Gst.Format src_format, int64 src_val, Gst.Format dest_format, int64 dest_val);
+               public bool query_duration (Gst.Format format, int64 duration);
+               public bool query_position (Gst.Format format, int64 cur);
+               public static bool register (Gst.Plugin plugin, string name, uint rank, GLib.Type type);
+               public void release_request_pad (Gst.Pad pad);
+               public bool remove_pad (Gst.Pad pad);
+               public bool requires_clock ();
+               public bool seek (double rate, Gst.Format format, Gst.SeekFlags @flags, Gst.SeekType cur_type, int64 cur, Gst.SeekType stop_type, int64 stop);
+               public bool seek_simple (Gst.Format format, Gst.SeekFlags seek_flags, int64 seek_pos);
+               public virtual bool send_event (Gst.Event event);
+               public void set_base_time (uint64 time);
+               public virtual void set_bus (Gst.Bus bus);
+               public virtual bool set_clock (Gst.Clock clock);
+               public virtual void set_index (Gst.Index index);
+               public bool set_locked_state (bool locked_state);
+               public virtual Gst.StateChangeReturn set_state (Gst.State state);
+               public static weak string state_change_return_get_name (Gst.StateChangeReturn state_ret);
+               public static weak string state_get_name (Gst.State state);
+               public bool sync_state_with_parent ();
+               public void unlink (Gst.Element dest);
+               public void unlink_many (Gst.Element element_2);
+               public void unlink_pads (string srcpadname, Gst.Element dest, string destpadname);
+               public signal void pad_removed (Gst.Pad pad);
+               [HasEmitter]
+               public signal void no_more_pads ();
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class ElementFactory : Gst.PluginFeature {
+               public bool can_sink_caps (Gst.Caps caps);
+               public bool can_src_caps (Gst.Caps caps);
+               public weak Gst.Element create (string name);
+               public static weak Gst.ElementFactory find (string name);
+               public weak string get_author ();
+               public weak string get_description ();
+               public GLib.Type get_element_type ();
+               public weak string get_klass ();
+               public weak string get_longname ();
+               public uint get_num_pad_templates ();
+               public weak GLib.List get_static_pad_templates ();
+               public static GLib.Type get_type ();
+               public weak string get_uri_protocols ();
+               public int get_uri_type ();
+               public static weak Gst.Element make (string factoryname, string name);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class Event : Gst.MiniObject {
+               public Gst.EventType type;
+               public uint64 timestamp;
+               public weak Gst.Object src;
+               public weak Gst.Structure structure;
+               public weak Gst.Structure get_structure ();
+               public static GLib.Type get_type ();
+               public Event.buffer_size (Gst.Format format, int64 minsize, int64 maxsize, bool async);
+               public Event.custom (Gst.EventType type, Gst.Structure structure);
+               public Event.eos ();
+               public Event.flush_start ();
+               public Event.flush_stop ();
+               public Event.latency (uint64 latency);
+               public Event.navigation (Gst.Structure structure);
+               public Event.new_segment (bool update, double rate, Gst.Format format, int64 start, int64 stop, int64 position);
+               public Event.new_segment_full (bool update, double rate, double applied_rate, Gst.Format format, int64 start, int64 stop, int64 position);
+               public Event.qos (double proportion, int64 diff, uint64 timestamp);
+               public Event.seek (double rate, Gst.Format format, Gst.SeekFlags @flags, Gst.SeekType start_type, int64 start, Gst.SeekType stop_type, int64 stop);
+               public Event.tag (Gst.TagList taglist);
+               public void parse_buffer_size (Gst.Format format, int64 minsize, int64 maxsize, bool async);
+               public void parse_latency (uint64 latency);
+               public void parse_new_segment (bool update, double rate, Gst.Format format, int64 start, int64 stop, int64 position);
+               public void parse_new_segment_full (bool update, double rate, double applied_rate, Gst.Format format, int64 start, int64 stop, int64 position);
+               public void parse_qos (double proportion, int64 diff, uint64 timestamp);
+               public void parse_seek (double rate, Gst.Format format, Gst.SeekFlags @flags, Gst.SeekType start_type, int64 start, Gst.SeekType stop_type, int64 stop);
+               public void parse_tag (Gst.TagList taglist);
+               public static Gst.EventTypeFlags type_get_flags (Gst.EventType type);
+               public static weak string type_get_name (Gst.EventType type);
+               public static GLib.Quark type_to_quark (Gst.EventType type);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class Index : Gst.Object {
+               public weak Gst.IndexEntry add_association (int id, Gst.AssocFlags @flags, Gst.Format format, int64 value);
+               public weak Gst.IndexEntry add_associationv (int id, Gst.AssocFlags @flags, int n, Gst.IndexAssociation list);
+               public weak Gst.IndexEntry add_format (int id, Gst.Format format);
+               public weak Gst.IndexEntry add_id (int id, string description);
+               public weak Gst.IndexEntry add_object (int id, string key, GLib.Type type, pointer object);
+               public virtual void commit (int id);
+               public virtual weak Gst.IndexEntry get_assoc_entry (int id, Gst.IndexLookupMethod method, Gst.AssocFlags @flags, Gst.Format format, int64 value);
+               public weak Gst.IndexEntry get_assoc_entry_full (int id, Gst.IndexLookupMethod method, Gst.AssocFlags @flags, Gst.Format format, int64 value, GLib.CompareDataFunc func, pointer user_data);
+               public Gst.IndexCertainty get_certainty ();
+               public int get_group ();
+               public static GLib.Type get_type ();
+               public virtual bool get_writer_id (Gst.Object writer, int id);
+               public Index ();
+               public Index.group ();
+               public void set_certainty (Gst.IndexCertainty certainty);
+               public void set_filter (Gst.IndexFilter filter, pointer user_data);
+               public void set_filter_full (Gst.IndexFilter filter, pointer user_data, GLib.DestroyNotify user_data_destroy);
+               public bool set_group (int groupnum);
+               public void set_resolver (Gst.IndexResolver resolver, pointer user_data);
+               [NoAccessorMethod]
+               public weak Gst.IndexResolver resolver { get; set; }
+               public signal void entry_added (Gst.IndexEntry entry);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class IndexFactory : Gst.PluginFeature {
+               public weak Gst.Index create ();
+               public void destroy ();
+               public static weak Gst.IndexFactory find (string name);
+               public static GLib.Type get_type ();
+               public static weak Gst.Index make (string name);
+               public IndexFactory (string name, string longdesc, GLib.Type type);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class Message : Gst.MiniObject {
+               public Gst.MessageType type;
+               public uint64 timestamp;
+               public weak Gst.Object src;
+               public weak Gst.Structure structure;
+               public weak Gst.Structure get_structure ();
+               public static GLib.Type get_type ();
+               public Message.application (Gst.Object src, Gst.Structure structure);
+               public Message.async_done (Gst.Object src);
+               public Message.async_start (Gst.Object src, bool new_base_time);
+               public Message.buffering (Gst.Object src, int percent);
+               public Message.clock_lost (Gst.Object src, Gst.Clock clock);
+               public Message.clock_provide (Gst.Object src, Gst.Clock clock, bool ready);
+               public Message.custom (Gst.MessageType type, Gst.Object src, Gst.Structure structure);
+               public Message.duration (Gst.Object src, Gst.Format format, int64 duration);
+               public Message.element (Gst.Object src, Gst.Structure structure);
+               public Message.eos (Gst.Object src);
+               public Message.error (Gst.Object src, GLib.Error error, string debug);
+               public Message.info (Gst.Object src, GLib.Error error, string debug);
+               public Message.latency (Gst.Object src);
+               public Message.new_clock (Gst.Object src, Gst.Clock clock);
+               public Message.segment_done (Gst.Object src, Gst.Format format, int64 position);
+               public Message.segment_start (Gst.Object src, Gst.Format format, int64 position);
+               public Message.state_changed (Gst.Object src, Gst.State oldstate, Gst.State newstate, Gst.State pending);
+               public Message.state_dirty (Gst.Object src);
+               public Message.tag (Gst.Object src, Gst.TagList tag_list);
+               public Message.warning (Gst.Object src, GLib.Error error, string debug);
+               public void parse_async_start (bool new_base_time);
+               public void parse_buffering (int percent);
+               public void parse_clock_lost (Gst.Clock clock);
+               public void parse_clock_provide (Gst.Clock clock, bool ready);
+               public void parse_duration (Gst.Format format, int64 duration);
+               public void parse_error (GLib.Error gerror, string debug);
+               public void parse_info (GLib.Error gerror, string debug);
+               public void parse_new_clock (Gst.Clock clock);
+               public void parse_segment_done (Gst.Format format, int64 position);
+               public void parse_segment_start (Gst.Format format, int64 position);
+               public void parse_state_changed (Gst.State oldstate, Gst.State newstate, Gst.State pending);
+               public void parse_tag (Gst.TagList tag_list);
+               public void parse_warning (GLib.Error gerror, string debug);
+               public static weak string type_get_name (Gst.MessageType type);
+               public static GLib.Quark type_to_quark (Gst.MessageType type);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class MiniObject : GLib.TypeInstance, GLib.Object {
+               public int refcount;
+               public uint @flags;
+               public weak Gst.MiniObject copy ();
+               public static GLib.Type get_type ();
+               public bool is_writable ();
+               public weak Gst.MiniObject make_writable ();
+               public MiniObject (GLib.Type type);
+               public weak Gst.MiniObject @ref ();
+               public void replace (Gst.MiniObject newdata);
+               public void unref ();
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class Object : GLib.Object {
+               public int refcount;
+               public weak GLib.Mutex @lock;
+               public weak string name_prefix;
+               public weak Gst.Object parent;
+               public uint @flags;
+               public static bool check_uniqueness (GLib.List list, string name);
+               public static void default_deep_notify (GLib.Object object, Gst.Object orig, GLib.ParamSpec pspec, string excluded_props);
+               public void default_error (GLib.Error error, string debug);
+               public weak string get_name ();
+               public weak string get_name_prefix ();
+               public weak Gst.Object get_parent ();
+               public weak string get_path_string ();
+               public static GLib.Type get_type ();
+               public bool has_ancestor (Gst.Object ancestor);
+               public static pointer @ref (pointer object);
+               public void replace (Gst.Object newobj);
+               public virtual void restore_thyself (pointer self);
+               public virtual pointer save_thyself (pointer parent);
+               public bool set_name (string name);
+               public void set_name_prefix (string name_prefix);
+               public bool set_parent (Gst.Object parent);
+               public static void sink (pointer object);
+               public void unparent ();
+               public static void unref (pointer object);
+               public weak string name { get; set construct; }
+               public signal void parent_set (Gst.Object parent);
+               public signal void parent_unset (Gst.Object parent);
+               public signal void object_saved (pointer parent);
+               public signal void deep_notify (Gst.Object orig, GLib.ParamSpec pspec);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class Pad : Gst.Object {
+               public pointer element_private;
+               public weak Gst.PadTemplate padtemplate;
+               public pointer stream_rec_lock;
+               public weak Gst.Task task;
+               public weak GLib.Mutex preroll_lock;
+               public weak GLib.Cond preroll_cond;
+               public weak GLib.Cond block_cond;
+               public Gst.PadBlockCallback block_callback;
+               public pointer block_data;
+               public Gst.PadGetCapsFunction getcapsfunc;
+               public Gst.PadSetCapsFunction setcapsfunc;
+               public Gst.PadAcceptCapsFunction acceptcapsfunc;
+               public Gst.PadFixateCapsFunction fixatecapsfunc;
+               public Gst.PadActivateFunction activatefunc;
+               public Gst.PadActivateModeFunction activatepushfunc;
+               public Gst.PadActivateModeFunction activatepullfunc;
+               public Gst.PadLinkFunction linkfunc;
+               public Gst.PadUnlinkFunction unlinkfunc;
+               public weak Gst.Pad peer;
+               public pointer sched_private;
+               public Gst.PadChainFunction chainfunc;
+               public Gst.PadCheckGetRangeFunction checkgetrangefunc;
+               public Gst.PadGetRangeFunction getrangefunc;
+               public Gst.PadEventFunction eventfunc;
+               public Gst.ActivateMode mode;
+               public Gst.PadQueryFunction queryfunc;
+               public Gst.PadIntLinkFunction intlinkfunc;
+               public Gst.PadBufferAllocFunction bufferallocfunc;
+               public int do_buffer_signals;
+               public int do_event_signals;
+               public bool accept_caps (Gst.Caps caps);
+               public bool activate_pull (bool active);
+               public bool activate_push (bool active);
+               public ulong add_buffer_probe (GLib.Callback handler, pointer data);
+               public ulong add_data_probe (GLib.Callback handler, pointer data);
+               public ulong add_event_probe (GLib.Callback handler, pointer data);
+               public Gst.FlowReturn alloc_buffer (uint64 offset, int size, Gst.Caps caps, Gst.Buffer buf);
+               public Gst.FlowReturn alloc_buffer_and_set_caps (uint64 offset, int size, Gst.Caps caps, Gst.Buffer buf);
+               public bool can_link (Gst.Pad sinkpad);
+               public Gst.FlowReturn chain (Gst.Buffer buffer);
+               public bool check_pull_range ();
+               public bool dispatcher (Gst.PadDispatcherFunction dispatch, pointer data);
+               public bool event_default (Gst.Event event);
+               public void fixate_caps (Gst.Caps caps);
+               public weak Gst.Caps get_allowed_caps ();
+               public weak Gst.Caps get_caps ();
+               public Gst.PadDirection get_direction ();
+               public pointer get_element_private ();
+               public weak Gst.Caps get_fixed_caps_func ();
+               public weak GLib.List get_internal_links ();
+               public weak GLib.List get_internal_links_default ();
+               public weak Gst.Caps get_negotiated_caps ();
+               public weak Gst.PadTemplate get_pad_template ();
+               public weak Gst.Caps get_pad_template_caps ();
+               public weak Gst.Element get_parent_element ();
+               public weak Gst.Pad get_peer ();
+               public Gst.QueryType get_query_types ();
+               public Gst.QueryType get_query_types_default ();
+               public Gst.FlowReturn get_range (uint64 offset, uint size, Gst.Buffer buffer);
+               public static GLib.Type get_type ();
+               public bool is_active ();
+               public bool is_blocked ();
+               public bool is_blocking ();
+               public bool is_linked ();
+               public Gst.PadLinkReturn link (Gst.Pad sinkpad);
+               public void load_and_link (Gst.Object parent);
+               public Pad (string name, Gst.PadDirection direction);
+               public Pad.from_static_template (Gst.StaticPadTemplate templ, string name);
+               public Pad.from_template (Gst.PadTemplate templ, string name);
+               public bool pause_task ();
+               public bool peer_accept_caps (Gst.Caps caps);
+               public weak Gst.Caps peer_get_caps ();
+               public weak Gst.Caps proxy_getcaps ();
+               public bool proxy_setcaps (Gst.Caps caps);
+               public Gst.FlowReturn pull_range (uint64 offset, uint size, Gst.Buffer buffer);
+               public Gst.FlowReturn push (Gst.Buffer buffer);
+               public bool push_event (Gst.Event event);
+               public bool query (Gst.Query query);
+               public bool query_convert (Gst.Format src_format, int64 src_val, Gst.Format dest_format, int64 dest_val);
+               public bool query_default (Gst.Query query);
+               public bool query_duration (Gst.Format format, int64 duration);
+               public bool query_peer_convert (Gst.Format src_format, int64 src_val, Gst.Format dest_format, int64 dest_val);
+               public bool query_peer_duration (Gst.Format format, int64 duration);
+               public bool query_peer_position (Gst.Format format, int64 cur);
+               public bool query_position (Gst.Format format, int64 cur);
+               public void remove_buffer_probe (uint handler_id);
+               public void remove_data_probe (uint handler_id);
+               public void remove_event_probe (uint handler_id);
+               public bool send_event (Gst.Event event);
+               public void set_acceptcaps_function (Gst.PadAcceptCapsFunction acceptcaps);
+               public void set_activate_function (Gst.PadActivateFunction activate);
+               public void set_activatepull_function (Gst.PadActivateModeFunction activatepull);
+               public void set_activatepush_function (Gst.PadActivateModeFunction activatepush);
+               public bool set_active (bool active);
+               public bool set_blocked (bool blocked);
+               public bool set_blocked_async (bool blocked, Gst.PadBlockCallback @callback, pointer user_data);
+               public void set_bufferalloc_function (Gst.PadBufferAllocFunction bufalloc);
+               public bool set_caps (Gst.Caps caps);
+               public void set_chain_function (Gst.PadChainFunction chain);
+               public void set_checkgetrange_function (Gst.PadCheckGetRangeFunction check);
+               public void set_element_private (pointer priv);
+               public void set_event_function (Gst.PadEventFunction event);
+               public void set_fixatecaps_function (Gst.PadFixateCapsFunction fixatecaps);
+               public void set_getcaps_function (Gst.PadGetCapsFunction getcaps);
+               public void set_getrange_function (Gst.PadGetRangeFunction get);
+               public void set_internal_link_function (Gst.PadIntLinkFunction intlink);
+               public void set_link_function (Gst.PadLinkFunction link);
+               public void set_query_function (Gst.PadQueryFunction query);
+               public void set_setcaps_function (Gst.PadSetCapsFunction setcaps);
+               public void set_unlink_function (Gst.PadUnlinkFunction unlink);
+               public bool start_task (Gst.TaskFunction func, pointer data);
+               public bool stop_task ();
+               public bool unlink (Gst.Pad sinkpad);
+               public void use_fixed_caps ();
+               public weak Gst.Caps caps { get; }
+               [NoAccessorMethod]
+               public weak Gst.PadDirection direction { get; construct; }
+               [NoAccessorMethod]
+               public weak Gst.PadTemplate template { get; set; }
+               public signal void linked (Gst.Pad peer);
+               public signal void unlinked (Gst.Pad peer);
+               public signal void request_link ();
+               public signal bool have_data (Gst.MiniObject data);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class PadTemplate : Gst.Object {
+               public weak Gst.Caps get_caps ();
+               public static GLib.Type get_type ();
+               public PadTemplate (string name_template, Gst.PadDirection direction, Gst.PadPresence presence, Gst.Caps caps);
+               [HasEmitter]
+               public signal void pad_created (Gst.Pad pad);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class Pipeline : Gst.Bin {
+               public weak Gst.Clock fixed_clock;
+               public uint64 stream_time;
+               public void auto_clock ();
+               public bool get_auto_flush_bus ();
+               public weak Gst.Bus get_bus ();
+               public weak Gst.Clock get_clock ();
+               public uint64 get_delay ();
+               public uint64 get_last_stream_time ();
+               public static GLib.Type get_type ();
+               public Pipeline (string name);
+               public void set_auto_flush_bus (bool auto_flush);
+               public bool set_clock (Gst.Clock clock);
+               public void set_delay (uint64 delay);
+               public void set_new_stream_time (uint64 time);
+               public void use_clock (Gst.Clock clock);
+               public weak uint64 delay { get; set; }
+               public weak bool auto_flush_bus { get; set; }
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class Plugin : Gst.Object {
+               public static GLib.Quark error_quark ();
+               public weak string get_description ();
+               public weak string get_filename ();
+               public weak string get_license ();
+               public weak GLib.Module get_module ();
+               public weak string get_name ();
+               public weak string get_origin ();
+               public weak string get_package ();
+               public weak string get_source ();
+               public static GLib.Type get_type ();
+               public weak string get_version ();
+               public bool is_loaded ();
+               public static void list_free (GLib.List list);
+               public weak Gst.Plugin load ();
+               public static weak Gst.Plugin load_by_name (string name);
+               public static weak Gst.Plugin load_file (string filename, GLib.Error error);
+               public bool name_filter (string name);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class PluginFeature : Gst.Object {
+               public bool check_version (uint min_major, uint min_minor, uint min_micro);
+               public weak string get_name ();
+               public uint get_rank ();
+               public static GLib.Type get_type ();
+               public static void list_free (GLib.List list);
+               public void set_name (string name);
+               public void set_rank (uint rank);
+               public bool type_name_filter (Gst.TypeNameData data);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class Query : Gst.MiniObject {
+               public Gst.QueryType type;
+               public weak Gst.Structure structure;
+               public weak Gst.Structure get_structure ();
+               public static GLib.Type get_type ();
+               public Query.application (Gst.QueryType type, Gst.Structure structure);
+               public Query.convert (Gst.Format src_format, int64 value, Gst.Format dest_format);
+               public Query.duration (Gst.Format format);
+               public Query.formats ();
+               public Query.latency ();
+               public Query.position (Gst.Format format);
+               public Query.seeking (Gst.Format format);
+               public Query.segment (Gst.Format format);
+               public void parse_convert (Gst.Format src_format, int64 src_value, Gst.Format dest_format, int64 dest_value);
+               public void parse_duration (Gst.Format format, int64 duration);
+               public void parse_formats_length (uint n_formats);
+               public void parse_formats_nth (uint nth, Gst.Format format);
+               public void parse_latency (bool live, uint64 min_latency, uint64 max_latency);
+               public void parse_position (Gst.Format format, int64 cur);
+               public void parse_seeking (Gst.Format format, bool seekable, int64 segment_start, int64 segment_end);
+               public void parse_segment (double rate, Gst.Format format, int64 start_value, int64 stop_value);
+               public void set_convert (Gst.Format src_format, int64 src_value, Gst.Format dest_format, int64 dest_value);
+               public void set_duration (Gst.Format format, int64 duration);
+               public void set_formats (int n_formats);
+               public void set_formatsv (int n_formats, Gst.Format formats);
+               public void set_latency (bool live, uint64 min_latency, uint64 max_latency);
+               public void set_position (Gst.Format format, int64 cur);
+               public void set_seeking (Gst.Format format, bool seekable, int64 segment_start, int64 segment_end);
+               public void set_segment (double rate, Gst.Format format, int64 start_value, int64 stop_value);
+               public static Gst.QueryType type_get_by_nick (string nick);
+               public static weak Gst.QueryTypeDefinition type_get_details (Gst.QueryType type);
+               public static weak string type_get_name (Gst.QueryType query);
+               public static weak Gst.Iterator type_iterate_definitions ();
+               public static Gst.QueryType type_register (string nick, string description);
+               public static GLib.Quark type_to_quark (Gst.QueryType query);
+               public static bool types_contains (Gst.QueryType types, Gst.QueryType type);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class Registry : Gst.Object {
+               public bool add_feature (Gst.PluginFeature feature);
+               public bool add_plugin (Gst.Plugin plugin);
+               public bool binary_read_cache (string location);
+               public bool binary_write_cache (string location);
+               public weak GLib.List feature_filter (Gst.PluginFeatureFilter filter, bool first, pointer user_data);
+               public weak Gst.PluginFeature find_feature (string name, GLib.Type type);
+               public weak Gst.Plugin find_plugin (string name);
+               public static bool fork_is_enabled ();
+               public static void fork_set_enabled (bool enabled);
+               public static weak Gst.Registry get_default ();
+               public weak GLib.List get_feature_list (GLib.Type type);
+               public weak GLib.List get_feature_list_by_plugin (string name);
+               public weak GLib.List get_path_list ();
+               public weak GLib.List get_plugin_list ();
+               public static GLib.Type get_type ();
+               public weak Gst.Plugin lookup (string filename);
+               public weak Gst.PluginFeature lookup_feature (string name);
+               public weak GLib.List plugin_filter (Gst.PluginFilter filter, bool first, pointer user_data);
+               public void remove_feature (Gst.PluginFeature feature);
+               public void remove_plugin (Gst.Plugin plugin);
+               public bool scan_path (string path);
+               public bool xml_read_cache (string location);
+               public bool xml_write_cache (string location);
+               public signal void plugin_added (Gst.Plugin plugin);
+               public signal void feature_added (Gst.PluginFeature feature);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class SystemClock : Gst.Clock {
+               public static GLib.Type get_type ();
+               public static weak Gst.Clock obtain ();
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class Task : Gst.Object {
+               public Gst.TaskState state;
+               public weak GLib.Cond cond;
+               public pointer @lock;
+               public Gst.TaskFunction func;
+               public pointer data;
+               public bool running;
+               public static void cleanup_all ();
+               public static weak Gst.Task create (Gst.TaskFunction func, pointer data);
+               public Gst.TaskState get_state ();
+               public static GLib.Type get_type ();
+               public bool join ();
+               public bool pause ();
+               public void set_lock (pointer mutex);
+               public bool start ();
+               public bool stop ();
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class TypeFindFactory : Gst.PluginFeature {
+               public void call_function (Gst.TypeFind find);
+               public weak Gst.Caps get_caps ();
+               public weak string get_extensions ();
+               public static weak GLib.List get_list ();
+               public static GLib.Type get_type ();
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class XML : Gst.Object {
+               [NoArrayLength]
+               public weak Gst.Element get_element (uchar[] name);
+               public weak GLib.List get_topelements ();
+               public static GLib.Type get_type ();
+               public static weak Gst.Element make_element (pointer cur, Gst.Object parent);
+               public XML ();
+               [NoArrayLength]
+               public bool parse_doc (pointer doc, uchar[] root);
+               [NoArrayLength]
+               public bool parse_file (uchar[] fname, uchar[] root);
+               [NoArrayLength]
+               public bool parse_memory (uchar[] buffer, uint size, string root);
+               public static pointer write (Gst.Element element);
+               public static int write_file (Gst.Element element, GLib.FileStream @out);
+               public signal void object_loaded (Gst.Object object, pointer self);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public class cast_t : GLib.Object {
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public interface ChildProxy {
+               public static void child_added (Gst.Object object, Gst.Object child);
+               public static void get (Gst.Object object, string first_property_name);
+               public virtual weak Gst.Object get_child_by_index (uint index);
+               public weak Gst.Object get_child_by_name (string name);
+               public virtual uint get_children_count ();
+               public static void get_property (Gst.Object object, string name, GLib.Value value);
+               public static GLib.Type get_type ();
+               public static void get_valist (Gst.Object object, string first_property_name, pointer var_args);
+               public static bool lookup (Gst.Object object, string name, Gst.Object target, GLib.ParamSpec pspec);
+               public static void set (Gst.Object object, string first_property_name);
+               public static void set_property (Gst.Object object, string name, GLib.Value value);
+               public static void set_valist (Gst.Object object, string first_property_name, pointer var_args);
+               [HasEmitter]
+               public signal void child_removed (Gst.Object child);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public interface ImplementsInterface {
+               public static pointer cast (pointer from, GLib.Type type);
+               public static bool check (pointer from, GLib.Type type);
+               public static GLib.Type get_type ();
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public interface TagSetter {
+               public void add_tag_valist (Gst.TagMergeMode mode, string tag, pointer var_args);
+               public void add_tag_valist_values (Gst.TagMergeMode mode, string tag, pointer var_args);
+               public void add_tag_values (Gst.TagMergeMode mode, string tag);
+               public void add_tags (Gst.TagMergeMode mode, string tag);
+               public weak Gst.TagList get_tag_list ();
+               public Gst.TagMergeMode get_tag_merge_mode ();
+               public static GLib.Type get_type ();
+               public void merge_tags (Gst.TagList list, Gst.TagMergeMode mode);
+               public void set_tag_merge_mode (Gst.TagMergeMode mode);
+       }
+       [CCode (cheader_filename = "gst/gst.h")]
+       public interface URIHandler {
+               public virtual weak string get_protocols ();
+               public static GLib.Type get_type ();
+               public virtual weak string get_uri ();
+               public uint get_uri_type ();
+               public virtual void new_uri (string uri);
+               public virtual bool set_uri (string uri);
+       }
+       [ReferenceType]
+       public struct AllocTrace {
+               public weak string name;
+               public int @flags;
+               public int live;
+               public weak GLib.SList mem_live;
+               public static bool available ();
+               public static weak Gst.AllocTrace get (string name);
+               public static weak GLib.List list ();
+               public static int live_all ();
+               public void print ();
+               public static void print_all ();
+               public static void print_live ();
+               public void set_flags (Gst.AllocTraceFlags @flags);
+               public static void set_flags_all (Gst.AllocTraceFlags @flags);
+       }
+       [ReferenceType]
+       public struct BinaryChunk {
+       }
+       [ReferenceType]
+       public struct BinaryElementFactory {
+       }
+       [ReferenceType]
+       public struct BinaryPadTemplate {
+       }
+       [ReferenceType]
+       public struct BinaryPluginElement {
+       }
+       [ReferenceType]
+       public struct BinaryPluginFeature {
+       }
+       [ReferenceType]
+       public struct BinaryRegistryMagic {
+       }
+       [ReferenceType]
+       public struct BinaryTypeFindFactory {
+       }
+       [ReferenceType]
+       public struct Caps {
+               public GLib.Type type;
+               public int refcount;
+               public Gst.CapsFlags @flags;
+               public void append (Gst.Caps caps2);
+               public void append_structure (Gst.Structure structure);
+               public weak Gst.Caps copy ();
+               public weak Gst.Caps copy_nth (uint nth);
+               public bool do_simplify ();
+               public static weak Gst.Caps from_string (string string);
+               public uint get_size ();
+               public weak Gst.Structure get_structure (uint index);
+               public static GLib.Type get_type ();
+               public weak Gst.Caps intersect (Gst.Caps caps2);
+               public bool is_always_compatible (Gst.Caps caps2);
+               public bool is_any ();
+               public bool is_empty ();
+               public bool is_equal (Gst.Caps caps2);
+               public bool is_equal_fixed (Gst.Caps caps2);
+               public bool is_fixed ();
+               public bool is_subset (Gst.Caps superset);
+               public static weak Gst.Caps load_thyself (pointer parent);
+               public weak Gst.Caps make_writable ();
+               public void merge (Gst.Caps caps2);
+               public void merge_structure (Gst.Structure structure);
+               public Caps.any ();
+               public Caps.empty ();
+               public Caps.full (Gst.Structure struct1);
+               public Caps.full_valist (Gst.Structure structure, pointer var_args);
+               public Caps.simple (string media_type, string fieldname);
+               public weak Gst.Caps normalize ();
+               public weak Gst.Caps @ref ();
+               public void remove_structure (uint idx);
+               public void replace (Gst.Caps newcaps);
+               public pointer save_thyself (pointer parent);
+               public void set_simple (string field);
+               public void set_simple_valist (string field, pointer varargs);
+               public weak Gst.Caps subtract (Gst.Caps subtrahend);
+               public weak string to_string ();
+               public void truncate ();
+               public weak Gst.Caps union (Gst.Caps caps2);
+               public void unref ();
+       }
+       [ReferenceType]
+       public struct ClockEntry {
+               public int refcount;
+               public weak Gst.Clock clock;
+               public Gst.ClockEntryType type;
+               public uint64 time;
+               public uint64 interval;
+               public Gst.ClockReturn status;
+               public Gst.ClockCallback func;
+               public pointer user_data;
+       }
+       [ReferenceType]
+       public struct DebugCategory {
+       }
+       [ReferenceType]
+       public struct DebugMessage {
+       }
+       [ReferenceType]
+       public struct ElementDetails {
+               public weak string longname;
+               public weak string klass;
+               public weak string description;
+               public weak string author;
+       }
+       [ReferenceType]
+       public struct FormatDefinition {
+               public Gst.Format value;
+               public weak string nick;
+               public weak string description;
+               public GLib.Quark quark;
+       }
+       [ReferenceType]
+       public struct IndexAssociation {
+               public Gst.Format format;
+               public int64 value;
+       }
+       [ReferenceType]
+       public struct IndexEntry {
+               public bool assoc_map (Gst.Format format, int64 value);
+               public weak Gst.IndexEntry copy ();
+               public void free ();
+               public static GLib.Type get_type ();
+       }
+       [ReferenceType]
+       public struct IndexGroup {
+       }
+       [ReferenceType]
+       public struct Iterator {
+               public Gst.IteratorNextFunction next;
+               public Gst.IteratorItemFunction item;
+               public Gst.IteratorResyncFunction resync;
+               public Gst.IteratorFreeFunction free;
+               public weak Gst.Iterator pushed;
+               public GLib.Type type;
+               public weak GLib.Mutex @lock;
+               public uint cookie;
+               public uint master_cookie;
+               public weak Gst.Iterator filter (GLib.CompareFunc func, pointer user_data);
+               public pointer find_custom (GLib.CompareFunc func, pointer user_data);
+               public Gst.IteratorResult fold (Gst.IteratorFoldFunction func, GLib.Value ret, pointer user_data);
+               public Gst.IteratorResult @foreach (GLib.Func func, pointer user_data);
+               public Iterator (uint size, GLib.Type type, GLib.Mutex @lock, uint master_cookie, Gst.IteratorNextFunction next, Gst.IteratorItemFunction item, Gst.IteratorResyncFunction resync, Gst.IteratorFreeFunction free);
+               public Iterator.list (GLib.Type type, GLib.Mutex @lock, uint master_cookie, GLib.List list, pointer owner, Gst.IteratorItemFunction item, Gst.IteratorDisposeFunction free);
+               public void push (Gst.Iterator other);
+       }
+       [ReferenceType]
+       public struct PluginDesc {
+               public int major_version;
+               public int minor_version;
+               public weak string name;
+               public weak string description;
+               public Gst.PluginInitFunc plugin_init;
+               public weak string version;
+               public weak string license;
+               public weak string source;
+               public weak string package;
+               public weak string origin;
+               public pointer _gst_reserved;
+       }
+       [ReferenceType]
+       public struct QueryTypeDefinition {
+               public Gst.QueryType value;
+               public weak string nick;
+               public weak string description;
+               public GLib.Quark quark;
+       }
+       [ReferenceType]
+       public struct Segment {
+               public double rate;
+               public double abs_rate;
+               public Gst.Format format;
+               public Gst.SeekFlags @flags;
+               public int64 start;
+               public int64 stop;
+               public int64 time;
+               public int64 accum;
+               public int64 last_stop;
+               public int64 duration;
+               public double applied_rate;
+               public bool clip (Gst.Format format, int64 start, int64 stop, int64 clip_start, int64 clip_stop);
+               public void free ();
+               public static GLib.Type get_type ();
+               public void init (Gst.Format format);
+               public Segment ();
+               public void set_duration (Gst.Format format, int64 duration);
+               public void set_last_stop (Gst.Format format, int64 position);
+               public void set_newsegment (bool update, double rate, Gst.Format format, int64 start, int64 stop, int64 time);
+               public void set_newsegment_full (bool update, double rate, double applied_rate, Gst.Format format, int64 start, int64 stop, int64 time);
+               public void set_seek (double rate, Gst.Format format, Gst.SeekFlags @flags, Gst.SeekType start_type, int64 start, Gst.SeekType stop_type, int64 stop, bool update);
+               public int64 to_running_time (Gst.Format format, int64 position);
+               public int64 to_stream_time (Gst.Format format, int64 position);
+       }
+       [ReferenceType]
+       public struct StaticCaps {
+               public weak Gst.Caps caps;
+               public weak string string;
+               public weak Gst.Caps get ();
+               public static GLib.Type get_type ();
+       }
+       [ReferenceType]
+       public struct StaticPadTemplate {
+               public weak string name_template;
+               public Gst.PadDirection direction;
+               public Gst.PadPresence presence;
+               public weak Gst.StaticCaps static_caps;
+               public weak Gst.PadTemplate get ();
+               public weak Gst.Caps get_caps ();
+               public static GLib.Type get_type ();
+       }
+       [ReferenceType]
+       public struct Structure {
+               public GLib.Type type;
+               public weak Gst.Structure copy ();
+               public static weak Gst.Structure empty_new (string name);
+               public bool fixate_field_boolean (string field_name, bool target);
+               public bool fixate_field_nearest_double (string field_name, double target);
+               public bool fixate_field_nearest_fraction (string field_name, int target_numerator, int target_denominator);
+               public bool fixate_field_nearest_int (string field_name, int target);
+               public bool @foreach (Gst.StructureForeachFunc func, pointer user_data);
+               public void free ();
+               public static weak Gst.Structure from_string (string string, string end);
+               public bool get_boolean (string fieldname, bool value);
+               public bool get_clock_time (string fieldname, uint64 value);
+               public bool get_date (string fieldname, GLib.Date value);
+               public bool get_double (string fieldname, double value);
+               public bool get_enum (string fieldname, GLib.Type enumtype, int value);
+               public GLib.Type get_field_type (string fieldname);
+               public bool get_fourcc (string fieldname, uint value);
+               public bool get_fraction (string fieldname, int value_numerator, int value_denominator);
+               public bool get_int (string fieldname, int value);
+               public weak string get_name ();
+               public GLib.Quark get_name_id ();
+               public weak string get_string (string fieldname);
+               public static GLib.Type get_type ();
+               public weak GLib.Value get_value (string fieldname);
+               public bool has_field (string fieldname);
+               public bool has_field_typed (string fieldname, GLib.Type type);
+               public bool has_name (string name);
+               public static weak Gst.Structure id_empty_new (GLib.Quark quark);
+               public weak GLib.Value id_get_value (GLib.Quark field);
+               public void id_set (GLib.Quark fieldname);
+               public void id_set_valist (GLib.Quark fieldname, pointer varargs);
+               public void id_set_value (GLib.Quark field, GLib.Value value);
+               public bool map_in_place (Gst.StructureMapFunc func, pointer user_data);
+               public int n_fields ();
+               public Structure (string name, string firstfield);
+               public Structure.valist (string name, string firstfield, pointer varargs);
+               public weak string nth_field_name (uint index);
+               public void remove_all_fields ();
+               public void remove_field (string fieldname);
+               public void remove_fields (string fieldname);
+               public void remove_fields_valist (string fieldname, pointer varargs);
+               public void set (string fieldname);
+               public void set_name (string name);
+               public void set_parent_refcount (int refcount);
+               public void set_valist (string fieldname, pointer varargs);
+               public void set_value (string fieldname, GLib.Value value);
+               public weak string to_string ();
+       }
+       [ReferenceType]
+       public struct TagList {
+               public GLib.Type type;
+               public void add (Gst.TagMergeMode mode, string tag);
+               public void add_valist (Gst.TagMergeMode mode, string tag, pointer var_args);
+               public void add_valist_values (Gst.TagMergeMode mode, string tag, pointer var_args);
+               public void add_values (Gst.TagMergeMode mode, string tag);
+               public weak Gst.TagList copy ();
+               public static bool copy_value (GLib.Value dest, Gst.TagList list, string tag);
+               public void @foreach (Gst.TagForeachFunc func, pointer user_data);
+               public void free ();
+               public bool get_boolean (string tag, bool value);
+               public bool get_boolean_index (string tag, uint index, bool value);
+               public bool get_char (string tag, string value);
+               public bool get_char_index (string tag, uint index, string value);
+               public bool get_date (string tag, GLib.Date value);
+               public bool get_date_index (string tag, uint index, GLib.Date value);
+               public bool get_double (string tag, double value);
+               public bool get_double_index (string tag, uint index, double value);
+               public bool get_float (string tag, float value);
+               public bool get_float_index (string tag, uint index, float value);
+               public bool get_int (string tag, int value);
+               public bool get_int64 (string tag, int64 value);
+               public bool get_int64_index (string tag, uint index, int64 value);
+               public bool get_int_index (string tag, uint index, int value);
+               public bool get_long (string tag, long value);
+               public bool get_long_index (string tag, uint index, long value);
+               public bool get_pointer (string tag, pointer value);
+               public bool get_pointer_index (string tag, uint index, pointer value);
+               public bool get_string (string tag, string value);
+               public bool get_string_index (string tag, uint index, string value);
+               public uint get_tag_size (string tag);
+               public static GLib.Type get_type ();
+               [NoArrayLength]
+               public bool get_uchar (string tag, uchar[] value);
+               [NoArrayLength]
+               public bool get_uchar_index (string tag, uint index, uchar[] value);
+               public bool get_uint (string tag, uint value);
+               public bool get_uint64 (string tag, uint64 value);
+               public bool get_uint64_index (string tag, uint index, uint64 value);
+               public bool get_uint_index (string tag, uint index, uint value);
+               public bool get_ulong (string tag, ulong value);
+               public bool get_ulong_index (string tag, uint index, ulong value);
+               public weak GLib.Value get_value_index (string tag, uint index);
+               public void insert (Gst.TagList from, Gst.TagMergeMode mode);
+               public bool is_empty ();
+               public weak Gst.TagList merge (Gst.TagList list2, Gst.TagMergeMode mode);
+               public TagList ();
+               public void remove_tag (string tag);
+       }
+       [ReferenceType]
+       public struct Trace {
+               public void destroy ();
+               public void flush ();
+               public Trace (string filename, int size);
+               public static void read_tsc (int64 dst);
+               public void set_default ();
+               public void text_flush ();
+       }
+       [ReferenceType]
+       public struct TraceEntry {
+               public int64 timestamp;
+               public uint sequence;
+               public uint data;
+               public char message;
+       }
+       [ReferenceType]
+       public struct TypeFind {
+               public pointer data;
+               public pointer _gst_reserved;
+               public uint64 get_length ();
+               public static GLib.Type get_type ();
+               public uchar peek (int64 offset, uint size);
+               public static bool register (Gst.Plugin plugin, string name, uint rank, Gst.TypeFindFunction func, string extensions, Gst.Caps possible_caps, pointer data, GLib.DestroyNotify data_notify);
+               public void suggest (uint probability, Gst.Caps caps);
+       }
+       [ReferenceType]
+       public struct TypeNameData {
+               public weak string name;
+               public GLib.Type type;
+       }
+       [ReferenceType]
+       public struct ValueTable {
+               public GLib.Type type;
+               public Gst.ValueCompareFunc compare;
+               public Gst.ValueSerializeFunc serialize;
+               public Gst.ValueDeserializeFunc deserialize;
+       }
+       [ReferenceType]
+       public struct Debug {
+               public static void print_stack_trace ();
+               public static uint remove_log_function (Gst.LogFunction func);
+               public static uint remove_log_function_by_data (pointer data);
+       }
+       [ReferenceType]
+       public struct Flow {
+               public static weak string get_name (Gst.FlowReturn ret);
+               public static GLib.Quark to_quark (Gst.FlowReturn ret);
+       }
+       [ReferenceType]
+       public struct Fraction {
+               public static GLib.Type get_type ();
+               public static GLib.Type range_get_type ();
+       }
+       [ReferenceType]
+       public struct Init {
+               public static bool check (int argc, string argv, GLib.Error err);
+               public static weak GLib.OptionGroup get_option_group ();
+       }
+       [ReferenceType]
+       public struct Print {
+               public static void element_args (GLib.String buf, int indent, Gst.Element element);
+               public static void pad_caps (GLib.String buf, int indent, Gst.Pad pad);
+       }
+       [ReferenceType]
+       public struct Segtrap {
+               public static bool is_enabled ();
+               public static void set_enabled (bool enabled);
+       }
+       [ReferenceType]
+       public struct Tag {
+               public static bool exists (string tag);
+               public static weak string get_description (string tag);
+               public static Gst.TagFlag get_flag (string tag);
+               public static weak string get_nick (string tag);
+               public static GLib.Type get_type (string tag);
+               public static bool is_fixed (string tag);
+               public static void merge_strings_with_comma (GLib.Value dest, GLib.Value src);
+               public static void merge_use_first (GLib.Value dest, GLib.Value src);
+               public static void register (string name, Gst.TagFlag flag, GLib.Type type, string nick, string blurb, Gst.TagMergeFunc func);
+       }
+       [ReferenceType]
+       public struct Uri {
+               public static weak string @construct (string protocol, string location);
+               public static weak string get_location (string uri);
+               public static weak string get_protocol (string uri);
+               public static bool has_protocol (string uri, string protocol);
+               public static bool is_valid (string uri);
+               public static bool protocol_is_supported (Gst.URIType type, string protocol);
+               public static bool protocol_is_valid (string protocol);
+       }
+       [ReferenceType]
+       public struct Util {
+               [NoArrayLength]
+               public static void dump_mem (uchar[] mem, uint size);
+               public static uint64 gdouble_to_guint64 (double value);
+               public static double guint64_to_gdouble (uint64 value);
+               public static void set_object_arg (GLib.Object object, string name, string value);
+               public static void set_value_from_string (GLib.Value value, string value_str);
+               public static uint64 uint64_scale (uint64 val, uint64 num, uint64 denom);
+               public static uint64 uint64_scale_int (uint64 val, int num, int denom);
+       }
+       [ReferenceType]
+       public struct Value {
+               public static void array_append_value (GLib.Value value, GLib.Value append_value);
+               public static uint array_get_size (GLib.Value value);
+               public static GLib.Type array_get_type ();
+               public static weak GLib.Value array_get_value (GLib.Value value, uint index);
+               public static void array_prepend_value (GLib.Value value, GLib.Value prepend_value);
+               public static bool can_compare (GLib.Value value1, GLib.Value value2);
+               public static bool can_intersect (GLib.Value value1, GLib.Value value2);
+               public static bool can_subtract (GLib.Value minuend, GLib.Value subtrahend);
+               public static bool can_union (GLib.Value value1, GLib.Value value2);
+               public static int compare (GLib.Value value1, GLib.Value value2);
+               public static bool deserialize (GLib.Value dest, string src);
+               public static bool fraction_multiply (GLib.Value product, GLib.Value factor1, GLib.Value factor2);
+               public static bool fraction_subtract (GLib.Value dest, GLib.Value minuend, GLib.Value subtrahend);
+               public static weak Gst.Caps get_caps (GLib.Value value);
+               public static weak GLib.Date get_date (GLib.Value value);
+               public static double get_double_range_max (GLib.Value value);
+               public static double get_double_range_min (GLib.Value value);
+               public static uint get_fourcc (GLib.Value value);
+               public static int get_fraction_denominator (GLib.Value value);
+               public static int get_fraction_numerator (GLib.Value value);
+               public static weak GLib.Value get_fraction_range_max (GLib.Value value);
+               public static weak GLib.Value get_fraction_range_min (GLib.Value value);
+               public static int get_int_range_max (GLib.Value value);
+               public static int get_int_range_min (GLib.Value value);
+               public static weak Gst.MiniObject get_mini_object (GLib.Value value);
+               public static void init_and_copy (GLib.Value dest, GLib.Value src);
+               public static bool intersect (GLib.Value dest, GLib.Value value1, GLib.Value value2);
+               public static bool is_fixed (GLib.Value value);
+               public static void list_append_value (GLib.Value value, GLib.Value append_value);
+               public static void list_concat (GLib.Value dest, GLib.Value value1, GLib.Value value2);
+               public static uint list_get_size (GLib.Value value);
+               public static GLib.Type list_get_type ();
+               public static weak GLib.Value list_get_value (GLib.Value value, uint index);
+               public static void list_prepend_value (GLib.Value value, GLib.Value prepend_value);
+               public static void register (Gst.ValueTable table);
+               public static void register_intersect_func (GLib.Type type1, GLib.Type type2, Gst.ValueIntersectFunc func);
+               public static void register_subtract_func (GLib.Type minuend_type, GLib.Type subtrahend_type, Gst.ValueSubtractFunc func);
+               public static void register_union_func (GLib.Type type1, GLib.Type type2, Gst.ValueUnionFunc func);
+               public static weak string serialize (GLib.Value value);
+               public static void set_caps (GLib.Value value, Gst.Caps caps);
+               public static void set_date (GLib.Value value, GLib.Date date);
+               public static void set_double_range (GLib.Value value, double start, double end);
+               public static void set_fourcc (GLib.Value value, uint fourcc);
+               public static void set_fraction (GLib.Value value, int numerator, int denominator);
+               public static void set_fraction_range (GLib.Value value, GLib.Value start, GLib.Value end);
+               public static void set_fraction_range_full (GLib.Value value, int numerator_start, int denominator_start, int numerator_end, int denominator_end);
+               public static void set_int_range (GLib.Value value, int start, int end);
+               public static void set_mini_object (GLib.Value value, Gst.MiniObject mini_object);
+               public static bool subtract (GLib.Value dest, GLib.Value minuend, GLib.Value subtrahend);
+               public static void take_mini_object (GLib.Value value, Gst.MiniObject mini_object);
+               public static bool union (GLib.Value dest, GLib.Value value1, GLib.Value value2);
+       }
+       public static delegate bool BusFunc (Gst.Bus bus, Gst.Message message, pointer data);
+       public static delegate Gst.BusSyncReply BusSyncHandler (Gst.Bus bus, Gst.Message message, pointer data);
+       public static delegate bool ClockCallback (Gst.Clock clock, uint64 time, pointer id, pointer user_data);
+       public static delegate bool FilterFunc (pointer obj, pointer user_data);
+       public static delegate bool IndexFilter (Gst.Index index, Gst.IndexEntry entry, pointer user_data);
+       public static delegate bool IndexResolver (Gst.Index index, Gst.Object writer, string writer_string, pointer user_data);
+       public static delegate void IteratorDisposeFunction (pointer owner);
+       public static delegate bool IteratorFoldFunction (pointer item, GLib.Value ret, pointer user_data);
+       public static delegate void IteratorFreeFunction (Gst.Iterator it);
+       public static delegate Gst.IteratorItem IteratorItemFunction (Gst.Iterator it, pointer item);
+       public static delegate Gst.IteratorResult IteratorNextFunction (Gst.Iterator it, pointer result);
+       public static delegate void IteratorResyncFunction (Gst.Iterator it);
+       public static delegate void LogFunction (Gst.DebugCategory category, Gst.DebugLevel level, string file, string function, int line, GLib.Object object, Gst.DebugMessage message, pointer data);
+       public static delegate Gst.MiniObject MiniObjectCopyFunction (Gst.MiniObject obj);
+       public static delegate void MiniObjectFinalizeFunction (Gst.MiniObject obj);
+       public static delegate bool PadAcceptCapsFunction (Gst.Pad pad, Gst.Caps caps);
+       public static delegate bool PadActivateFunction (Gst.Pad pad);
+       public static delegate bool PadActivateModeFunction (Gst.Pad pad, bool active);
+       public static delegate void PadBlockCallback (Gst.Pad pad, bool blocked, pointer user_data);
+       public static delegate Gst.FlowReturn PadBufferAllocFunction (Gst.Pad pad, uint64 offset, uint size, Gst.Caps caps, Gst.Buffer buf);
+       public static delegate Gst.FlowReturn PadChainFunction (Gst.Pad pad, Gst.Buffer buffer);
+       public static delegate bool PadCheckGetRangeFunction (Gst.Pad pad);
+       public static delegate bool PadDispatcherFunction (Gst.Pad pad, pointer data);
+       public static delegate bool PadEventFunction (Gst.Pad pad, Gst.Event event);
+       public static delegate void PadFixateCapsFunction (Gst.Pad pad, Gst.Caps caps);
+       public static delegate Gst.Caps PadGetCapsFunction (Gst.Pad pad);
+       public static delegate Gst.FlowReturn PadGetRangeFunction (Gst.Pad pad, uint64 offset, uint length, Gst.Buffer buffer);
+       public static delegate GLib.List PadIntLinkFunction (Gst.Pad pad);
+       public static delegate Gst.PadLinkReturn PadLinkFunction (Gst.Pad pad, Gst.Pad peer);
+       public static delegate bool PadQueryFunction (Gst.Pad pad, Gst.Query query);
+       public static delegate bool PadSetCapsFunction (Gst.Pad pad, Gst.Caps caps);
+       public static delegate void PadUnlinkFunction (Gst.Pad pad);
+       public static delegate bool PluginFeatureFilter (Gst.PluginFeature feature, pointer user_data);
+       public static delegate bool PluginFilter (Gst.Plugin plugin, pointer user_data);
+       public static delegate bool PluginInitFunc (Gst.Plugin plugin);
+       public static delegate bool StructureForeachFunc (GLib.Quark field_id, GLib.Value value, pointer user_data);
+       public static delegate bool StructureMapFunc (GLib.Quark field_id, GLib.Value value, pointer user_data);
+       public static delegate void TagForeachFunc (Gst.TagList list, string tag, pointer user_data);
+       public static delegate void TagMergeFunc (GLib.Value dest, GLib.Value src);
+       public static delegate void TaskFunction (pointer data);
+       public static delegate void TypeFindFunction (Gst.TypeFind find, pointer data);
+       public static delegate int ValueCompareFunc (GLib.Value value1, GLib.Value value2);
+       public static delegate bool ValueDeserializeFunc (GLib.Value dest, string s);
+       public static delegate bool ValueIntersectFunc (GLib.Value dest, GLib.Value value1, GLib.Value value2);
+       public static delegate string ValueSerializeFunc (GLib.Value value1);
+       public static delegate bool ValueSubtractFunc (GLib.Value dest, GLib.Value minuend, GLib.Value subtrahend);
+       public static delegate bool ValueUnionFunc (GLib.Value dest, GLib.Value value1, GLib.Value value2);
+       public static void atomic_int_set (int atomic_int, int value);
+       public static void class_signal_emit_by_name (Gst.Object object, string name, pointer self);
+       public static GLib.Quark core_error_quark ();
+       public static GLib.Type date_get_type ();
+       public static bool default_registry_check_feature_version (string feature_name, uint min_major, uint min_minor, uint min_micro);
+       public static GLib.Type double_range_get_type ();
+       public static weak string error_get_message (GLib.Quark domain, int code);
+       public static weak GLib.List filter_run (GLib.List list, Gst.FilterFunc func, bool first, pointer user_data);
+       public static Gst.Format format_get_by_nick (string nick);
+       public static weak Gst.FormatDefinition format_get_details (Gst.Format format);
+       public static weak string format_get_name (Gst.Format format);
+       public static weak Gst.Iterator format_iterate_definitions ();
+       public static Gst.Format format_register (string nick, string description);
+       public static GLib.Quark format_to_quark (Gst.Format format);
+       public static bool formats_contains (Gst.Format formats, Gst.Format format);
+       public static GLib.Type fourcc_get_type ();
+       public static GLib.Type g_error_get_type ();
+       public static GLib.Type int_range_get_type ();
+       public static bool is_tag_list (pointer p);
+       public static GLib.Quark library_error_quark ();
+       public static weak GLib.ParamSpec param_spec_mini_object (string name, string nick, string blurb, GLib.Type object_type, GLib.ParamFlags @flags);
+       public static weak Gst.Element parse_bin_from_description (string bin_description, bool ghost_unconnected_pads, GLib.Error err);
+       public static GLib.Quark parse_error_quark ();
+       public static weak Gst.Element parse_launch (string pipeline_description, GLib.Error error);
+       public static weak Gst.Element parse_launchv (string argv, GLib.Error error);
+       public static GLib.Quark resource_error_quark ();
+       public static GLib.Quark stream_error_quark ();
+       public static bool update_registry ();
+       public static weak string version_string ();
+}
+[CCode (cprefix = "Gst", lower_case_cprefix = "gst_", cheader_filename = "gst/gst.h")]
+namespace Gst {
+       public static void init (ref string[] args);
+}
diff --git a/vapi/packages/gstreamer-0.10/gstreamer-0.10-custom.vala b/vapi/packages/gstreamer-0.10/gstreamer-0.10-custom.vala
new file mode 100644 (file)
index 0000000..2af6f2d
--- /dev/null
@@ -0,0 +1,26 @@
+/* gstreamer-0.10-custom.vala
+ *
+ * Copyright (C) 2007  Jürg Billeter
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+ *
+ * Author:
+ *     Jürg Billeter <j@bitron.ch>
+ */
+
+[CCode (cheader_filename = "gst/gst.h")]
+namespace Gst {
+       public void init (ref string[] args);
+}
diff --git a/vapi/packages/gstreamer-0.10/gstreamer-0.10.excludes b/vapi/packages/gstreamer-0.10/gstreamer-0.10.excludes
new file mode 100644 (file)
index 0000000..6451e64
--- /dev/null
@@ -0,0 +1,3 @@
+gstghostpad.c
+gstghostpad.h
+
diff --git a/vapi/packages/gstreamer-0.10/gstreamer-0.10.files b/vapi/packages/gstreamer-0.10/gstreamer-0.10.files
new file mode 100644 (file)
index 0000000..446b11b
--- /dev/null
@@ -0,0 +1 @@
+gst
diff --git a/vapi/packages/gstreamer-0.10/gstreamer-0.10.gidl b/vapi/packages/gstreamer-0.10/gstreamer-0.10.gidl
new file mode 100644 (file)
index 0000000..5e619b9
--- /dev/null
@@ -0,0 +1,7002 @@
+<?xml version="1.0"?>
+<api version="1.0">
+  <!--
+
+        This file was automatically generated.
+        Please DO NOT MODIFY THIS FILE, modify .metadata files instead.
+
+-->
+  <namespace name="Gst">
+    <enum name="GstActivateMode" type="enum" type-name="GstActivateMode">
+      <member name="GST_ACTIVATE_NONE" value=""/>
+      <member name="GST_ACTIVATE_PUSH" value=""/>
+      <member name="GST_ACTIVATE_PULL" value=""/>
+    </enum>
+    <enum name="GstAllocTraceFlags" type="flags" type-name="GstAllocTraceFlags">
+      <member name="GST_ALLOC_TRACE_LIVE" value=""/>
+      <member name="GST_ALLOC_TRACE_MEM_LIVE" value=""/>
+    </enum>
+    <enum name="GstAssocFlags" type="flags" type-name="GstAssocFlags">
+      <member name="GST_ASSOCIATION_FLAG_NONE" value="0"/>
+      <member name="GST_ASSOCIATION_FLAG_KEY_UNIT" value=""/>
+      <member name="GST_ASSOCIATION_FLAG_DELTA_UNIT" value=""/>
+      <member name="GST_ASSOCIATION_FLAG_LAST" value=""/>
+    </enum>
+    <enum name="GstBinFlags" type="enum" type-name="GstBinFlags">
+      <member name="GST_BIN_FLAG_LAST" value=""/>
+    </enum>
+    <enum name="GstBufferCopyFlags" type="flags" type-name="GstBufferCopyFlags">
+      <member name="GST_BUFFER_COPY_FLAGS" value=""/>
+      <member name="GST_BUFFER_COPY_TIMESTAMPS" value=""/>
+      <member name="GST_BUFFER_COPY_CAPS" value=""/>
+    </enum>
+    <enum name="GstBufferFlag" type="flags" type-name="GstBufferFlag">
+      <member name="GST_BUFFER_FLAG_READONLY" value="GST_MINI_OBJECT_FLAG_READONLY"/>
+      <member name="GST_BUFFER_FLAG_PREROLL" value="GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 0"/>
+      <member name="GST_BUFFER_FLAG_DISCONT" value="GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 1"/>
+      <member name="GST_BUFFER_FLAG_IN_CAPS" value="GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 2"/>
+      <member name="GST_BUFFER_FLAG_GAP" value="GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 3"/>
+      <member name="GST_BUFFER_FLAG_DELTA_UNIT" value="GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 4"/>
+      <member name="GST_BUFFER_FLAG_LAST" value="GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 8"/>
+    </enum>
+    <enum name="GstBusFlags" type="enum" type-name="GstBusFlags">
+      <member name="GST_BUS_FLUSHING" value=""/>
+      <member name="GST_BUS_FLAG_LAST" value=""/>
+    </enum>
+    <enum name="GstBusSyncReply" type="enum" type-name="GstBusSyncReply">
+      <member name="GST_BUS_DROP" value="0"/>
+      <member name="GST_BUS_PASS" value="1"/>
+      <member name="GST_BUS_ASYNC" value="2"/>
+    </enum>
+    <enum name="GstCapsFlags" type="flags" type-name="GstCapsFlags">
+      <member name="GST_CAPS_FLAGS_ANY" value=""/>
+    </enum>
+    <enum name="GstClockEntryType" type="enum" type-name="GstClockEntryType">
+      <member name="GST_CLOCK_ENTRY_SINGLE" value=""/>
+      <member name="GST_CLOCK_ENTRY_PERIODIC" value=""/>
+    </enum>
+    <enum name="GstClockFlags" type="flags" type-name="GstClockFlags">
+      <member name="GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC" value="GST_OBJECT_FLAG_LAST &lt;&lt; 0"/>
+      <member name="GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC" value="GST_OBJECT_FLAG_LAST &lt;&lt; 1"/>
+      <member name="GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC" value="GST_OBJECT_FLAG_LAST &lt;&lt; 2"/>
+      <member name="GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC" value="GST_OBJECT_FLAG_LAST &lt;&lt; 3"/>
+      <member name="GST_CLOCK_FLAG_CAN_SET_RESOLUTION" value="GST_OBJECT_FLAG_LAST &lt;&lt; 4"/>
+      <member name="GST_CLOCK_FLAG_CAN_SET_MASTER" value="GST_OBJECT_FLAG_LAST &lt;&lt; 5"/>
+      <member name="GST_CLOCK_FLAG_LAST" value="GST_OBJECT_FLAG_LAST &lt;&lt; 8"/>
+    </enum>
+    <enum name="GstClockReturn" type="enum" type-name="GstClockReturn">
+      <member name="GST_CLOCK_OK" value="0"/>
+      <member name="GST_CLOCK_EARLY" value="1"/>
+      <member name="GST_CLOCK_UNSCHEDULED" value="2"/>
+      <member name="GST_CLOCK_BUSY" value="3"/>
+      <member name="GST_CLOCK_BADTIME" value="4"/>
+      <member name="GST_CLOCK_ERROR" value="5"/>
+      <member name="GST_CLOCK_UNSUPPORTED" value="6"/>
+    </enum>
+    <enum name="GstCoreError" type="enum" type-name="GstCoreError">
+      <member name="GST_CORE_ERROR_FAILED" value="1"/>
+      <member name="GST_CORE_ERROR_TOO_LAZY" value=""/>
+      <member name="GST_CORE_ERROR_NOT_IMPLEMENTED" value=""/>
+      <member name="GST_CORE_ERROR_STATE_CHANGE" value=""/>
+      <member name="GST_CORE_ERROR_PAD" value=""/>
+      <member name="GST_CORE_ERROR_THREAD" value=""/>
+      <member name="GST_CORE_ERROR_NEGOTIATION" value=""/>
+      <member name="GST_CORE_ERROR_EVENT" value=""/>
+      <member name="GST_CORE_ERROR_SEEK" value=""/>
+      <member name="GST_CORE_ERROR_CAPS" value=""/>
+      <member name="GST_CORE_ERROR_TAG" value=""/>
+      <member name="GST_CORE_ERROR_MISSING_PLUGIN" value=""/>
+      <member name="GST_CORE_ERROR_CLOCK" value=""/>
+      <member name="GST_CORE_ERROR_DISABLED" value=""/>
+      <member name="GST_CORE_ERROR_NUM_ERRORS" value=""/>
+    </enum>
+    <enum name="GstDebugColorFlags" type="enum" type-name="GstDebugColorFlags">
+      <member name="GST_DEBUG_FG_BLACK" value="0x0000"/>
+      <member name="GST_DEBUG_FG_RED" value="0x0001"/>
+      <member name="GST_DEBUG_FG_GREEN" value="0x0002"/>
+      <member name="GST_DEBUG_FG_YELLOW" value="0x0003"/>
+      <member name="GST_DEBUG_FG_BLUE" value="0x0004"/>
+      <member name="GST_DEBUG_FG_MAGENTA" value="0x0005"/>
+      <member name="GST_DEBUG_FG_CYAN" value="0x0006"/>
+      <member name="GST_DEBUG_FG_WHITE" value="0x0007"/>
+      <member name="GST_DEBUG_BG_BLACK" value="0x0000"/>
+      <member name="GST_DEBUG_BG_RED" value="0x0010"/>
+      <member name="GST_DEBUG_BG_GREEN" value="0x0020"/>
+      <member name="GST_DEBUG_BG_YELLOW" value="0x0030"/>
+      <member name="GST_DEBUG_BG_BLUE" value="0x0040"/>
+      <member name="GST_DEBUG_BG_MAGENTA" value="0x0050"/>
+      <member name="GST_DEBUG_BG_CYAN" value="0x0060"/>
+      <member name="GST_DEBUG_BG_WHITE" value="0x0070"/>
+      <member name="GST_DEBUG_BOLD" value="0x0100"/>
+      <member name="GST_DEBUG_UNDERLINE" value="0x0200"/>
+    </enum>
+    <enum name="GstDebugLevel" type="enum" type-name="GstDebugLevel">
+      <member name="GST_LEVEL_NONE" value="0"/>
+      <member name="GST_LEVEL_ERROR" value=""/>
+      <member name="GST_LEVEL_WARNING" value=""/>
+      <member name="GST_LEVEL_INFO" value=""/>
+      <member name="GST_LEVEL_DEBUG" value=""/>
+      <member name="GST_LEVEL_LOG" value=""/>
+      <member name="GST_LEVEL_COUNT" value=""/>
+    </enum>
+    <enum name="GstElementFlags" type="flags" type-name="GstElementFlags">
+      <member name="GST_ELEMENT_LOCKED_STATE" value="GST_OBJECT_FLAG_LAST &lt;&lt; 0"/>
+      <member name="GST_ELEMENT_IS_SINK" value="GST_OBJECT_FLAG_LAST &lt;&lt; 1"/>
+      <member name="GST_ELEMENT_UNPARENTING" value="GST_OBJECT_FLAG_LAST &lt;&lt; 2"/>
+      <member name="GST_ELEMENT_FLAG_LAST" value="GST_OBJECT_FLAG_LAST &lt;&lt; 16"/>
+    </enum>
+    <enum name="GstEventType" type="enum" type-name="GstEventType">
+      <member name="GST_EVENT_UNKNOWN" value=""/>
+      <member name="GST_EVENT_FLUSH_START" value=""/>
+      <member name="GST_EVENT_FLUSH_STOP" value=""/>
+      <member name="GST_EVENT_EOS" value=""/>
+      <member name="GST_EVENT_NEWSEGMENT" value=""/>
+      <member name="GST_EVENT_TAG" value=""/>
+      <member name="GST_EVENT_BUFFERSIZE" value=""/>
+      <member name="GST_EVENT_QOS" value=""/>
+      <member name="GST_EVENT_SEEK" value=""/>
+      <member name="GST_EVENT_NAVIGATION" value=""/>
+      <member name="GST_EVENT_LATENCY" value=""/>
+      <member name="GST_EVENT_CUSTOM_UPSTREAM" value=""/>
+      <member name="GST_EVENT_CUSTOM_DOWNSTREAM" value=""/>
+      <member name="GST_EVENT_CUSTOM_DOWNSTREAM_OOB" value=""/>
+      <member name="GST_EVENT_CUSTOM_BOTH" value=""/>
+      <member name="GST_EVENT_CUSTOM_BOTH_OOB" value=""/>
+    </enum>
+    <enum name="GstEventTypeFlags" type="flags" type-name="GstEventTypeFlags">
+      <member name="GST_EVENT_TYPE_UPSTREAM" value=""/>
+      <member name="GST_EVENT_TYPE_DOWNSTREAM" value=""/>
+      <member name="GST_EVENT_TYPE_SERIALIZED" value=""/>
+    </enum>
+    <enum name="GstFlowReturn" type="enum" type-name="GstFlowReturn">
+      <member name="GST_FLOW_CUSTOM_SUCCESS" value="100"/>
+      <member name="GST_FLOW_RESEND" value="1"/>
+      <member name="GST_FLOW_OK" value="0"/>
+      <member name="GST_FLOW_NOT_LINKED" value="-1"/>
+      <member name="GST_FLOW_WRONG_STATE" value="-2"/>
+      <member name="GST_FLOW_UNEXPECTED" value="-3"/>
+      <member name="GST_FLOW_NOT_NEGOTIATED" value="-4"/>
+      <member name="GST_FLOW_ERROR" value="-5"/>
+      <member name="GST_FLOW_NOT_SUPPORTED" value="-6"/>
+      <member name="GST_FLOW_CUSTOM_ERROR" value="-100"/>
+    </enum>
+    <enum name="GstFormat" type="enum" type-name="GstFormat">
+      <member name="GST_FORMAT_UNDEFINED" value="0"/>
+      <member name="GST_FORMAT_DEFAULT" value="1"/>
+      <member name="GST_FORMAT_BYTES" value="2"/>
+      <member name="GST_FORMAT_TIME" value="3"/>
+      <member name="GST_FORMAT_BUFFERS" value="4"/>
+      <member name="GST_FORMAT_PERCENT" value="5"/>
+    </enum>
+    <enum name="GstIndexCertainty" type="enum" type-name="GstIndexCertainty">
+      <member name="GST_INDEX_UNKNOWN" value=""/>
+      <member name="GST_INDEX_CERTAIN" value=""/>
+      <member name="GST_INDEX_FUZZY" value=""/>
+    </enum>
+    <enum name="GstIndexEntryType" type="enum" type-name="GstIndexEntryType">
+      <member name="GST_INDEX_ENTRY_ID" value=""/>
+      <member name="GST_INDEX_ENTRY_ASSOCIATION" value=""/>
+      <member name="GST_INDEX_ENTRY_OBJECT" value=""/>
+      <member name="GST_INDEX_ENTRY_FORMAT" value=""/>
+    </enum>
+    <enum name="GstIndexFlags" type="enum" type-name="GstIndexFlags">
+      <member name="GST_INDEX_WRITABLE" value=""/>
+      <member name="GST_INDEX_READABLE" value=""/>
+      <member name="GST_INDEX_FLAG_LAST" value=""/>
+    </enum>
+    <enum name="GstIndexLookupMethod" type="enum" type-name="GstIndexLookupMethod">
+      <member name="GST_INDEX_LOOKUP_EXACT" value=""/>
+      <member name="GST_INDEX_LOOKUP_BEFORE" value=""/>
+      <member name="GST_INDEX_LOOKUP_AFTER" value=""/>
+    </enum>
+    <enum name="GstIndexResolverMethod" type="enum" type-name="GstIndexResolverMethod">
+      <member name="GST_INDEX_RESOLVER_CUSTOM" value=""/>
+      <member name="GST_INDEX_RESOLVER_GTYPE" value=""/>
+      <member name="GST_INDEX_RESOLVER_PATH" value=""/>
+    </enum>
+    <enum name="GstIteratorItem" type="enum" type-name="GstIteratorItem">
+      <member name="GST_ITERATOR_ITEM_SKIP" value="0"/>
+      <member name="GST_ITERATOR_ITEM_PASS" value="1"/>
+      <member name="GST_ITERATOR_ITEM_END" value="2"/>
+    </enum>
+    <enum name="GstIteratorResult" type="enum" type-name="GstIteratorResult">
+      <member name="GST_ITERATOR_DONE" value="0"/>
+      <member name="GST_ITERATOR_OK" value="1"/>
+      <member name="GST_ITERATOR_RESYNC" value="2"/>
+      <member name="GST_ITERATOR_ERROR" value="3"/>
+    </enum>
+    <enum name="GstLibraryError" type="enum" type-name="GstLibraryError">
+      <member name="GST_LIBRARY_ERROR_FAILED" value="1"/>
+      <member name="GST_LIBRARY_ERROR_TOO_LAZY" value=""/>
+      <member name="GST_LIBRARY_ERROR_INIT" value=""/>
+      <member name="GST_LIBRARY_ERROR_SHUTDOWN" value=""/>
+      <member name="GST_LIBRARY_ERROR_SETTINGS" value=""/>
+      <member name="GST_LIBRARY_ERROR_ENCODE" value=""/>
+      <member name="GST_LIBRARY_ERROR_NUM_ERRORS" value=""/>
+    </enum>
+    <enum name="GstMessageType" type="flags" type-name="GstMessageType">
+      <member name="GST_MESSAGE_UNKNOWN" value="0"/>
+      <member name="GST_MESSAGE_EOS" value=""/>
+      <member name="GST_MESSAGE_ERROR" value=""/>
+      <member name="GST_MESSAGE_WARNING" value=""/>
+      <member name="GST_MESSAGE_INFO" value=""/>
+      <member name="GST_MESSAGE_TAG" value=""/>
+      <member name="GST_MESSAGE_BUFFERING" value=""/>
+      <member name="GST_MESSAGE_STATE_CHANGED" value=""/>
+      <member name="GST_MESSAGE_STATE_DIRTY" value=""/>
+      <member name="GST_MESSAGE_STEP_DONE" value=""/>
+      <member name="GST_MESSAGE_CLOCK_PROVIDE" value=""/>
+      <member name="GST_MESSAGE_CLOCK_LOST" value=""/>
+      <member name="GST_MESSAGE_NEW_CLOCK" value=""/>
+      <member name="GST_MESSAGE_STRUCTURE_CHANGE" value=""/>
+      <member name="GST_MESSAGE_STREAM_STATUS" value=""/>
+      <member name="GST_MESSAGE_APPLICATION" value=""/>
+      <member name="GST_MESSAGE_ELEMENT" value=""/>
+      <member name="GST_MESSAGE_SEGMENT_START" value=""/>
+      <member name="GST_MESSAGE_SEGMENT_DONE" value=""/>
+      <member name="GST_MESSAGE_DURATION" value=""/>
+      <member name="GST_MESSAGE_LATENCY" value=""/>
+      <member name="GST_MESSAGE_ASYNC_START" value=""/>
+      <member name="GST_MESSAGE_ASYNC_DONE" value=""/>
+      <member name="GST_MESSAGE_ANY" value="~0"/>
+    </enum>
+    <enum name="GstMiniObjectFlags" type="flags" type-name="GstMiniObjectFlags">
+      <member name="GST_MINI_OBJECT_FLAG_READONLY" value=""/>
+      <member name="GST_MINI_OBJECT_FLAG_LAST" value=""/>
+    </enum>
+    <enum name="GstObjectFlags" type="flags" type-name="GstObjectFlags">
+      <member name="GST_OBJECT_DISPOSING" value=""/>
+      <member name="GST_OBJECT_FLOATING" value=""/>
+      <member name="GST_OBJECT_FLAG_LAST" value=""/>
+    </enum>
+    <enum name="GstPadDirection" type="enum" type-name="GstPadDirection">
+      <member name="GST_PAD_UNKNOWN" value=""/>
+      <member name="GST_PAD_SRC" value=""/>
+      <member name="GST_PAD_SINK" value=""/>
+    </enum>
+    <enum name="GstPadFlags" type="enum" type-name="GstPadFlags">
+      <member name="GST_PAD_BLOCKED" value=""/>
+      <member name="GST_PAD_FLUSHING" value=""/>
+      <member name="GST_PAD_IN_GETCAPS" value=""/>
+      <member name="GST_PAD_IN_SETCAPS" value=""/>
+      <member name="GST_PAD_BLOCKING" value=""/>
+      <member name="GST_PAD_FLAG_LAST" value=""/>
+    </enum>
+    <enum name="GstPadLinkReturn" type="enum" type-name="GstPadLinkReturn">
+      <member name="GST_PAD_LINK_OK" value="0"/>
+      <member name="GST_PAD_LINK_WRONG_HIERARCHY" value="-1"/>
+      <member name="GST_PAD_LINK_WAS_LINKED" value="-2"/>
+      <member name="GST_PAD_LINK_WRONG_DIRECTION" value="-3"/>
+      <member name="GST_PAD_LINK_NOFORMAT" value="-4"/>
+      <member name="GST_PAD_LINK_NOSCHED" value="-5"/>
+      <member name="GST_PAD_LINK_REFUSED" value="-6"/>
+    </enum>
+    <enum name="GstPadPresence" type="enum" type-name="GstPadPresence">
+      <member name="GST_PAD_ALWAYS" value=""/>
+      <member name="GST_PAD_SOMETIMES" value=""/>
+      <member name="GST_PAD_REQUEST" value=""/>
+    </enum>
+    <enum name="GstPadTemplateFlags" type="enum" type-name="GstPadTemplateFlags">
+      <member name="GST_PAD_TEMPLATE_FIXED" value=""/>
+      <member name="GST_PAD_TEMPLATE_FLAG_LAST" value=""/>
+    </enum>
+    <enum name="GstParseError" type="enum" type-name="GstParseError">
+      <member name="GST_PARSE_ERROR_SYNTAX" value=""/>
+      <member name="GST_PARSE_ERROR_NO_SUCH_ELEMENT" value=""/>
+      <member name="GST_PARSE_ERROR_NO_SUCH_PROPERTY" value=""/>
+      <member name="GST_PARSE_ERROR_LINK" value=""/>
+      <member name="GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY" value=""/>
+      <member name="GST_PARSE_ERROR_EMPTY_BIN" value=""/>
+      <member name="GST_PARSE_ERROR_EMPTY" value=""/>
+    </enum>
+    <enum name="GstPipelineFlags" type="flags" type-name="GstPipelineFlags">
+      <member name="GST_PIPELINE_FLAG_FIXED_CLOCK" value="GST_BIN_FLAG_LAST &lt;&lt; 0"/>
+      <member name="GST_PIPELINE_FLAG_LAST" value="GST_BIN_FLAG_LAST &lt;&lt; 4"/>
+    </enum>
+    <enum name="GstPluginError" type="enum" type-name="GstPluginError">
+      <member name="GST_PLUGIN_ERROR_MODULE" value=""/>
+      <member name="GST_PLUGIN_ERROR_DEPENDENCIES" value=""/>
+      <member name="GST_PLUGIN_ERROR_NAME_MISMATCH" value=""/>
+    </enum>
+    <enum name="GstPluginFlags" type="flags" type-name="GstPluginFlags">
+      <member name="GST_PLUGIN_FLAG_CACHED" value=""/>
+    </enum>
+    <enum name="GstQuarkId" type="enum" type-name="GstQuarkId">
+      <member name="GST_QUARK_FORMAT" value="0"/>
+      <member name="GST_QUARK_CURRENT" value="1"/>
+      <member name="GST_QUARK_DURATION" value="2"/>
+      <member name="GST_QUARK_RATE" value="3"/>
+      <member name="GST_QUARK_SEEKABLE" value="4"/>
+      <member name="GST_QUARK_SEGMENT_START" value="5"/>
+      <member name="GST_QUARK_SEGMENT_END" value="6"/>
+      <member name="GST_QUARK_SRC_FORMAT" value="7"/>
+      <member name="GST_QUARK_SRC_VALUE" value="8"/>
+      <member name="GST_QUARK_DEST_FORMAT" value="9"/>
+      <member name="GST_QUARK_DEST_VALUE" value="10"/>
+      <member name="GST_QUARK_START_FORMAT" value="11"/>
+      <member name="GST_QUARK_START_VALUE" value="12"/>
+      <member name="GST_QUARK_STOP_FORMAT" value="13"/>
+      <member name="GST_QUARK_STOP_VALUE" value="14"/>
+      <member name="GST_QUARK_MAX" value="15"/>
+    </enum>
+    <enum name="GstQueryType" type="enum" type-name="GstQueryType">
+      <member name="GST_QUERY_NONE" value="0"/>
+      <member name="GST_QUERY_POSITION" value=""/>
+      <member name="GST_QUERY_DURATION" value=""/>
+      <member name="GST_QUERY_LATENCY" value=""/>
+      <member name="GST_QUERY_JITTER" value=""/>
+      <member name="GST_QUERY_RATE" value=""/>
+      <member name="GST_QUERY_SEEKING" value=""/>
+      <member name="GST_QUERY_SEGMENT" value=""/>
+      <member name="GST_QUERY_CONVERT" value=""/>
+      <member name="GST_QUERY_FORMATS" value=""/>
+    </enum>
+    <enum name="GstRank" type="enum" type-name="GstRank">
+      <member name="GST_RANK_NONE" value="0"/>
+      <member name="GST_RANK_MARGINAL" value="64"/>
+      <member name="GST_RANK_SECONDARY" value="128"/>
+      <member name="GST_RANK_PRIMARY" value="256"/>
+    </enum>
+    <enum name="GstResourceError" type="enum" type-name="GstResourceError">
+      <member name="GST_RESOURCE_ERROR_FAILED" value="1"/>
+      <member name="GST_RESOURCE_ERROR_TOO_LAZY" value=""/>
+      <member name="GST_RESOURCE_ERROR_NOT_FOUND" value=""/>
+      <member name="GST_RESOURCE_ERROR_BUSY" value=""/>
+      <member name="GST_RESOURCE_ERROR_OPEN_READ" value=""/>
+      <member name="GST_RESOURCE_ERROR_OPEN_WRITE" value=""/>
+      <member name="GST_RESOURCE_ERROR_OPEN_READ_WRITE" value=""/>
+      <member name="GST_RESOURCE_ERROR_CLOSE" value=""/>
+      <member name="GST_RESOURCE_ERROR_READ" value=""/>
+      <member name="GST_RESOURCE_ERROR_WRITE" value=""/>
+      <member name="GST_RESOURCE_ERROR_SEEK" value=""/>
+      <member name="GST_RESOURCE_ERROR_SYNC" value=""/>
+      <member name="GST_RESOURCE_ERROR_SETTINGS" value=""/>
+      <member name="GST_RESOURCE_ERROR_NO_SPACE_LEFT" value=""/>
+      <member name="GST_RESOURCE_ERROR_NUM_ERRORS" value=""/>
+    </enum>
+    <enum name="GstSeekFlags" type="flags" type-name="GstSeekFlags">
+      <member name="GST_SEEK_FLAG_NONE" value="0"/>
+      <member name="GST_SEEK_FLAG_FLUSH" value=""/>
+      <member name="GST_SEEK_FLAG_ACCURATE" value=""/>
+      <member name="GST_SEEK_FLAG_KEY_UNIT" value=""/>
+      <member name="GST_SEEK_FLAG_SEGMENT" value=""/>
+    </enum>
+    <enum name="GstSeekType" type="enum" type-name="GstSeekType">
+      <member name="GST_SEEK_TYPE_NONE" value="0"/>
+      <member name="GST_SEEK_TYPE_CUR" value="1"/>
+      <member name="GST_SEEK_TYPE_SET" value="2"/>
+      <member name="GST_SEEK_TYPE_END" value="3"/>
+    </enum>
+    <enum name="GstState" type="enum" type-name="GstState">
+      <member name="GST_STATE_VOID_PENDING" value="0"/>
+      <member name="GST_STATE_NULL" value="1"/>
+      <member name="GST_STATE_READY" value="2"/>
+      <member name="GST_STATE_PAUSED" value="3"/>
+      <member name="GST_STATE_PLAYING" value="4"/>
+    </enum>
+    <enum name="GstStateChange" type="flags" type-name="GstStateChange">
+      <member name="GST_STATE_CHANGE_NULL_TO_READY" value="GST_STATE_NULL&lt;&lt;3| GST_STATE_READY"/>
+      <member name="GST_STATE_CHANGE_READY_TO_PAUSED" value="GST_STATE_READY&lt;&lt;3| GST_STATE_PAUSED"/>
+      <member name="GST_STATE_CHANGE_PAUSED_TO_PLAYING" value="GST_STATE_PAUSED&lt;&lt;3| GST_STATE_PLAYING"/>
+      <member name="GST_STATE_CHANGE_PLAYING_TO_PAUSED" value="GST_STATE_PLAYING&lt;&lt;3| GST_STATE_PAUSED"/>
+      <member name="GST_STATE_CHANGE_PAUSED_TO_READY" value="GST_STATE_PAUSED&lt;&lt;3| GST_STATE_READY"/>
+      <member name="GST_STATE_CHANGE_READY_TO_NULL" value="GST_STATE_READY&lt;&lt;3| GST_STATE_NULL"/>
+    </enum>
+    <enum name="GstStateChangeReturn" type="enum" type-name="GstStateChangeReturn">
+      <member name="GST_STATE_CHANGE_FAILURE" value="0"/>
+      <member name="GST_STATE_CHANGE_SUCCESS" value="1"/>
+      <member name="GST_STATE_CHANGE_ASYNC" value="2"/>
+      <member name="GST_STATE_CHANGE_NO_PREROLL" value="3"/>
+    </enum>
+    <enum name="GstStreamError" type="enum" type-name="GstStreamError">
+      <member name="GST_STREAM_ERROR_FAILED" value="1"/>
+      <member name="GST_STREAM_ERROR_TOO_LAZY" value=""/>
+      <member name="GST_STREAM_ERROR_NOT_IMPLEMENTED" value=""/>
+      <member name="GST_STREAM_ERROR_TYPE_NOT_FOUND" value=""/>
+      <member name="GST_STREAM_ERROR_WRONG_TYPE" value=""/>
+      <member name="GST_STREAM_ERROR_CODEC_NOT_FOUND" value=""/>
+      <member name="GST_STREAM_ERROR_DECODE" value=""/>
+      <member name="GST_STREAM_ERROR_ENCODE" value=""/>
+      <member name="GST_STREAM_ERROR_DEMUX" value=""/>
+      <member name="GST_STREAM_ERROR_MUX" value=""/>
+      <member name="GST_STREAM_ERROR_FORMAT" value=""/>
+      <member name="GST_STREAM_ERROR_NUM_ERRORS" value=""/>
+    </enum>
+    <enum name="GstTagFlag" type="enum" type-name="GstTagFlag">
+      <member name="GST_TAG_FLAG_UNDEFINED" value=""/>
+      <member name="GST_TAG_FLAG_META" value=""/>
+      <member name="GST_TAG_FLAG_ENCODED" value=""/>
+      <member name="GST_TAG_FLAG_DECODED" value=""/>
+      <member name="GST_TAG_FLAG_COUNT" value=""/>
+    </enum>
+    <enum name="GstTagMergeMode" type="enum" type-name="GstTagMergeMode">
+      <member name="GST_TAG_MERGE_UNDEFINED" value=""/>
+      <member name="GST_TAG_MERGE_REPLACE_ALL" value=""/>
+      <member name="GST_TAG_MERGE_REPLACE" value=""/>
+      <member name="GST_TAG_MERGE_APPEND" value=""/>
+      <member name="GST_TAG_MERGE_PREPEND" value=""/>
+      <member name="GST_TAG_MERGE_KEEP" value=""/>
+      <member name="GST_TAG_MERGE_KEEP_ALL" value=""/>
+      <member name="GST_TAG_MERGE_COUNT" value=""/>
+    </enum>
+    <enum name="GstTaskState" type="enum" type-name="GstTaskState">
+      <member name="GST_TASK_STARTED" value=""/>
+      <member name="GST_TASK_STOPPED" value=""/>
+      <member name="GST_TASK_PAUSED" value=""/>
+    </enum>
+    <enum name="GstTypeFindProbability" type="enum" type-name="GstTypeFindProbability">
+      <member name="GST_TYPE_FIND_MINIMUM" value="1"/>
+      <member name="GST_TYPE_FIND_POSSIBLE" value="50"/>
+      <member name="GST_TYPE_FIND_LIKELY" value="80"/>
+      <member name="GST_TYPE_FIND_NEARLY_CERTAIN" value="99"/>
+      <member name="GST_TYPE_FIND_MAXIMUM" value="100"/>
+    </enum>
+    <enum name="GstURIType" type="enum" type-name="GstURIType">
+      <member name="GST_URI_UNKNOWN" value=""/>
+      <member name="GST_URI_SINK" value=""/>
+      <member name="GST_URI_SRC" value=""/>
+    </enum>
+    <callback name="GstBusFunc" type-name="GstBusFunc">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="bus" type="GstBus*"/>
+        <parameter name="message" type="GstMessage*"/>
+        <parameter name="data" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstBusSyncHandler" type-name="GstBusSyncHandler">
+      <return-type type="GstBusSyncReply"/>
+      <parameters>
+        <parameter name="bus" type="GstBus*"/>
+        <parameter name="message" type="GstMessage*"/>
+        <parameter name="data" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstClockCallback" type-name="GstClockCallback">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="clock" type="GstClock*"/>
+        <parameter name="time" type="GstClockTime"/>
+        <parameter name="id" type="GstClockID"/>
+        <parameter name="user_data" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstFilterFunc" type-name="GstFilterFunc">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="obj" type="gpointer"/>
+        <parameter name="user_data" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstIndexFilter" type-name="GstIndexFilter">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="index" type="GstIndex*"/>
+        <parameter name="entry" type="GstIndexEntry*"/>
+        <parameter name="user_data" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstIndexResolver" type-name="GstIndexResolver">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="index" type="GstIndex*"/>
+        <parameter name="writer" type="GstObject*"/>
+        <parameter name="writer_string" type="gchar**"/>
+        <parameter name="user_data" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstIteratorDisposeFunction" type-name="GstIteratorDisposeFunction">
+      <return-type type="void"/>
+      <parameters>
+        <parameter name="owner" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstIteratorFoldFunction" type-name="GstIteratorFoldFunction">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="item" type="gpointer"/>
+        <parameter name="ret" type="GValue*"/>
+        <parameter name="user_data" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstIteratorFreeFunction" type-name="GstIteratorFreeFunction">
+      <return-type type="void"/>
+      <parameters>
+        <parameter name="it" type="GstIterator*"/>
+      </parameters>
+    </callback>
+    <callback name="GstIteratorItemFunction" type-name="GstIteratorItemFunction">
+      <return-type type="GstIteratorItem"/>
+      <parameters>
+        <parameter name="it" type="GstIterator*"/>
+        <parameter name="item" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstIteratorNextFunction" type-name="GstIteratorNextFunction">
+      <return-type type="GstIteratorResult"/>
+      <parameters>
+        <parameter name="it" type="GstIterator*"/>
+        <parameter name="result" type="gpointer*"/>
+      </parameters>
+    </callback>
+    <callback name="GstIteratorResyncFunction" type-name="GstIteratorResyncFunction">
+      <return-type type="void"/>
+      <parameters>
+        <parameter name="it" type="GstIterator*"/>
+      </parameters>
+    </callback>
+    <callback name="GstLogFunction" type-name="GstLogFunction">
+      <return-type type="void"/>
+      <parameters>
+        <parameter name="category" type="GstDebugCategory*"/>
+        <parameter name="level" type="GstDebugLevel"/>
+        <parameter name="file" type="const-gchar*"/>
+        <parameter name="function" type="const-gchar*"/>
+        <parameter name="line" type="gint"/>
+        <parameter name="object" type="GObject*"/>
+        <parameter name="message" type="GstDebugMessage*"/>
+        <parameter name="data" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstMiniObjectCopyFunction" type-name="GstMiniObjectCopyFunction">
+      <return-type type="GstMiniObject*"/>
+      <parameters>
+        <parameter name="obj" type="const-GstMiniObject*"/>
+      </parameters>
+    </callback>
+    <callback name="GstMiniObjectFinalizeFunction" type-name="GstMiniObjectFinalizeFunction">
+      <return-type type="void"/>
+      <parameters>
+        <parameter name="obj" type="GstMiniObject*"/>
+      </parameters>
+    </callback>
+    <callback name="GstPadAcceptCapsFunction" type-name="GstPadAcceptCapsFunction">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="pad" type="GstPad*"/>
+        <parameter name="caps" type="GstCaps*"/>
+      </parameters>
+    </callback>
+    <callback name="GstPadActivateFunction" type-name="GstPadActivateFunction">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="pad" type="GstPad*"/>
+      </parameters>
+    </callback>
+    <callback name="GstPadActivateModeFunction" type-name="GstPadActivateModeFunction">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="pad" type="GstPad*"/>
+        <parameter name="active" type="gboolean"/>
+      </parameters>
+    </callback>
+    <callback name="GstPadBlockCallback" type-name="GstPadBlockCallback">
+      <return-type type="void"/>
+      <parameters>
+        <parameter name="pad" type="GstPad*"/>
+        <parameter name="blocked" type="gboolean"/>
+        <parameter name="user_data" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstPadBufferAllocFunction" type-name="GstPadBufferAllocFunction">
+      <return-type type="GstFlowReturn"/>
+      <parameters>
+        <parameter name="pad" type="GstPad*"/>
+        <parameter name="offset" type="guint64"/>
+        <parameter name="size" type="guint"/>
+        <parameter name="caps" type="GstCaps*"/>
+        <parameter name="buf" type="GstBuffer**"/>
+      </parameters>
+    </callback>
+    <callback name="GstPadChainFunction" type-name="GstPadChainFunction">
+      <return-type type="GstFlowReturn"/>
+      <parameters>
+        <parameter name="pad" type="GstPad*"/>
+        <parameter name="buffer" type="GstBuffer*"/>
+      </parameters>
+    </callback>
+    <callback name="GstPadCheckGetRangeFunction" type-name="GstPadCheckGetRangeFunction">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="pad" type="GstPad*"/>
+      </parameters>
+    </callback>
+    <callback name="GstPadDispatcherFunction" type-name="GstPadDispatcherFunction">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="pad" type="GstPad*"/>
+        <parameter name="data" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstPadEventFunction" type-name="GstPadEventFunction">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="pad" type="GstPad*"/>
+        <parameter name="event" type="GstEvent*"/>
+      </parameters>
+    </callback>
+    <callback name="GstPadFixateCapsFunction" type-name="GstPadFixateCapsFunction">
+      <return-type type="void"/>
+      <parameters>
+        <parameter name="pad" type="GstPad*"/>
+        <parameter name="caps" type="GstCaps*"/>
+      </parameters>
+    </callback>
+    <callback name="GstPadGetCapsFunction" type-name="GstPadGetCapsFunction">
+      <return-type type="GstCaps*"/>
+      <parameters>
+        <parameter name="pad" type="GstPad*"/>
+      </parameters>
+    </callback>
+    <callback name="GstPadGetRangeFunction" type-name="GstPadGetRangeFunction">
+      <return-type type="GstFlowReturn"/>
+      <parameters>
+        <parameter name="pad" type="GstPad*"/>
+        <parameter name="offset" type="guint64"/>
+        <parameter name="length" type="guint"/>
+        <parameter name="buffer" type="GstBuffer**"/>
+      </parameters>
+    </callback>
+    <callback name="GstPadIntLinkFunction" type-name="GstPadIntLinkFunction">
+      <return-type type="GList*"/>
+      <parameters>
+        <parameter name="pad" type="GstPad*"/>
+      </parameters>
+    </callback>
+    <callback name="GstPadLinkFunction" type-name="GstPadLinkFunction">
+      <return-type type="GstPadLinkReturn"/>
+      <parameters>
+        <parameter name="pad" type="GstPad*"/>
+        <parameter name="peer" type="GstPad*"/>
+      </parameters>
+    </callback>
+    <callback name="GstPadQueryFunction" type-name="GstPadQueryFunction">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="pad" type="GstPad*"/>
+        <parameter name="query" type="GstQuery*"/>
+      </parameters>
+    </callback>
+    <callback name="GstPadSetCapsFunction" type-name="GstPadSetCapsFunction">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="pad" type="GstPad*"/>
+        <parameter name="caps" type="GstCaps*"/>
+      </parameters>
+    </callback>
+    <callback name="GstPadUnlinkFunction" type-name="GstPadUnlinkFunction">
+      <return-type type="void"/>
+      <parameters>
+        <parameter name="pad" type="GstPad*"/>
+      </parameters>
+    </callback>
+    <callback name="GstPluginFeatureFilter" type-name="GstPluginFeatureFilter">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="feature" type="GstPluginFeature*"/>
+        <parameter name="user_data" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstPluginFilter" type-name="GstPluginFilter">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="plugin" type="GstPlugin*"/>
+        <parameter name="user_data" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstPluginInitFunc" type-name="GstPluginInitFunc">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="plugin" type="GstPlugin*"/>
+      </parameters>
+    </callback>
+    <callback name="GstStructureForeachFunc" type-name="GstStructureForeachFunc">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="field_id" type="GQuark"/>
+        <parameter name="value" type="const-GValue*"/>
+        <parameter name="user_data" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstStructureMapFunc" type-name="GstStructureMapFunc">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="field_id" type="GQuark"/>
+        <parameter name="value" type="GValue*"/>
+        <parameter name="user_data" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstTagForeachFunc" type-name="GstTagForeachFunc">
+      <return-type type="void"/>
+      <parameters>
+        <parameter name="list" type="const-GstTagList*"/>
+        <parameter name="tag" type="const-gchar*"/>
+        <parameter name="user_data" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstTagMergeFunc" type-name="GstTagMergeFunc">
+      <return-type type="void"/>
+      <parameters>
+        <parameter name="dest" type="GValue*"/>
+        <parameter name="src" type="const-GValue*"/>
+      </parameters>
+    </callback>
+    <callback name="GstTaskFunction" type-name="GstTaskFunction">
+      <return-type type="void"/>
+      <parameters>
+        <parameter name="data" type="void*"/>
+      </parameters>
+    </callback>
+    <callback name="GstTypeFindFunction" type-name="GstTypeFindFunction">
+      <return-type type="void"/>
+      <parameters>
+        <parameter name="find" type="GstTypeFind*"/>
+        <parameter name="data" type="gpointer"/>
+      </parameters>
+    </callback>
+    <callback name="GstValueCompareFunc" type-name="GstValueCompareFunc">
+      <return-type type="gint"/>
+      <parameters>
+        <parameter name="value1" type="const-GValue*"/>
+        <parameter name="value2" type="const-GValue*"/>
+      </parameters>
+    </callback>
+    <callback name="GstValueDeserializeFunc" type-name="GstValueDeserializeFunc">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="dest" type="GValue*"/>
+        <parameter name="s" type="const-gchar*"/>
+      </parameters>
+    </callback>
+    <callback name="GstValueIntersectFunc" type-name="GstValueIntersectFunc">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="dest" type="GValue*"/>
+        <parameter name="value1" type="const-GValue*"/>
+        <parameter name="value2" type="const-GValue*"/>
+      </parameters>
+    </callback>
+    <callback name="GstValueSerializeFunc" type-name="GstValueSerializeFunc">
+      <return-type type="gchar*"/>
+      <parameters>
+        <parameter name="value1" type="const-GValue*"/>
+      </parameters>
+    </callback>
+    <callback name="GstValueSubtractFunc" type-name="GstValueSubtractFunc">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="dest" type="GValue*"/>
+        <parameter name="minuend" type="const-GValue*"/>
+        <parameter name="subtrahend" type="const-GValue*"/>
+      </parameters>
+    </callback>
+    <callback name="GstValueUnionFunc" type-name="GstValueUnionFunc">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="dest" type="GValue*"/>
+        <parameter name="value1" type="const-GValue*"/>
+        <parameter name="value2" type="const-GValue*"/>
+      </parameters>
+    </callback>
+    <interface get-type="" name="GstChildProxy" type-name="GstChildProxy">
+      <signal name="child_added" when="FIRST"/>
+      <signal name="child_removed" when="FIRST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="parent" type="GstChildProxy*"/>
+          <parameter name="child" type="GstObject*"/>
+        </parameters>
+      </signal>
+      <vfunc name="get_child_by_index">
+        <return-type type="GstObject*"/>
+        <parameters>
+          <parameter name="parent" type="GstChildProxy*"/>
+          <parameter name="index" type="guint"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="get_children_count">
+        <return-type type="guint"/>
+        <parameters>
+          <parameter name="parent" type="GstChildProxy*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="child_added">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="parent" type="GstChildProxy*"/>
+          <parameter name="child" type="GstObject*"/>
+        </parameters>
+      </vfunc>
+      <method name="child_added" symbol="gst_child_proxy_child_added">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="child" type="GstObject*"/>
+        </parameters>
+      </method>
+      <method name="child_removed" symbol="gst_child_proxy_child_removed">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="child" type="GstObject*"/>
+        </parameters>
+      </method>
+      <method name="get" symbol="gst_child_proxy_get">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="first_property_name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_child_by_index" symbol="gst_child_proxy_get_child_by_index">
+        <return-type type="GstObject*"/>
+        <parameters>
+          <parameter name="parent" type="GstChildProxy*"/>
+          <parameter name="index" type="guint"/>
+        </parameters>
+      </method>
+      <method name="get_child_by_name" symbol="gst_child_proxy_get_child_by_name">
+        <return-type type="GstObject*"/>
+        <parameters>
+          <parameter name="parent" type="GstChildProxy*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_children_count" symbol="gst_child_proxy_get_children_count">
+        <return-type type="guint"/>
+        <parameters>
+          <parameter name="parent" type="GstChildProxy*"/>
+        </parameters>
+      </method>
+      <method name="get_property" symbol="gst_child_proxy_get_property">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="name" type="const-gchar*"/>
+          <parameter name="value" type="GValue*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_child_proxy_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="get_valist" symbol="gst_child_proxy_get_valist">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="first_property_name" type="const-gchar*"/>
+          <parameter name="var_args" type="va_list"/>
+        </parameters>
+      </method>
+      <method name="lookup" symbol="gst_child_proxy_lookup">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="name" type="const-gchar*"/>
+          <parameter name="target" type="GstObject**"/>
+          <parameter name="pspec" type="GParamSpec**"/>
+        </parameters>
+      </method>
+      <method name="set" symbol="gst_child_proxy_set">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="first_property_name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="set_property" symbol="gst_child_proxy_set_property">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="name" type="const-gchar*"/>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="set_valist" symbol="gst_child_proxy_set_valist">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="first_property_name" type="const-gchar*"/>
+          <parameter name="var_args" type="va_list"/>
+        </parameters>
+      </method>
+    </interface>
+    <interface get-type="" name="GstImplementsInterface" type-name="GstImplementsInterface">
+      <vfunc name="supported">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="iface" type="GstImplementsInterface*"/>
+          <parameter name="iface_type" type="GType"/>
+        </parameters>
+      </vfunc>
+      <method name="cast" symbol="gst_implements_interface_cast">
+        <return-type type="gpointer"/>
+        <parameters>
+          <parameter name="from" type="gpointer"/>
+          <parameter name="type" type="GType"/>
+        </parameters>
+      </method>
+      <method name="check" symbol="gst_implements_interface_check">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="from" type="gpointer"/>
+          <parameter name="type" type="GType"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_implements_interface_get_type">
+        <return-type type="GType"/>
+      </method>
+    </interface>
+    <interface get-type="" name="GstTagSetter" type-name="GstTagSetter">
+      <method name="add_tag_valist" symbol="gst_tag_setter_add_tag_valist">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="setter" type="GstTagSetter*"/>
+          <parameter name="mode" type="GstTagMergeMode"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="var_args" type="va_list"/>
+        </parameters>
+      </method>
+      <method name="add_tag_valist_values" symbol="gst_tag_setter_add_tag_valist_values">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="setter" type="GstTagSetter*"/>
+          <parameter name="mode" type="GstTagMergeMode"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="var_args" type="va_list"/>
+        </parameters>
+      </method>
+      <method name="add_tag_values" symbol="gst_tag_setter_add_tag_values">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="setter" type="GstTagSetter*"/>
+          <parameter name="mode" type="GstTagMergeMode"/>
+          <parameter name="tag" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="add_tags" symbol="gst_tag_setter_add_tags">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="setter" type="GstTagSetter*"/>
+          <parameter name="mode" type="GstTagMergeMode"/>
+          <parameter name="tag" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_tag_list" symbol="gst_tag_setter_get_tag_list">
+        <return-type type="const-GstTagList*"/>
+        <parameters>
+          <parameter name="setter" type="GstTagSetter*"/>
+        </parameters>
+      </method>
+      <method name="get_tag_merge_mode" symbol="gst_tag_setter_get_tag_merge_mode">
+        <return-type type="GstTagMergeMode"/>
+        <parameters>
+          <parameter name="setter" type="GstTagSetter*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_tag_setter_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="merge_tags" symbol="gst_tag_setter_merge_tags">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="setter" type="GstTagSetter*"/>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="mode" type="GstTagMergeMode"/>
+        </parameters>
+      </method>
+      <method name="set_tag_merge_mode" symbol="gst_tag_setter_set_tag_merge_mode">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="setter" type="GstTagSetter*"/>
+          <parameter name="mode" type="GstTagMergeMode"/>
+        </parameters>
+      </method>
+    </interface>
+    <interface get-type="" name="GstURIHandler" type-name="GstURIHandler">
+      <signal name="new_uri" when="LAST"/>
+      <vfunc name="new_uri">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="handler" type="GstURIHandler*"/>
+          <parameter name="uri" type="const-gchar*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="get_type">
+        <return-type type="GstURIType"/>
+      </vfunc>
+      <vfunc name="get_protocols">
+        <return-type type="gchar**"/>
+      </vfunc>
+      <vfunc name="get_uri">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="handler" type="GstURIHandler*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="set_uri">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="handler" type="GstURIHandler*"/>
+          <parameter name="uri" type="const-gchar*"/>
+        </parameters>
+      </vfunc>
+      <method name="get_protocols" symbol="gst_uri_handler_get_protocols">
+        <return-type type="gchar**"/>
+        <parameters>
+          <parameter name="handler" type="GstURIHandler*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_uri_handler_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="get_uri" symbol="gst_uri_handler_get_uri">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="handler" type="GstURIHandler*"/>
+        </parameters>
+      </method>
+      <method name="get_uri_type" symbol="gst_uri_handler_get_uri_type">
+        <return-type type="guint"/>
+        <parameters>
+          <parameter name="handler" type="GstURIHandler*"/>
+        </parameters>
+      </method>
+      <method name="new_uri" symbol="gst_uri_handler_new_uri">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="handler" type="GstURIHandler*"/>
+          <parameter name="uri" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="set_uri" symbol="gst_uri_handler_set_uri">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="handler" type="GstURIHandler*"/>
+          <parameter name="uri" type="const-gchar*"/>
+        </parameters>
+      </method>
+    </interface>
+    <object get-type="" name="GstBin" parent="GstElement" type-name="GstBin">
+      <field name="numchildren" readable="1" type="gint" writable="1"/>
+      <field name="children" readable="1" type="GList*" writable="1"/>
+      <field name="children_cookie" readable="1" type="guint32" writable="1"/>
+      <field name="child_bus" readable="1" type="GstBus*" writable="1"/>
+      <field name="messages" readable="1" type="GList*" writable="1"/>
+      <field name="polling" readable="1" type="gboolean" writable="1"/>
+      <field name="state_dirty" readable="1" type="gboolean" writable="1"/>
+      <field name="clock_dirty" readable="1" type="gboolean" writable="1"/>
+      <field name="provided_clock" readable="1" type="GstClock*" writable="1"/>
+      <field name="clock_provider" readable="1" type="GstElement*" writable="1"/>
+      <field name="priv" readable="1" type="GstBinPrivate*" writable="1"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <property name="async-handling" readable="1" type="gboolean" writable="1"/>
+      <signal name="element_added" when="FIRST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+          <parameter name="child" type="GstElement*"/>
+        </parameters>
+      </signal>
+      <signal name="element_removed" when="FIRST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+          <parameter name="child" type="GstElement*"/>
+        </parameters>
+      </signal>
+      <vfunc name="add_element">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="remove_element">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="handle_message">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+          <parameter name="message" type="GstMessage*"/>
+        </parameters>
+      </vfunc>
+      <implements>
+        <interface name="GstChildProxy"/>
+      </implements>
+      <method name="add" symbol="gst_bin_add">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="add_many" symbol="gst_bin_add_many">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+          <parameter name="element_1" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="find_unconnected_pad" symbol="gst_bin_find_unconnected_pad">
+        <return-type type="GstPad*"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+          <parameter name="direction" type="GstPadDirection"/>
+        </parameters>
+      </method>
+      <method name="get_by_interface" symbol="gst_bin_get_by_interface">
+        <return-type type="GstElement*"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+          <parameter name="iface" type="GType"/>
+        </parameters>
+      </method>
+      <method name="get_by_name" symbol="gst_bin_get_by_name">
+        <return-type type="GstElement*"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_by_name_recurse_up" symbol="gst_bin_get_by_name_recurse_up">
+        <return-type type="GstElement*"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_bin_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="iterate_all_by_interface" symbol="gst_bin_iterate_all_by_interface">
+        <return-type type="GstIterator*"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+          <parameter name="iface" type="GType"/>
+        </parameters>
+      </method>
+      <method name="iterate_elements" symbol="gst_bin_iterate_elements">
+        <return-type type="GstIterator*"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+        </parameters>
+      </method>
+      <method name="iterate_recurse" symbol="gst_bin_iterate_recurse">
+        <return-type type="GstIterator*"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+        </parameters>
+      </method>
+      <method name="iterate_sinks" symbol="gst_bin_iterate_sinks">
+        <return-type type="GstIterator*"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+        </parameters>
+      </method>
+      <method name="iterate_sorted" symbol="gst_bin_iterate_sorted">
+        <return-type type="GstIterator*"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+        </parameters>
+      </method>
+      <method name="iterate_sources" symbol="gst_bin_iterate_sources">
+        <return-type type="GstIterator*"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+        </parameters>
+      </method>
+      <constructor name="new" symbol="gst_bin_new">
+        <parameters>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </constructor>
+      <method name="remove" symbol="gst_bin_remove">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="remove_many" symbol="gst_bin_remove_many">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="bin" type="GstBin*"/>
+          <parameter name="element_1" type="GstElement*"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstBuffer" parent="GstMiniObject" type-name="GstBuffer">
+      <field name="data" readable="1" type="guint8*" writable="1"/>
+      <field name="size" readable="1" type="guint" writable="1"/>
+      <field name="timestamp" readable="1" type="GstClockTime" writable="1"/>
+      <field name="duration" readable="1" type="GstClockTime" writable="1"/>
+      <field name="caps" readable="1" type="GstCaps*" writable="1"/>
+      <field name="offset" readable="1" type="guint64" writable="1"/>
+      <field name="offset_end" readable="1" type="guint64" writable="1"/>
+      <field name="malloc_data" readable="1" type="guint8*" writable="1"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <method name="copy_metadata" symbol="gst_buffer_copy_metadata">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="dest" type="GstBuffer*"/>
+          <parameter name="src" type="const-GstBuffer*"/>
+          <parameter name="flags" type="GstBufferCopyFlags"/>
+        </parameters>
+      </method>
+      <method name="create_sub" symbol="gst_buffer_create_sub">
+        <return-type type="GstBuffer*"/>
+        <parameters>
+          <parameter name="parent" type="GstBuffer*"/>
+          <parameter name="offset" type="guint"/>
+          <parameter name="size" type="guint"/>
+        </parameters>
+      </method>
+      <method name="get_caps" symbol="gst_buffer_get_caps">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="buffer" type="GstBuffer*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_buffer_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="is_metadata_writable" symbol="gst_buffer_is_metadata_writable">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="buf" type="GstBuffer*"/>
+        </parameters>
+      </method>
+      <method name="is_span_fast" symbol="gst_buffer_is_span_fast">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="buf1" type="GstBuffer*"/>
+          <parameter name="buf2" type="GstBuffer*"/>
+        </parameters>
+      </method>
+      <method name="join" symbol="gst_buffer_join">
+        <return-type type="GstBuffer*"/>
+        <parameters>
+          <parameter name="buf1" type="GstBuffer*"/>
+          <parameter name="buf2" type="GstBuffer*"/>
+        </parameters>
+      </method>
+      <method name="make_metadata_writable" symbol="gst_buffer_make_metadata_writable">
+        <return-type type="GstBuffer*"/>
+        <parameters>
+          <parameter name="buf" type="GstBuffer*"/>
+        </parameters>
+      </method>
+      <method name="merge" symbol="gst_buffer_merge">
+        <return-type type="GstBuffer*"/>
+        <parameters>
+          <parameter name="buf1" type="GstBuffer*"/>
+          <parameter name="buf2" type="GstBuffer*"/>
+        </parameters>
+      </method>
+      <constructor name="new" symbol="gst_buffer_new"/>
+      <constructor name="new_and_alloc" symbol="gst_buffer_new_and_alloc">
+        <parameters>
+          <parameter name="size" type="guint"/>
+        </parameters>
+      </constructor>
+      <method name="set_caps" symbol="gst_buffer_set_caps">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="buffer" type="GstBuffer*"/>
+          <parameter name="caps" type="GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="span" symbol="gst_buffer_span">
+        <return-type type="GstBuffer*"/>
+        <parameters>
+          <parameter name="buf1" type="GstBuffer*"/>
+          <parameter name="offset" type="guint32"/>
+          <parameter name="buf2" type="GstBuffer*"/>
+          <parameter name="len" type="guint32"/>
+        </parameters>
+      </method>
+      <method name="stamp" symbol="gst_buffer_stamp">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="dest" type="GstBuffer*"/>
+          <parameter name="src" type="const-GstBuffer*"/>
+        </parameters>
+      </method>
+      <method name="try_new_and_alloc" symbol="gst_buffer_try_new_and_alloc">
+        <return-type type="GstBuffer*"/>
+        <parameters>
+          <parameter name="size" type="guint"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstBus" parent="GstObject" type-name="GstBus">
+      <field name="queue" type="GQueue*"/>
+      <field name="queue_lock" type="GMutex*"/>
+      <field name="sync_handler" type="GstBusSyncHandler"/>
+      <field name="sync_handler_data" type="gpointer"/>
+      <field name="signal_watch_id" type="guint"/>
+      <field name="num_signal_watchers" type="guint"/>
+      <field name="priv" type="GstBusPrivate*"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <signal name="sync_message" when="LAST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+          <parameter name="message" type="GstMessage*"/>
+        </parameters>
+      </signal>
+      <signal name="message" when="LAST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+          <parameter name="message" type="GstMessage*"/>
+        </parameters>
+      </signal>
+      <method name="add_signal_watch" symbol="gst_bus_add_signal_watch">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+        </parameters>
+      </method>
+      <method name="add_signal_watch_full" symbol="gst_bus_add_signal_watch_full">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+          <parameter name="priority" type="gint"/>
+        </parameters>
+      </method>
+      <method name="add_watch" symbol="gst_bus_add_watch">
+        <return-type type="guint"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+          <parameter name="func" type="GstBusFunc"/>
+          <parameter name="user_data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="add_watch_full" symbol="gst_bus_add_watch_full">
+        <return-type type="guint"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+          <parameter name="priority" type="gint"/>
+          <parameter name="func" type="GstBusFunc"/>
+          <parameter name="user_data" type="gpointer"/>
+          <parameter name="notify" type="GDestroyNotify"/>
+        </parameters>
+      </method>
+      <method name="async_signal_func" symbol="gst_bus_async_signal_func">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+          <parameter name="message" type="GstMessage*"/>
+          <parameter name="data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="create_watch" symbol="gst_bus_create_watch">
+        <return-type type="GSource*"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+        </parameters>
+      </method>
+      <method name="disable_sync_message_emission" symbol="gst_bus_disable_sync_message_emission">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+        </parameters>
+      </method>
+      <method name="enable_sync_message_emission" symbol="gst_bus_enable_sync_message_emission">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_bus_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="have_pending" symbol="gst_bus_have_pending">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+        </parameters>
+      </method>
+      <constructor name="new" symbol="gst_bus_new"/>
+      <method name="peek" symbol="gst_bus_peek">
+        <return-type type="GstMessage*"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+        </parameters>
+      </method>
+      <method name="poll" symbol="gst_bus_poll">
+        <return-type type="GstMessage*"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+          <parameter name="events" type="GstMessageType"/>
+          <parameter name="timeout" type="GstClockTimeDiff"/>
+        </parameters>
+      </method>
+      <method name="pop" symbol="gst_bus_pop">
+        <return-type type="GstMessage*"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+        </parameters>
+      </method>
+      <method name="post" symbol="gst_bus_post">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+          <parameter name="message" type="GstMessage*"/>
+        </parameters>
+      </method>
+      <method name="remove_signal_watch" symbol="gst_bus_remove_signal_watch">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+        </parameters>
+      </method>
+      <method name="set_flushing" symbol="gst_bus_set_flushing">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+          <parameter name="flushing" type="gboolean"/>
+        </parameters>
+      </method>
+      <method name="set_sync_handler" symbol="gst_bus_set_sync_handler">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+          <parameter name="func" type="GstBusSyncHandler"/>
+          <parameter name="data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="sync_signal_handler" symbol="gst_bus_sync_signal_handler">
+        <return-type type="GstBusSyncReply"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+          <parameter name="message" type="GstMessage*"/>
+          <parameter name="data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="timed_pop" symbol="gst_bus_timed_pop">
+        <return-type type="GstMessage*"/>
+        <parameters>
+          <parameter name="bus" type="GstBus*"/>
+          <parameter name="timeout" type="GstClockTime"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstClock" parent="GstObject" type-name="GstClock">
+      <field name="slave_lock" type="GMutex*"/>
+      <field name="internal_calibration" type="GstClockTime"/>
+      <field name="external_calibration" type="GstClockTime"/>
+      <field name="rate_numerator" type="GstClockTime"/>
+      <field name="rate_denominator" type="GstClockTime"/>
+      <field name="last_time" type="GstClockTime"/>
+      <field name="entries" type="GList*"/>
+      <field name="entries_changed" type="GCond*"/>
+      <field name="resolution" type="GstClockTime"/>
+      <field name="stats" type="gboolean"/>
+      <field name="master" type="GstClock*"/>
+      <field name="filling" type="gboolean"/>
+      <field name="window_size" type="gint"/>
+      <field name="window_threshold" type="gint"/>
+      <field name="time_index" type="gint"/>
+      <field name="timeout" type="GstClockTime"/>
+      <field name="times" type="GstClockTime*"/>
+      <field name="clockid" type="GstClockID"/>
+      <field name="_gst_reserved" type="GstClockTime"/>
+      <property name="stats" readable="1" type="gboolean" writable="1"/>
+      <property name="window-size" readable="1" type="gint" writable="1"/>
+      <property name="window-threshold" readable="1" type="gint" writable="1"/>
+      <property name="timeout" readable="1" type="guint64" writable="1"/>
+      <vfunc name="change_resolution">
+        <return-type type="GstClockTime"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+          <parameter name="old_resolution" type="GstClockTime"/>
+          <parameter name="new_resolution" type="GstClockTime"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="get_resolution">
+        <return-type type="GstClockTime"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="get_internal_time">
+        <return-type type="GstClockTime"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="wait">
+        <return-type type="GstClockReturn"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+          <parameter name="entry" type="GstClockEntry*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="wait_async">
+        <return-type type="GstClockReturn"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+          <parameter name="entry" type="GstClockEntry*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="unschedule">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+          <parameter name="entry" type="GstClockEntry*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="wait_jitter">
+        <return-type type="GstClockReturn"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+          <parameter name="entry" type="GstClockEntry*"/>
+          <parameter name="jitter" type="GstClockTimeDiff*"/>
+        </parameters>
+      </vfunc>
+      <method name="add_observation" symbol="gst_clock_add_observation">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+          <parameter name="slave" type="GstClockTime"/>
+          <parameter name="master" type="GstClockTime"/>
+          <parameter name="r_squared" type="gdouble*"/>
+        </parameters>
+      </method>
+      <method name="adjust_unlocked" symbol="gst_clock_adjust_unlocked">
+        <return-type type="GstClockTime"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+          <parameter name="internal" type="GstClockTime"/>
+        </parameters>
+      </method>
+      <method name="get_calibration" symbol="gst_clock_get_calibration">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+          <parameter name="internal" type="GstClockTime*"/>
+          <parameter name="external" type="GstClockTime*"/>
+          <parameter name="rate_num" type="GstClockTime*"/>
+          <parameter name="rate_denom" type="GstClockTime*"/>
+        </parameters>
+      </method>
+      <method name="get_internal_time" symbol="gst_clock_get_internal_time">
+        <return-type type="GstClockTime"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+        </parameters>
+      </method>
+      <method name="get_master" symbol="gst_clock_get_master">
+        <return-type type="GstClock*"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+        </parameters>
+      </method>
+      <method name="get_resolution" symbol="gst_clock_get_resolution">
+        <return-type type="GstClockTime"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+        </parameters>
+      </method>
+      <method name="get_time" symbol="gst_clock_get_time">
+        <return-type type="GstClockTime"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_clock_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="id_compare_func" symbol="gst_clock_id_compare_func">
+        <return-type type="gint"/>
+        <parameters>
+          <parameter name="id1" type="gconstpointer"/>
+          <parameter name="id2" type="gconstpointer"/>
+        </parameters>
+      </method>
+      <method name="id_get_time" symbol="gst_clock_id_get_time">
+        <return-type type="GstClockTime"/>
+        <parameters>
+          <parameter name="id" type="GstClockID"/>
+        </parameters>
+      </method>
+      <method name="id_ref" symbol="gst_clock_id_ref">
+        <return-type type="GstClockID"/>
+        <parameters>
+          <parameter name="id" type="GstClockID"/>
+        </parameters>
+      </method>
+      <method name="id_unref" symbol="gst_clock_id_unref">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="id" type="GstClockID"/>
+        </parameters>
+      </method>
+      <method name="id_unschedule" symbol="gst_clock_id_unschedule">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="id" type="GstClockID"/>
+        </parameters>
+      </method>
+      <method name="id_wait" symbol="gst_clock_id_wait">
+        <return-type type="GstClockReturn"/>
+        <parameters>
+          <parameter name="id" type="GstClockID"/>
+          <parameter name="jitter" type="GstClockTimeDiff*"/>
+        </parameters>
+      </method>
+      <method name="id_wait_async" symbol="gst_clock_id_wait_async">
+        <return-type type="GstClockReturn"/>
+        <parameters>
+          <parameter name="id" type="GstClockID"/>
+          <parameter name="func" type="GstClockCallback"/>
+          <parameter name="user_data" type="gpointer"/>
+        </parameters>
+      </method>
+      <constructor name="new_periodic_id" symbol="gst_clock_new_periodic_id">
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+          <parameter name="start_time" type="GstClockTime"/>
+          <parameter name="interval" type="GstClockTime"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_single_shot_id" symbol="gst_clock_new_single_shot_id">
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+          <parameter name="time" type="GstClockTime"/>
+        </parameters>
+      </constructor>
+      <method name="set_calibration" symbol="gst_clock_set_calibration">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+          <parameter name="internal" type="GstClockTime"/>
+          <parameter name="external" type="GstClockTime"/>
+          <parameter name="rate_num" type="GstClockTime"/>
+          <parameter name="rate_denom" type="GstClockTime"/>
+        </parameters>
+      </method>
+      <method name="set_master" symbol="gst_clock_set_master">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+          <parameter name="master" type="GstClock*"/>
+        </parameters>
+      </method>
+      <method name="set_resolution" symbol="gst_clock_set_resolution">
+        <return-type type="GstClockTime"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+          <parameter name="resolution" type="GstClockTime"/>
+        </parameters>
+      </method>
+      <method name="unadjust_unlocked" symbol="gst_clock_unadjust_unlocked">
+        <return-type type="GstClockTime"/>
+        <parameters>
+          <parameter name="clock" type="GstClock*"/>
+          <parameter name="external" type="GstClockTime"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstElement" parent="GstObject" type-name="GstElement">
+      <field name="state_lock" readable="1" type="GStaticRecMutex*" writable="1"/>
+      <field name="state_cond" readable="1" type="GCond*" writable="1"/>
+      <field name="state_cookie" readable="1" type="guint32" writable="1"/>
+      <field name="current_state" readable="1" type="GstState" writable="1"/>
+      <field name="next_state" readable="1" type="GstState" writable="1"/>
+      <field name="pending_state" readable="1" type="GstState" writable="1"/>
+      <field name="last_return" readable="1" type="GstStateChangeReturn" writable="1"/>
+      <field name="bus" readable="1" type="GstBus*" writable="1"/>
+      <field name="clock" readable="1" type="GstClock*" writable="1"/>
+      <field name="base_time" readable="1" type="GstClockTimeDiff" writable="1"/>
+      <field name="numpads" readable="1" type="guint16" writable="1"/>
+      <field name="pads" readable="1" type="GList*" writable="1"/>
+      <field name="numsrcpads" readable="1" type="guint16" writable="1"/>
+      <field name="srcpads" readable="1" type="GList*" writable="1"/>
+      <field name="numsinkpads" readable="1" type="guint16" writable="1"/>
+      <field name="sinkpads" readable="1" type="GList*" writable="1"/>
+      <field name="pads_cookie" readable="1" type="guint32" writable="1"/>
+      <field name="target_state" type="GstState"/>
+      <signal name="pad_added" when="LAST"/>
+      <signal name="pad_removed" when="LAST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </signal>
+      <signal name="no_more_pads" when="LAST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </signal>
+      <vfunc name="pad_added">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="request_new_pad">
+        <return-type type="GstPad*"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="templ" type="GstPadTemplate*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="release_pad">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="get_state">
+        <return-type type="GstStateChangeReturn"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="state" type="GstState*"/>
+          <parameter name="pending" type="GstState*"/>
+          <parameter name="timeout" type="GstClockTime"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="set_state">
+        <return-type type="GstStateChangeReturn"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="state" type="GstState"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="change_state">
+        <return-type type="GstStateChangeReturn"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="transition" type="GstStateChange"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="set_bus">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="bus" type="GstBus*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="provide_clock">
+        <return-type type="GstClock*"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="set_clock">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="clock" type="GstClock*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="get_index">
+        <return-type type="GstIndex*"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="set_index">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="index" type="GstIndex*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="send_event">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="event" type="GstEvent*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="query">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="query" type="GstQuery*"/>
+        </parameters>
+      </vfunc>
+      <method name="abort_state" symbol="gst_element_abort_state">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="add_pad" symbol="gst_element_add_pad">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="change_state" symbol="gst_element_change_state">
+        <return-type type="GstStateChangeReturn"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="transition" type="GstStateChange"/>
+        </parameters>
+      </method>
+      <method name="class_add_pad_template" symbol="gst_element_class_add_pad_template">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="klass" type="GstElementClass*"/>
+          <parameter name="templ" type="GstPadTemplate*"/>
+        </parameters>
+      </method>
+      <method name="class_get_pad_template" symbol="gst_element_class_get_pad_template">
+        <return-type type="GstPadTemplate*"/>
+        <parameters>
+          <parameter name="element_class" type="GstElementClass*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="class_get_pad_template_list" symbol="gst_element_class_get_pad_template_list">
+        <return-type type="GList*"/>
+        <parameters>
+          <parameter name="element_class" type="GstElementClass*"/>
+        </parameters>
+      </method>
+      <method name="class_install_std_props" symbol="gst_element_class_install_std_props">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="klass" type="GstElementClass*"/>
+          <parameter name="first_name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="class_set_details" symbol="gst_element_class_set_details">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="klass" type="GstElementClass*"/>
+          <parameter name="details" type="const-GstElementDetails*"/>
+        </parameters>
+      </method>
+      <method name="continue_state" symbol="gst_element_continue_state">
+        <return-type type="GstStateChangeReturn"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="ret" type="GstStateChangeReturn"/>
+        </parameters>
+      </method>
+      <method name="create_all_pads" symbol="gst_element_create_all_pads">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="found_tags" symbol="gst_element_found_tags">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="list" type="GstTagList*"/>
+        </parameters>
+      </method>
+      <method name="found_tags_for_pad" symbol="gst_element_found_tags_for_pad">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="list" type="GstTagList*"/>
+        </parameters>
+      </method>
+      <method name="get_base_time" symbol="gst_element_get_base_time">
+        <return-type type="GstClockTime"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="get_bus" symbol="gst_element_get_bus">
+        <return-type type="GstBus*"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="get_clock" symbol="gst_element_get_clock">
+        <return-type type="GstClock*"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="get_compatible_pad" symbol="gst_element_get_compatible_pad">
+        <return-type type="GstPad*"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="caps" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="get_compatible_pad_template" symbol="gst_element_get_compatible_pad_template">
+        <return-type type="GstPadTemplate*"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="compattempl" type="GstPadTemplate*"/>
+        </parameters>
+      </method>
+      <method name="get_factory" symbol="gst_element_get_factory">
+        <return-type type="GstElementFactory*"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="get_index" symbol="gst_element_get_index">
+        <return-type type="GstIndex*"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="get_pad" symbol="gst_element_get_pad">
+        <return-type type="GstPad*"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_request_pad" symbol="gst_element_get_request_pad">
+        <return-type type="GstPad*"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_state" symbol="gst_element_get_state">
+        <return-type type="GstStateChangeReturn"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="state" type="GstState*"/>
+          <parameter name="pending" type="GstState*"/>
+          <parameter name="timeout" type="GstClockTime"/>
+        </parameters>
+      </method>
+      <method name="get_static_pad" symbol="gst_element_get_static_pad">
+        <return-type type="GstPad*"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_element_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="implements_interface" symbol="gst_element_implements_interface">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="iface_type" type="GType"/>
+        </parameters>
+      </method>
+      <method name="is_indexable" symbol="gst_element_is_indexable">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="is_locked_state" symbol="gst_element_is_locked_state">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="iterate_pads" symbol="gst_element_iterate_pads">
+        <return-type type="GstIterator*"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="iterate_sink_pads" symbol="gst_element_iterate_sink_pads">
+        <return-type type="GstIterator*"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="iterate_src_pads" symbol="gst_element_iterate_src_pads">
+        <return-type type="GstIterator*"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="link" symbol="gst_element_link">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="src" type="GstElement*"/>
+          <parameter name="dest" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="link_filtered" symbol="gst_element_link_filtered">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="src" type="GstElement*"/>
+          <parameter name="dest" type="GstElement*"/>
+          <parameter name="filter" type="GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="link_many" symbol="gst_element_link_many">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element_1" type="GstElement*"/>
+          <parameter name="element_2" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="link_pads" symbol="gst_element_link_pads">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="src" type="GstElement*"/>
+          <parameter name="srcpadname" type="const-gchar*"/>
+          <parameter name="dest" type="GstElement*"/>
+          <parameter name="destpadname" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="link_pads_filtered" symbol="gst_element_link_pads_filtered">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="src" type="GstElement*"/>
+          <parameter name="srcpadname" type="const-gchar*"/>
+          <parameter name="dest" type="GstElement*"/>
+          <parameter name="destpadname" type="const-gchar*"/>
+          <parameter name="filter" type="GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="lost_state" symbol="gst_element_lost_state">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="make_from_uri" symbol="gst_element_make_from_uri">
+        <return-type type="GstElement*"/>
+        <parameters>
+          <parameter name="type" type="const-GstURIType"/>
+          <parameter name="uri" type="const-gchar*"/>
+          <parameter name="elementname" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="message_full" symbol="gst_element_message_full">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="type" type="GstMessageType"/>
+          <parameter name="domain" type="GQuark"/>
+          <parameter name="code" type="gint"/>
+          <parameter name="text" type="gchar*"/>
+          <parameter name="debug" type="gchar*"/>
+          <parameter name="file" type="const-gchar*"/>
+          <parameter name="function" type="const-gchar*"/>
+          <parameter name="line" type="gint"/>
+        </parameters>
+      </method>
+      <method name="no_more_pads" symbol="gst_element_no_more_pads">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="post_message" symbol="gst_element_post_message">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="message" type="GstMessage*"/>
+        </parameters>
+      </method>
+      <method name="provide_clock" symbol="gst_element_provide_clock">
+        <return-type type="GstClock*"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="provides_clock" symbol="gst_element_provides_clock">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="query" symbol="gst_element_query">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="query" type="GstQuery*"/>
+        </parameters>
+      </method>
+      <method name="query_convert" symbol="gst_element_query_convert">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="src_format" type="GstFormat"/>
+          <parameter name="src_val" type="gint64"/>
+          <parameter name="dest_format" type="GstFormat*"/>
+          <parameter name="dest_val" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="query_duration" symbol="gst_element_query_duration">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="format" type="GstFormat*"/>
+          <parameter name="duration" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="query_position" symbol="gst_element_query_position">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="format" type="GstFormat*"/>
+          <parameter name="cur" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="register" symbol="gst_element_register">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="plugin" type="GstPlugin*"/>
+          <parameter name="name" type="const-gchar*"/>
+          <parameter name="rank" type="guint"/>
+          <parameter name="type" type="GType"/>
+        </parameters>
+      </method>
+      <method name="release_request_pad" symbol="gst_element_release_request_pad">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="remove_pad" symbol="gst_element_remove_pad">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="requires_clock" symbol="gst_element_requires_clock">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="seek" symbol="gst_element_seek">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="rate" type="gdouble"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="flags" type="GstSeekFlags"/>
+          <parameter name="cur_type" type="GstSeekType"/>
+          <parameter name="cur" type="gint64"/>
+          <parameter name="stop_type" type="GstSeekType"/>
+          <parameter name="stop" type="gint64"/>
+        </parameters>
+      </method>
+      <method name="seek_simple" symbol="gst_element_seek_simple">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="seek_flags" type="GstSeekFlags"/>
+          <parameter name="seek_pos" type="gint64"/>
+        </parameters>
+      </method>
+      <method name="send_event" symbol="gst_element_send_event">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="event" type="GstEvent*"/>
+        </parameters>
+      </method>
+      <method name="set_base_time" symbol="gst_element_set_base_time">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="time" type="GstClockTime"/>
+        </parameters>
+      </method>
+      <method name="set_bus" symbol="gst_element_set_bus">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="bus" type="GstBus*"/>
+        </parameters>
+      </method>
+      <method name="set_clock" symbol="gst_element_set_clock">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="clock" type="GstClock*"/>
+        </parameters>
+      </method>
+      <method name="set_index" symbol="gst_element_set_index">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="index" type="GstIndex*"/>
+        </parameters>
+      </method>
+      <method name="set_locked_state" symbol="gst_element_set_locked_state">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="locked_state" type="gboolean"/>
+        </parameters>
+      </method>
+      <method name="set_state" symbol="gst_element_set_state">
+        <return-type type="GstStateChangeReturn"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="state" type="GstState"/>
+        </parameters>
+      </method>
+      <method name="state_change_return_get_name" symbol="gst_element_state_change_return_get_name">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="state_ret" type="GstStateChangeReturn"/>
+        </parameters>
+      </method>
+      <method name="state_get_name" symbol="gst_element_state_get_name">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="state" type="GstState"/>
+        </parameters>
+      </method>
+      <method name="sync_state_with_parent" symbol="gst_element_sync_state_with_parent">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="unlink" symbol="gst_element_unlink">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="src" type="GstElement*"/>
+          <parameter name="dest" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="unlink_many" symbol="gst_element_unlink_many">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="element_1" type="GstElement*"/>
+          <parameter name="element_2" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="unlink_pads" symbol="gst_element_unlink_pads">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="src" type="GstElement*"/>
+          <parameter name="srcpadname" type="const-gchar*"/>
+          <parameter name="dest" type="GstElement*"/>
+          <parameter name="destpadname" type="const-gchar*"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstElementFactory" parent="GstPluginFeature" type-name="GstElementFactory">
+      <field name="type" type="GType"/>
+      <field name="details" type="GstElementDetails"/>
+      <field name="staticpadtemplates" type="GList*"/>
+      <field name="numpadtemplates" type="guint"/>
+      <field name="uri_type" type="guint"/>
+      <field name="uri_protocols" type="gchar**"/>
+      <field name="interfaces" type="GList*"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <method name="can_sink_caps" symbol="gst_element_factory_can_sink_caps">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="factory" type="GstElementFactory*"/>
+          <parameter name="caps" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="can_src_caps" symbol="gst_element_factory_can_src_caps">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="factory" type="GstElementFactory*"/>
+          <parameter name="caps" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="create" symbol="gst_element_factory_create">
+        <return-type type="GstElement*"/>
+        <parameters>
+          <parameter name="factory" type="GstElementFactory*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="find" symbol="gst_element_factory_find">
+        <return-type type="GstElementFactory*"/>
+        <parameters>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_author" symbol="gst_element_factory_get_author">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="factory" type="GstElementFactory*"/>
+        </parameters>
+      </method>
+      <method name="get_description" symbol="gst_element_factory_get_description">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="factory" type="GstElementFactory*"/>
+        </parameters>
+      </method>
+      <method name="get_element_type" symbol="gst_element_factory_get_element_type">
+        <return-type type="GType"/>
+        <parameters>
+          <parameter name="factory" type="GstElementFactory*"/>
+        </parameters>
+      </method>
+      <method name="get_klass" symbol="gst_element_factory_get_klass">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="factory" type="GstElementFactory*"/>
+        </parameters>
+      </method>
+      <method name="get_longname" symbol="gst_element_factory_get_longname">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="factory" type="GstElementFactory*"/>
+        </parameters>
+      </method>
+      <method name="get_num_pad_templates" symbol="gst_element_factory_get_num_pad_templates">
+        <return-type type="guint"/>
+        <parameters>
+          <parameter name="factory" type="GstElementFactory*"/>
+        </parameters>
+      </method>
+      <method name="get_static_pad_templates" symbol="gst_element_factory_get_static_pad_templates">
+        <return-type type="const-GList*"/>
+        <parameters>
+          <parameter name="factory" type="GstElementFactory*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_element_factory_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="get_uri_protocols" symbol="gst_element_factory_get_uri_protocols">
+        <return-type type="gchar**"/>
+        <parameters>
+          <parameter name="factory" type="GstElementFactory*"/>
+        </parameters>
+      </method>
+      <method name="get_uri_type" symbol="gst_element_factory_get_uri_type">
+        <return-type type="gint"/>
+        <parameters>
+          <parameter name="factory" type="GstElementFactory*"/>
+        </parameters>
+      </method>
+      <method name="make" symbol="gst_element_factory_make">
+        <return-type type="GstElement*"/>
+        <parameters>
+          <parameter name="factoryname" type="const-gchar*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstEvent" parent="GstMiniObject" type-name="GstEvent">
+      <field name="type" readable="1" type="GstEventType" writable="1"/>
+      <field name="timestamp" readable="1" type="guint64" writable="1"/>
+      <field name="src" readable="1" type="GstObject*" writable="1"/>
+      <field name="structure" readable="1" type="GstStructure*" writable="1"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <method name="get_structure" symbol="gst_event_get_structure">
+        <return-type type="const-GstStructure*"/>
+        <parameters>
+          <parameter name="event" type="GstEvent*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_event_get_type">
+        <return-type type="GType"/>
+      </method>
+      <constructor name="new_buffer_size" symbol="gst_event_new_buffer_size">
+        <parameters>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="minsize" type="gint64"/>
+          <parameter name="maxsize" type="gint64"/>
+          <parameter name="async" type="gboolean"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_custom" symbol="gst_event_new_custom">
+        <parameters>
+          <parameter name="type" type="GstEventType"/>
+          <parameter name="structure" type="GstStructure*"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_eos" symbol="gst_event_new_eos"/>
+      <constructor name="new_flush_start" symbol="gst_event_new_flush_start"/>
+      <constructor name="new_flush_stop" symbol="gst_event_new_flush_stop"/>
+      <constructor name="new_latency" symbol="gst_event_new_latency">
+        <parameters>
+          <parameter name="latency" type="GstClockTime"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_navigation" symbol="gst_event_new_navigation">
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_new_segment" symbol="gst_event_new_new_segment">
+        <parameters>
+          <parameter name="update" type="gboolean"/>
+          <parameter name="rate" type="gdouble"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="start" type="gint64"/>
+          <parameter name="stop" type="gint64"/>
+          <parameter name="position" type="gint64"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_new_segment_full" symbol="gst_event_new_new_segment_full">
+        <parameters>
+          <parameter name="update" type="gboolean"/>
+          <parameter name="rate" type="gdouble"/>
+          <parameter name="applied_rate" type="gdouble"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="start" type="gint64"/>
+          <parameter name="stop" type="gint64"/>
+          <parameter name="position" type="gint64"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_qos" symbol="gst_event_new_qos">
+        <parameters>
+          <parameter name="proportion" type="gdouble"/>
+          <parameter name="diff" type="GstClockTimeDiff"/>
+          <parameter name="timestamp" type="GstClockTime"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_seek" symbol="gst_event_new_seek">
+        <parameters>
+          <parameter name="rate" type="gdouble"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="flags" type="GstSeekFlags"/>
+          <parameter name="start_type" type="GstSeekType"/>
+          <parameter name="start" type="gint64"/>
+          <parameter name="stop_type" type="GstSeekType"/>
+          <parameter name="stop" type="gint64"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_tag" symbol="gst_event_new_tag">
+        <parameters>
+          <parameter name="taglist" type="GstTagList*"/>
+        </parameters>
+      </constructor>
+      <method name="parse_buffer_size" symbol="gst_event_parse_buffer_size">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="event" type="GstEvent*"/>
+          <parameter name="format" type="GstFormat*"/>
+          <parameter name="minsize" type="gint64*"/>
+          <parameter name="maxsize" type="gint64*"/>
+          <parameter name="async" type="gboolean*"/>
+        </parameters>
+      </method>
+      <method name="parse_latency" symbol="gst_event_parse_latency">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="event" type="GstEvent*"/>
+          <parameter name="latency" type="GstClockTime*"/>
+        </parameters>
+      </method>
+      <method name="parse_new_segment" symbol="gst_event_parse_new_segment">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="event" type="GstEvent*"/>
+          <parameter name="update" type="gboolean*"/>
+          <parameter name="rate" type="gdouble*"/>
+          <parameter name="format" type="GstFormat*"/>
+          <parameter name="start" type="gint64*"/>
+          <parameter name="stop" type="gint64*"/>
+          <parameter name="position" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="parse_new_segment_full" symbol="gst_event_parse_new_segment_full">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="event" type="GstEvent*"/>
+          <parameter name="update" type="gboolean*"/>
+          <parameter name="rate" type="gdouble*"/>
+          <parameter name="applied_rate" type="gdouble*"/>
+          <parameter name="format" type="GstFormat*"/>
+          <parameter name="start" type="gint64*"/>
+          <parameter name="stop" type="gint64*"/>
+          <parameter name="position" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="parse_qos" symbol="gst_event_parse_qos">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="event" type="GstEvent*"/>
+          <parameter name="proportion" type="gdouble*"/>
+          <parameter name="diff" type="GstClockTimeDiff*"/>
+          <parameter name="timestamp" type="GstClockTime*"/>
+        </parameters>
+      </method>
+      <method name="parse_seek" symbol="gst_event_parse_seek">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="event" type="GstEvent*"/>
+          <parameter name="rate" type="gdouble*"/>
+          <parameter name="format" type="GstFormat*"/>
+          <parameter name="flags" type="GstSeekFlags*"/>
+          <parameter name="start_type" type="GstSeekType*"/>
+          <parameter name="start" type="gint64*"/>
+          <parameter name="stop_type" type="GstSeekType*"/>
+          <parameter name="stop" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="parse_tag" symbol="gst_event_parse_tag">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="event" type="GstEvent*"/>
+          <parameter name="taglist" type="GstTagList**"/>
+        </parameters>
+      </method>
+      <method name="type_get_flags" symbol="gst_event_type_get_flags">
+        <return-type type="GstEventTypeFlags"/>
+        <parameters>
+          <parameter name="type" type="GstEventType"/>
+        </parameters>
+      </method>
+      <method name="type_get_name" symbol="gst_event_type_get_name">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="type" type="GstEventType"/>
+        </parameters>
+      </method>
+      <method name="type_to_quark" symbol="gst_event_type_to_quark">
+        <return-type type="GQuark"/>
+        <parameters>
+          <parameter name="type" type="GstEventType"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstIndex" parent="GstObject" type-name="GstIndex">
+      <field name="groups" type="GList*"/>
+      <field name="curgroup" type="GstIndexGroup*"/>
+      <field name="maxgroup" type="gint"/>
+      <field name="method" type="GstIndexResolverMethod"/>
+      <field name="resolver" type="GstIndexResolver"/>
+      <field name="resolver_user_data" type="gpointer"/>
+      <field name="filter" type="GstIndexFilter"/>
+      <field name="filter_user_data" type="gpointer"/>
+      <field name="filter_user_data_destroy" type="GDestroyNotify"/>
+      <field name="writers" type="GHashTable*"/>
+      <field name="last_id" type="gint"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <signal name="entry_added" when="LAST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="entry" type="GstIndexEntry*"/>
+        </parameters>
+      </signal>
+      <property name="resolver" readable="1" type="GstIndexResolver" writable="1"/>
+      <vfunc name="get_writer_id">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="writer_id" type="gint*"/>
+          <parameter name="writer_string" type="gchar*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="commit">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="id" type="gint"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="add_entry">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="entry" type="GstIndexEntry*"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="get_assoc_entry">
+        <return-type type="GstIndexEntry*"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="id" type="gint"/>
+          <parameter name="method" type="GstIndexLookupMethod"/>
+          <parameter name="flags" type="GstAssocFlags"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="value" type="gint64"/>
+          <parameter name="func" type="GCompareDataFunc"/>
+          <parameter name="user_data" type="gpointer"/>
+        </parameters>
+      </vfunc>
+      <method name="add_association" symbol="gst_index_add_association">
+        <return-type type="GstIndexEntry*"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="id" type="gint"/>
+          <parameter name="flags" type="GstAssocFlags"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="value" type="gint64"/>
+        </parameters>
+      </method>
+      <method name="add_associationv" symbol="gst_index_add_associationv">
+        <return-type type="GstIndexEntry*"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="id" type="gint"/>
+          <parameter name="flags" type="GstAssocFlags"/>
+          <parameter name="n" type="gint"/>
+          <parameter name="list" type="const-GstIndexAssociation*"/>
+        </parameters>
+      </method>
+      <method name="add_format" symbol="gst_index_add_format">
+        <return-type type="GstIndexEntry*"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="id" type="gint"/>
+          <parameter name="format" type="GstFormat"/>
+        </parameters>
+      </method>
+      <method name="add_id" symbol="gst_index_add_id">
+        <return-type type="GstIndexEntry*"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="id" type="gint"/>
+          <parameter name="description" type="gchar*"/>
+        </parameters>
+      </method>
+      <method name="add_object" symbol="gst_index_add_object">
+        <return-type type="GstIndexEntry*"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="id" type="gint"/>
+          <parameter name="key" type="gchar*"/>
+          <parameter name="type" type="GType"/>
+          <parameter name="object" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="commit" symbol="gst_index_commit">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="id" type="gint"/>
+        </parameters>
+      </method>
+      <method name="get_assoc_entry" symbol="gst_index_get_assoc_entry">
+        <return-type type="GstIndexEntry*"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="id" type="gint"/>
+          <parameter name="method" type="GstIndexLookupMethod"/>
+          <parameter name="flags" type="GstAssocFlags"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="value" type="gint64"/>
+        </parameters>
+      </method>
+      <method name="get_assoc_entry_full" symbol="gst_index_get_assoc_entry_full">
+        <return-type type="GstIndexEntry*"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="id" type="gint"/>
+          <parameter name="method" type="GstIndexLookupMethod"/>
+          <parameter name="flags" type="GstAssocFlags"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="value" type="gint64"/>
+          <parameter name="func" type="GCompareDataFunc"/>
+          <parameter name="user_data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="get_certainty" symbol="gst_index_get_certainty">
+        <return-type type="GstIndexCertainty"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+        </parameters>
+      </method>
+      <method name="get_group" symbol="gst_index_get_group">
+        <return-type type="gint"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_index_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="get_writer_id" symbol="gst_index_get_writer_id">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="writer" type="GstObject*"/>
+          <parameter name="id" type="gint*"/>
+        </parameters>
+      </method>
+      <constructor name="new" symbol="gst_index_new"/>
+      <constructor name="new_group" symbol="gst_index_new_group">
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+        </parameters>
+      </constructor>
+      <method name="set_certainty" symbol="gst_index_set_certainty">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="certainty" type="GstIndexCertainty"/>
+        </parameters>
+      </method>
+      <method name="set_filter" symbol="gst_index_set_filter">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="filter" type="GstIndexFilter"/>
+          <parameter name="user_data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="set_filter_full" symbol="gst_index_set_filter_full">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="filter" type="GstIndexFilter"/>
+          <parameter name="user_data" type="gpointer"/>
+          <parameter name="user_data_destroy" type="GDestroyNotify"/>
+        </parameters>
+      </method>
+      <method name="set_group" symbol="gst_index_set_group">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="groupnum" type="gint"/>
+        </parameters>
+      </method>
+      <method name="set_resolver" symbol="gst_index_set_resolver">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="index" type="GstIndex*"/>
+          <parameter name="resolver" type="GstIndexResolver"/>
+          <parameter name="user_data" type="gpointer"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstIndexFactory" parent="GstPluginFeature" type-name="GstIndexFactory">
+      <field name="longdesc" type="gchar*"/>
+      <field name="type" type="GType"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <method name="create" symbol="gst_index_factory_create">
+        <return-type type="GstIndex*"/>
+        <parameters>
+          <parameter name="factory" type="GstIndexFactory*"/>
+        </parameters>
+      </method>
+      <method name="destroy" symbol="gst_index_factory_destroy">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="factory" type="GstIndexFactory*"/>
+        </parameters>
+      </method>
+      <method name="find" symbol="gst_index_factory_find">
+        <return-type type="GstIndexFactory*"/>
+        <parameters>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_index_factory_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="make" symbol="gst_index_factory_make">
+        <return-type type="GstIndex*"/>
+        <parameters>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <constructor name="new" symbol="gst_index_factory_new">
+        <parameters>
+          <parameter name="name" type="const-gchar*"/>
+          <parameter name="longdesc" type="const-gchar*"/>
+          <parameter name="type" type="GType"/>
+        </parameters>
+      </constructor>
+    </object>
+    <object get-type="" name="GstMessage" parent="GstMiniObject" type-name="GstMessage">
+      <field name="lock" type="GMutex*"/>
+      <field name="cond" type="GCond*"/>
+      <field name="type" readable="1" type="GstMessageType" writable="1"/>
+      <field name="timestamp" readable="1" type="guint64" writable="1"/>
+      <field name="src" readable="1" type="GstObject*" writable="1"/>
+      <field name="structure" readable="1" type="GstStructure*" writable="1"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <method name="get_structure" symbol="gst_message_get_structure">
+        <return-type type="const-GstStructure*"/>
+        <parameters>
+          <parameter name="message" type="GstMessage*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_message_get_type">
+        <return-type type="GType"/>
+      </method>
+      <constructor name="new_application" symbol="gst_message_new_application">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+          <parameter name="structure" type="GstStructure*"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_async_done" symbol="gst_message_new_async_done">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_async_start" symbol="gst_message_new_async_start">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+          <parameter name="new_base_time" type="gboolean"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_buffering" symbol="gst_message_new_buffering">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+          <parameter name="percent" type="gint"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_clock_lost" symbol="gst_message_new_clock_lost">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+          <parameter name="clock" type="GstClock*"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_clock_provide" symbol="gst_message_new_clock_provide">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+          <parameter name="clock" type="GstClock*"/>
+          <parameter name="ready" type="gboolean"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_custom" symbol="gst_message_new_custom">
+        <parameters>
+          <parameter name="type" type="GstMessageType"/>
+          <parameter name="src" type="GstObject*"/>
+          <parameter name="structure" type="GstStructure*"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_duration" symbol="gst_message_new_duration">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="duration" type="gint64"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_element" symbol="gst_message_new_element">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+          <parameter name="structure" type="GstStructure*"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_eos" symbol="gst_message_new_eos">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_error" symbol="gst_message_new_error">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+          <parameter name="error" type="GError*"/>
+          <parameter name="debug" type="gchar*"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_info" symbol="gst_message_new_info">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+          <parameter name="error" type="GError*"/>
+          <parameter name="debug" type="gchar*"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_latency" symbol="gst_message_new_latency">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_new_clock" symbol="gst_message_new_new_clock">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+          <parameter name="clock" type="GstClock*"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_segment_done" symbol="gst_message_new_segment_done">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="position" type="gint64"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_segment_start" symbol="gst_message_new_segment_start">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="position" type="gint64"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_state_changed" symbol="gst_message_new_state_changed">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+          <parameter name="oldstate" type="GstState"/>
+          <parameter name="newstate" type="GstState"/>
+          <parameter name="pending" type="GstState"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_state_dirty" symbol="gst_message_new_state_dirty">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_tag" symbol="gst_message_new_tag">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+          <parameter name="tag_list" type="GstTagList*"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_warning" symbol="gst_message_new_warning">
+        <parameters>
+          <parameter name="src" type="GstObject*"/>
+          <parameter name="error" type="GError*"/>
+          <parameter name="debug" type="gchar*"/>
+        </parameters>
+      </constructor>
+      <method name="parse_async_start" symbol="gst_message_parse_async_start">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="message" type="GstMessage*"/>
+          <parameter name="new_base_time" type="gboolean*"/>
+        </parameters>
+      </method>
+      <method name="parse_buffering" symbol="gst_message_parse_buffering">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="message" type="GstMessage*"/>
+          <parameter name="percent" type="gint*"/>
+        </parameters>
+      </method>
+      <method name="parse_clock_lost" symbol="gst_message_parse_clock_lost">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="message" type="GstMessage*"/>
+          <parameter name="clock" type="GstClock**"/>
+        </parameters>
+      </method>
+      <method name="parse_clock_provide" symbol="gst_message_parse_clock_provide">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="message" type="GstMessage*"/>
+          <parameter name="clock" type="GstClock**"/>
+          <parameter name="ready" type="gboolean*"/>
+        </parameters>
+      </method>
+      <method name="parse_duration" symbol="gst_message_parse_duration">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="message" type="GstMessage*"/>
+          <parameter name="format" type="GstFormat*"/>
+          <parameter name="duration" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="parse_error" symbol="gst_message_parse_error">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="message" type="GstMessage*"/>
+          <parameter name="gerror" type="GError**"/>
+          <parameter name="debug" type="gchar**"/>
+        </parameters>
+      </method>
+      <method name="parse_info" symbol="gst_message_parse_info">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="message" type="GstMessage*"/>
+          <parameter name="gerror" type="GError**"/>
+          <parameter name="debug" type="gchar**"/>
+        </parameters>
+      </method>
+      <method name="parse_new_clock" symbol="gst_message_parse_new_clock">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="message" type="GstMessage*"/>
+          <parameter name="clock" type="GstClock**"/>
+        </parameters>
+      </method>
+      <method name="parse_segment_done" symbol="gst_message_parse_segment_done">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="message" type="GstMessage*"/>
+          <parameter name="format" type="GstFormat*"/>
+          <parameter name="position" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="parse_segment_start" symbol="gst_message_parse_segment_start">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="message" type="GstMessage*"/>
+          <parameter name="format" type="GstFormat*"/>
+          <parameter name="position" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="parse_state_changed" symbol="gst_message_parse_state_changed">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="message" type="GstMessage*"/>
+          <parameter name="oldstate" type="GstState*"/>
+          <parameter name="newstate" type="GstState*"/>
+          <parameter name="pending" type="GstState*"/>
+        </parameters>
+      </method>
+      <method name="parse_tag" symbol="gst_message_parse_tag">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="message" type="GstMessage*"/>
+          <parameter name="tag_list" type="GstTagList**"/>
+        </parameters>
+      </method>
+      <method name="parse_warning" symbol="gst_message_parse_warning">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="message" type="GstMessage*"/>
+          <parameter name="gerror" type="GError**"/>
+          <parameter name="debug" type="gchar**"/>
+        </parameters>
+      </method>
+      <method name="type_get_name" symbol="gst_message_type_get_name">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="type" type="GstMessageType"/>
+        </parameters>
+      </method>
+      <method name="type_to_quark" symbol="gst_message_type_to_quark">
+        <return-type type="GQuark"/>
+        <parameters>
+          <parameter name="type" type="GstMessageType"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstMiniObject" parent="GTypeInstance" type-name="GstMiniObject">
+      <field name="refcount" readable="1" type="gint" writable="1"/>
+      <field name="flags" readable="1" type="guint" writable="1"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <method name="copy" symbol="gst_mini_object_copy">
+        <return-type type="GstMiniObject*"/>
+        <parameters>
+          <parameter name="mini_object" type="const-GstMiniObject*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_mini_object_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="is_writable" symbol="gst_mini_object_is_writable">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="mini_object" type="const-GstMiniObject*"/>
+        </parameters>
+      </method>
+      <method name="make_writable" symbol="gst_mini_object_make_writable">
+        <return-type type="GstMiniObject*"/>
+        <parameters>
+          <parameter name="mini_object" type="GstMiniObject*"/>
+        </parameters>
+      </method>
+      <constructor name="new" symbol="gst_mini_object_new">
+        <parameters>
+          <parameter name="type" type="GType"/>
+        </parameters>
+      </constructor>
+      <method name="ref" symbol="gst_mini_object_ref">
+        <return-type type="GstMiniObject*"/>
+        <parameters>
+          <parameter name="mini_object" type="GstMiniObject*"/>
+        </parameters>
+      </method>
+      <method name="replace" symbol="gst_mini_object_replace">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="olddata" type="GstMiniObject**"/>
+          <parameter name="newdata" type="GstMiniObject*"/>
+        </parameters>
+      </method>
+      <method name="unref" symbol="gst_mini_object_unref">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="mini_object" type="GstMiniObject*"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstObject" parent="GObject" type-name="GstObject">
+      <field name="refcount" readable="1" type="gint" writable="1"/>
+      <field name="lock" readable="1" type="GMutex*" writable="1"/>
+      <field name="name" readable="1" type="gchar*" writable="1"/>
+      <field name="name_prefix" readable="1" type="gchar*" writable="1"/>
+      <field name="parent" readable="1" type="GstObject*" writable="1"/>
+      <field name="flags" readable="1" type="guint32" writable="1"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <property construct="1" name="name" readable="1" type="gchar*" writable="1"/>
+      <signal name="parent_set" when="LAST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="parent" type="GstObject*"/>
+        </parameters>
+      </signal>
+      <signal name="parent_unset" when="LAST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="parent" type="GstObject*"/>
+        </parameters>
+      </signal>
+      <signal name="object_saved" when="LAST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="parent" type="GstXmlNodePtr"/>
+        </parameters>
+      </signal>
+      <signal name="deep_notify" when="FIRST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="orig" type="GstObject*"/>
+          <parameter name="pspec" type="GParamSpec*"/>
+        </parameters>
+      </signal>
+      <vfunc name="save_thyself">
+        <return-type type="GstXmlNodePtr"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="parent" type="GstXmlNodePtr"/>
+        </parameters>
+      </vfunc>
+      <vfunc name="restore_thyself">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="self" type="GstXmlNodePtr"/>
+        </parameters>
+      </vfunc>
+      <method name="check_uniqueness" symbol="gst_object_check_uniqueness">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="GList*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="default_deep_notify" symbol="gst_object_default_deep_notify">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GObject*"/>
+          <parameter name="orig" type="GstObject*"/>
+          <parameter name="pspec" type="GParamSpec*"/>
+          <parameter name="excluded_props" type="gchar**"/>
+        </parameters>
+      </method>
+      <method name="default_error" symbol="gst_object_default_error">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="source" type="GstObject*"/>
+          <parameter name="error" type="GError*"/>
+          <parameter name="debug" type="gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_name" symbol="gst_object_get_name">
+        <return-type type="gchar*"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+        </parameters>
+      </method>
+      <method name="get_name_prefix" symbol="gst_object_get_name_prefix">
+        <return-type type="gchar*"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+        </parameters>
+      </method>
+      <method name="get_parent" symbol="gst_object_get_parent">
+        <return-type type="GstObject*"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+        </parameters>
+      </method>
+      <method name="get_path_string" symbol="gst_object_get_path_string">
+        <return-type type="gchar*"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_object_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="has_ancestor" symbol="gst_object_has_ancestor">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="ancestor" type="GstObject*"/>
+        </parameters>
+      </method>
+      <method name="ref" symbol="gst_object_ref">
+        <return-type type="gpointer"/>
+        <parameters>
+          <parameter name="object" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="replace" symbol="gst_object_replace">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="oldobj" type="GstObject**"/>
+          <parameter name="newobj" type="GstObject*"/>
+        </parameters>
+      </method>
+      <method name="restore_thyself" symbol="gst_object_restore_thyself">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="self" type="GstXmlNodePtr"/>
+        </parameters>
+      </method>
+      <method name="save_thyself" symbol="gst_object_save_thyself">
+        <return-type type="GstXmlNodePtr"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="parent" type="GstXmlNodePtr"/>
+        </parameters>
+      </method>
+      <method name="set_name" symbol="gst_object_set_name">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="set_name_prefix" symbol="gst_object_set_name_prefix">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="name_prefix" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="set_parent" symbol="gst_object_set_parent">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="parent" type="GstObject*"/>
+        </parameters>
+      </method>
+      <method name="sink" symbol="gst_object_sink">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="unparent" symbol="gst_object_unparent">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GstObject*"/>
+        </parameters>
+      </method>
+      <method name="unref" symbol="gst_object_unref">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="gpointer"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstPad" parent="GstObject" type-name="GstPad">
+      <field name="element_private" readable="1" type="gpointer" writable="1"/>
+      <field name="padtemplate" readable="1" type="GstPadTemplate*" writable="1"/>
+      <field name="direction" readable="1" type="GstPadDirection" writable="1"/>
+      <field name="stream_rec_lock" readable="1" type="GStaticRecMutex*" writable="1"/>
+      <field name="task" readable="1" type="GstTask*" writable="1"/>
+      <field name="preroll_lock" readable="1" type="GMutex*" writable="1"/>
+      <field name="preroll_cond" readable="1" type="GCond*" writable="1"/>
+      <field name="block_cond" readable="1" type="GCond*" writable="1"/>
+      <field name="block_callback" readable="1" type="GstPadBlockCallback" writable="1"/>
+      <field name="block_data" readable="1" type="gpointer" writable="1"/>
+      <field name="caps" readable="1" type="GstCaps*" writable="1"/>
+      <field name="getcapsfunc" readable="1" type="GstPadGetCapsFunction" writable="1"/>
+      <field name="setcapsfunc" readable="1" type="GstPadSetCapsFunction" writable="1"/>
+      <field name="acceptcapsfunc" readable="1" type="GstPadAcceptCapsFunction" writable="1"/>
+      <field name="fixatecapsfunc" readable="1" type="GstPadFixateCapsFunction" writable="1"/>
+      <field name="activatefunc" readable="1" type="GstPadActivateFunction" writable="1"/>
+      <field name="activatepushfunc" readable="1" type="GstPadActivateModeFunction" writable="1"/>
+      <field name="activatepullfunc" readable="1" type="GstPadActivateModeFunction" writable="1"/>
+      <field name="linkfunc" readable="1" type="GstPadLinkFunction" writable="1"/>
+      <field name="unlinkfunc" readable="1" type="GstPadUnlinkFunction" writable="1"/>
+      <field name="peer" readable="1" type="GstPad*" writable="1"/>
+      <field name="sched_private" readable="1" type="gpointer" writable="1"/>
+      <field name="chainfunc" readable="1" type="GstPadChainFunction" writable="1"/>
+      <field name="checkgetrangefunc" readable="1" type="GstPadCheckGetRangeFunction" writable="1"/>
+      <field name="getrangefunc" readable="1" type="GstPadGetRangeFunction" writable="1"/>
+      <field name="eventfunc" readable="1" type="GstPadEventFunction" writable="1"/>
+      <field name="mode" readable="1" type="GstActivateMode" writable="1"/>
+      <field name="querytypefunc" readable="1" type="GstPadQueryTypeFunction" writable="1"/>
+      <field name="queryfunc" readable="1" type="GstPadQueryFunction" writable="1"/>
+      <field name="intlinkfunc" readable="1" type="GstPadIntLinkFunction" writable="1"/>
+      <field name="bufferallocfunc" readable="1" type="GstPadBufferAllocFunction" writable="1"/>
+      <field name="do_buffer_signals" readable="1" type="gint" writable="1"/>
+      <field name="do_event_signals" readable="1" type="gint" writable="1"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <signal name="linked" when="LAST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="peer" type="GstPad*"/>
+        </parameters>
+      </signal>
+      <signal name="unlinked" when="LAST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="peer" type="GstPad*"/>
+        </parameters>
+      </signal>
+      <signal name="request_link" when="LAST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </signal>
+      <signal name="have_data" when="LAST">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="data" type="GstMiniObject*"/>
+        </parameters>
+      </signal>
+      <property name="caps" readable="1" type="GstCaps"/>
+      <property construct-only="1" name="direction" readable="1" type="GstPadDirection" writable="1"/>
+      <property name="template" readable="1" type="GstPadTemplate" writable="1"/>
+      <method name="accept_caps" symbol="gst_pad_accept_caps">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="caps" type="GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="activate_pull" symbol="gst_pad_activate_pull">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="active" type="gboolean"/>
+        </parameters>
+      </method>
+      <method name="activate_push" symbol="gst_pad_activate_push">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="active" type="gboolean"/>
+        </parameters>
+      </method>
+      <method name="add_buffer_probe" symbol="gst_pad_add_buffer_probe">
+        <return-type type="gulong"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="handler" type="GCallback"/>
+          <parameter name="data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="add_data_probe" symbol="gst_pad_add_data_probe">
+        <return-type type="gulong"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="handler" type="GCallback"/>
+          <parameter name="data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="add_event_probe" symbol="gst_pad_add_event_probe">
+        <return-type type="gulong"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="handler" type="GCallback"/>
+          <parameter name="data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="alloc_buffer" symbol="gst_pad_alloc_buffer">
+        <return-type type="GstFlowReturn"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="offset" type="guint64"/>
+          <parameter name="size" type="gint"/>
+          <parameter name="caps" type="GstCaps*"/>
+          <parameter name="buf" type="GstBuffer**"/>
+        </parameters>
+      </method>
+      <method name="alloc_buffer_and_set_caps" symbol="gst_pad_alloc_buffer_and_set_caps">
+        <return-type type="GstFlowReturn"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="offset" type="guint64"/>
+          <parameter name="size" type="gint"/>
+          <parameter name="caps" type="GstCaps*"/>
+          <parameter name="buf" type="GstBuffer**"/>
+        </parameters>
+      </method>
+      <method name="can_link" symbol="gst_pad_can_link">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="srcpad" type="GstPad*"/>
+          <parameter name="sinkpad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="chain" symbol="gst_pad_chain">
+        <return-type type="GstFlowReturn"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="buffer" type="GstBuffer*"/>
+        </parameters>
+      </method>
+      <method name="check_pull_range" symbol="gst_pad_check_pull_range">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="dispatcher" symbol="gst_pad_dispatcher">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="dispatch" type="GstPadDispatcherFunction"/>
+          <parameter name="data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="event_default" symbol="gst_pad_event_default">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="event" type="GstEvent*"/>
+        </parameters>
+      </method>
+      <method name="fixate_caps" symbol="gst_pad_fixate_caps">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="caps" type="GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="get_allowed_caps" symbol="gst_pad_get_allowed_caps">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="get_caps" symbol="gst_pad_get_caps">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="get_direction" symbol="gst_pad_get_direction">
+        <return-type type="GstPadDirection"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="get_element_private" symbol="gst_pad_get_element_private">
+        <return-type type="gpointer"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="get_fixed_caps_func" symbol="gst_pad_get_fixed_caps_func">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="get_internal_links" symbol="gst_pad_get_internal_links">
+        <return-type type="GList*"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="get_internal_links_default" symbol="gst_pad_get_internal_links_default">
+        <return-type type="GList*"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="get_negotiated_caps" symbol="gst_pad_get_negotiated_caps">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="get_pad_template" symbol="gst_pad_get_pad_template">
+        <return-type type="GstPadTemplate*"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="get_pad_template_caps" symbol="gst_pad_get_pad_template_caps">
+        <return-type type="const-GstCaps*"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="get_parent_element" symbol="gst_pad_get_parent_element">
+        <return-type type="GstElement*"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="get_peer" symbol="gst_pad_get_peer">
+        <return-type type="GstPad*"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="get_query_types" symbol="gst_pad_get_query_types">
+        <return-type type="const-GstQueryType*"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="get_query_types_default" symbol="gst_pad_get_query_types_default">
+        <return-type type="const-GstQueryType*"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="get_range" symbol="gst_pad_get_range">
+        <return-type type="GstFlowReturn"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="offset" type="guint64"/>
+          <parameter name="size" type="guint"/>
+          <parameter name="buffer" type="GstBuffer**"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_pad_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="is_active" symbol="gst_pad_is_active">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="is_blocked" symbol="gst_pad_is_blocked">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="is_blocking" symbol="gst_pad_is_blocking">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="is_linked" symbol="gst_pad_is_linked">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="link" symbol="gst_pad_link">
+        <return-type type="GstPadLinkReturn"/>
+        <parameters>
+          <parameter name="srcpad" type="GstPad*"/>
+          <parameter name="sinkpad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="load_and_link" symbol="gst_pad_load_and_link">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="self" type="xmlNodePtr"/>
+          <parameter name="parent" type="GstObject*"/>
+        </parameters>
+      </method>
+      <constructor name="new" symbol="gst_pad_new">
+        <parameters>
+          <parameter name="name" type="const-gchar*"/>
+          <parameter name="direction" type="GstPadDirection"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_static_template" symbol="gst_pad_new_from_static_template">
+        <parameters>
+          <parameter name="templ" type="GstStaticPadTemplate*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_template" symbol="gst_pad_new_from_template">
+        <parameters>
+          <parameter name="templ" type="GstPadTemplate*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </constructor>
+      <method name="pause_task" symbol="gst_pad_pause_task">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="peer_accept_caps" symbol="gst_pad_peer_accept_caps">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="caps" type="GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="peer_get_caps" symbol="gst_pad_peer_get_caps">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="proxy_getcaps" symbol="gst_pad_proxy_getcaps">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="proxy_setcaps" symbol="gst_pad_proxy_setcaps">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="caps" type="GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="pull_range" symbol="gst_pad_pull_range">
+        <return-type type="GstFlowReturn"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="offset" type="guint64"/>
+          <parameter name="size" type="guint"/>
+          <parameter name="buffer" type="GstBuffer**"/>
+        </parameters>
+      </method>
+      <method name="push" symbol="gst_pad_push">
+        <return-type type="GstFlowReturn"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="buffer" type="GstBuffer*"/>
+        </parameters>
+      </method>
+      <method name="push_event" symbol="gst_pad_push_event">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="event" type="GstEvent*"/>
+        </parameters>
+      </method>
+      <method name="query" symbol="gst_pad_query">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="query" type="GstQuery*"/>
+        </parameters>
+      </method>
+      <method name="query_convert" symbol="gst_pad_query_convert">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="src_format" type="GstFormat"/>
+          <parameter name="src_val" type="gint64"/>
+          <parameter name="dest_format" type="GstFormat*"/>
+          <parameter name="dest_val" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="query_default" symbol="gst_pad_query_default">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="query" type="GstQuery*"/>
+        </parameters>
+      </method>
+      <method name="query_duration" symbol="gst_pad_query_duration">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="format" type="GstFormat*"/>
+          <parameter name="duration" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="query_peer_convert" symbol="gst_pad_query_peer_convert">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="src_format" type="GstFormat"/>
+          <parameter name="src_val" type="gint64"/>
+          <parameter name="dest_format" type="GstFormat*"/>
+          <parameter name="dest_val" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="query_peer_duration" symbol="gst_pad_query_peer_duration">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="format" type="GstFormat*"/>
+          <parameter name="duration" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="query_peer_position" symbol="gst_pad_query_peer_position">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="format" type="GstFormat*"/>
+          <parameter name="cur" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="query_position" symbol="gst_pad_query_position">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="format" type="GstFormat*"/>
+          <parameter name="cur" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="remove_buffer_probe" symbol="gst_pad_remove_buffer_probe">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="handler_id" type="guint"/>
+        </parameters>
+      </method>
+      <method name="remove_data_probe" symbol="gst_pad_remove_data_probe">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="handler_id" type="guint"/>
+        </parameters>
+      </method>
+      <method name="remove_event_probe" symbol="gst_pad_remove_event_probe">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="handler_id" type="guint"/>
+        </parameters>
+      </method>
+      <method name="send_event" symbol="gst_pad_send_event">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="event" type="GstEvent*"/>
+        </parameters>
+      </method>
+      <method name="set_acceptcaps_function" symbol="gst_pad_set_acceptcaps_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="acceptcaps" type="GstPadAcceptCapsFunction"/>
+        </parameters>
+      </method>
+      <method name="set_activate_function" symbol="gst_pad_set_activate_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="activate" type="GstPadActivateFunction"/>
+        </parameters>
+      </method>
+      <method name="set_activatepull_function" symbol="gst_pad_set_activatepull_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="activatepull" type="GstPadActivateModeFunction"/>
+        </parameters>
+      </method>
+      <method name="set_activatepush_function" symbol="gst_pad_set_activatepush_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="activatepush" type="GstPadActivateModeFunction"/>
+        </parameters>
+      </method>
+      <method name="set_active" symbol="gst_pad_set_active">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="active" type="gboolean"/>
+        </parameters>
+      </method>
+      <method name="set_blocked" symbol="gst_pad_set_blocked">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="blocked" type="gboolean"/>
+        </parameters>
+      </method>
+      <method name="set_blocked_async" symbol="gst_pad_set_blocked_async">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="blocked" type="gboolean"/>
+          <parameter name="callback" type="GstPadBlockCallback"/>
+          <parameter name="user_data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="set_bufferalloc_function" symbol="gst_pad_set_bufferalloc_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="bufalloc" type="GstPadBufferAllocFunction"/>
+        </parameters>
+      </method>
+      <method name="set_caps" symbol="gst_pad_set_caps">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="caps" type="GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="set_chain_function" symbol="gst_pad_set_chain_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="chain" type="GstPadChainFunction"/>
+        </parameters>
+      </method>
+      <method name="set_checkgetrange_function" symbol="gst_pad_set_checkgetrange_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="check" type="GstPadCheckGetRangeFunction"/>
+        </parameters>
+      </method>
+      <method name="set_element_private" symbol="gst_pad_set_element_private">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="priv" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="set_event_function" symbol="gst_pad_set_event_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="event" type="GstPadEventFunction"/>
+        </parameters>
+      </method>
+      <method name="set_fixatecaps_function" symbol="gst_pad_set_fixatecaps_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="fixatecaps" type="GstPadFixateCapsFunction"/>
+        </parameters>
+      </method>
+      <method name="set_getcaps_function" symbol="gst_pad_set_getcaps_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="getcaps" type="GstPadGetCapsFunction"/>
+        </parameters>
+      </method>
+      <method name="set_getrange_function" symbol="gst_pad_set_getrange_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="get" type="GstPadGetRangeFunction"/>
+        </parameters>
+      </method>
+      <method name="set_internal_link_function" symbol="gst_pad_set_internal_link_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="intlink" type="GstPadIntLinkFunction"/>
+        </parameters>
+      </method>
+      <method name="set_link_function" symbol="gst_pad_set_link_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="link" type="GstPadLinkFunction"/>
+        </parameters>
+      </method>
+      <method name="set_query_function" symbol="gst_pad_set_query_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="query" type="GstPadQueryFunction"/>
+        </parameters>
+      </method>
+      <method name="set_query_type_function" symbol="gst_pad_set_query_type_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="type_func" type="GstPadQueryTypeFunction"/>
+        </parameters>
+      </method>
+      <method name="set_setcaps_function" symbol="gst_pad_set_setcaps_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="setcaps" type="GstPadSetCapsFunction"/>
+        </parameters>
+      </method>
+      <method name="set_unlink_function" symbol="gst_pad_set_unlink_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="unlink" type="GstPadUnlinkFunction"/>
+        </parameters>
+      </method>
+      <method name="start_task" symbol="gst_pad_start_task">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+          <parameter name="func" type="GstTaskFunction"/>
+          <parameter name="data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="stop_task" symbol="gst_pad_stop_task">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="unlink" symbol="gst_pad_unlink">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="srcpad" type="GstPad*"/>
+          <parameter name="sinkpad" type="GstPad*"/>
+        </parameters>
+      </method>
+      <method name="use_fixed_caps" symbol="gst_pad_use_fixed_caps">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstPadTemplate" parent="GstObject" type-name="GstPadTemplate">
+      <field name="name_template" type="gchar*"/>
+      <field name="direction" type="GstPadDirection"/>
+      <field name="presence" type="GstPadPresence"/>
+      <field name="caps" type="GstCaps*"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <signal name="pad_created" when="LAST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="templ" type="GstPadTemplate*"/>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </signal>
+      <method name="get_caps" symbol="gst_pad_template_get_caps">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="templ" type="GstPadTemplate*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_pad_template_get_type">
+        <return-type type="GType"/>
+      </method>
+      <constructor name="new" symbol="gst_pad_template_new">
+        <parameters>
+          <parameter name="name_template" type="const-gchar*"/>
+          <parameter name="direction" type="GstPadDirection"/>
+          <parameter name="presence" type="GstPadPresence"/>
+          <parameter name="caps" type="GstCaps*"/>
+        </parameters>
+      </constructor>
+      <method name="pad_created" symbol="gst_pad_template_pad_created">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="templ" type="GstPadTemplate*"/>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstPipeline" parent="GstBin" type-name="GstPipeline">
+      <field name="fixed_clock" readable="1" type="GstClock*" writable="1"/>
+      <field name="stream_time" readable="1" type="GstClockTime" writable="1"/>
+      <field name="delay" readable="1" type="GstClockTime" writable="1"/>
+      <field name="priv" type="GstPipelinePrivate*"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <property name="delay" readable="1" type="guint64" writable="1"/>
+      <property name="auto-flush-bus" readable="1" type="gboolean" writable="1"/>
+      <method name="auto_clock" symbol="gst_pipeline_auto_clock">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pipeline" type="GstPipeline*"/>
+        </parameters>
+      </method>
+      <method name="get_auto_flush_bus" symbol="gst_pipeline_get_auto_flush_bus">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pipeline" type="GstPipeline*"/>
+        </parameters>
+      </method>
+      <method name="get_bus" symbol="gst_pipeline_get_bus">
+        <return-type type="GstBus*"/>
+        <parameters>
+          <parameter name="pipeline" type="GstPipeline*"/>
+        </parameters>
+      </method>
+      <method name="get_clock" symbol="gst_pipeline_get_clock">
+        <return-type type="GstClock*"/>
+        <parameters>
+          <parameter name="pipeline" type="GstPipeline*"/>
+        </parameters>
+      </method>
+      <method name="get_delay" symbol="gst_pipeline_get_delay">
+        <return-type type="GstClockTime"/>
+        <parameters>
+          <parameter name="pipeline" type="GstPipeline*"/>
+        </parameters>
+      </method>
+      <method name="get_last_stream_time" symbol="gst_pipeline_get_last_stream_time">
+        <return-type type="GstClockTime"/>
+        <parameters>
+          <parameter name="pipeline" type="GstPipeline*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_pipeline_get_type">
+        <return-type type="GType"/>
+      </method>
+      <constructor name="new" symbol="gst_pipeline_new">
+        <parameters>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </constructor>
+      <method name="set_auto_flush_bus" symbol="gst_pipeline_set_auto_flush_bus">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pipeline" type="GstPipeline*"/>
+          <parameter name="auto_flush" type="gboolean"/>
+        </parameters>
+      </method>
+      <method name="set_clock" symbol="gst_pipeline_set_clock">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="pipeline" type="GstPipeline*"/>
+          <parameter name="clock" type="GstClock*"/>
+        </parameters>
+      </method>
+      <method name="set_delay" symbol="gst_pipeline_set_delay">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pipeline" type="GstPipeline*"/>
+          <parameter name="delay" type="GstClockTime"/>
+        </parameters>
+      </method>
+      <method name="set_new_stream_time" symbol="gst_pipeline_set_new_stream_time">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pipeline" type="GstPipeline*"/>
+          <parameter name="time" type="GstClockTime"/>
+        </parameters>
+      </method>
+      <method name="use_clock" symbol="gst_pipeline_use_clock">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="pipeline" type="GstPipeline*"/>
+          <parameter name="clock" type="GstClock*"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstPlugin" parent="GstObject" type-name="GstPlugin">
+      <field name="desc" type="GstPluginDesc"/>
+      <field name="orig_desc" type="GstPluginDesc*"/>
+      <field name="flags" type="unsigned int"/>
+      <field name="filename" type="gchar*"/>
+      <field name="basename" type="gchar*"/>
+      <field name="module" type="GModule*"/>
+      <field name="file_size" type="off_t"/>
+      <field name="file_mtime" type="time_t"/>
+      <field name="registered" type="gboolean"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <method name="error_quark" symbol="gst_plugin_error_quark">
+        <return-type type="GQuark"/>
+      </method>
+      <method name="get_description" symbol="gst_plugin_get_description">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="plugin" type="GstPlugin*"/>
+        </parameters>
+      </method>
+      <method name="get_filename" symbol="gst_plugin_get_filename">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="plugin" type="GstPlugin*"/>
+        </parameters>
+      </method>
+      <method name="get_license" symbol="gst_plugin_get_license">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="plugin" type="GstPlugin*"/>
+        </parameters>
+      </method>
+      <method name="get_module" symbol="gst_plugin_get_module">
+        <return-type type="GModule*"/>
+        <parameters>
+          <parameter name="plugin" type="GstPlugin*"/>
+        </parameters>
+      </method>
+      <method name="get_name" symbol="gst_plugin_get_name">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="plugin" type="GstPlugin*"/>
+        </parameters>
+      </method>
+      <method name="get_origin" symbol="gst_plugin_get_origin">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="plugin" type="GstPlugin*"/>
+        </parameters>
+      </method>
+      <method name="get_package" symbol="gst_plugin_get_package">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="plugin" type="GstPlugin*"/>
+        </parameters>
+      </method>
+      <method name="get_source" symbol="gst_plugin_get_source">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="plugin" type="GstPlugin*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_plugin_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="get_version" symbol="gst_plugin_get_version">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="plugin" type="GstPlugin*"/>
+        </parameters>
+      </method>
+      <method name="is_loaded" symbol="gst_plugin_is_loaded">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="plugin" type="GstPlugin*"/>
+        </parameters>
+      </method>
+      <method name="list_free" symbol="gst_plugin_list_free">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="list" type="GList*"/>
+        </parameters>
+      </method>
+      <method name="load" symbol="gst_plugin_load">
+        <return-type type="GstPlugin*"/>
+        <parameters>
+          <parameter name="plugin" type="GstPlugin*"/>
+        </parameters>
+      </method>
+      <method name="load_by_name" symbol="gst_plugin_load_by_name">
+        <return-type type="GstPlugin*"/>
+        <parameters>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="load_file" symbol="gst_plugin_load_file">
+        <return-type type="GstPlugin*"/>
+        <parameters>
+          <parameter name="filename" type="const-gchar*"/>
+          <parameter name="error" type="GError**"/>
+        </parameters>
+      </method>
+      <method name="name_filter" symbol="gst_plugin_name_filter">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="plugin" type="GstPlugin*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstPluginFeature" parent="GstObject" type-name="GstPluginFeature">
+      <field name="loaded" type="gboolean"/>
+      <field name="name" type="gchar*"/>
+      <field name="rank" type="guint"/>
+      <field name="plugin_name" type="gchar*"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <method name="check_version" symbol="gst_plugin_feature_check_version">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="feature" type="GstPluginFeature*"/>
+          <parameter name="min_major" type="guint"/>
+          <parameter name="min_minor" type="guint"/>
+          <parameter name="min_micro" type="guint"/>
+        </parameters>
+      </method>
+      <method name="get_name" symbol="gst_plugin_feature_get_name">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="feature" type="GstPluginFeature*"/>
+        </parameters>
+      </method>
+      <method name="get_rank" symbol="gst_plugin_feature_get_rank">
+        <return-type type="guint"/>
+        <parameters>
+          <parameter name="feature" type="GstPluginFeature*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_plugin_feature_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="list_free" symbol="gst_plugin_feature_list_free">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="list" type="GList*"/>
+        </parameters>
+      </method>
+      <method name="set_name" symbol="gst_plugin_feature_set_name">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="feature" type="GstPluginFeature*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="set_rank" symbol="gst_plugin_feature_set_rank">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="feature" type="GstPluginFeature*"/>
+          <parameter name="rank" type="guint"/>
+        </parameters>
+      </method>
+      <method name="type_name_filter" symbol="gst_plugin_feature_type_name_filter">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="feature" type="GstPluginFeature*"/>
+          <parameter name="data" type="GstTypeNameData*"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstQuery" parent="GstMiniObject" type-name="GstQuery">
+      <field name="type" readable="1" type="GstQueryType" writable="1"/>
+      <field name="structure" readable="1" type="GstStructure*" writable="1"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <method name="get_structure" symbol="gst_query_get_structure">
+        <return-type type="GstStructure*"/>
+        <parameters>
+          <parameter name="query" type="GstQuery*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_query_get_type">
+        <return-type type="GType"/>
+      </method>
+      <constructor name="new_application" symbol="gst_query_new_application">
+        <parameters>
+          <parameter name="type" type="GstQueryType"/>
+          <parameter name="structure" type="GstStructure*"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_convert" symbol="gst_query_new_convert">
+        <parameters>
+          <parameter name="src_format" type="GstFormat"/>
+          <parameter name="value" type="gint64"/>
+          <parameter name="dest_format" type="GstFormat"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_duration" symbol="gst_query_new_duration">
+        <parameters>
+          <parameter name="format" type="GstFormat"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_formats" symbol="gst_query_new_formats"/>
+      <constructor name="new_latency" symbol="gst_query_new_latency"/>
+      <constructor name="new_position" symbol="gst_query_new_position">
+        <parameters>
+          <parameter name="format" type="GstFormat"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_seeking" symbol="gst_query_new_seeking">
+        <parameters>
+          <parameter name="format" type="GstFormat"/>
+        </parameters>
+      </constructor>
+      <constructor name="new_segment" symbol="gst_query_new_segment">
+        <parameters>
+          <parameter name="format" type="GstFormat"/>
+        </parameters>
+      </constructor>
+      <method name="parse_convert" symbol="gst_query_parse_convert">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="query" type="GstQuery*"/>
+          <parameter name="src_format" type="GstFormat*"/>
+          <parameter name="src_value" type="gint64*"/>
+          <parameter name="dest_format" type="GstFormat*"/>
+          <parameter name="dest_value" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="parse_duration" symbol="gst_query_parse_duration">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="query" type="GstQuery*"/>
+          <parameter name="format" type="GstFormat*"/>
+          <parameter name="duration" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="parse_formats_length" symbol="gst_query_parse_formats_length">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="query" type="GstQuery*"/>
+          <parameter name="n_formats" type="guint*"/>
+        </parameters>
+      </method>
+      <method name="parse_formats_nth" symbol="gst_query_parse_formats_nth">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="query" type="GstQuery*"/>
+          <parameter name="nth" type="guint"/>
+          <parameter name="format" type="GstFormat*"/>
+        </parameters>
+      </method>
+      <method name="parse_latency" symbol="gst_query_parse_latency">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="query" type="GstQuery*"/>
+          <parameter name="live" type="gboolean*"/>
+          <parameter name="min_latency" type="GstClockTime*"/>
+          <parameter name="max_latency" type="GstClockTime*"/>
+        </parameters>
+      </method>
+      <method name="parse_position" symbol="gst_query_parse_position">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="query" type="GstQuery*"/>
+          <parameter name="format" type="GstFormat*"/>
+          <parameter name="cur" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="parse_seeking" symbol="gst_query_parse_seeking">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="query" type="GstQuery*"/>
+          <parameter name="format" type="GstFormat*"/>
+          <parameter name="seekable" type="gboolean*"/>
+          <parameter name="segment_start" type="gint64*"/>
+          <parameter name="segment_end" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="parse_segment" symbol="gst_query_parse_segment">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="query" type="GstQuery*"/>
+          <parameter name="rate" type="gdouble*"/>
+          <parameter name="format" type="GstFormat*"/>
+          <parameter name="start_value" type="gint64*"/>
+          <parameter name="stop_value" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="set_convert" symbol="gst_query_set_convert">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="query" type="GstQuery*"/>
+          <parameter name="src_format" type="GstFormat"/>
+          <parameter name="src_value" type="gint64"/>
+          <parameter name="dest_format" type="GstFormat"/>
+          <parameter name="dest_value" type="gint64"/>
+        </parameters>
+      </method>
+      <method name="set_duration" symbol="gst_query_set_duration">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="query" type="GstQuery*"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="duration" type="gint64"/>
+        </parameters>
+      </method>
+      <method name="set_formats" symbol="gst_query_set_formats">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="query" type="GstQuery*"/>
+          <parameter name="n_formats" type="gint"/>
+        </parameters>
+      </method>
+      <method name="set_formatsv" symbol="gst_query_set_formatsv">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="query" type="GstQuery*"/>
+          <parameter name="n_formats" type="gint"/>
+          <parameter name="formats" type="GstFormat*"/>
+        </parameters>
+      </method>
+      <method name="set_latency" symbol="gst_query_set_latency">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="query" type="GstQuery*"/>
+          <parameter name="live" type="gboolean"/>
+          <parameter name="min_latency" type="GstClockTime"/>
+          <parameter name="max_latency" type="GstClockTime"/>
+        </parameters>
+      </method>
+      <method name="set_position" symbol="gst_query_set_position">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="query" type="GstQuery*"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="cur" type="gint64"/>
+        </parameters>
+      </method>
+      <method name="set_seeking" symbol="gst_query_set_seeking">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="query" type="GstQuery*"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="seekable" type="gboolean"/>
+          <parameter name="segment_start" type="gint64"/>
+          <parameter name="segment_end" type="gint64"/>
+        </parameters>
+      </method>
+      <method name="set_segment" symbol="gst_query_set_segment">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="query" type="GstQuery*"/>
+          <parameter name="rate" type="gdouble"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="start_value" type="gint64"/>
+          <parameter name="stop_value" type="gint64"/>
+        </parameters>
+      </method>
+      <method name="type_get_by_nick" symbol="gst_query_type_get_by_nick">
+        <return-type type="GstQueryType"/>
+        <parameters>
+          <parameter name="nick" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="type_get_details" symbol="gst_query_type_get_details">
+        <return-type type="const-GstQueryTypeDefinition*"/>
+        <parameters>
+          <parameter name="type" type="GstQueryType"/>
+        </parameters>
+      </method>
+      <method name="type_get_name" symbol="gst_query_type_get_name">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="query" type="GstQueryType"/>
+        </parameters>
+      </method>
+      <method name="type_iterate_definitions" symbol="gst_query_type_iterate_definitions">
+        <return-type type="GstIterator*"/>
+      </method>
+      <method name="type_register" symbol="gst_query_type_register">
+        <return-type type="GstQueryType"/>
+        <parameters>
+          <parameter name="nick" type="const-gchar*"/>
+          <parameter name="description" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="type_to_quark" symbol="gst_query_type_to_quark">
+        <return-type type="GQuark"/>
+        <parameters>
+          <parameter name="query" type="GstQueryType"/>
+        </parameters>
+      </method>
+      <method name="types_contains" symbol="gst_query_types_contains">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="types" type="const-GstQueryType*"/>
+          <parameter name="type" type="GstQueryType"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstRegistry" parent="GstObject" type-name="GstRegistry">
+      <field name="plugins" type="GList*"/>
+      <field name="features" type="GList*"/>
+      <field name="paths" type="GList*"/>
+      <field name="cache_file" type="int"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <signal name="plugin_added" when="LAST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="plugin" type="GstPlugin*"/>
+        </parameters>
+      </signal>
+      <signal name="feature_added" when="LAST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="feature" type="GstPluginFeature*"/>
+        </parameters>
+      </signal>
+      <method name="add_feature" symbol="gst_registry_add_feature">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="feature" type="GstPluginFeature*"/>
+        </parameters>
+      </method>
+      <method name="add_plugin" symbol="gst_registry_add_plugin">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="plugin" type="GstPlugin*"/>
+        </parameters>
+      </method>
+      <method name="binary_read_cache" symbol="gst_registry_binary_read_cache">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="location" type="const-char*"/>
+        </parameters>
+      </method>
+      <method name="binary_write_cache" symbol="gst_registry_binary_write_cache">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="location" type="const-char*"/>
+        </parameters>
+      </method>
+      <method name="feature_filter" symbol="gst_registry_feature_filter">
+        <return-type type="GList*"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="filter" type="GstPluginFeatureFilter"/>
+          <parameter name="first" type="gboolean"/>
+          <parameter name="user_data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="find_feature" symbol="gst_registry_find_feature">
+        <return-type type="GstPluginFeature*"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="name" type="const-gchar*"/>
+          <parameter name="type" type="GType"/>
+        </parameters>
+      </method>
+      <method name="find_plugin" symbol="gst_registry_find_plugin">
+        <return-type type="GstPlugin*"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="fork_is_enabled" symbol="gst_registry_fork_is_enabled">
+        <return-type type="gboolean"/>
+      </method>
+      <method name="fork_set_enabled" symbol="gst_registry_fork_set_enabled">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="enabled" type="gboolean"/>
+        </parameters>
+      </method>
+      <method name="get_default" symbol="gst_registry_get_default">
+        <return-type type="GstRegistry*"/>
+      </method>
+      <method name="get_feature_list" symbol="gst_registry_get_feature_list">
+        <return-type type="GList*"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="type" type="GType"/>
+        </parameters>
+      </method>
+      <method name="get_feature_list_by_plugin" symbol="gst_registry_get_feature_list_by_plugin">
+        <return-type type="GList*"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_path_list" symbol="gst_registry_get_path_list">
+        <return-type type="GList*"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+        </parameters>
+      </method>
+      <method name="get_plugin_list" symbol="gst_registry_get_plugin_list">
+        <return-type type="GList*"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_registry_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="lookup" symbol="gst_registry_lookup">
+        <return-type type="GstPlugin*"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="filename" type="const-char*"/>
+        </parameters>
+      </method>
+      <method name="lookup_feature" symbol="gst_registry_lookup_feature">
+        <return-type type="GstPluginFeature*"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="name" type="const-char*"/>
+        </parameters>
+      </method>
+      <method name="plugin_filter" symbol="gst_registry_plugin_filter">
+        <return-type type="GList*"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="filter" type="GstPluginFilter"/>
+          <parameter name="first" type="gboolean"/>
+          <parameter name="user_data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="remove_feature" symbol="gst_registry_remove_feature">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="feature" type="GstPluginFeature*"/>
+        </parameters>
+      </method>
+      <method name="remove_plugin" symbol="gst_registry_remove_plugin">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="plugin" type="GstPlugin*"/>
+        </parameters>
+      </method>
+      <method name="scan_path" symbol="gst_registry_scan_path">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="path" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="xml_read_cache" symbol="gst_registry_xml_read_cache">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="location" type="const-char*"/>
+        </parameters>
+      </method>
+      <method name="xml_write_cache" symbol="gst_registry_xml_write_cache">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="registry" type="GstRegistry*"/>
+          <parameter name="location" type="const-char*"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstSystemClock" parent="GstClock" type-name="GstSystemClock">
+      <field name="thread" type="GThread*"/>
+      <field name="stopping" type="gboolean"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <method name="get_type" symbol="gst_system_clock_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="obtain" symbol="gst_system_clock_obtain">
+        <return-type type="GstClock*"/>
+      </method>
+    </object>
+    <object get-type="" name="GstTask" parent="GstObject" type-name="GstTask">
+      <field name="state" readable="1" type="GstTaskState" writable="1"/>
+      <field name="cond" readable="1" type="GCond*" writable="1"/>
+      <field name="lock" readable="1" type="GStaticRecMutex*" writable="1"/>
+      <field name="func" readable="1" type="GstTaskFunction" writable="1"/>
+      <field name="data" readable="1" type="gpointer" writable="1"/>
+      <field name="running" readable="1" type="gboolean" writable="1"/>
+      <field name="thread" type="GThread*"/>
+      <method name="cleanup_all" symbol="gst_task_cleanup_all">
+        <return-type type="void"/>
+      </method>
+      <method name="create" symbol="gst_task_create">
+        <return-type type="GstTask*"/>
+        <parameters>
+          <parameter name="func" type="GstTaskFunction"/>
+          <parameter name="data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="get_state" symbol="gst_task_get_state">
+        <return-type type="GstTaskState"/>
+        <parameters>
+          <parameter name="task" type="GstTask*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_task_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="join" symbol="gst_task_join">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="task" type="GstTask*"/>
+        </parameters>
+      </method>
+      <method name="pause" symbol="gst_task_pause">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="task" type="GstTask*"/>
+        </parameters>
+      </method>
+      <method name="set_lock" symbol="gst_task_set_lock">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="task" type="GstTask*"/>
+          <parameter name="mutex" type="GStaticRecMutex*"/>
+        </parameters>
+      </method>
+      <method name="start" symbol="gst_task_start">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="task" type="GstTask*"/>
+        </parameters>
+      </method>
+      <method name="stop" symbol="gst_task_stop">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="task" type="GstTask*"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="GstTypeFindFactory" parent="GstPluginFeature" type-name="GstTypeFindFactory">
+      <field name="function" type="GstTypeFindFunction"/>
+      <field name="extensions" type="gchar**"/>
+      <field name="caps" type="GstCaps*"/>
+      <field name="user_data" type="gpointer"/>
+      <field name="user_data_notify" type="GDestroyNotify"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <method name="call_function" symbol="gst_type_find_factory_call_function">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="factory" type="GstTypeFindFactory*"/>
+          <parameter name="find" type="GstTypeFind*"/>
+        </parameters>
+      </method>
+      <method name="get_caps" symbol="gst_type_find_factory_get_caps">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="factory" type="GstTypeFindFactory*"/>
+        </parameters>
+      </method>
+      <method name="get_extensions" symbol="gst_type_find_factory_get_extensions">
+        <return-type type="gchar**"/>
+        <parameters>
+          <parameter name="factory" type="GstTypeFindFactory*"/>
+        </parameters>
+      </method>
+      <method name="get_list" symbol="gst_type_find_factory_get_list">
+        <return-type type="GList*"/>
+      </method>
+      <method name="get_type" symbol="gst_type_find_factory_get_type">
+        <return-type type="GType"/>
+      </method>
+    </object>
+    <object get-type="" name="GstXML" parent="GstObject" type-name="GstXML">
+      <field name="topelements" type="GList*"/>
+      <field name="ns" type="xmlNsPtr"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <signal name="object_loaded" when="LAST">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="xml" type="GstXML*"/>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="self" type="xmlNodePtr"/>
+        </parameters>
+      </signal>
+      <vfunc name="object_saved">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="xml" type="GstXML*"/>
+          <parameter name="object" type="GstObject*"/>
+          <parameter name="self" type="xmlNodePtr"/>
+        </parameters>
+      </vfunc>
+      <method name="get_element" symbol="gst_xml_get_element">
+        <return-type type="GstElement*"/>
+        <parameters>
+          <parameter name="xml" type="GstXML*"/>
+          <parameter name="name" type="const-guchar*"/>
+        </parameters>
+      </method>
+      <method name="get_topelements" symbol="gst_xml_get_topelements">
+        <return-type type="GList*"/>
+        <parameters>
+          <parameter name="xml" type="GstXML*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_xml_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="make_element" symbol="gst_xml_make_element">
+        <return-type type="GstElement*"/>
+        <parameters>
+          <parameter name="cur" type="xmlNodePtr"/>
+          <parameter name="parent" type="GstObject*"/>
+        </parameters>
+      </method>
+      <constructor name="new" symbol="gst_xml_new"/>
+      <method name="parse_doc" symbol="gst_xml_parse_doc">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="xml" type="GstXML*"/>
+          <parameter name="doc" type="xmlDocPtr"/>
+          <parameter name="root" type="const-guchar*"/>
+        </parameters>
+      </method>
+      <method name="parse_file" symbol="gst_xml_parse_file">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="xml" type="GstXML*"/>
+          <parameter name="fname" type="const-guchar*"/>
+          <parameter name="root" type="const-guchar*"/>
+        </parameters>
+      </method>
+      <method name="parse_memory" symbol="gst_xml_parse_memory">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="xml" type="GstXML*"/>
+          <parameter name="buffer" type="guchar*"/>
+          <parameter name="size" type="guint"/>
+          <parameter name="root" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="write" symbol="gst_xml_write">
+        <return-type type="xmlDocPtr"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="write_file" symbol="gst_xml_write_file">
+        <return-type type="gint"/>
+        <parameters>
+          <parameter name="element" type="GstElement*"/>
+          <parameter name="out" type="FILE*"/>
+        </parameters>
+      </method>
+    </object>
+    <object get-type="" name="cast_t" type-name="cast_t"/>
+    <struct get-type="" name="GstAllocTrace" type-name="GstAllocTrace">
+      <field name="name" readable="1" type="gchar*" writable="1"/>
+      <field name="flags" readable="1" type="gint" writable="1"/>
+      <field name="live" readable="1" type="gint" writable="1"/>
+      <field name="mem_live" readable="1" type="GSList*" writable="1"/>
+      <method name="available" symbol="gst_alloc_trace_available">
+        <return-type type="gboolean"/>
+      </method>
+      <method name="get" symbol="gst_alloc_trace_get">
+        <return-type type="GstAllocTrace*"/>
+        <parameters>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="list" symbol="gst_alloc_trace_list">
+        <return-type type="const-GList*"/>
+      </method>
+      <method name="live_all" symbol="gst_alloc_trace_live_all">
+        <return-type type="int"/>
+      </method>
+      <method name="print" symbol="gst_alloc_trace_print">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="trace" type="const-GstAllocTrace*"/>
+        </parameters>
+      </method>
+      <method name="print_all" symbol="gst_alloc_trace_print_all">
+        <return-type type="void"/>
+      </method>
+      <method name="print_live" symbol="gst_alloc_trace_print_live">
+        <return-type type="void"/>
+      </method>
+      <method name="set_flags" symbol="gst_alloc_trace_set_flags">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="trace" type="GstAllocTrace*"/>
+          <parameter name="flags" type="GstAllocTraceFlags"/>
+        </parameters>
+      </method>
+      <method name="set_flags_all" symbol="gst_alloc_trace_set_flags_all">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="flags" type="GstAllocTraceFlags"/>
+        </parameters>
+      </method>
+    </struct>
+    <struct get-type="" name="GstBinaryChunk" opaque="true" type-name="GstBinaryChunk"/>
+    <struct get-type="" name="GstBinaryElementFactory" opaque="true" type-name="GstBinaryElementFactory"/>
+    <struct get-type="" name="GstBinaryPadTemplate" opaque="true" type-name="GstBinaryPadTemplate"/>
+    <struct get-type="" name="GstBinaryPluginElement" opaque="true" type-name="GstBinaryPluginElement"/>
+    <struct get-type="" name="GstBinaryPluginFeature" opaque="true" type-name="GstBinaryPluginFeature"/>
+    <struct get-type="" name="GstBinaryRegistryMagic" opaque="true" type-name="GstBinaryRegistryMagic"/>
+    <struct get-type="" name="GstBinaryTypeFindFactory" opaque="true" type-name="GstBinaryTypeFindFactory"/>
+    <boxed get-type="" name="GstCaps" opaque="true" type-name="GstCaps">
+      <field access="public" name="type" readable="1" type="GType" writable="1" writeable="true"/>
+      <field access="public" name="refcount" readable="1" type="gint" writable="1" writeable="true"/>
+      <field access="public" name="flags" readable="1" type="GstCapsFlags" writable="1" writeable="true"/>
+      <field access="public" name="structs" type="GPtrArray*" writeable="true"/>
+      <field access="public" name="_gst_reserved" type="gpointer" writeable="true"/>
+      <method name="append" symbol="gst_caps_append">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="caps1" type="GstCaps*"/>
+          <parameter name="caps2" type="GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="append_structure" symbol="gst_caps_append_structure">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="caps" type="GstCaps*"/>
+          <parameter name="structure" type="GstStructure*"/>
+        </parameters>
+      </method>
+      <method name="copy" symbol="gst_caps_copy">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="caps" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="copy_nth" symbol="gst_caps_copy_nth">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="caps" type="const-GstCaps*"/>
+          <parameter name="nth" type="guint"/>
+        </parameters>
+      </method>
+      <method name="do_simplify" symbol="gst_caps_do_simplify">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="caps" type="GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="from_string" symbol="gst_caps_from_string">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="string" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_size" symbol="gst_caps_get_size">
+        <return-type type="guint"/>
+        <parameters>
+          <parameter name="caps" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="get_structure" symbol="gst_caps_get_structure">
+        <return-type type="GstStructure*"/>
+        <parameters>
+          <parameter name="caps" type="const-GstCaps*"/>
+          <parameter name="index" type="guint"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_caps_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="intersect" symbol="gst_caps_intersect">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="caps1" type="const-GstCaps*"/>
+          <parameter name="caps2" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="is_always_compatible" symbol="gst_caps_is_always_compatible">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="caps1" type="const-GstCaps*"/>
+          <parameter name="caps2" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="is_any" symbol="gst_caps_is_any">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="caps" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="is_empty" symbol="gst_caps_is_empty">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="caps" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="is_equal" symbol="gst_caps_is_equal">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="caps1" type="const-GstCaps*"/>
+          <parameter name="caps2" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="is_equal_fixed" symbol="gst_caps_is_equal_fixed">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="caps1" type="const-GstCaps*"/>
+          <parameter name="caps2" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="is_fixed" symbol="gst_caps_is_fixed">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="caps" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="is_subset" symbol="gst_caps_is_subset">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="subset" type="const-GstCaps*"/>
+          <parameter name="superset" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="load_thyself" symbol="gst_caps_load_thyself">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="parent" type="xmlNodePtr"/>
+        </parameters>
+      </method>
+      <method name="make_writable" symbol="gst_caps_make_writable">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="caps" type="GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="merge" symbol="gst_caps_merge">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="caps1" type="GstCaps*"/>
+          <parameter name="caps2" type="GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="merge_structure" symbol="gst_caps_merge_structure">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="caps" type="GstCaps*"/>
+          <parameter name="structure" type="GstStructure*"/>
+        </parameters>
+      </method>
+      <method name="new_any" symbol="gst_caps_new_any">
+        <return-type type="GstCaps*"/>
+      </method>
+      <method name="new_empty" symbol="gst_caps_new_empty">
+        <return-type type="GstCaps*"/>
+      </method>
+      <method name="new_full" symbol="gst_caps_new_full">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="struct1" type="GstStructure*"/>
+        </parameters>
+      </method>
+      <method name="new_full_valist" symbol="gst_caps_new_full_valist">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+          <parameter name="var_args" type="va_list"/>
+        </parameters>
+      </method>
+      <method name="new_simple" symbol="gst_caps_new_simple">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="media_type" type="const-char*"/>
+          <parameter name="fieldname" type="const-char*"/>
+        </parameters>
+      </method>
+      <method name="normalize" symbol="gst_caps_normalize">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="caps" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="ref" symbol="gst_caps_ref">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="caps" type="GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="remove_structure" symbol="gst_caps_remove_structure">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="caps" type="GstCaps*"/>
+          <parameter name="idx" type="guint"/>
+        </parameters>
+      </method>
+      <method name="replace" symbol="gst_caps_replace">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="caps" type="GstCaps**"/>
+          <parameter name="newcaps" type="GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="save_thyself" symbol="gst_caps_save_thyself">
+        <return-type type="xmlNodePtr"/>
+        <parameters>
+          <parameter name="caps" type="const-GstCaps*"/>
+          <parameter name="parent" type="xmlNodePtr"/>
+        </parameters>
+      </method>
+      <method name="set_simple" symbol="gst_caps_set_simple">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="caps" type="GstCaps*"/>
+          <parameter name="field" type="char*"/>
+        </parameters>
+      </method>
+      <method name="set_simple_valist" symbol="gst_caps_set_simple_valist">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="caps" type="GstCaps*"/>
+          <parameter name="field" type="char*"/>
+          <parameter name="varargs" type="va_list"/>
+        </parameters>
+      </method>
+      <method name="subtract" symbol="gst_caps_subtract">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="minuend" type="const-GstCaps*"/>
+          <parameter name="subtrahend" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="to_string" symbol="gst_caps_to_string">
+        <return-type type="gchar*"/>
+        <parameters>
+          <parameter name="caps" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="truncate" symbol="gst_caps_truncate">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="caps" type="GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="union" symbol="gst_caps_union">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="caps1" type="const-GstCaps*"/>
+          <parameter name="caps2" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="unref" symbol="gst_caps_unref">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="caps" type="GstCaps*"/>
+        </parameters>
+      </method>
+    </boxed>
+    <struct get-type="" name="GstClockEntry" type-name="GstClockEntry">
+      <field name="refcount" readable="1" type="gint" writable="1"/>
+      <field name="clock" readable="1" type="GstClock*" writable="1"/>
+      <field name="type" readable="1" type="GstClockEntryType" writable="1"/>
+      <field name="time" readable="1" type="GstClockTime" writable="1"/>
+      <field name="interval" readable="1" type="GstClockTime" writable="1"/>
+      <field name="status" readable="1" type="GstClockReturn" writable="1"/>
+      <field name="func" readable="1" type="GstClockCallback" writable="1"/>
+      <field name="user_data" readable="1" type="gpointer" writable="1"/>
+    </struct>
+    <struct get-type="" name="GstDebugCategory" type-name="GstDebugCategory">
+      <field name="threshold" type="gint"/>
+      <field name="color" type="guint"/>
+      <field name="name" type="const-gchar*"/>
+      <field name="description" type="const-gchar*"/>
+    </struct>
+    <struct get-type="" name="GstDebugMessage" opaque="true" type-name="GstDebugMessage"/>
+    <struct get-type="" name="GstElementDetails" type-name="GstElementDetails">
+      <field name="longname" readable="1" type="gchar*" writable="1"/>
+      <field name="klass" readable="1" type="gchar*" writable="1"/>
+      <field name="description" readable="1" type="gchar*" writable="1"/>
+      <field name="author" readable="1" type="gchar*" writable="1"/>
+      <field name="_gst_reserved" type="gpointer"/>
+    </struct>
+    <struct get-type="" name="GstFormatDefinition" type-name="GstFormatDefinition">
+      <field name="value" readable="1" type="GstFormat" writable="1"/>
+      <field name="nick" readable="1" type="gchar*" writable="1"/>
+      <field name="description" readable="1" type="gchar*" writable="1"/>
+      <field name="quark" readable="1" type="GQuark" writable="1"/>
+    </struct>
+    <struct get-type="" name="GstIndexAssociation" type-name="GstIndexAssociation">
+      <field name="format" readable="1" type="GstFormat" writable="1"/>
+      <field name="value" readable="1" type="gint64" writable="1"/>
+    </struct>
+    <boxed get-type="" name="GstIndexEntry" type-name="GstIndexEntry">
+      <field name="type" type="GstIndexEntryType"/>
+      <field name="id" type="gint"/>
+      <field name="description" type="gchar*"/>
+      <method name="assoc_map" symbol="gst_index_entry_assoc_map">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="entry" type="GstIndexEntry*"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="value" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="copy" symbol="gst_index_entry_copy">
+        <return-type type="GstIndexEntry*"/>
+        <parameters>
+          <parameter name="entry" type="GstIndexEntry*"/>
+        </parameters>
+      </method>
+      <method name="free" symbol="gst_index_entry_free">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="entry" type="GstIndexEntry*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_index_entry_get_type">
+        <return-type type="GType"/>
+      </method>
+    </boxed>
+    <struct get-type="" name="GstIndexGroup" type-name="GstIndexGroup">
+      <field name="groupnum" type="gint"/>
+      <field name="entries" type="GList*"/>
+      <field name="certainty" type="GstIndexCertainty"/>
+      <field name="peergroup" type="gint"/>
+    </struct>
+    <struct get-type="" name="GstIterator" opaque="true" type-name="GstIterator">
+      <field access="public" name="next" readable="1" type="GstIteratorNextFunction" writable="1" writeable="true"/>
+      <field access="public" name="item" readable="1" type="GstIteratorItemFunction" writable="1" writeable="true"/>
+      <field access="public" name="resync" readable="1" type="GstIteratorResyncFunction" writable="1" writeable="true"/>
+      <field access="public" name="free" readable="1" type="GstIteratorFreeFunction" writable="1" writeable="true"/>
+      <field access="public" name="pushed" readable="1" type="GstIterator*" writable="1" writeable="true"/>
+      <field access="public" name="type" readable="1" type="GType" writable="1" writeable="true"/>
+      <field access="public" name="lock" readable="1" type="GMutex*" writable="1" writeable="true"/>
+      <field access="public" name="cookie" readable="1" type="guint32" writable="1" writeable="true"/>
+      <field access="public" name="master_cookie" readable="1" type="guint32*" writable="1" writeable="true"/>
+      <field access="public" name="_gst_reserved" type="gpointer" writeable="true"/>
+      <method name="filter" symbol="gst_iterator_filter">
+        <return-type type="GstIterator*"/>
+        <parameters>
+          <parameter name="it" type="GstIterator*"/>
+          <parameter name="func" type="GCompareFunc"/>
+          <parameter name="user_data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="find_custom" symbol="gst_iterator_find_custom">
+        <return-type type="gpointer"/>
+        <parameters>
+          <parameter name="it" type="GstIterator*"/>
+          <parameter name="func" type="GCompareFunc"/>
+          <parameter name="user_data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="fold" symbol="gst_iterator_fold">
+        <return-type type="GstIteratorResult"/>
+        <parameters>
+          <parameter name="it" type="GstIterator*"/>
+          <parameter name="func" type="GstIteratorFoldFunction"/>
+          <parameter name="ret" type="GValue*"/>
+          <parameter name="user_data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="foreach" symbol="gst_iterator_foreach">
+        <return-type type="GstIteratorResult"/>
+        <parameters>
+          <parameter name="it" type="GstIterator*"/>
+          <parameter name="func" type="GFunc"/>
+          <parameter name="user_data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="free" symbol="gst_iterator_free">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="it" type="GstIterator*"/>
+        </parameters>
+      </method>
+      <method name="new" symbol="gst_iterator_new">
+        <return-type type="GstIterator*"/>
+        <parameters>
+          <parameter name="size" type="guint"/>
+          <parameter name="type" type="GType"/>
+          <parameter name="lock" type="GMutex*"/>
+          <parameter name="master_cookie" type="guint32*"/>
+          <parameter name="next" type="GstIteratorNextFunction"/>
+          <parameter name="item" type="GstIteratorItemFunction"/>
+          <parameter name="resync" type="GstIteratorResyncFunction"/>
+          <parameter name="free" type="GstIteratorFreeFunction"/>
+        </parameters>
+      </method>
+      <method name="new_list" symbol="gst_iterator_new_list">
+        <return-type type="GstIterator*"/>
+        <parameters>
+          <parameter name="type" type="GType"/>
+          <parameter name="lock" type="GMutex*"/>
+          <parameter name="master_cookie" type="guint32*"/>
+          <parameter name="list" type="GList**"/>
+          <parameter name="owner" type="gpointer"/>
+          <parameter name="item" type="GstIteratorItemFunction"/>
+          <parameter name="free" type="GstIteratorDisposeFunction"/>
+        </parameters>
+      </method>
+      <method name="next" symbol="gst_iterator_next">
+        <return-type type="GstIteratorResult"/>
+        <parameters>
+          <parameter name="it" type="GstIterator*"/>
+          <parameter name="elem" type="gpointer*"/>
+        </parameters>
+      </method>
+      <method name="push" symbol="gst_iterator_push">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="it" type="GstIterator*"/>
+          <parameter name="other" type="GstIterator*"/>
+        </parameters>
+      </method>
+      <method name="resync" symbol="gst_iterator_resync">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="it" type="GstIterator*"/>
+        </parameters>
+      </method>
+    </struct>
+    <struct get-type="" name="GstPluginDesc" type-name="GstPluginDesc">
+      <field name="major_version" readable="1" type="gint" writable="1"/>
+      <field name="minor_version" readable="1" type="gint" writable="1"/>
+      <field name="name" readable="1" type="gchar*" writable="1"/>
+      <field name="description" readable="1" type="gchar*" writable="1"/>
+      <field name="plugin_init" readable="1" type="GstPluginInitFunc" writable="1"/>
+      <field name="version" readable="1" type="gchar*" writable="1"/>
+      <field name="license" readable="1" type="gchar*" writable="1"/>
+      <field name="source" readable="1" type="gchar*" writable="1"/>
+      <field name="package" readable="1" type="gchar*" writable="1"/>
+      <field name="origin" readable="1" type="gchar*" writable="1"/>
+      <field name="_gst_reserved" readable="1" type="gpointer" writable="1"/>
+    </struct>
+    <struct get-type="" name="GstQueryTypeDefinition" type-name="GstQueryTypeDefinition">
+      <field name="value" readable="1" type="GstQueryType" writable="1"/>
+      <field name="nick" readable="1" type="gchar*" writable="1"/>
+      <field name="description" readable="1" type="gchar*" writable="1"/>
+      <field name="quark" readable="1" type="GQuark" writable="1"/>
+    </struct>
+    <boxed get-type="" name="GstSegment" opaque="true" type-name="GstSegment">
+      <field access="public" name="rate" readable="1" type="gdouble" writable="1" writeable="true"/>
+      <field access="public" name="abs_rate" readable="1" type="gdouble" writable="1" writeable="true"/>
+      <field access="public" name="format" readable="1" type="GstFormat" writable="1" writeable="true"/>
+      <field access="public" name="flags" readable="1" type="GstSeekFlags" writable="1" writeable="true"/>
+      <field access="public" name="start" readable="1" type="gint64" writable="1" writeable="true"/>
+      <field access="public" name="stop" readable="1" type="gint64" writable="1" writeable="true"/>
+      <field access="public" name="time" readable="1" type="gint64" writable="1" writeable="true"/>
+      <field access="public" name="accum" readable="1" type="gint64" writable="1" writeable="true"/>
+      <field access="public" name="last_stop" readable="1" type="gint64" writable="1" writeable="true"/>
+      <field access="public" name="duration" readable="1" type="gint64" writable="1" writeable="true"/>
+      <field access="public" name="applied_rate" readable="1" type="gdouble" writable="1" writeable="true"/>
+      <field access="public" name="_gst_reserved" type="guint8" writeable="true"/>
+      <method name="clip" symbol="gst_segment_clip">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="segment" type="GstSegment*"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="start" type="gint64"/>
+          <parameter name="stop" type="gint64"/>
+          <parameter name="clip_start" type="gint64*"/>
+          <parameter name="clip_stop" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="free" symbol="gst_segment_free">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="segment" type="GstSegment*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_segment_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="init" symbol="gst_segment_init">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="segment" type="GstSegment*"/>
+          <parameter name="format" type="GstFormat"/>
+        </parameters>
+      </method>
+      <method name="new" symbol="gst_segment_new">
+        <return-type type="GstSegment*"/>
+      </method>
+      <method name="set_duration" symbol="gst_segment_set_duration">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="segment" type="GstSegment*"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="duration" type="gint64"/>
+        </parameters>
+      </method>
+      <method name="set_last_stop" symbol="gst_segment_set_last_stop">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="segment" type="GstSegment*"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="position" type="gint64"/>
+        </parameters>
+      </method>
+      <method name="set_newsegment" symbol="gst_segment_set_newsegment">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="segment" type="GstSegment*"/>
+          <parameter name="update" type="gboolean"/>
+          <parameter name="rate" type="gdouble"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="start" type="gint64"/>
+          <parameter name="stop" type="gint64"/>
+          <parameter name="time" type="gint64"/>
+        </parameters>
+      </method>
+      <method name="set_newsegment_full" symbol="gst_segment_set_newsegment_full">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="segment" type="GstSegment*"/>
+          <parameter name="update" type="gboolean"/>
+          <parameter name="rate" type="gdouble"/>
+          <parameter name="applied_rate" type="gdouble"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="start" type="gint64"/>
+          <parameter name="stop" type="gint64"/>
+          <parameter name="time" type="gint64"/>
+        </parameters>
+      </method>
+      <method name="set_seek" symbol="gst_segment_set_seek">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="segment" type="GstSegment*"/>
+          <parameter name="rate" type="gdouble"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="flags" type="GstSeekFlags"/>
+          <parameter name="start_type" type="GstSeekType"/>
+          <parameter name="start" type="gint64"/>
+          <parameter name="stop_type" type="GstSeekType"/>
+          <parameter name="stop" type="gint64"/>
+          <parameter name="update" type="gboolean*"/>
+        </parameters>
+      </method>
+      <method name="to_running_time" symbol="gst_segment_to_running_time">
+        <return-type type="gint64"/>
+        <parameters>
+          <parameter name="segment" type="GstSegment*"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="position" type="gint64"/>
+        </parameters>
+      </method>
+      <method name="to_stream_time" symbol="gst_segment_to_stream_time">
+        <return-type type="gint64"/>
+        <parameters>
+          <parameter name="segment" type="GstSegment*"/>
+          <parameter name="format" type="GstFormat"/>
+          <parameter name="position" type="gint64"/>
+        </parameters>
+      </method>
+    </boxed>
+    <struct get-type="" name="GstStaticCaps" type-name="GstStaticCaps">
+      <field name="caps" readable="1" type="GstCaps" writable="1"/>
+      <field name="string" readable="1" type="const-char*" writable="1"/>
+      <field name="_gst_reserved" type="gpointer"/>
+      <method name="get" symbol="gst_static_caps_get">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="static_caps" type="GstStaticCaps*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_static_caps_get_type">
+        <return-type type="GType"/>
+      </method>
+    </struct>
+    <struct get-type="" name="GstStaticPadTemplate" type-name="GstStaticPadTemplate">
+      <field name="name_template" readable="1" type="gchar*" writable="1"/>
+      <field name="direction" readable="1" type="GstPadDirection" writable="1"/>
+      <field name="presence" readable="1" type="GstPadPresence" writable="1"/>
+      <field name="static_caps" readable="1" type="GstStaticCaps" writable="1"/>
+      <method name="get" symbol="gst_static_pad_template_get">
+        <return-type type="GstPadTemplate*"/>
+        <parameters>
+          <parameter name="pad_template" type="GstStaticPadTemplate*"/>
+        </parameters>
+      </method>
+      <method name="get_caps" symbol="gst_static_pad_template_get_caps">
+        <return-type type="GstCaps*"/>
+        <parameters>
+          <parameter name="templ" type="GstStaticPadTemplate*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_static_pad_template_get_type">
+        <return-type type="GType"/>
+      </method>
+    </struct>
+    <boxed get-type="" name="GstStructure" opaque="true" type-name="GstStructure">
+      <field access="public" name="type" readable="1" type="GType" writable="1" writeable="true"/>
+      <field access="public" name="name" type="GQuark" writeable="true"/>
+      <field access="public" name="parent_refcount" type="gint*" writeable="true"/>
+      <field access="public" name="fields" type="GArray*" writeable="true"/>
+      <field access="public" name="_gst_reserved" type="gpointer" writeable="true"/>
+      <method name="copy" symbol="gst_structure_copy">
+        <return-type type="GstStructure*"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+        </parameters>
+      </method>
+      <method name="empty_new" symbol="gst_structure_empty_new">
+        <return-type type="GstStructure*"/>
+        <parameters>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="fixate_field_boolean" symbol="gst_structure_fixate_field_boolean">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+          <parameter name="field_name" type="const-char*"/>
+          <parameter name="target" type="gboolean"/>
+        </parameters>
+      </method>
+      <method name="fixate_field_nearest_double" symbol="gst_structure_fixate_field_nearest_double">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+          <parameter name="field_name" type="const-char*"/>
+          <parameter name="target" type="double"/>
+        </parameters>
+      </method>
+      <method name="fixate_field_nearest_fraction" symbol="gst_structure_fixate_field_nearest_fraction">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+          <parameter name="field_name" type="const-char*"/>
+          <parameter name="target_numerator" type="const-gint"/>
+          <parameter name="target_denominator" type="const-gint"/>
+        </parameters>
+      </method>
+      <method name="fixate_field_nearest_int" symbol="gst_structure_fixate_field_nearest_int">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+          <parameter name="field_name" type="const-char*"/>
+          <parameter name="target" type="int"/>
+        </parameters>
+      </method>
+      <method name="foreach" symbol="gst_structure_foreach">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+          <parameter name="func" type="GstStructureForeachFunc"/>
+          <parameter name="user_data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="free" symbol="gst_structure_free">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+        </parameters>
+      </method>
+      <method name="from_string" symbol="gst_structure_from_string">
+        <return-type type="GstStructure*"/>
+        <parameters>
+          <parameter name="string" type="const-gchar*"/>
+          <parameter name="end" type="gchar**"/>
+        </parameters>
+      </method>
+      <method name="get_boolean" symbol="gst_structure_get_boolean">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+          <parameter name="value" type="gboolean*"/>
+        </parameters>
+      </method>
+      <method name="get_clock_time" symbol="gst_structure_get_clock_time">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+          <parameter name="value" type="GstClockTime*"/>
+        </parameters>
+      </method>
+      <method name="get_date" symbol="gst_structure_get_date">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+          <parameter name="value" type="GDate**"/>
+        </parameters>
+      </method>
+      <method name="get_double" symbol="gst_structure_get_double">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+          <parameter name="value" type="gdouble*"/>
+        </parameters>
+      </method>
+      <method name="get_enum" symbol="gst_structure_get_enum">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+          <parameter name="enumtype" type="GType"/>
+          <parameter name="value" type="gint*"/>
+        </parameters>
+      </method>
+      <method name="get_field_type" symbol="gst_structure_get_field_type">
+        <return-type type="GType"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_fourcc" symbol="gst_structure_get_fourcc">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+          <parameter name="value" type="guint32*"/>
+        </parameters>
+      </method>
+      <method name="get_fraction" symbol="gst_structure_get_fraction">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+          <parameter name="value_numerator" type="gint*"/>
+          <parameter name="value_denominator" type="gint*"/>
+        </parameters>
+      </method>
+      <method name="get_int" symbol="gst_structure_get_int">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+          <parameter name="value" type="gint*"/>
+        </parameters>
+      </method>
+      <method name="get_name" symbol="gst_structure_get_name">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+        </parameters>
+      </method>
+      <method name="get_name_id" symbol="gst_structure_get_name_id">
+        <return-type type="GQuark"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+        </parameters>
+      </method>
+      <method name="get_string" symbol="gst_structure_get_string">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_structure_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="get_value" symbol="gst_structure_get_value">
+        <return-type type="const-GValue*"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="has_field" symbol="gst_structure_has_field">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="has_field_typed" symbol="gst_structure_has_field_typed">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+          <parameter name="type" type="GType"/>
+        </parameters>
+      </method>
+      <method name="has_name" symbol="gst_structure_has_name">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="id_empty_new" symbol="gst_structure_id_empty_new">
+        <return-type type="GstStructure*"/>
+        <parameters>
+          <parameter name="quark" type="GQuark"/>
+        </parameters>
+      </method>
+      <method name="id_get_value" symbol="gst_structure_id_get_value">
+        <return-type type="const-GValue*"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+          <parameter name="field" type="GQuark"/>
+        </parameters>
+      </method>
+      <method name="id_set" symbol="gst_structure_id_set">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+          <parameter name="fieldname" type="GQuark"/>
+        </parameters>
+      </method>
+      <method name="id_set_valist" symbol="gst_structure_id_set_valist">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+          <parameter name="fieldname" type="GQuark"/>
+          <parameter name="varargs" type="va_list"/>
+        </parameters>
+      </method>
+      <method name="id_set_value" symbol="gst_structure_id_set_value">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+          <parameter name="field" type="GQuark"/>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="map_in_place" symbol="gst_structure_map_in_place">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+          <parameter name="func" type="GstStructureMapFunc"/>
+          <parameter name="user_data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="n_fields" symbol="gst_structure_n_fields">
+        <return-type type="gint"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+        </parameters>
+      </method>
+      <method name="new" symbol="gst_structure_new">
+        <return-type type="GstStructure*"/>
+        <parameters>
+          <parameter name="name" type="const-gchar*"/>
+          <parameter name="firstfield" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="new_valist" symbol="gst_structure_new_valist">
+        <return-type type="GstStructure*"/>
+        <parameters>
+          <parameter name="name" type="const-gchar*"/>
+          <parameter name="firstfield" type="const-gchar*"/>
+          <parameter name="varargs" type="va_list"/>
+        </parameters>
+      </method>
+      <method name="nth_field_name" symbol="gst_structure_nth_field_name">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+          <parameter name="index" type="guint"/>
+        </parameters>
+      </method>
+      <method name="remove_all_fields" symbol="gst_structure_remove_all_fields">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+        </parameters>
+      </method>
+      <method name="remove_field" symbol="gst_structure_remove_field">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="remove_fields" symbol="gst_structure_remove_fields">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="remove_fields_valist" symbol="gst_structure_remove_fields_valist">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+          <parameter name="varargs" type="va_list"/>
+        </parameters>
+      </method>
+      <method name="set" symbol="gst_structure_set">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="set_name" symbol="gst_structure_set_name">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+          <parameter name="name" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="set_parent_refcount" symbol="gst_structure_set_parent_refcount">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+          <parameter name="refcount" type="gint*"/>
+        </parameters>
+      </method>
+      <method name="set_valist" symbol="gst_structure_set_valist">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+          <parameter name="varargs" type="va_list"/>
+        </parameters>
+      </method>
+      <method name="set_value" symbol="gst_structure_set_value">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="structure" type="GstStructure*"/>
+          <parameter name="fieldname" type="const-gchar*"/>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="to_string" symbol="gst_structure_to_string">
+        <return-type type="gchar*"/>
+        <parameters>
+          <parameter name="structure" type="const-GstStructure*"/>
+        </parameters>
+      </method>
+    </boxed>
+    <boxed get-type="" name="GstTagList" opaque="true" type-name="GstTagList">
+      <field access="public" name="type" readable="1" type="GType" writable="1" writeable="true"/>
+      <field access="public" name="name" type="GQuark" writeable="true"/>
+      <field access="public" name="parent_refcount" type="gint*" writeable="true"/>
+      <field access="public" name="fields" type="GArray*" writeable="true"/>
+      <field access="public" name="_gst_reserved" type="gpointer" writeable="true"/>
+      <method name="add" symbol="gst_tag_list_add">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="list" type="GstTagList*"/>
+          <parameter name="mode" type="GstTagMergeMode"/>
+          <parameter name="tag" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="add_valist" symbol="gst_tag_list_add_valist">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="list" type="GstTagList*"/>
+          <parameter name="mode" type="GstTagMergeMode"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="var_args" type="va_list"/>
+        </parameters>
+      </method>
+      <method name="add_valist_values" symbol="gst_tag_list_add_valist_values">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="list" type="GstTagList*"/>
+          <parameter name="mode" type="GstTagMergeMode"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="var_args" type="va_list"/>
+        </parameters>
+      </method>
+      <method name="add_values" symbol="gst_tag_list_add_values">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="list" type="GstTagList*"/>
+          <parameter name="mode" type="GstTagMergeMode"/>
+          <parameter name="tag" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="copy" symbol="gst_tag_list_copy">
+        <return-type type="GstTagList*"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+        </parameters>
+      </method>
+      <method name="copy_value" symbol="gst_tag_list_copy_value">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="dest" type="GValue*"/>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="foreach" symbol="gst_tag_list_foreach">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="func" type="GstTagForeachFunc"/>
+          <parameter name="user_data" type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="free" symbol="gst_tag_list_free">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="list" type="GstTagList*"/>
+        </parameters>
+      </method>
+      <method name="get_boolean" symbol="gst_tag_list_get_boolean">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="value" type="gboolean*"/>
+        </parameters>
+      </method>
+      <method name="get_boolean_index" symbol="gst_tag_list_get_boolean_index">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="index" type="guint"/>
+          <parameter name="value" type="gboolean*"/>
+        </parameters>
+      </method>
+      <method name="get_char" symbol="gst_tag_list_get_char">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="value" type="gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_char_index" symbol="gst_tag_list_get_char_index">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="index" type="guint"/>
+          <parameter name="value" type="gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_date" symbol="gst_tag_list_get_date">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="value" type="GDate**"/>
+        </parameters>
+      </method>
+      <method name="get_date_index" symbol="gst_tag_list_get_date_index">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="index" type="guint"/>
+          <parameter name="value" type="GDate**"/>
+        </parameters>
+      </method>
+      <method name="get_double" symbol="gst_tag_list_get_double">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="value" type="gdouble*"/>
+        </parameters>
+      </method>
+      <method name="get_double_index" symbol="gst_tag_list_get_double_index">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="index" type="guint"/>
+          <parameter name="value" type="gdouble*"/>
+        </parameters>
+      </method>
+      <method name="get_float" symbol="gst_tag_list_get_float">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="value" type="gfloat*"/>
+        </parameters>
+      </method>
+      <method name="get_float_index" symbol="gst_tag_list_get_float_index">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="index" type="guint"/>
+          <parameter name="value" type="gfloat*"/>
+        </parameters>
+      </method>
+      <method name="get_int" symbol="gst_tag_list_get_int">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="value" type="gint*"/>
+        </parameters>
+      </method>
+      <method name="get_int64" symbol="gst_tag_list_get_int64">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="value" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="get_int64_index" symbol="gst_tag_list_get_int64_index">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="index" type="guint"/>
+          <parameter name="value" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="get_int_index" symbol="gst_tag_list_get_int_index">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="index" type="guint"/>
+          <parameter name="value" type="gint*"/>
+        </parameters>
+      </method>
+      <method name="get_long" symbol="gst_tag_list_get_long">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="value" type="glong*"/>
+        </parameters>
+      </method>
+      <method name="get_long_index" symbol="gst_tag_list_get_long_index">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="index" type="guint"/>
+          <parameter name="value" type="glong*"/>
+        </parameters>
+      </method>
+      <method name="get_pointer" symbol="gst_tag_list_get_pointer">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="value" type="gpointer*"/>
+        </parameters>
+      </method>
+      <method name="get_pointer_index" symbol="gst_tag_list_get_pointer_index">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="index" type="guint"/>
+          <parameter name="value" type="gpointer*"/>
+        </parameters>
+      </method>
+      <method name="get_string" symbol="gst_tag_list_get_string">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="value" type="gchar**"/>
+        </parameters>
+      </method>
+      <method name="get_string_index" symbol="gst_tag_list_get_string_index">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="index" type="guint"/>
+          <parameter name="value" type="gchar**"/>
+        </parameters>
+      </method>
+      <method name="get_tag_size" symbol="gst_tag_list_get_tag_size">
+        <return-type type="guint"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_tag_list_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="get_uchar" symbol="gst_tag_list_get_uchar">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="value" type="guchar*"/>
+        </parameters>
+      </method>
+      <method name="get_uchar_index" symbol="gst_tag_list_get_uchar_index">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="index" type="guint"/>
+          <parameter name="value" type="guchar*"/>
+        </parameters>
+      </method>
+      <method name="get_uint" symbol="gst_tag_list_get_uint">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="value" type="guint*"/>
+        </parameters>
+      </method>
+      <method name="get_uint64" symbol="gst_tag_list_get_uint64">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="value" type="guint64*"/>
+        </parameters>
+      </method>
+      <method name="get_uint64_index" symbol="gst_tag_list_get_uint64_index">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="index" type="guint"/>
+          <parameter name="value" type="guint64*"/>
+        </parameters>
+      </method>
+      <method name="get_uint_index" symbol="gst_tag_list_get_uint_index">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="index" type="guint"/>
+          <parameter name="value" type="guint*"/>
+        </parameters>
+      </method>
+      <method name="get_ulong" symbol="gst_tag_list_get_ulong">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="value" type="gulong*"/>
+        </parameters>
+      </method>
+      <method name="get_ulong_index" symbol="gst_tag_list_get_ulong_index">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="index" type="guint"/>
+          <parameter name="value" type="gulong*"/>
+        </parameters>
+      </method>
+      <method name="get_value_index" symbol="gst_tag_list_get_value_index">
+        <return-type type="const-GValue*"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+          <parameter name="index" type="guint"/>
+        </parameters>
+      </method>
+      <method name="insert" symbol="gst_tag_list_insert">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="into" type="GstTagList*"/>
+          <parameter name="from" type="const-GstTagList*"/>
+          <parameter name="mode" type="GstTagMergeMode"/>
+        </parameters>
+      </method>
+      <method name="is_empty" symbol="gst_tag_list_is_empty">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="list" type="const-GstTagList*"/>
+        </parameters>
+      </method>
+      <method name="merge" symbol="gst_tag_list_merge">
+        <return-type type="GstTagList*"/>
+        <parameters>
+          <parameter name="list1" type="const-GstTagList*"/>
+          <parameter name="list2" type="const-GstTagList*"/>
+          <parameter name="mode" type="GstTagMergeMode"/>
+        </parameters>
+      </method>
+      <method name="new" symbol="gst_tag_list_new">
+        <return-type type="GstTagList*"/>
+      </method>
+      <method name="remove_tag" symbol="gst_tag_list_remove_tag">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="list" type="GstTagList*"/>
+          <parameter name="tag" type="const-gchar*"/>
+        </parameters>
+      </method>
+    </boxed>
+    <struct get-type="" name="GstTrace" opaque="true" type-name="GstTrace">
+      <field access="public" name="filename" type="gchar*" writeable="true"/>
+      <field access="public" name="fd" type="int" writeable="true"/>
+      <field access="public" name="buf" type="GstTraceEntry*" writeable="true"/>
+      <field access="public" name="bufsize" type="gint" writeable="true"/>
+      <field access="public" name="bufoffset" type="gint" writeable="true"/>
+      <method name="destroy" symbol="gst_trace_destroy">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="trace" type="GstTrace*"/>
+        </parameters>
+      </method>
+      <method name="flush" symbol="gst_trace_flush">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="trace" type="GstTrace*"/>
+        </parameters>
+      </method>
+      <method name="new" symbol="gst_trace_new">
+        <return-type type="GstTrace*"/>
+        <parameters>
+          <parameter name="filename" type="gchar*"/>
+          <parameter name="size" type="gint"/>
+        </parameters>
+      </method>
+      <method name="read_tsc" symbol="gst_trace_read_tsc">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="dst" type="gint64*"/>
+        </parameters>
+      </method>
+      <method name="set_default" symbol="gst_trace_set_default">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="trace" type="GstTrace*"/>
+        </parameters>
+      </method>
+      <method name="text_flush" symbol="gst_trace_text_flush">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="trace" type="GstTrace*"/>
+        </parameters>
+      </method>
+    </struct>
+    <struct get-type="" name="GstTraceEntry" type-name="GstTraceEntry">
+      <field name="timestamp" readable="1" type="gint64" writable="1"/>
+      <field name="sequence" readable="1" type="guint32" writable="1"/>
+      <field name="data" readable="1" type="guint32" writable="1"/>
+      <field name="message" readable="1" type="gchar" writable="1"/>
+    </struct>
+    <struct get-type="" name="GstTypeFind" type-name="GstTypeFind">
+      <field name="data" readable="1" type="gpointer" writable="1"/>
+      <field name="_gst_reserved" readable="1" type="gpointer" writable="1"/>
+      <method name="get_length" symbol="gst_type_find_get_length">
+        <return-type type="guint64"/>
+        <parameters>
+          <parameter name="find" type="GstTypeFind*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_type_find_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="peek" symbol="gst_type_find_peek">
+        <return-type type="guint8*"/>
+        <parameters>
+          <parameter name="find" type="GstTypeFind*"/>
+          <parameter name="offset" type="gint64"/>
+          <parameter name="size" type="guint"/>
+        </parameters>
+      </method>
+      <method name="register" symbol="gst_type_find_register">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="plugin" type="GstPlugin*"/>
+          <parameter name="name" type="const-gchar*"/>
+          <parameter name="rank" type="guint"/>
+          <parameter name="func" type="GstTypeFindFunction"/>
+          <parameter name="extensions" type="gchar**"/>
+          <parameter name="possible_caps" type="const-GstCaps*"/>
+          <parameter name="data" type="gpointer"/>
+          <parameter name="data_notify" type="GDestroyNotify"/>
+        </parameters>
+      </method>
+      <method name="suggest" symbol="gst_type_find_suggest">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="find" type="GstTypeFind*"/>
+          <parameter name="probability" type="guint"/>
+          <parameter name="caps" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+    </struct>
+    <struct get-type="" name="GstTypeNameData" type-name="GstTypeNameData">
+      <field name="name" readable="1" type="const-gchar*" writable="1"/>
+      <field name="type" readable="1" type="GType" writable="1"/>
+    </struct>
+    <struct get-type="" name="GstValueTable" type-name="GstValueTable">
+      <field name="type" readable="1" type="GType" writable="1"/>
+      <field name="compare" readable="1" type="GstValueCompareFunc" writable="1"/>
+      <field name="serialize" readable="1" type="GstValueSerializeFunc" writable="1"/>
+      <field name="deserialize" readable="1" type="GstValueDeserializeFunc" writable="1"/>
+      <field name="_gst_reserved" type="void*"/>
+    </struct>
+    <function name="atomic_int_set" symbol="gst_atomic_int_set">
+      <return-type type="void"/>
+      <parameters>
+        <parameter name="atomic_int" type="gint*"/>
+        <parameter name="value" type="gint"/>
+      </parameters>
+    </function>
+    <function name="class_signal_emit_by_name" symbol="gst_class_signal_emit_by_name">
+      <return-type type="void"/>
+      <parameters>
+        <parameter name="object" type="GstObject*"/>
+        <parameter name="name" type="const-gchar*"/>
+        <parameter name="self" type="GstXmlNodePtr"/>
+      </parameters>
+    </function>
+    <function name="core_error_quark" symbol="gst_core_error_quark">
+      <return-type type="GQuark"/>
+    </function>
+    <function name="date_get_type" symbol="gst_date_get_type">
+      <return-type type="GType"/>
+    </function>
+    <struct name="GstDebug">
+      <method name="print_stack_trace" symbol="gst_debug_print_stack_trace">
+        <return-type type="void"/>
+      </method>
+      <method name="remove_log_function" symbol="gst_debug_remove_log_function">
+        <return-type type="guint"/>
+        <parameters>
+          <parameter name="func" type="GstLogFunction"/>
+        </parameters>
+      </method>
+      <method name="remove_log_function_by_data" symbol="gst_debug_remove_log_function_by_data">
+        <return-type type="guint"/>
+        <parameters>
+          <parameter name="data" type="gpointer"/>
+        </parameters>
+      </method>
+    </struct>
+    <function name="default_registry_check_feature_version" symbol="gst_default_registry_check_feature_version">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="feature_name" type="const-gchar*"/>
+        <parameter name="min_major" type="guint"/>
+        <parameter name="min_minor" type="guint"/>
+        <parameter name="min_micro" type="guint"/>
+      </parameters>
+    </function>
+    <function name="double_range_get_type" symbol="gst_double_range_get_type">
+      <return-type type="GType"/>
+    </function>
+    <function name="error_get_message" symbol="gst_error_get_message">
+      <return-type type="gchar*"/>
+      <parameters>
+        <parameter name="domain" type="GQuark"/>
+        <parameter name="code" type="gint"/>
+      </parameters>
+    </function>
+    <function name="filter_run" symbol="gst_filter_run">
+      <return-type type="GList*"/>
+      <parameters>
+        <parameter name="list" type="const-GList*"/>
+        <parameter name="func" type="GstFilterFunc"/>
+        <parameter name="first" type="gboolean"/>
+        <parameter name="user_data" type="gpointer"/>
+      </parameters>
+    </function>
+    <struct name="GstFlow">
+      <method name="get_name" symbol="gst_flow_get_name">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="ret" type="GstFlowReturn"/>
+        </parameters>
+      </method>
+      <method name="to_quark" symbol="gst_flow_to_quark">
+        <return-type type="GQuark"/>
+        <parameters>
+          <parameter name="ret" type="GstFlowReturn"/>
+        </parameters>
+      </method>
+    </struct>
+    <function name="format_get_by_nick" symbol="gst_format_get_by_nick">
+      <return-type type="GstFormat"/>
+      <parameters>
+        <parameter name="nick" type="const-gchar*"/>
+      </parameters>
+    </function>
+    <function name="format_get_details" symbol="gst_format_get_details">
+      <return-type type="const-GstFormatDefinition*"/>
+      <parameters>
+        <parameter name="format" type="GstFormat"/>
+      </parameters>
+    </function>
+    <function name="format_get_name" symbol="gst_format_get_name">
+      <return-type type="const-gchar*"/>
+      <parameters>
+        <parameter name="format" type="GstFormat"/>
+      </parameters>
+    </function>
+    <function name="format_iterate_definitions" symbol="gst_format_iterate_definitions">
+      <return-type type="GstIterator*"/>
+    </function>
+    <function name="format_register" symbol="gst_format_register">
+      <return-type type="GstFormat"/>
+      <parameters>
+        <parameter name="nick" type="const-gchar*"/>
+        <parameter name="description" type="const-gchar*"/>
+      </parameters>
+    </function>
+    <function name="format_to_quark" symbol="gst_format_to_quark">
+      <return-type type="GQuark"/>
+      <parameters>
+        <parameter name="format" type="GstFormat"/>
+      </parameters>
+    </function>
+    <function name="formats_contains" symbol="gst_formats_contains">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="formats" type="const-GstFormat*"/>
+        <parameter name="format" type="GstFormat"/>
+      </parameters>
+    </function>
+    <function name="fourcc_get_type" symbol="gst_fourcc_get_type">
+      <return-type type="GType"/>
+    </function>
+    <struct name="GstFraction">
+      <method name="get_type" symbol="gst_fraction_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="range_get_type" symbol="gst_fraction_range_get_type">
+        <return-type type="GType"/>
+      </method>
+    </struct>
+    <function name="g_error_get_type" symbol="gst_g_error_get_type">
+      <return-type type="GType"/>
+    </function>
+    <struct name="GstInit">
+      <method name="check" symbol="gst_init_check">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="argc" type="int*"/>
+          <parameter name="argv" type="char**[]"/>
+          <parameter name="err" type="GError**"/>
+        </parameters>
+      </method>
+      <method name="get_option_group" symbol="gst_init_get_option_group">
+        <return-type type="GOptionGroup*"/>
+      </method>
+    </struct>
+    <function name="int_range_get_type" symbol="gst_int_range_get_type">
+      <return-type type="GType"/>
+    </function>
+    <function name="is_tag_list" symbol="gst_is_tag_list">
+      <return-type type="gboolean"/>
+      <parameters>
+        <parameter name="p" type="gconstpointer"/>
+      </parameters>
+    </function>
+    <function name="library_error_quark" symbol="gst_library_error_quark">
+      <return-type type="GQuark"/>
+    </function>
+    <function name="param_spec_mini_object" symbol="gst_param_spec_mini_object">
+      <return-type type="GParamSpec*"/>
+      <parameters>
+        <parameter name="name" type="const-char*"/>
+        <parameter name="nick" type="const-char*"/>
+        <parameter name="blurb" type="const-char*"/>
+        <parameter name="object_type" type="GType"/>
+        <parameter name="flags" type="GParamFlags"/>
+      </parameters>
+    </function>
+    <function name="parse_bin_from_description" symbol="gst_parse_bin_from_description">
+      <return-type type="GstElement*"/>
+      <parameters>
+        <parameter name="bin_description" type="const-gchar*"/>
+        <parameter name="ghost_unconnected_pads" type="gboolean"/>
+        <parameter name="err" type="GError**"/>
+      </parameters>
+    </function>
+    <function name="parse_error_quark" symbol="gst_parse_error_quark">
+      <return-type type="GQuark"/>
+    </function>
+    <function name="parse_launch" symbol="gst_parse_launch">
+      <return-type type="GstElement*"/>
+      <parameters>
+        <parameter name="pipeline_description" type="const-gchar*"/>
+        <parameter name="error" type="GError**"/>
+      </parameters>
+    </function>
+    <function name="parse_launchv" symbol="gst_parse_launchv">
+      <return-type type="GstElement*"/>
+      <parameters>
+        <parameter name="argv" type="const-gchar**"/>
+        <parameter name="error" type="GError**"/>
+      </parameters>
+    </function>
+    <struct name="GstPrint">
+      <method name="element_args" symbol="gst_print_element_args">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="buf" type="GString*"/>
+          <parameter name="indent" type="gint"/>
+          <parameter name="element" type="GstElement*"/>
+        </parameters>
+      </method>
+      <method name="pad_caps" symbol="gst_print_pad_caps">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="buf" type="GString*"/>
+          <parameter name="indent" type="gint"/>
+          <parameter name="pad" type="GstPad*"/>
+        </parameters>
+      </method>
+    </struct>
+    <function name="resource_error_quark" symbol="gst_resource_error_quark">
+      <return-type type="GQuark"/>
+    </function>
+    <struct name="GstSegtrap">
+      <method name="is_enabled" symbol="gst_segtrap_is_enabled">
+        <return-type type="gboolean"/>
+      </method>
+      <method name="set_enabled" symbol="gst_segtrap_set_enabled">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="enabled" type="gboolean"/>
+        </parameters>
+      </method>
+    </struct>
+    <function name="stream_error_quark" symbol="gst_stream_error_quark">
+      <return-type type="GQuark"/>
+    </function>
+    <struct name="GstTag">
+      <method name="exists" symbol="gst_tag_exists">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="tag" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_description" symbol="gst_tag_get_description">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="tag" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_flag" symbol="gst_tag_get_flag">
+        <return-type type="GstTagFlag"/>
+        <parameters>
+          <parameter name="tag" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_nick" symbol="gst_tag_get_nick">
+        <return-type type="const-gchar*"/>
+        <parameters>
+          <parameter name="tag" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_type" symbol="gst_tag_get_type">
+        <return-type type="GType"/>
+        <parameters>
+          <parameter name="tag" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="is_fixed" symbol="gst_tag_is_fixed">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="tag" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="merge_strings_with_comma" symbol="gst_tag_merge_strings_with_comma">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="dest" type="GValue*"/>
+          <parameter name="src" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="merge_use_first" symbol="gst_tag_merge_use_first">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="dest" type="GValue*"/>
+          <parameter name="src" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="register" symbol="gst_tag_register">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="name" type="const-gchar*"/>
+          <parameter name="flag" type="GstTagFlag"/>
+          <parameter name="type" type="GType"/>
+          <parameter name="nick" type="const-gchar*"/>
+          <parameter name="blurb" type="const-gchar*"/>
+          <parameter name="func" type="GstTagMergeFunc"/>
+        </parameters>
+      </method>
+    </struct>
+    <function name="update_registry" symbol="gst_update_registry">
+      <return-type type="gboolean"/>
+    </function>
+    <struct name="GstUri">
+      <method name="construct" symbol="gst_uri_construct">
+        <return-type type="gchar*"/>
+        <parameters>
+          <parameter name="protocol" type="const-gchar*"/>
+          <parameter name="location" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_location" symbol="gst_uri_get_location">
+        <return-type type="gchar*"/>
+        <parameters>
+          <parameter name="uri" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="get_protocol" symbol="gst_uri_get_protocol">
+        <return-type type="gchar*"/>
+        <parameters>
+          <parameter name="uri" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="has_protocol" symbol="gst_uri_has_protocol">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="uri" type="const-gchar*"/>
+          <parameter name="protocol" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="is_valid" symbol="gst_uri_is_valid">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="uri" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="protocol_is_supported" symbol="gst_uri_protocol_is_supported">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="type" type="const-GstURIType"/>
+          <parameter name="protocol" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="protocol_is_valid" symbol="gst_uri_protocol_is_valid">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="protocol" type="const-gchar*"/>
+        </parameters>
+      </method>
+    </struct>
+    <struct name="GstUtil">
+      <method name="dump_mem" symbol="gst_util_dump_mem">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="mem" type="const-guchar*"/>
+          <parameter name="size" type="guint"/>
+        </parameters>
+      </method>
+      <method name="gdouble_to_guint64" symbol="gst_util_gdouble_to_guint64">
+        <return-type type="guint64"/>
+        <parameters>
+          <parameter name="value" type="gdouble"/>
+        </parameters>
+      </method>
+      <method name="guint64_to_gdouble" symbol="gst_util_guint64_to_gdouble">
+        <return-type type="gdouble"/>
+        <parameters>
+          <parameter name="value" type="guint64"/>
+        </parameters>
+      </method>
+      <method name="set_object_arg" symbol="gst_util_set_object_arg">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="object" type="GObject*"/>
+          <parameter name="name" type="const-gchar*"/>
+          <parameter name="value" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="set_value_from_string" symbol="gst_util_set_value_from_string">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="value" type="GValue*"/>
+          <parameter name="value_str" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="uint64_scale" symbol="gst_util_uint64_scale">
+        <return-type type="guint64"/>
+        <parameters>
+          <parameter name="val" type="guint64"/>
+          <parameter name="num" type="guint64"/>
+          <parameter name="denom" type="guint64"/>
+        </parameters>
+      </method>
+      <method name="uint64_scale_int" symbol="gst_util_uint64_scale_int">
+        <return-type type="guint64"/>
+        <parameters>
+          <parameter name="val" type="guint64"/>
+          <parameter name="num" type="gint"/>
+          <parameter name="denom" type="gint"/>
+        </parameters>
+      </method>
+    </struct>
+    <struct name="GstValue">
+      <method name="array_append_value" symbol="gst_value_array_append_value">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="value" type="GValue*"/>
+          <parameter name="append_value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="array_get_size" symbol="gst_value_array_get_size">
+        <return-type type="guint"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="array_get_type" symbol="gst_value_array_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="array_get_value" symbol="gst_value_array_get_value">
+        <return-type type="const-GValue*"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+          <parameter name="index" type="guint"/>
+        </parameters>
+      </method>
+      <method name="array_prepend_value" symbol="gst_value_array_prepend_value">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="value" type="GValue*"/>
+          <parameter name="prepend_value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="can_compare" symbol="gst_value_can_compare">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="value1" type="const-GValue*"/>
+          <parameter name="value2" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="can_intersect" symbol="gst_value_can_intersect">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="value1" type="const-GValue*"/>
+          <parameter name="value2" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="can_subtract" symbol="gst_value_can_subtract">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="minuend" type="const-GValue*"/>
+          <parameter name="subtrahend" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="can_union" symbol="gst_value_can_union">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="value1" type="const-GValue*"/>
+          <parameter name="value2" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="compare" symbol="gst_value_compare">
+        <return-type type="gint"/>
+        <parameters>
+          <parameter name="value1" type="const-GValue*"/>
+          <parameter name="value2" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="deserialize" symbol="gst_value_deserialize">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="dest" type="GValue*"/>
+          <parameter name="src" type="const-gchar*"/>
+        </parameters>
+      </method>
+      <method name="fraction_multiply" symbol="gst_value_fraction_multiply">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="product" type="GValue*"/>
+          <parameter name="factor1" type="const-GValue*"/>
+          <parameter name="factor2" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="fraction_subtract" symbol="gst_value_fraction_subtract">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="dest" type="GValue*"/>
+          <parameter name="minuend" type="const-GValue*"/>
+          <parameter name="subtrahend" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="get_caps" symbol="gst_value_get_caps">
+        <return-type type="const-GstCaps*"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="get_date" symbol="gst_value_get_date">
+        <return-type type="const-GDate*"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="get_double_range_max" symbol="gst_value_get_double_range_max">
+        <return-type type="gdouble"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="get_double_range_min" symbol="gst_value_get_double_range_min">
+        <return-type type="gdouble"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="get_fourcc" symbol="gst_value_get_fourcc">
+        <return-type type="guint32"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="get_fraction_denominator" symbol="gst_value_get_fraction_denominator">
+        <return-type type="gint"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="get_fraction_numerator" symbol="gst_value_get_fraction_numerator">
+        <return-type type="gint"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="get_fraction_range_max" symbol="gst_value_get_fraction_range_max">
+        <return-type type="const-GValue*"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="get_fraction_range_min" symbol="gst_value_get_fraction_range_min">
+        <return-type type="const-GValue*"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="get_int_range_max" symbol="gst_value_get_int_range_max">
+        <return-type type="gint"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="get_int_range_min" symbol="gst_value_get_int_range_min">
+        <return-type type="gint"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="get_mini_object" symbol="gst_value_get_mini_object">
+        <return-type type="GstMiniObject*"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="init_and_copy" symbol="gst_value_init_and_copy">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="dest" type="GValue*"/>
+          <parameter name="src" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="intersect" symbol="gst_value_intersect">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="dest" type="GValue*"/>
+          <parameter name="value1" type="const-GValue*"/>
+          <parameter name="value2" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="is_fixed" symbol="gst_value_is_fixed">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="list_append_value" symbol="gst_value_list_append_value">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="value" type="GValue*"/>
+          <parameter name="append_value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="list_concat" symbol="gst_value_list_concat">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="dest" type="GValue*"/>
+          <parameter name="value1" type="const-GValue*"/>
+          <parameter name="value2" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="list_get_size" symbol="gst_value_list_get_size">
+        <return-type type="guint"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="list_get_type" symbol="gst_value_list_get_type">
+        <return-type type="GType"/>
+      </method>
+      <method name="list_get_value" symbol="gst_value_list_get_value">
+        <return-type type="const-GValue*"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+          <parameter name="index" type="guint"/>
+        </parameters>
+      </method>
+      <method name="list_prepend_value" symbol="gst_value_list_prepend_value">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="value" type="GValue*"/>
+          <parameter name="prepend_value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="register" symbol="gst_value_register">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="table" type="const-GstValueTable*"/>
+        </parameters>
+      </method>
+      <method name="register_intersect_func" symbol="gst_value_register_intersect_func">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="type1" type="GType"/>
+          <parameter name="type2" type="GType"/>
+          <parameter name="func" type="GstValueIntersectFunc"/>
+        </parameters>
+      </method>
+      <method name="register_subtract_func" symbol="gst_value_register_subtract_func">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="minuend_type" type="GType"/>
+          <parameter name="subtrahend_type" type="GType"/>
+          <parameter name="func" type="GstValueSubtractFunc"/>
+        </parameters>
+      </method>
+      <method name="register_union_func" symbol="gst_value_register_union_func">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="type1" type="GType"/>
+          <parameter name="type2" type="GType"/>
+          <parameter name="func" type="GstValueUnionFunc"/>
+        </parameters>
+      </method>
+      <method name="serialize" symbol="gst_value_serialize">
+        <return-type type="gchar*"/>
+        <parameters>
+          <parameter name="value" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="set_caps" symbol="gst_value_set_caps">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="value" type="GValue*"/>
+          <parameter name="caps" type="const-GstCaps*"/>
+        </parameters>
+      </method>
+      <method name="set_date" symbol="gst_value_set_date">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="value" type="GValue*"/>
+          <parameter name="date" type="const-GDate*"/>
+        </parameters>
+      </method>
+      <method name="set_double_range" symbol="gst_value_set_double_range">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="value" type="GValue*"/>
+          <parameter name="start" type="gdouble"/>
+          <parameter name="end" type="gdouble"/>
+        </parameters>
+      </method>
+      <method name="set_fourcc" symbol="gst_value_set_fourcc">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="value" type="GValue*"/>
+          <parameter name="fourcc" type="guint32"/>
+        </parameters>
+      </method>
+      <method name="set_fraction" symbol="gst_value_set_fraction">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="value" type="GValue*"/>
+          <parameter name="numerator" type="gint"/>
+          <parameter name="denominator" type="gint"/>
+        </parameters>
+      </method>
+      <method name="set_fraction_range" symbol="gst_value_set_fraction_range">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="value" type="GValue*"/>
+          <parameter name="start" type="const-GValue*"/>
+          <parameter name="end" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="set_fraction_range_full" symbol="gst_value_set_fraction_range_full">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="value" type="GValue*"/>
+          <parameter name="numerator_start" type="gint"/>
+          <parameter name="denominator_start" type="gint"/>
+          <parameter name="numerator_end" type="gint"/>
+          <parameter name="denominator_end" type="gint"/>
+        </parameters>
+      </method>
+      <method name="set_int_range" symbol="gst_value_set_int_range">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="value" type="GValue*"/>
+          <parameter name="start" type="gint"/>
+          <parameter name="end" type="gint"/>
+        </parameters>
+      </method>
+      <method name="set_mini_object" symbol="gst_value_set_mini_object">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="value" type="GValue*"/>
+          <parameter name="mini_object" type="GstMiniObject*"/>
+        </parameters>
+      </method>
+      <method name="subtract" symbol="gst_value_subtract">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="dest" type="GValue*"/>
+          <parameter name="minuend" type="const-GValue*"/>
+          <parameter name="subtrahend" type="const-GValue*"/>
+        </parameters>
+      </method>
+      <method name="take_mini_object" symbol="gst_value_take_mini_object">
+        <return-type type="void"/>
+        <parameters>
+          <parameter name="value" type="GValue*"/>
+          <parameter name="mini_object" type="GstMiniObject*"/>
+        </parameters>
+      </method>
+      <method name="union" symbol="gst_value_union">
+        <return-type type="gboolean"/>
+        <parameters>
+          <parameter name="dest" type="GValue*"/>
+          <parameter name="value1" type="const-GValue*"/>
+          <parameter name="value2" type="const-GValue*"/>
+        </parameters>
+      </method>
+    </struct>
+    <function name="version_string" symbol="gst_version_string">
+      <return-type type="gchar*"/>
+    </function>
+  </namespace>
+</api>
diff --git a/vapi/packages/gstreamer-0.10/gstreamer-0.10.metadata b/vapi/packages/gstreamer-0.10/gstreamer-0.10.metadata
new file mode 100644 (file)
index 0000000..353e971
--- /dev/null
@@ -0,0 +1,11 @@
+Gst cprefix="Gst" lower_case_cprefix="gst_" cheader_filename="gst/gst.h"
+GstBin.priv hidden="1"
+GstChildProxy::child_removed has_emitter="1"
+GstElement::no_more_pads has_emitter="1"
+gst_iterator_free hidden="1"
+gst_iterator_next hidden="1"
+gst_iterator_resync hidden="1"
+GstPad.querytypefunc hidden="1"
+gst_pad_set_query_type_function hidden="1"
+GstPadTemplate::pad_created has_emitter="1"
+
diff --git a/vapi/packages/gstreamer-0.10/gstreamer-0.10.namespace b/vapi/packages/gstreamer-0.10/gstreamer-0.10.namespace
new file mode 100644 (file)
index 0000000..100750e
--- /dev/null
@@ -0,0 +1 @@
+Gst
diff --git a/vapi/packages/gstreamer-0.10/gstreamer-0.10.patch b/vapi/packages/gstreamer-0.10/gstreamer-0.10.patch
new file mode 100644 (file)
index 0000000..d6be63b
--- /dev/null
@@ -0,0 +1,129 @@
+diff -puNr gstreamer-0.10.13.orig/gst/gstbin.h gstreamer-0.10.13/gst/gstbin.h
+--- gstreamer-0.10.13.orig/gst/gstbin.h        2007-05-23 17:25:37.000000000 +0100
++++ gstreamer-0.10.13/gst/gstbin.h     2007-07-15 11:32:50.000000000 +0100
+@@ -49,7 +49,7 @@ G_BEGIN_DECLS
+  */
+ typedef enum {
+   /* padding */
+-  GST_BIN_FLAG_LAST           = (GST_ELEMENT_FLAG_LAST << 5)
++  GST_BIN_FLAG_LAST
+ } GstBinFlags;
+ typedef struct _GstBin GstBin;
+diff -puNr gstreamer-0.10.13.orig/gst/gstbus.h gstreamer-0.10.13/gst/gstbus.h
+--- gstreamer-0.10.13.orig/gst/gstbus.h        2007-02-28 14:42:41.000000000 +0000
++++ gstreamer-0.10.13/gst/gstbus.h     2007-07-15 11:33:59.000000000 +0100
+@@ -48,9 +48,9 @@ G_BEGIN_DECLS
+  * The standard flags that a bus may have.
+  */
+ typedef enum {
+-  GST_BUS_FLUSHING      = (GST_OBJECT_FLAG_LAST << 0),
++  GST_BUS_FLUSHING,
+   /* padding */
+-  GST_BUS_FLAG_LAST     = (GST_OBJECT_FLAG_LAST << 1)
++  GST_BUS_FLAG_LAST
+ } GstBusFlags;
+ /**
+diff -puNr gstreamer-0.10.13.orig/gst/gstevent.h gstreamer-0.10.13/gst/gstevent.h
+--- gstreamer-0.10.13.orig/gst/gstevent.h      2007-02-28 14:42:41.000000000 +0000
++++ gstreamer-0.10.13/gst/gstevent.h   2007-07-15 16:28:18.000000000 +0100
+@@ -110,27 +110,27 @@ typedef enum {
+  */
+ /* NOTE: keep in sync with quark registration in gstevent.c */
+ typedef enum {
+-  GST_EVENT_UNKNOWN             = GST_EVENT_MAKE_TYPE (0, 0),
++  GST_EVENT_UNKNOWN,
+   /* bidirectional events */
+-  GST_EVENT_FLUSH_START                 = GST_EVENT_MAKE_TYPE (1, FLAG(BOTH)),
+-  GST_EVENT_FLUSH_STOP                  = GST_EVENT_MAKE_TYPE (2, FLAG(BOTH) | FLAG(SERIALIZED)),
++  GST_EVENT_FLUSH_START,
++  GST_EVENT_FLUSH_STOP,
+   /* downstream serialized events */
+-  GST_EVENT_EOS                         = GST_EVENT_MAKE_TYPE (5, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+-  GST_EVENT_NEWSEGMENT                  = GST_EVENT_MAKE_TYPE (6, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+-  GST_EVENT_TAG                         = GST_EVENT_MAKE_TYPE (7, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+-  GST_EVENT_BUFFERSIZE                  = GST_EVENT_MAKE_TYPE (8, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
++  GST_EVENT_EOS,
++  GST_EVENT_NEWSEGMENT,
++  GST_EVENT_TAG,
++  GST_EVENT_BUFFERSIZE,
+   /* upstream events */
+-  GST_EVENT_QOS                         = GST_EVENT_MAKE_TYPE (15, FLAG(UPSTREAM)),
+-  GST_EVENT_SEEK                = GST_EVENT_MAKE_TYPE (16, FLAG(UPSTREAM)),
+-  GST_EVENT_NAVIGATION                  = GST_EVENT_MAKE_TYPE (17, FLAG(UPSTREAM)),
+-  GST_EVENT_LATENCY             = GST_EVENT_MAKE_TYPE (18, FLAG(UPSTREAM)),
++  GST_EVENT_QOS,
++  GST_EVENT_SEEK,
++  GST_EVENT_NAVIGATION,
++  GST_EVENT_LATENCY,
+   /* custom events start here */
+-  GST_EVENT_CUSTOM_UPSTREAM     = GST_EVENT_MAKE_TYPE (32, FLAG(UPSTREAM)),
+-  GST_EVENT_CUSTOM_DOWNSTREAM   = GST_EVENT_MAKE_TYPE (32, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+-  GST_EVENT_CUSTOM_DOWNSTREAM_OOB = GST_EVENT_MAKE_TYPE (32, FLAG(DOWNSTREAM)),
+-  GST_EVENT_CUSTOM_BOTH                 = GST_EVENT_MAKE_TYPE (32, FLAG(BOTH) | FLAG(SERIALIZED)),
+-  GST_EVENT_CUSTOM_BOTH_OOB     = GST_EVENT_MAKE_TYPE (32, FLAG(BOTH))
++  GST_EVENT_CUSTOM_UPSTREAM,
++  GST_EVENT_CUSTOM_DOWNSTREAM,
++  GST_EVENT_CUSTOM_DOWNSTREAM_OOB,
++  GST_EVENT_CUSTOM_BOTH,
++  GST_EVENT_CUSTOM_BOTH_OOB
+ } GstEventType;
+ #undef FLAG
+diff -puNr gstreamer-0.10.13.orig/gst/gstindex.h gstreamer-0.10.13/gst/gstindex.h
+--- gstreamer-0.10.13.orig/gst/gstindex.h      2006-04-08 19:05:16.000000000 +0100
++++ gstreamer-0.10.13/gst/gstindex.h   2007-07-15 11:34:50.000000000 +0100
+@@ -294,10 +294,10 @@ typedef gboolean         (*GstIndexResolver)             
+  * Flags for this index
+  */
+ typedef enum {
+-  GST_INDEX_WRITABLE    = (GST_OBJECT_FLAG_LAST << 0),
+-  GST_INDEX_READABLE    = (GST_OBJECT_FLAG_LAST << 1),
++  GST_INDEX_WRITABLE,
++  GST_INDEX_READABLE,
+-  GST_INDEX_FLAG_LAST   = (GST_OBJECT_FLAG_LAST << 8)
++  GST_INDEX_FLAG_LAST
+ } GstIndexFlags;
+ /**
+diff -puNr gstreamer-0.10.13.orig/gst/gstpad.h gstreamer-0.10.13/gst/gstpad.h
+--- gstreamer-0.10.13.orig/gst/gstpad.h        2007-05-24 15:08:47.000000000 +0100
++++ gstreamer-0.10.13/gst/gstpad.h     2007-07-15 11:35:39.000000000 +0100
+@@ -486,13 +486,13 @@ typedef enum {
+  * Pad state flags
+  */
+ typedef enum {
+-  GST_PAD_BLOCKED       = (GST_OBJECT_FLAG_LAST << 0),
+-  GST_PAD_FLUSHING      = (GST_OBJECT_FLAG_LAST << 1),
+-  GST_PAD_IN_GETCAPS    = (GST_OBJECT_FLAG_LAST << 2),
+-  GST_PAD_IN_SETCAPS    = (GST_OBJECT_FLAG_LAST << 3),
+-  GST_PAD_BLOCKING    = (GST_OBJECT_FLAG_LAST << 4),
++  GST_PAD_BLOCKED,
++  GST_PAD_FLUSHING,
++  GST_PAD_IN_GETCAPS,
++  GST_PAD_IN_SETCAPS,
++  GST_PAD_BLOCKING,
+   /* padding */
+-  GST_PAD_FLAG_LAST     = (GST_OBJECT_FLAG_LAST << 8)
++  GST_PAD_FLAG_LAST
+ } GstPadFlags;
+ /* FIXME: this awful circular dependency need to be resolved properly (see padtemplate.h) */
+diff -puNr gstreamer-0.10.13.orig/gst/gstpadtemplate.h gstreamer-0.10.13/gst/gstpadtemplate.h
+--- gstreamer-0.10.13.orig/gst/gstpadtemplate.h        2007-02-28 14:42:42.000000000 +0000
++++ gstreamer-0.10.13/gst/gstpadtemplate.h     2007-07-15 11:36:28.000000000 +0100
+@@ -103,9 +103,9 @@ typedef enum {
+  * Flags for the padtemplate
+  */
+ typedef enum {
+-  GST_PAD_TEMPLATE_FIXED        = (GST_OBJECT_FLAG_LAST << 0),
++  GST_PAD_TEMPLATE_FIXED,
+   /* padding */
+-  GST_PAD_TEMPLATE_FLAG_LAST    = (GST_OBJECT_FLAG_LAST << 4)
++  GST_PAD_TEMPLATE_FLAG_LAST
+ } GstPadTemplateFlags;
+ /**
index a4a4688..d2e5dab 100644 (file)
@@ -57,7 +57,7 @@ public class Vala.GIdlParser : CodeVisitor {
                if (FileUtils.test (metadata_filename, FileTest.EXISTS)) {
                        try {
                                string metadata;
-                               long metadata_len;
+                               ulong metadata_len;
                                FileUtils.get_contents (metadata_filename, out metadata, out metadata_len);
                                
                                foreach (string line in metadata.split ("\n")) {
@@ -434,7 +434,7 @@ public class Vala.GIdlParser : CodeVisitor {
                        if (member.type == IdlNodeTypeId.FUNCTION) {
                                bool is_virtual = current_type_vfunc_map.lookup (member.name) != null;
                                
-                               var m = parse_function ((IdlNodeFunction) member, is_virtual);
+                               var m = parse_function ((IdlNodeFunction) member, is_virtual, true);
                                if (m != null) {
                                        iface.add_method (m);
                                }
@@ -548,7 +548,7 @@ public class Vala.GIdlParser : CodeVisitor {
                                type.type_name = "ValueArray";
                        } else if (n == "time_t") {
                                type.type_name = "ulong";
-                       } else if (n == "pid_t") {
+                       } else if (n == "gint" || n == "pid_t") {
                                type.type_name = "int";
                        } else if (n == "FILE") {
                                type.namespace_name = "GLib";
@@ -583,7 +583,7 @@ public class Vala.GIdlParser : CodeVisitor {
        private void parse_type_string (TypeReference! type, string! n) {
                // Generated GIDL misses explicit namespace specifier,
                // so try to guess namespace
-               if (n.has_prefix ("H") || n.has_suffix ("Class") || n == "va_list" || n.has_prefix ("LOGFONT")) {
+               if (n.has_prefix ("H") || n.has_suffix ("Class") || n == "va_list" || n.has_prefix ("LOGFONT") || n.has_prefix ("xml")) {
                        // unsupported
                        type.type_name = "pointer";
                } else if (n.has_prefix ("cairo")) {
@@ -603,6 +603,19 @@ public class Vala.GIdlParser : CodeVisitor {
                                type.namespace_name = "GLib";
                                type.type_name = "SList";
                        }
+               } else if (n.has_prefix ("Gst")) {
+                       type.namespace_name = "Gst";
+                       type.type_name = n.offset ("Gst".len ());
+                       if (type.type_name == "ClockTime") {
+                               type.namespace_name = null;
+                               type.type_name = "uint64";
+                       } else if (type.type_name == "ClockTimeDiff") {
+                               type.namespace_name = null;
+                               type.type_name = "int64";
+                       } else if (type.type_name == "ClockID" || type.type_name.has_prefix ("Xml")) {
+                               type.namespace_name = null;
+                               type.type_name = "pointer";
+                       }
                } else if (n.has_prefix ("Gtk")) {
                        type.namespace_name = "Gtk";
                        type.type_name = n.offset ("Gtk".len ());
@@ -640,6 +653,9 @@ public class Vala.GIdlParser : CodeVisitor {
                                type.namespace_name = null;
                                type.type_name = "string";
                                type.array_rank = 1;
+                       } else if (type.type_name == "StaticRecMutex") {
+                               type.namespace_name = null;
+                               type.type_name = "pointer";
                        }
                } else {
                        var name_parts = n.split (".", 2);
@@ -661,7 +677,7 @@ public class Vala.GIdlParser : CodeVisitor {
                return type;
        }
        
-       private Method parse_function (IdlNodeFunction! f, bool is_virtual = false) {
+       private Method parse_function (IdlNodeFunction! f, bool is_virtual = false, bool is_interface = false) {
                weak IdlNode node = (IdlNode) f;
                
                if (f.deprecated) {
@@ -674,7 +690,7 @@ public class Vala.GIdlParser : CodeVisitor {
                }
                
                Method m;
-               if (f.is_constructor || node.name.has_prefix ("new")) {
+               if (!is_interface && (f.is_constructor || node.name.has_prefix ("new"))) {
                        m = new CreationMethod (node.name, current_source_reference);
                        if (m.name == "new") {
                                m.name = null;
@@ -858,6 +874,18 @@ public class Vala.GIdlParser : CodeVisitor {
                if (!field_node.readable) {
                        return null;
                }
+
+               var attributes = get_attributes ("%s.%s".printf (current_data_type.name, node.name));
+               if (attributes != null) {
+                       foreach (string attr in attributes) {
+                               var nv = attr.split ("=", 2);
+                               if (nv[0] == "hidden") {
+                                       if (eval (nv[1]) == "1") {
+                                               return null;
+                                       }
+                               }
+                       }
+               }
                
                if (current_type_symbol_map != null) {
                        current_type_symbol_map.insert (node.name, "1");