;; -*- scheme -*-

;; Apply gst_methods.defs.patch after regenerating.

; object definitions ...
(define-object Adapter
  (in-module "Gst")
  (parent "GObject")
  (c-name "GstAdapter")
  (gtype-id "GST_TYPE_ADAPTER")
)

(define-object Buffer
  (in-module "Gst")
  (parent "GstMiniObject")
  (c-name "GstBuffer")
  (gtype-id "GST_TYPE_BUFFER")
)

(define-object ControlSource
  (in-module "Gst")
  (parent "GObject")
  (c-name "GstControlSource")
  (gtype-id "GST_TYPE_CONTROL_SOURCE")
)

(define-object Controller
  (in-module "Gst")
  (parent "GObject")
  (c-name "GstController")
  (gtype-id "GST_TYPE_CONTROLLER")
)

(define-object DataQueue
  (in-module "Gst")
  (parent "GObject")
  (c-name "GstDataQueue")
  (gtype-id "GST_TYPE_DATA_QUEUE")
)

(define-object Event
  (in-module "Gst")
  (parent "GstMiniObject")
  (c-name "GstEvent")
  (gtype-id "GST_TYPE_EVENT")
)

(define-object ImplementsInterface
  (in-module "Gst")
  (c-name "GstImplementsInterface")
  (gtype-id "GST_TYPE_IMPLEMENTS_INTERFACE")
)

(define-object InterpolationControlSource
  (in-module "Gst")
  (parent "GstControlSource")
  (c-name "GstInterpolationControlSource")
  (gtype-id "GST_TYPE_INTERPOLATION_CONTROL_SOURCE")
)

(define-object LFOControlSource
  (in-module "Gst")
  (parent "GstControlSource")
  (c-name "GstLFOControlSource")
  (gtype-id "GST_TYPE_LFO_CONTROL_SOURCE")
)

(define-object Message
  (in-module "Gst")
  (parent "GstMiniObject")
  (c-name "GstMessage")
  (gtype-id "GST_TYPE_MESSAGE")
)

(define-object Object
  (in-module "Gst")
  (parent "GObject")
  (c-name "GstObject")
  (gtype-id "GST_TYPE_OBJECT")
)

(define-object NetTimeProvider
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstNetTimeProvider")
  (gtype-id "GST_TYPE_NET_TIME_PROVIDER")
)

(define-object Index
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstIndex")
  (gtype-id "GST_TYPE_INDEX")
)

(define-object Element
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstElement")
  (gtype-id "GST_TYPE_ELEMENT")
)

(define-object BaseParse
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstBaseParse")
  (gtype-id "GST_TYPE_BASE_PARSE")
)

(define-object BaseSink
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstBaseSink")
  (gtype-id "GST_TYPE_BASE_SINK")
)

(define-object BaseSrc
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstBaseSrc")
  (gtype-id "GST_TYPE_BASE_SRC")
)

(define-object BaseTransform
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstBaseTransform")
  (gtype-id "GST_TYPE_BASE_TRANSFORM")
)

(define-object Bin
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstBin")
  (gtype-id "GST_TYPE_BIN")
)

(define-object CollectPads
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstCollectPads")
  (gtype-id "GST_TYPE_COLLECT_PADS")
)

(define-object Clock
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstClock")
  (gtype-id "GST_TYPE_CLOCK")
)

(define-object Bus
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstBus")
  (gtype-id "GST_TYPE_BUS")
)

(define-object Pad
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstPad")
  (gtype-id "GST_TYPE_PAD")
)

(define-object PadTemplate
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstPadTemplate")
  (gtype-id "GST_TYPE_PAD_TEMPLATE")
)

(define-object Pipeline
  (in-module "Gst")
  (parent "GstBin")
  (c-name "GstPipeline")
  (gtype-id "GST_TYPE_PIPELINE")
)

(define-object Plugin
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstPlugin")
  (gtype-id "GST_TYPE_PLUGIN")
)

(define-object PluginFeature
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstPluginFeature")
  (gtype-id "GST_TYPE_PLUGIN_FEATURE")
)

(define-object IndexFactory
  (in-module "Gst")
  (parent "GstPluginFeature")
  (c-name "GstIndexFactory")
  (gtype-id "GST_TYPE_INDEX_FACTORY")
)

(define-object ElementFactory
  (in-module "Gst")
  (parent "GstPluginFeature")
  (c-name "GstElementFactory")
  (gtype-id "GST_TYPE_ELEMENT_FACTORY")
)

(define-object ProxyPad
  (in-module "Gst")
  (parent "GstPad")
  (c-name "GstProxyPad")
  (gtype-id "GST_TYPE_PROXY_PAD")
)

(define-object GhostPad
  (in-module "Gst")
  (parent "GstProxyPad")
  (c-name "GstGhostPad")
  (gtype-id "GST_TYPE_GHOST_PAD")
)

(define-object PushSrc
  (in-module "Gst")
  (parent "GstBaseSrc")
  (c-name "GstPushSrc")
  (gtype-id "GST_TYPE_PUSH_SRC")
)

(define-object Query
  (in-module "Gst")
  (parent "GstMiniObject")
  (c-name "GstQuery")
  (gtype-id "GST_TYPE_QUERY")
)

(define-object Registry
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstRegistry")
  (gtype-id "GST_TYPE_REGISTRY")
)

(define-object SystemClock
  (in-module "Gst")
  (parent "GstClock")
  (c-name "GstSystemClock")
  (gtype-id "GST_TYPE_SYSTEM_CLOCK")
)

(define-object NetClientClock
  (in-module "Gst")
  (parent "GstSystemClock")
  (c-name "GstNetClientClock")
  (gtype-id "GST_TYPE_NET_CLIENT_CLOCK")
)

(define-object Task
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstTask")
  (gtype-id "GST_TYPE_TASK")
)

(define-object TaskPool
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstTaskPool")
  (gtype-id "GST_TYPE_TASK_POOL")
)

(define-object TypeFindFactory
  (in-module "Gst")
  (parent "GstPluginFeature")
  (c-name "GstTypeFindFactory")
  (gtype-id "GST_TYPE_TYPE_FIND_FACTORY")
)

(define-object XML
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstXML")
  (gtype-id "GST_TYPE_XML")
)

;; Enumerations and flags ...

(define-flags BinFlags
  (in-module "Gst")
  (c-name "GstBinFlags")
  (gtype-id "GST_TYPE_BIN_FLAGS")
  (values
    '("last" "GST_BIN_FLAG_LAST")
  )
)

(define-flags BufferFlag
  (in-module "Gst")
  (c-name "GstBufferFlag")
  (gtype-id "GST_TYPE_BUFFER_FLAG")
  (values
    '("readonly" "GST_BUFFER_FLAG_READONLY")
    '("media4" "GST_BUFFER_FLAG_MEDIA4")
    '("preroll" "GST_BUFFER_FLAG_PREROLL")
    '("discont" "GST_BUFFER_FLAG_DISCONT")
    '("in-caps" "GST_BUFFER_FLAG_IN_CAPS")
    '("gap" "GST_BUFFER_FLAG_GAP")
    '("delta-unit" "GST_BUFFER_FLAG_DELTA_UNIT")
    '("media1" "GST_BUFFER_FLAG_MEDIA1")
    '("media2" "GST_BUFFER_FLAG_MEDIA2")
    '("media3" "GST_BUFFER_FLAG_MEDIA3")
    '("last" "GST_BUFFER_FLAG_LAST")
  )
)

(define-flags BufferCopyFlags
  (in-module "Gst")
  (c-name "GstBufferCopyFlags")
  (gtype-id "GST_TYPE_BUFFER_COPY_FLAGS")
  (values
    '("flags" "GST_BUFFER_COPY_FLAGS")
    '("timestamps" "GST_BUFFER_COPY_TIMESTAMPS")
    '("caps" "GST_BUFFER_COPY_CAPS")
  )
)

(define-enum BufferListItem
  (in-module "Gst")
  (c-name "GstBufferListItem")
  (gtype-id "GST_TYPE_BUFFER_LIST_ITEM")
  (values
    '("continue" "GST_BUFFER_LIST_CONTINUE")
    '("skip-group" "GST_BUFFER_LIST_SKIP_GROUP")
    '("end" "GST_BUFFER_LIST_END")
  )
)

(define-flags BusFlags
  (in-module "Gst")
  (c-name "GstBusFlags")
  (gtype-id "GST_TYPE_BUS_FLAGS")
  (values
    '("flushing" "GST_BUS_FLUSHING")
    '("flag-last" "GST_BUS_FLAG_LAST")
  )
)

(define-enum BusSyncReply
  (in-module "Gst")
  (c-name "GstBusSyncReply")
  (gtype-id "GST_TYPE_BUS_SYNC_REPLY")
  (values
    '("drop" "GST_BUS_DROP")
    '("pass" "GST_BUS_PASS")
    '("async" "GST_BUS_ASYNC")
  )
)

(define-flags CapsFlags
  (in-module "Gst")
  (c-name "GstCapsFlags")
  (gtype-id "GST_TYPE_CAPS_FLAGS")
  (values
    '("any" "GST_CAPS_FLAGS_ANY")
  )
)

(define-enum CapsIntersectMode
  (in-module "Gst")
  (c-name "GstCapsIntersectMode")
  (gtype-id "GST_TYPE_CAPS_INTERSECT_MODE")
  (values
    '("zig-zag" "GST_CAPS_INTERSECT_ZIG_ZAG")
    '("first" "GST_CAPS_INTERSECT_FIRST")
  )
)

(define-enum ClockReturn
  (in-module "Gst")
  (c-name "GstClockReturn")
  (gtype-id "GST_TYPE_CLOCK_RETURN")
  (values
    '("ok" "GST_CLOCK_OK")
    '("early" "GST_CLOCK_EARLY")
    '("unscheduled" "GST_CLOCK_UNSCHEDULED")
    '("busy" "GST_CLOCK_BUSY")
    '("badtime" "GST_CLOCK_BADTIME")
    '("error" "GST_CLOCK_ERROR")
    '("unsupported" "GST_CLOCK_UNSUPPORTED")
    '("done" "GST_CLOCK_DONE")
  )
)

(define-enum ClockEntryType
  (in-module "Gst")
  (c-name "GstClockEntryType")
  (gtype-id "GST_TYPE_CLOCK_ENTRY_TYPE")
  (values
    '("single" "GST_CLOCK_ENTRY_SINGLE")
    '("periodic" "GST_CLOCK_ENTRY_PERIODIC")
  )
)

(define-flags ClockFlags
  (in-module "Gst")
  (c-name "GstClockFlags")
  (gtype-id "GST_TYPE_CLOCK_FLAGS")
  (values
    '("can-do-single-sync" "GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC")
    '("can-do-single-async" "GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC")
    '("can-do-periodic-sync" "GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC")
    '("can-do-periodic-async" "GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC")
    '("can-set-resolution" "GST_CLOCK_FLAG_CAN_SET_RESOLUTION")
    '("can-set-master" "GST_CLOCK_FLAG_CAN_SET_MASTER")
    '("last" "GST_CLOCK_FLAG_LAST")
  )
)

(define-flags DebugGraphDetails
  (in-module "Gst")
  (c-name "GstDebugGraphDetails")
  (gtype-id "GST_TYPE_DEBUG_GRAPH_DETAILS")
  (values
    '("media-type" "GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE")
    '("caps-details" "GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS")
    '("non-default-params" "GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS")
    '("states" "GST_DEBUG_GRAPH_SHOW_STATES")
    '("all" "GST_DEBUG_GRAPH_SHOW_ALL")
  )
)

(define-enum State
  (in-module "Gst")
  (c-name "GstState")
  (gtype-id "GST_TYPE_STATE")
  (values
    '("void-pending" "GST_STATE_VOID_PENDING")
    '("null" "GST_STATE_NULL")
    '("ready" "GST_STATE_READY")
    '("paused" "GST_STATE_PAUSED")
    '("playing" "GST_STATE_PLAYING")
  )
)

(define-enum StateChangeReturn
  (in-module "Gst")
  (c-name "GstStateChangeReturn")
  (gtype-id "GST_TYPE_STATE_CHANGE_RETURN")
  (values
    '("failure" "GST_STATE_CHANGE_FAILURE")
    '("success" "GST_STATE_CHANGE_SUCCESS")
    '("async" "GST_STATE_CHANGE_ASYNC")
    '("no-preroll" "GST_STATE_CHANGE_NO_PREROLL")
  )
)

(define-flags StateChange
  (in-module "Gst")
  (c-name "GstStateChange")
  (gtype-id "GST_TYPE_STATE_CHANGE")
  (values
    '("null-to-ready" "GST_STATE_CHANGE_NULL_TO_READY")
    '("ready-to-paused" "GST_STATE_CHANGE_READY_TO_PAUSED")
    '("paused-to-playing" "GST_STATE_CHANGE_PAUSED_TO_PLAYING")
    '("playing-to-paused" "GST_STATE_CHANGE_PLAYING_TO_PAUSED")
    '("paused-to-ready" "GST_STATE_CHANGE_PAUSED_TO_READY")
    '("ready-to-null" "GST_STATE_CHANGE_READY_TO_NULL")
  )
)

(define-flags ElementFlags
  (in-module "Gst")
  (c-name "GstElementFlags")
  (gtype-id "GST_TYPE_ELEMENT_FLAGS")
  (values
    '("locked-state" "GST_ELEMENT_LOCKED_STATE")
    '("is-sink" "GST_ELEMENT_IS_SINK")
    '("unparenting" "GST_ELEMENT_UNPARENTING")
    '("is-source" "GST_ELEMENT_IS_SOURCE")
    '("flag-last" "GST_ELEMENT_FLAG_LAST")
  )
)

(define-enum CoreError
  (in-module "Gst")
  (c-name "GstCoreError")
  (gtype-id "GST_TYPE_CORE_ERROR")
  (values
    '("failed" "GST_CORE_ERROR_FAILED")
    '("too-lazy" "GST_CORE_ERROR_TOO_LAZY")
    '("not-implemented" "GST_CORE_ERROR_NOT_IMPLEMENTED")
    '("state-change" "GST_CORE_ERROR_STATE_CHANGE")
    '("pad" "GST_CORE_ERROR_PAD")
    '("thread" "GST_CORE_ERROR_THREAD")
    '("negotiation" "GST_CORE_ERROR_NEGOTIATION")
    '("event" "GST_CORE_ERROR_EVENT")
    '("seek" "GST_CORE_ERROR_SEEK")
    '("caps" "GST_CORE_ERROR_CAPS")
    '("tag" "GST_CORE_ERROR_TAG")
    '("missing-plugin" "GST_CORE_ERROR_MISSING_PLUGIN")
    '("clock" "GST_CORE_ERROR_CLOCK")
    '("disabled" "GST_CORE_ERROR_DISABLED")
    '("num-errors" "GST_CORE_ERROR_NUM_ERRORS")
  )
)

(define-enum LibraryError
  (in-module "Gst")
  (c-name "GstLibraryError")
  (gtype-id "GST_TYPE_LIBRARY_ERROR")
  (values
    '("failed" "GST_LIBRARY_ERROR_FAILED")
    '("too-lazy" "GST_LIBRARY_ERROR_TOO_LAZY")
    '("init" "GST_LIBRARY_ERROR_INIT")
    '("shutdown" "GST_LIBRARY_ERROR_SHUTDOWN")
    '("settings" "GST_LIBRARY_ERROR_SETTINGS")
    '("encode" "GST_LIBRARY_ERROR_ENCODE")
    '("num-errors" "GST_LIBRARY_ERROR_NUM_ERRORS")
  )
)

(define-enum ResourceError
  (in-module "Gst")
  (c-name "GstResourceError")
  (gtype-id "GST_TYPE_RESOURCE_ERROR")
  (values
    '("failed" "GST_RESOURCE_ERROR_FAILED")
    '("too-lazy" "GST_RESOURCE_ERROR_TOO_LAZY")
    '("not-found" "GST_RESOURCE_ERROR_NOT_FOUND")
    '("busy" "GST_RESOURCE_ERROR_BUSY")
    '("open-read" "GST_RESOURCE_ERROR_OPEN_READ")
    '("open-write" "GST_RESOURCE_ERROR_OPEN_WRITE")
    '("open-read-write" "GST_RESOURCE_ERROR_OPEN_READ_WRITE")
    '("close" "GST_RESOURCE_ERROR_CLOSE")
    '("read" "GST_RESOURCE_ERROR_READ")
    '("write" "GST_RESOURCE_ERROR_WRITE")
    '("seek" "GST_RESOURCE_ERROR_SEEK")
    '("sync" "GST_RESOURCE_ERROR_SYNC")
    '("settings" "GST_RESOURCE_ERROR_SETTINGS")
    '("no-space-left" "GST_RESOURCE_ERROR_NO_SPACE_LEFT")
    '("num-errors" "GST_RESOURCE_ERROR_NUM_ERRORS")
  )
)

(define-enum StreamError
  (in-module "Gst")
  (c-name "GstStreamError")
  (gtype-id "GST_TYPE_STREAM_ERROR")
  (values
    '("failed" "GST_STREAM_ERROR_FAILED")
    '("too-lazy" "GST_STREAM_ERROR_TOO_LAZY")
    '("not-implemented" "GST_STREAM_ERROR_NOT_IMPLEMENTED")
    '("type-not-found" "GST_STREAM_ERROR_TYPE_NOT_FOUND")
    '("wrong-type" "GST_STREAM_ERROR_WRONG_TYPE")
    '("codec-not-found" "GST_STREAM_ERROR_CODEC_NOT_FOUND")
    '("decode" "GST_STREAM_ERROR_DECODE")
    '("encode" "GST_STREAM_ERROR_ENCODE")
    '("demux" "GST_STREAM_ERROR_DEMUX")
    '("mux" "GST_STREAM_ERROR_MUX")
    '("format" "GST_STREAM_ERROR_FORMAT")
    '("decrypt" "GST_STREAM_ERROR_DECRYPT")
    '("decrypt-nokey" "GST_STREAM_ERROR_DECRYPT_NOKEY")
    '("num-errors" "GST_STREAM_ERROR_NUM_ERRORS")
  )
)

(define-flags EventTypeFlags
  (in-module "Gst")
  (c-name "GstEventTypeFlags")
  (gtype-id "GST_TYPE_EVENT_TYPE_FLAGS")
  (values
    '("upstream" "GST_EVENT_TYPE_UPSTREAM")
    '("downstream" "GST_EVENT_TYPE_DOWNSTREAM")
    '("serialized" "GST_EVENT_TYPE_SERIALIZED")
  )
)

(define-enum SeekType
  (in-module "Gst")
  (c-name "GstSeekType")
  (gtype-id "GST_TYPE_SEEK_TYPE")
  (values
    '("none" "GST_SEEK_TYPE_NONE")
    '("cur" "GST_SEEK_TYPE_CUR")
    '("set" "GST_SEEK_TYPE_SET")
    '("end" "GST_SEEK_TYPE_END")
  )
)

(define-flags SeekFlags
  (in-module "Gst")
  (c-name "GstSeekFlags")
  (gtype-id "GST_TYPE_SEEK_FLAGS")
  (values
    '("none" "GST_SEEK_FLAG_NONE")
    '("flush" "GST_SEEK_FLAG_FLUSH")
    '("accurate" "GST_SEEK_FLAG_ACCURATE")
    '("key-unit" "GST_SEEK_FLAG_KEY_UNIT")
    '("segment" "GST_SEEK_FLAG_SEGMENT")
    '("skip" "GST_SEEK_FLAG_SKIP")
  )
)

(define-enum QOSType
  (in-module "Gst")
  (c-name "GstQOSType")
  (gtype-id "GST_TYPE_QOS_TYPE")
  (values
    '("overflow" "GST_QOS_TYPE_OVERFLOW")
    '("underflow" "GST_QOS_TYPE_UNDERFLOW")
    '("throttle" "GST_QOS_TYPE_THROTTLE")
  )
)

(define-enum Format
  (in-module "Gst")
  (c-name "GstFormat")
  (gtype-id "GST_TYPE_FORMAT")
  (values
    '("undefined" "GST_FORMAT_UNDEFINED")
    '("default" "GST_FORMAT_DEFAULT")
    '("bytes" "GST_FORMAT_BYTES")
    '("time" "GST_FORMAT_TIME")
    '("buffers" "GST_FORMAT_BUFFERS")
    '("percent" "GST_FORMAT_PERCENT")
  )
)

(define-enum IndexCertainty
  (in-module "Gst")
  (c-name "GstIndexCertainty")
  (gtype-id "GST_TYPE_INDEX_CERTAINTY")
  (values
    '("unknown" "GST_INDEX_UNKNOWN")
    '("certain" "GST_INDEX_CERTAIN")
    '("fuzzy" "GST_INDEX_FUZZY")
  )
)

(define-enum IndexEntryType
  (in-module "Gst")
  (c-name "GstIndexEntryType")
  (gtype-id "GST_TYPE_INDEX_ENTRY_TYPE")
  (values
    '("id" "GST_INDEX_ENTRY_ID")
    '("association" "GST_INDEX_ENTRY_ASSOCIATION")
    '("object" "GST_INDEX_ENTRY_OBJECT")
    '("format" "GST_INDEX_ENTRY_FORMAT")
  )
)

(define-enum IndexLookupMethod
  (in-module "Gst")
  (c-name "GstIndexLookupMethod")
  (gtype-id "GST_TYPE_INDEX_LOOKUP_METHOD")
  (values
    '("exact" "GST_INDEX_LOOKUP_EXACT")
    '("before" "GST_INDEX_LOOKUP_BEFORE")
    '("after" "GST_INDEX_LOOKUP_AFTER")
  )
)

(define-flags AssocFlags
  (in-module "Gst")
  (c-name "GstAssocFlags")
  (gtype-id "GST_TYPE_ASSOC_FLAGS")
  (values
    '("none" "GST_ASSOCIATION_FLAG_NONE")
    '("key-unit" "GST_ASSOCIATION_FLAG_KEY_UNIT")
    '("delta-unit" "GST_ASSOCIATION_FLAG_DELTA_UNIT")
    '("last" "GST_ASSOCIATION_FLAG_LAST")
  )
)

(define-enum IndexResolverMethod
  (in-module "Gst")
  (c-name "GstIndexResolverMethod")
  (gtype-id "GST_TYPE_INDEX_RESOLVER_METHOD")
  (values
    '("custom" "GST_INDEX_RESOLVER_CUSTOM")
    '("gtype" "GST_INDEX_RESOLVER_GTYPE")
    '("path" "GST_INDEX_RESOLVER_PATH")
  )
)

(define-flags IndexFlags
  (in-module "Gst")
  (c-name "GstIndexFlags")
  (gtype-id "GST_TYPE_INDEX_FLAGS")
  (values
    '("writable" "GST_INDEX_WRITABLE")
    '("readable" "GST_INDEX_READABLE")
    '("flag-last" "GST_INDEX_FLAG_LAST")
  )
)

(define-enum DebugLevel
  (in-module "Gst")
  (c-name "GstDebugLevel")
  (gtype-id "GST_TYPE_DEBUG_LEVEL")
  (values
    '("none" "GST_LEVEL_NONE")
    '("error" "GST_LEVEL_ERROR")
    '("warning" "GST_LEVEL_WARNING")
    '("info" "GST_LEVEL_INFO")
    '("debug" "GST_LEVEL_DEBUG")
    '("log" "GST_LEVEL_LOG")
    '("fixme" "GST_LEVEL_FIXME")
    '("trace" "GST_LEVEL_TRACE")
    '("memdump" "GST_LEVEL_MEMDUMP")
    '("count" "GST_LEVEL_COUNT")
  )
)

(define-enum DebugColorFlags
  (in-module "Gst")
  (c-name "GstDebugColorFlags")
  (gtype-id "GST_TYPE_DEBUG_COLOR_FLAGS")
  (values
    '("fg-black" "GST_DEBUG_FG_BLACK")
    '("fg-red" "GST_DEBUG_FG_RED")
    '("fg-green" "GST_DEBUG_FG_GREEN")
    '("fg-yellow" "GST_DEBUG_FG_YELLOW")
    '("fg-blue" "GST_DEBUG_FG_BLUE")
    '("fg-magenta" "GST_DEBUG_FG_MAGENTA")
    '("fg-cyan" "GST_DEBUG_FG_CYAN")
    '("fg-white" "GST_DEBUG_FG_WHITE")
    '("bg-black" "GST_DEBUG_BG_BLACK")
    '("bg-red" "GST_DEBUG_BG_RED")
    '("bg-green" "GST_DEBUG_BG_GREEN")
    '("bg-yellow" "GST_DEBUG_BG_YELLOW")
    '("bg-blue" "GST_DEBUG_BG_BLUE")
    '("bg-magenta" "GST_DEBUG_BG_MAGENTA")
    '("bg-cyan" "GST_DEBUG_BG_CYAN")
    '("bg-white" "GST_DEBUG_BG_WHITE")
    '("bold" "GST_DEBUG_BOLD")
    '("underline" "GST_DEBUG_UNDERLINE")
  )
)

(define-enum IteratorResult
  (in-module "Gst")
  (c-name "GstIteratorResult")
  (gtype-id "GST_TYPE_ITERATOR_RESULT")
  (values
    '("done" "GST_ITERATOR_DONE")
    '("ok" "GST_ITERATOR_OK")
    '("resync" "GST_ITERATOR_RESYNC")
    '("error" "GST_ITERATOR_ERROR")
  )
)

(define-enum IteratorItem
  (in-module "Gst")
  (c-name "GstIteratorItem")
  (gtype-id "GST_TYPE_ITERATOR_ITEM")
  (values
    '("skip" "GST_ITERATOR_ITEM_SKIP")
    '("pass" "GST_ITERATOR_ITEM_PASS")
    '("end" "GST_ITERATOR_ITEM_END")
  )
)

(define-flags MessageType
  (in-module "Gst")
  (c-name "GstMessageType")
  (gtype-id "GST_TYPE_MESSAGE_TYPE")
  (values
    '("unknown" "GST_MESSAGE_UNKNOWN")
    '("eos" "GST_MESSAGE_EOS")
    '("error" "GST_MESSAGE_ERROR")
    '("warning" "GST_MESSAGE_WARNING")
    '("info" "GST_MESSAGE_INFO")
    '("tag" "GST_MESSAGE_TAG")
    '("buffering" "GST_MESSAGE_BUFFERING")
    '("state-changed" "GST_MESSAGE_STATE_CHANGED")
    '("state-dirty" "GST_MESSAGE_STATE_DIRTY")
    '("step-done" "GST_MESSAGE_STEP_DONE")
    '("clock-provide" "GST_MESSAGE_CLOCK_PROVIDE")
    '("clock-lost" "GST_MESSAGE_CLOCK_LOST")
    '("new-clock" "GST_MESSAGE_NEW_CLOCK")
    '("structure-change" "GST_MESSAGE_STRUCTURE_CHANGE")
    '("stream-status" "GST_MESSAGE_STREAM_STATUS")
    '("application" "GST_MESSAGE_APPLICATION")
    '("element" "GST_MESSAGE_ELEMENT")
    '("segment-start" "GST_MESSAGE_SEGMENT_START")
    '("segment-done" "GST_MESSAGE_SEGMENT_DONE")
    '("duration" "GST_MESSAGE_DURATION")
    '("latency" "GST_MESSAGE_LATENCY")
    '("async-start" "GST_MESSAGE_ASYNC_START")
    '("async-done" "GST_MESSAGE_ASYNC_DONE")
    '("request-state" "GST_MESSAGE_REQUEST_STATE")
    '("step-start" "GST_MESSAGE_STEP_START")
    '("qos" "GST_MESSAGE_QOS")
    '("progress" "GST_MESSAGE_PROGRESS")
    '("any" "GST_MESSAGE_ANY")
  )
)

(define-enum StructureChangeType
  (in-module "Gst")
  (c-name "GstStructureChangeType")
  (gtype-id "GST_TYPE_STRUCTURE_CHANGE_TYPE")
  (values
    '("link" "GST_STRUCTURE_CHANGE_TYPE_PAD_LINK")
    '("unlink" "GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK")
  )
)

(define-enum StreamStatusType
  (in-module "Gst")
  (c-name "GstStreamStatusType")
  (gtype-id "GST_TYPE_STREAM_STATUS_TYPE")
  (values
    '("create" "GST_STREAM_STATUS_TYPE_CREATE")
    '("enter" "GST_STREAM_STATUS_TYPE_ENTER")
    '("leave" "GST_STREAM_STATUS_TYPE_LEAVE")
    '("destroy" "GST_STREAM_STATUS_TYPE_DESTROY")
    '("start" "GST_STREAM_STATUS_TYPE_START")
    '("pause" "GST_STREAM_STATUS_TYPE_PAUSE")
    '("stop" "GST_STREAM_STATUS_TYPE_STOP")
  )
)

(define-enum ProgressType
  (in-module "Gst")
  (c-name "GstProgressType")
  (gtype-id "GST_TYPE_PROGRESS_TYPE")
  (values
    '("start" "GST_PROGRESS_TYPE_START")
    '("continue" "GST_PROGRESS_TYPE_CONTINUE")
    '("complete" "GST_PROGRESS_TYPE_COMPLETE")
    '("canceled" "GST_PROGRESS_TYPE_CANCELED")
    '("error" "GST_PROGRESS_TYPE_ERROR")
  )
)

(define-flags MiniObjectFlags
  (in-module "Gst")
  (c-name "GstMiniObjectFlags")
  (gtype-id "GST_TYPE_MINI_OBJECT_FLAGS")
  (values
    '("readonly" "GST_MINI_OBJECT_FLAG_READONLY")
    '("reserved1" "GST_MINI_OBJECT_FLAG_RESERVED1")
    '("last" "GST_MINI_OBJECT_FLAG_LAST")
  )
)

(define-flags ObjectFlags
  (in-module "Gst")
  (c-name "GstObjectFlags")
  (gtype-id "GST_TYPE_OBJECT_FLAGS")
  (values
    '("disposing" "GST_OBJECT_DISPOSING")
    '("floating" "GST_OBJECT_FLOATING")
    '("flag-last" "GST_OBJECT_FLAG_LAST")
  )
)

(define-enum PadLinkReturn
  (in-module "Gst")
  (c-name "GstPadLinkReturn")
  (gtype-id "GST_TYPE_PAD_LINK_RETURN")
  (values
    '("ok" "GST_PAD_LINK_OK")
    '("wrong-hierarchy" "GST_PAD_LINK_WRONG_HIERARCHY")
    '("was-linked" "GST_PAD_LINK_WAS_LINKED")
    '("wrong-direction" "GST_PAD_LINK_WRONG_DIRECTION")
    '("noformat" "GST_PAD_LINK_NOFORMAT")
    '("nosched" "GST_PAD_LINK_NOSCHED")
    '("refused" "GST_PAD_LINK_REFUSED")
  )
)

(define-enum FlowReturn
  (in-module "Gst")
  (c-name "GstFlowReturn")
  (gtype-id "GST_TYPE_FLOW_RETURN")
  (values
    '("custom-success-2" "GST_FLOW_CUSTOM_SUCCESS_2")
    '("custom-success-1" "GST_FLOW_CUSTOM_SUCCESS_1")
    '("custom-success" "GST_FLOW_CUSTOM_SUCCESS")
    '("resend" "GST_FLOW_RESEND")
    '("ok" "GST_FLOW_OK")
    '("not-linked" "GST_FLOW_NOT_LINKED")
    '("wrong-state" "GST_FLOW_WRONG_STATE")
    '("unexpected" "GST_FLOW_UNEXPECTED")
    '("not-negotiated" "GST_FLOW_NOT_NEGOTIATED")
    '("error" "GST_FLOW_ERROR")
    '("not-supported" "GST_FLOW_NOT_SUPPORTED")
    '("custom-error" "GST_FLOW_CUSTOM_ERROR")
    '("custom-error-1" "GST_FLOW_CUSTOM_ERROR_1")
    '("custom-error-2" "GST_FLOW_CUSTOM_ERROR_2")
  )
)

(define-flags PadLinkCheck
  (in-module "Gst")
  (c-name "GstPadLinkCheck")
  (gtype-id "GST_TYPE_PAD_LINK_CHECK")
  (values
    '("nothing" "GST_PAD_LINK_CHECK_NOTHING")
    '("hierarchy" "GST_PAD_LINK_CHECK_HIERARCHY")
    '("template-caps" "GST_PAD_LINK_CHECK_TEMPLATE_CAPS")
    '("caps" "GST_PAD_LINK_CHECK_CAPS")
  )
)

(define-enum ActivateMode
  (in-module "Gst")
  (c-name "GstActivateMode")
  (gtype-id "GST_TYPE_ACTIVATE_MODE")
  (values
    '("none" "GST_ACTIVATE_NONE")
    '("push" "GST_ACTIVATE_PUSH")
    '("pull" "GST_ACTIVATE_PULL")
  )
)

(define-enum PadDirection
  (in-module "Gst")
  (c-name "GstPadDirection")
  (gtype-id "GST_TYPE_PAD_DIRECTION")
  (values
    '("unknown" "GST_PAD_UNKNOWN")
    '("src" "GST_PAD_SRC")
    '("sink" "GST_PAD_SINK")
  )
)

(define-flags PadFlags
  (in-module "Gst")
  (c-name "GstPadFlags")
  (gtype-id "GST_TYPE_PAD_FLAGS")
  (values
    '("blocked" "GST_PAD_BLOCKED")
    '("flushing" "GST_PAD_FLUSHING")
    '("in-getcaps" "GST_PAD_IN_GETCAPS")
    '("in-setcaps" "GST_PAD_IN_SETCAPS")
    '("blocking" "GST_PAD_BLOCKING")
    '("flag-last" "GST_PAD_FLAG_LAST")
  )
)

(define-enum PadPresence
  (in-module "Gst")
  (c-name "GstPadPresence")
  (gtype-id "GST_TYPE_PAD_PRESENCE")
  (values
    '("always" "GST_PAD_ALWAYS")
    '("sometimes" "GST_PAD_SOMETIMES")
    '("request" "GST_PAD_REQUEST")
  )
)

(define-flags PadTemplateFlags
  (in-module "Gst")
  (c-name "GstPadTemplateFlags")
  (gtype-id "GST_TYPE_PAD_TEMPLATE_FLAGS")
  (values
    '("fixed" "GST_PAD_TEMPLATE_FIXED")
    '("flag-last" "GST_PAD_TEMPLATE_FLAG_LAST")
  )
)

(define-enum ParseError
  (in-module "Gst")
  (c-name "GstParseError")
  (gtype-id "GST_TYPE_PARSE_ERROR")
  (values
    '("syntax" "GST_PARSE_ERROR_SYNTAX")
    '("no-such-element" "GST_PARSE_ERROR_NO_SUCH_ELEMENT")
    '("no-such-property" "GST_PARSE_ERROR_NO_SUCH_PROPERTY")
    '("link" "GST_PARSE_ERROR_LINK")
    '("could-not-set-property" "GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY")
    '("empty-bin" "GST_PARSE_ERROR_EMPTY_BIN")
    '("empty" "GST_PARSE_ERROR_EMPTY")
  )
)

(define-flags ParseFlags
  (in-module "Gst")
  (c-name "GstParseFlags")
  (gtype-id "GST_TYPE_PARSE_FLAGS")
  (values
    '("none" "GST_PARSE_FLAG_NONE")
    '("fatal-errors" "GST_PARSE_FLAG_FATAL_ERRORS")
  )
)

(define-flags PipelineFlags
  (in-module "Gst")
  (c-name "GstPipelineFlags")
  (gtype-id "GST_TYPE_PIPELINE_FLAGS")
  (values
    '("fixed-clock" "GST_PIPELINE_FLAG_FIXED_CLOCK")
    '("last" "GST_PIPELINE_FLAG_LAST")
  )
)

(define-enum Rank
  (in-module "Gst")
  (c-name "GstRank")
  (gtype-id "GST_TYPE_RANK")
  (values
    '("none" "GST_RANK_NONE")
    '("marginal" "GST_RANK_MARGINAL")
    '("secondary" "GST_RANK_SECONDARY")
    '("primary" "GST_RANK_PRIMARY")
  )
)

(define-enum PluginError
  (in-module "Gst")
  (c-name "GstPluginError")
  (gtype-id "GST_TYPE_PLUGIN_ERROR")
  (values
    '("module" "GST_PLUGIN_ERROR_MODULE")
    '("dependencies" "GST_PLUGIN_ERROR_DEPENDENCIES")
    '("name-mismatch" "GST_PLUGIN_ERROR_NAME_MISMATCH")
  )
)

(define-flags PluginFlags
  (in-module "Gst")
  (c-name "GstPluginFlags")
  (gtype-id "GST_TYPE_PLUGIN_FLAGS")
  (values
    '("cached" "GST_PLUGIN_FLAG_CACHED")
    '("blacklisted" "GST_PLUGIN_FLAG_BLACKLISTED")
  )
)

(define-flags PluginDependencyFlags
  (in-module "Gst")
  (c-name "GstPluginDependencyFlags")
  (gtype-id "GST_TYPE_PLUGIN_DEPENDENCY_FLAGS")
  (values
    '("none" "GST_PLUGIN_DEPENDENCY_FLAG_NONE")
    '("recurse" "GST_PLUGIN_DEPENDENCY_FLAG_RECURSE")
    '("paths-are-default-only" "GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY")
    '("file-name-is-suffix" "GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX")
  )
)

(define-enum QueryType
  (in-module "Gst")
  (c-name "GstQueryType")
  (gtype-id "GST_TYPE_QUERY_TYPE")
  (values
    '("none" "GST_QUERY_NONE")
    '("position" "GST_QUERY_POSITION")
    '("duration" "GST_QUERY_DURATION")
    '("latency" "GST_QUERY_LATENCY")
    '("jitter" "GST_QUERY_JITTER")
    '("rate" "GST_QUERY_RATE")
    '("seeking" "GST_QUERY_SEEKING")
    '("segment" "GST_QUERY_SEGMENT")
    '("convert" "GST_QUERY_CONVERT")
    '("formats" "GST_QUERY_FORMATS")
    '("buffering" "GST_QUERY_BUFFERING")
    '("custom" "GST_QUERY_CUSTOM")
    '("uri" "GST_QUERY_URI")
  )
)

(define-enum BufferingMode
  (in-module "Gst")
  (c-name "GstBufferingMode")
  (gtype-id "GST_TYPE_BUFFERING_MODE")
  (values
    '("stream" "GST_BUFFERING_STREAM")
    '("download" "GST_BUFFERING_DOWNLOAD")
    '("timeshift" "GST_BUFFERING_TIMESHIFT")
    '("live" "GST_BUFFERING_LIVE")
  )
)

(define-enum ClockType
  (in-module "Gst")
  (c-name "GstClockType")
  (gtype-id "GST_TYPE_CLOCK_TYPE")
  (values
    '("realtime" "GST_CLOCK_TYPE_REALTIME")
    '("monotonic" "GST_CLOCK_TYPE_MONOTONIC")
  )
)

(define-enum TagMergeMode
  (in-module "Gst")
  (c-name "GstTagMergeMode")
  (gtype-id "GST_TYPE_TAG_MERGE_MODE")
  (values
    '("undefined" "GST_TAG_MERGE_UNDEFINED")
    '("replace-all" "GST_TAG_MERGE_REPLACE_ALL")
    '("replace" "GST_TAG_MERGE_REPLACE")
    '("append" "GST_TAG_MERGE_APPEND")
    '("prepend" "GST_TAG_MERGE_PREPEND")
    '("keep" "GST_TAG_MERGE_KEEP")
    '("keep-all" "GST_TAG_MERGE_KEEP_ALL")
    '("count" "GST_TAG_MERGE_COUNT")
  )
)

(define-enum TagFlag
  (in-module "Gst")
  (c-name "GstTagFlag")
  (gtype-id "GST_TYPE_TAG_FLAG")
  (values
    '("undefined" "GST_TAG_FLAG_UNDEFINED")
    '("meta" "GST_TAG_FLAG_META")
    '("encoded" "GST_TAG_FLAG_ENCODED")
    '("decoded" "GST_TAG_FLAG_DECODED")
    '("count" "GST_TAG_FLAG_COUNT")
  )
)

(define-enum TaskState
  (in-module "Gst")
  (c-name "GstTaskState")
  (gtype-id "GST_TYPE_TASK_STATE")
  (values
    '("started" "GST_TASK_STARTED")
    '("stopped" "GST_TASK_STOPPED")
    '("paused" "GST_TASK_PAUSED")
  )
)

(define-flags AllocTraceFlags
  (in-module "Gst")
  (c-name "GstAllocTraceFlags")
  (gtype-id "GST_TYPE_ALLOC_TRACE_FLAGS")
  (values
    '("live" "GST_ALLOC_TRACE_LIVE")
    '("mem-live" "GST_ALLOC_TRACE_MEM_LIVE")
  )
)

(define-enum TypeFindProbability
  (in-module "Gst")
  (c-name "GstTypeFindProbability")
  (gtype-id "GST_TYPE_TYPE_FIND_PROBABILITY")
  (values
    '("minimum" "GST_TYPE_FIND_MINIMUM")
    '("possible" "GST_TYPE_FIND_POSSIBLE")
    '("likely" "GST_TYPE_FIND_LIKELY")
    '("nearly-certain" "GST_TYPE_FIND_NEARLY_CERTAIN")
    '("maximum" "GST_TYPE_FIND_MAXIMUM")
  )
)

(define-enum URIType
  (in-module "Gst")
  (c-name "GstURIType")
  (gtype-id "GST_TYPE_URI_TYPE")
  (values
    '("unknown" "GST_URI_UNKNOWN")
    '("sink" "GST_URI_SINK")
    '("src" "GST_URI_SRC")
  )
)

(define-enum SearchMode
  (in-module "Gst")
  (c-name "GstSearchMode")
  (gtype-id "GST_TYPE_SEARCH_MODE")
  (values
    '("exact" "GST_SEARCH_MODE_EXACT")
    '("before" "GST_SEARCH_MODE_BEFORE")
    '("after" "GST_SEARCH_MODE_AFTER")
  )
)

(define-flags BaseParseFrameFlags
  (in-module "Gst")
  (c-name "GstBaseParseFrameFlags")
  (gtype-id "GST_TYPE_BASE_PARSE_FRAME_FLAGS")
  (values
    '("none" "GST_BASE_PARSE_FRAME_FLAG_NONE")
    '("no-frame" "GST_BASE_PARSE_FRAME_FLAG_NO_FRAME")
    '("clip" "GST_BASE_PARSE_FRAME_FLAG_CLIP")
  )
)

(define-flags BaseSrcFlags
  (in-module "Gst")
  (c-name "GstBaseSrcFlags")
  (gtype-id "GST_TYPE_BASE_SRC_FLAGS")
  (values
    '("started" "GST_BASE_SRC_STARTED")
    '("flag-last" "GST_BASE_SRC_FLAG_LAST")
  )
)

(define-enum InterpolateMode
  (in-module "Gst")
  (c-name "GstInterpolateMode")
  (gtype-id "GST_TYPE_INTERPOLATE_MODE")
  (values
    '("none" "GST_INTERPOLATE_NONE")
    '("trigger" "GST_INTERPOLATE_TRIGGER")
    '("linear" "GST_INTERPOLATE_LINEAR")
    '("quadratic" "GST_INTERPOLATE_QUADRATIC")
    '("cubic" "GST_INTERPOLATE_CUBIC")
    '("user" "GST_INTERPOLATE_USER")
  )
)

(define-enum LFOWaveform
  (in-module "Gst")
  (c-name "GstLFOWaveform")
  (gtype-id "GST_TYPE_LFO_WAVEFORM")
  (values
    '("sine" "GST_LFO_WAVEFORM_SINE")
    '("square" "GST_LFO_WAVEFORM_SQUARE")
    '("saw" "GST_LFO_WAVEFORM_SAW")
    '("reverse-saw" "GST_LFO_WAVEFORM_REVERSE_SAW")
    '("triangle" "GST_LFO_WAVEFORM_TRIANGLE")
  )
)

(define-enum DPVersion
  (in-module "Gst")
  (c-name "GstDPVersion")
  (gtype-id "GST_TYPE_DP_VERSION")
  (values
    '("0-2" "GST_DP_VERSION_0_2")
    '("1-0" "GST_DP_VERSION_1_0")
  )
)

(define-flags DPHeaderFlag
  (in-module "Gst")
  (c-name "GstDPHeaderFlag")
  (gtype-id "GST_TYPE_DP_HEADER_FLAG")
  (values
    '("none" "GST_DP_HEADER_FLAG_NONE")
    '("crc-header" "GST_DP_HEADER_FLAG_CRC_HEADER")
    '("crc-payload" "GST_DP_HEADER_FLAG_CRC_PAYLOAD")
    '("crc" "GST_DP_HEADER_FLAG_CRC")
  )
)

(define-enum DPPayloadType
  (in-module "Gst")
  (c-name "GstDPPayloadType")
  (gtype-id "GST_TYPE_DP_PAYLOAD_TYPE")
  (values
    '("none" "GST_DP_PAYLOAD_NONE")
    '("buffer" "GST_DP_PAYLOAD_BUFFER")
    '("caps" "GST_DP_PAYLOAD_CAPS")
    '("event-none" "GST_DP_PAYLOAD_EVENT_NONE")
  )
)


;; From gettext.h



;; From glib-compat.h



;; From glib-compat-private.h



;; From gstatomicqueue.h

(define-function gst_atomic_queue_new
  (c-name "gst_atomic_queue_new")
  (is-constructor-of "GstAtomicQueue")
  (return-type "GstAtomicQueue*")
  (parameters
    '("guint" "initial_size")
  )
)

(define-method ref
  (of-object "GstAtomicQueue")
  (c-name "gst_atomic_queue_ref")
  (return-type "none")
)

(define-method unref
  (of-object "GstAtomicQueue")
  (c-name "gst_atomic_queue_unref")
  (return-type "none")
)

(define-method push
  (of-object "GstAtomicQueue")
  (c-name "gst_atomic_queue_push")
  (return-type "none")
  (parameters
    '("gpointer" "data")
  )
)

(define-method pop
  (of-object "GstAtomicQueue")
  (c-name "gst_atomic_queue_pop")
  (return-type "gpointer")
)

(define-method peek
  (of-object "GstAtomicQueue")
  (c-name "gst_atomic_queue_peek")
  (return-type "gpointer")
)

(define-method length
  (of-object "GstAtomicQueue")
  (c-name "gst_atomic_queue_length")
  (return-type "guint")
)



;; From gstbin.h

(define-function gst_bin_get_type
  (c-name "gst_bin_get_type")
  (return-type "GType")
)

(define-function gst_bin_new
  (c-name "gst_bin_new")
  (is-constructor-of "GstBin")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method add
  (of-object "GstBin")
  (c-name "gst_bin_add")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element")
  )
)

(define-method remove
  (of-object "GstBin")
  (c-name "gst_bin_remove")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element")
  )
)

(define-method get_by_name
  (of-object "GstBin")
  (c-name "gst_bin_get_by_name")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_by_name_recurse_up
  (of-object "GstBin")
  (c-name "gst_bin_get_by_name_recurse_up")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_by_interface
  (of-object "GstBin")
  (c-name "gst_bin_get_by_interface")
  (return-type "GstElement*")
  (parameters
    '("GType" "iface")
  )
)

(define-method iterate_elements
  (of-object "GstBin")
  (c-name "gst_bin_iterate_elements")
  (return-type "GstIterator*")
)

(define-method iterate_sorted
  (of-object "GstBin")
  (c-name "gst_bin_iterate_sorted")
  (return-type "GstIterator*")
)

(define-method iterate_recurse
  (of-object "GstBin")
  (c-name "gst_bin_iterate_recurse")
  (return-type "GstIterator*")
)

(define-method iterate_sinks
  (of-object "GstBin")
  (c-name "gst_bin_iterate_sinks")
  (return-type "GstIterator*")
)

(define-method iterate_sources
  (of-object "GstBin")
  (c-name "gst_bin_iterate_sources")
  (return-type "GstIterator*")
)

(define-method iterate_all_by_interface
  (of-object "GstBin")
  (c-name "gst_bin_iterate_all_by_interface")
  (return-type "GstIterator*")
  (parameters
    '("GType" "iface")
  )
)

(define-method recalculate_latency
  (of-object "GstBin")
  (c-name "gst_bin_recalculate_latency")
  (return-type "gboolean")
)



;; From gstbuffer.h

(define-function gst_buffer_get_type
  (c-name "gst_buffer_get_type")
  (return-type "GType")
)

(define-function gst_buffer_new
  (c-name "gst_buffer_new")
  (is-constructor-of "GstBuffer")
  (return-type "GstBuffer*")
)

(define-function gst_buffer_new_and_alloc
  (c-name "gst_buffer_new_and_alloc")
  (return-type "GstBuffer*")
  (parameters
    '("guint" "size")
  )
)

(define-function gst_buffer_try_new_and_alloc
  (c-name "gst_buffer_try_new_and_alloc")
  (return-type "GstBuffer*")
  (parameters
    '("guint" "size")
  )
)

(define-method is_metadata_writable
  (of-object "GstBuffer")
  (c-name "gst_buffer_is_metadata_writable")
  (return-type "gboolean")
)

(define-method make_metadata_writable
  (of-object "GstBuffer")
  (c-name "gst_buffer_make_metadata_writable")
  (return-type "GstBuffer*")
)

(define-method get_caps
  (of-object "GstBuffer")
  (c-name "gst_buffer_get_caps")
  (return-type "GstCaps*")
)

(define-method set_caps
  (of-object "GstBuffer")
  (c-name "gst_buffer_set_caps")
  (return-type "none")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method create_sub
  (of-object "GstBuffer")
  (c-name "gst_buffer_create_sub")
  (return-type "GstBuffer*")
  (parameters
    '("guint" "offset")
    '("guint" "size")
  )
)

(define-method is_span_fast
  (of-object "GstBuffer")
  (c-name "gst_buffer_is_span_fast")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buf2")
  )
)

(define-method span
  (of-object "GstBuffer")
  (c-name "gst_buffer_span")
  (return-type "GstBuffer*")
  (parameters
    '("guint32" "offset")
    '("GstBuffer*" "buf2")
    '("guint32" "len")
  )
)



;; From gstbufferlist.h

(define-function gst_buffer_list_get_type
  (c-name "gst_buffer_list_get_type")
  (return-type "GType")
)

(define-function gst_buffer_list_new
  (c-name "gst_buffer_list_new")
  (is-constructor-of "GstBufferList")
  (return-type "GstBufferList*")
)

(define-method foreach
  (of-object "GstBufferList")
  (c-name "gst_buffer_list_foreach")
  (return-type "none")
  (parameters
    '("GstBufferListFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method get
  (of-object "GstBufferList")
  (c-name "gst_buffer_list_get")
  (return-type "GstBuffer*")
  (parameters
    '("guint" "group")
    '("guint" "idx")
  )
)

(define-function gst_buffer_list_iterator_get_type
  (c-name "gst_buffer_list_iterator_get_type")
  (return-type "GType")
)

(define-method iterate
  (of-object "GstBufferList")
  (c-name "gst_buffer_list_iterate")
  (return-type "GstBufferListIterator*")
)

(define-method free
  (of-object "GstBufferListIterator")
  (c-name "gst_buffer_list_iterator_free")
  (return-type "none")
)

(define-method n_buffers
  (of-object "GstBufferListIterator")
  (c-name "gst_buffer_list_iterator_n_buffers")
  (return-type "guint")
)

(define-method next
  (of-object "GstBufferListIterator")
  (c-name "gst_buffer_list_iterator_next")
  (return-type "GstBuffer*")
)

(define-method next_group
  (of-object "GstBufferListIterator")
  (c-name "gst_buffer_list_iterator_next_group")
  (return-type "gboolean")
)

(define-method add
  (of-object "GstBufferListIterator")
  (c-name "gst_buffer_list_iterator_add")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-method add_list
  (of-object "GstBufferListIterator")
  (c-name "gst_buffer_list_iterator_add_list")
  (return-type "none")
  (parameters
    '("GList*" "list")
  )
)

(define-method add_group
  (of-object "GstBufferListIterator")
  (c-name "gst_buffer_list_iterator_add_group")
  (return-type "none")
)

(define-method remove
  (of-object "GstBufferListIterator")
  (c-name "gst_buffer_list_iterator_remove")
  (return-type "none")
)

(define-method steal
  (of-object "GstBufferListIterator")
  (c-name "gst_buffer_list_iterator_steal")
  (return-type "GstBuffer*")
)

(define-method take
  (of-object "GstBufferListIterator")
  (c-name "gst_buffer_list_iterator_take")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-method do
  (of-object "GstBufferListIterator")
  (c-name "gst_buffer_list_iterator_do")
  (return-type "GstBuffer*")
  (parameters
    '("GstBufferListDoFunction" "do_func")
    '("gpointer" "user_data")
  )
)

(define-method merge_group
  (of-object "GstBufferListIterator")
  (c-name "gst_buffer_list_iterator_merge_group")
  (return-type "GstBuffer*")
)



;; From gstbus.h

(define-function gst_bus_get_type
  (c-name "gst_bus_get_type")
  (return-type "GType")
)

(define-function gst_bus_new
  (c-name "gst_bus_new")
  (is-constructor-of "GstBus")
  (return-type "GstBus*")
)

(define-method post
  (of-object "GstBus")
  (c-name "gst_bus_post")
  (return-type "gboolean")
  (parameters
    '("GstMessage*" "message")
  )
)

(define-method have_pending
  (of-object "GstBus")
  (c-name "gst_bus_have_pending")
  (return-type "gboolean")
)

(define-method peek
  (of-object "GstBus")
  (c-name "gst_bus_peek")
  (return-type "GstMessage*")
)

(define-method pop
  (of-object "GstBus")
  (c-name "gst_bus_pop")
  (return-type "GstMessage*")
)

(define-method pop_filtered
  (of-object "GstBus")
  (c-name "gst_bus_pop_filtered")
  (return-type "GstMessage*")
  (parameters
    '("GstMessageType" "types")
  )
)

(define-method timed_pop
  (of-object "GstBus")
  (c-name "gst_bus_timed_pop")
  (return-type "GstMessage*")
  (parameters
    '("GstClockTime" "timeout")
  )
)

(define-method timed_pop_filtered
  (of-object "GstBus")
  (c-name "gst_bus_timed_pop_filtered")
  (return-type "GstMessage*")
  (parameters
    '("GstClockTime" "timeout")
    '("GstMessageType" "types")
  )
)

(define-method set_flushing
  (of-object "GstBus")
  (c-name "gst_bus_set_flushing")
  (return-type "none")
  (parameters
    '("gboolean" "flushing")
  )
)

(define-method set_sync_handler
  (of-object "GstBus")
  (c-name "gst_bus_set_sync_handler")
  (return-type "none")
  (parameters
    '("GstBusSyncHandler" "func")
    '("gpointer" "data")
  )
)

(define-method create_watch
  (of-object "GstBus")
  (c-name "gst_bus_create_watch")
  (return-type "GSource*")
)

(define-method add_watch_full
  (of-object "GstBus")
  (c-name "gst_bus_add_watch_full")
  (return-type "guint")
  (parameters
    '("gint" "priority")
    '("GstBusFunc" "func")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method add_watch
  (of-object "GstBus")
  (c-name "gst_bus_add_watch")
  (return-type "guint")
  (parameters
    '("GstBusFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method poll
  (of-object "GstBus")
  (c-name "gst_bus_poll")
  (return-type "GstMessage*")
  (parameters
    '("GstMessageType" "events")
    '("GstClockTimeDiff" "timeout")
  )
)

(define-method async_signal_func
  (of-object "GstBus")
  (c-name "gst_bus_async_signal_func")
  (return-type "gboolean")
  (parameters
    '("GstMessage*" "message")
    '("gpointer" "data")
  )
)

(define-method sync_signal_handler
  (of-object "GstBus")
  (c-name "gst_bus_sync_signal_handler")
  (return-type "GstBusSyncReply")
  (parameters
    '("GstMessage*" "message")
    '("gpointer" "data")
  )
)

(define-method add_signal_watch
  (of-object "GstBus")
  (c-name "gst_bus_add_signal_watch")
  (return-type "none")
)

(define-method add_signal_watch_full
  (of-object "GstBus")
  (c-name "gst_bus_add_signal_watch_full")
  (return-type "none")
  (parameters
    '("gint" "priority")
  )
)

(define-method remove_signal_watch
  (of-object "GstBus")
  (c-name "gst_bus_remove_signal_watch")
  (return-type "none")
)

(define-method enable_sync_message_emission
  (of-object "GstBus")
  (c-name "gst_bus_enable_sync_message_emission")
  (return-type "none")
)

(define-method disable_sync_message_emission
  (of-object "GstBus")
  (c-name "gst_bus_disable_sync_message_emission")
  (return-type "none")
)



;; From gstcaps.h

(define-function gst_caps_get_type
  (c-name "gst_caps_get_type")
  (return-type "GType")
)

(define-function gst_caps_new_empty
  (c-name "gst_caps_new_empty")
  (return-type "GstCaps*")
)

(define-function gst_caps_new_any
  (c-name "gst_caps_new_any")
  (return-type "GstCaps*")
)

(define-function gst_caps_new_simple
  (c-name "gst_caps_new_simple")
  (return-type "GstCaps*")
  (parameters
    '("const-char*" "media_type")
    '("const-char*" "fieldname")
  )
  (varargs #t)
)

(define-function gst_caps_new_full
  (c-name "gst_caps_new_full")
  (return-type "GstCaps*")
  (parameters
    '("GstStructure*" "struct1")
  )
  (varargs #t)
)

(define-function gst_caps_new_full_valist
  (c-name "gst_caps_new_full_valist")
  (return-type "GstCaps*")
  (parameters
    '("GstStructure*" "structure")
    '("va_list" "var_args")
  )
)

(define-method ref
  (of-object "GstCaps")
  (c-name "gst_caps_ref")
  (return-type "GstCaps*")
)

(define-method copy
  (of-object "GstCaps")
  (c-name "gst_caps_copy")
  (return-type "GstCaps*")
)

(define-method make_writable
  (of-object "GstCaps")
  (c-name "gst_caps_make_writable")
  (return-type "GstCaps*")
)

(define-method unref
  (of-object "GstCaps")
  (c-name "gst_caps_unref")
  (return-type "none")
)

(define-function gst_static_caps_get_type
  (c-name "gst_static_caps_get_type")
  (return-type "GType")
)

(define-method get
  (of-object "GstStaticCaps")
  (c-name "gst_static_caps_get")
  (return-type "GstCaps*")
)

(define-method append
  (of-object "GstCaps")
  (c-name "gst_caps_append")
  (return-type "none")
  (parameters
    '("GstCaps*" "caps2")
  )
)

(define-method merge
  (of-object "GstCaps")
  (c-name "gst_caps_merge")
  (return-type "none")
  (parameters
    '("GstCaps*" "caps2")
  )
)

(define-method append_structure
  (of-object "GstCaps")
  (c-name "gst_caps_append_structure")
  (return-type "none")
  (parameters
    '("GstStructure*" "structure")
  )
)

(define-method remove_structure
  (of-object "GstCaps")
  (c-name "gst_caps_remove_structure")
  (return-type "none")
  (parameters
    '("guint" "idx")
  )
)

(define-method merge_structure
  (of-object "GstCaps")
  (c-name "gst_caps_merge_structure")
  (return-type "none")
  (parameters
    '("GstStructure*" "structure")
  )
)

(define-method get_size
  (of-object "GstCaps")
  (c-name "gst_caps_get_size")
  (return-type "guint")
)

(define-method get_structure
  (of-object "GstCaps")
  (c-name "gst_caps_get_structure")
  (return-type "GstStructure*")
  (parameters
    '("guint" "index")
  )
)

(define-method steal_structure
  (of-object "GstCaps")
  (c-name "gst_caps_steal_structure")
  (return-type "GstStructure*")
  (parameters
    '("guint" "index")
  )
)

(define-method copy_nth
  (of-object "GstCaps")
  (c-name "gst_caps_copy_nth")
  (return-type "GstCaps*")
  (parameters
    '("guint" "nth")
  )
)

(define-method truncate
  (of-object "GstCaps")
  (c-name "gst_caps_truncate")
  (return-type "none")
)

(define-method set_value
  (of-object "GstCaps")
  (c-name "gst_caps_set_value")
  (return-type "none")
  (parameters
    '("const-char*" "field")
    '("const-GValue*" "value")
  )
)

(define-method set_simple
  (of-object "GstCaps")
  (c-name "gst_caps_set_simple")
  (return-type "none")
  (parameters
    '("const-char*" "field")
  )
  (varargs #t)
)

(define-method set_simple_valist
  (of-object "GstCaps")
  (c-name "gst_caps_set_simple_valist")
  (return-type "none")
  (parameters
    '("const-char*" "field")
    '("va_list" "varargs")
  )
)

(define-method is_any
  (of-object "GstCaps")
  (c-name "gst_caps_is_any")
  (return-type "gboolean")
)

(define-method is_empty
  (of-object "GstCaps")
  (c-name "gst_caps_is_empty")
  (return-type "gboolean")
)

(define-method is_fixed
  (of-object "GstCaps")
  (c-name "gst_caps_is_fixed")
  (return-type "gboolean")
)

(define-method is_always_compatible
  (of-object "GstCaps")
  (c-name "gst_caps_is_always_compatible")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps2")
  )
)

(define-method is_subset
  (of-object "GstCaps")
  (c-name "gst_caps_is_subset")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "superset")
  )
)

(define-method is_equal
  (of-object "GstCaps")
  (c-name "gst_caps_is_equal")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps2")
  )
)

(define-method is_equal_fixed
  (of-object "GstCaps")
  (c-name "gst_caps_is_equal_fixed")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps2")
  )
)

(define-method can_intersect
  (of-object "GstCaps")
  (c-name "gst_caps_can_intersect")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps2")
  )
)

(define-method intersect
  (of-object "GstCaps")
  (c-name "gst_caps_intersect")
  (return-type "GstCaps*")
  (parameters
    '("const-GstCaps*" "caps2")
  )
)

(define-method intersect_full
  (of-object "GstCaps")
  (c-name "gst_caps_intersect_full")
  (return-type "GstCaps*")
  (parameters
    '("const-GstCaps*" "caps2")
    '("GstCapsIntersectMode" "mode")
  )
)

(define-method subtract
  (of-object "GstCaps")
  (c-name "gst_caps_subtract")
  (return-type "GstCaps*")
  (parameters
    '("const-GstCaps*" "subtrahend")
  )
)

(define-method union
  (of-object "GstCaps")
  (c-name "gst_caps_union")
  (return-type "GstCaps*")
  (parameters
    '("const-GstCaps*" "caps2")
  )
)

(define-method normalize
  (of-object "GstCaps")
  (c-name "gst_caps_normalize")
  (return-type "GstCaps*")
)

(define-method do_simplify
  (of-object "GstCaps")
  (c-name "gst_caps_do_simplify")
  (return-type "gboolean")
)

(define-method save_thyself
  (of-object "GstCaps")
  (c-name "gst_caps_save_thyself")
  (return-type "xmlNodePtr")
  (parameters
    '("xmlNodePtr" "parent")
  )
)

(define-function gst_caps_load_thyself
  (c-name "gst_caps_load_thyself")
  (return-type "GstCaps*")
  (parameters
    '("xmlNodePtr" "parent")
  )
)

(define-function gst_caps_replace
  (c-name "gst_caps_replace")
  (return-type "none")
  (parameters
    '("GstCaps**" "caps")
    '("GstCaps*" "newcaps")
  )
)

(define-method to_string
  (of-object "GstCaps")
  (c-name "gst_caps_to_string")
  (return-type "gchar*")
)

(define-function gst_caps_from_string
  (c-name "gst_caps_from_string")
  (return-type "GstCaps*")
  (parameters
    '("const-gchar*" "string")
  )
)



;; From gstchildproxy.h

(define-function gst_child_proxy_get_type
  (c-name "gst_child_proxy_get_type")
  (return-type "GType")
)

(define-method get_child_by_name
  (of-object "GstChildProxy")
  (c-name "gst_child_proxy_get_child_by_name")
  (return-type "GstObject*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_child_by_index
  (of-object "GstChildProxy")
  (c-name "gst_child_proxy_get_child_by_index")
  (return-type "GstObject*")
  (parameters
    '("guint" "index")
  )
)

(define-method get_children_count
  (of-object "GstChildProxy")
  (c-name "gst_child_proxy_get_children_count")
  (return-type "guint")
)

(define-function gst_child_proxy_lookup
  (c-name "gst_child_proxy_lookup")
  (return-type "gboolean")
  (parameters
    '("GstObject*" "object")
    '("const-gchar*" "name")
    '("GstObject**" "target")
    '("GParamSpec**" "pspec")
  )
)

(define-function gst_child_proxy_get_property
  (c-name "gst_child_proxy_get_property")
  (return-type "none")
  (parameters
    '("GstObject*" "object")
    '("const-gchar*" "name")
    '("GValue*" "value")
  )
)

(define-function gst_child_proxy_get_valist
  (c-name "gst_child_proxy_get_valist")
  (return-type "none")
  (parameters
    '("GstObject*" "object")
    '("const-gchar*" "first_property_name")
    '("va_list" "var_args")
  )
)

(define-function gst_child_proxy_get
  (c-name "gst_child_proxy_get")
  (return-type "none")
  (parameters
    '("GstObject*" "object")
    '("const-gchar*" "first_property_name")
  )
  (varargs #t)
)

(define-function gst_child_proxy_set_property
  (c-name "gst_child_proxy_set_property")
  (return-type "none")
  (parameters
    '("GstObject*" "object")
    '("const-gchar*" "name")
    '("const-GValue*" "value")
  )
)

(define-function gst_child_proxy_set_valist
  (c-name "gst_child_proxy_set_valist")
  (return-type "none")
  (parameters
    '("GstObject*" "object")
    '("const-gchar*" "first_property_name")
    '("va_list" "var_args")
  )
)

(define-function gst_child_proxy_set
  (c-name "gst_child_proxy_set")
  (return-type "none")
  (parameters
    '("GstObject*" "object")
    '("const-gchar*" "first_property_name")
  )
  (varargs #t)
)

(define-function gst_child_proxy_child_added
  (c-name "gst_child_proxy_child_added")
  (return-type "none")
  (parameters
    '("GstObject*" "object")
    '("GstObject*" "child")
  )
)

(define-function gst_child_proxy_child_removed
  (c-name "gst_child_proxy_child_removed")
  (return-type "none")
  (parameters
    '("GstObject*" "object")
    '("GstObject*" "child")
  )
)



;; From gstclock.h

(define-function gst_clock_get_type
  (c-name "gst_clock_get_type")
  (return-type "GType")
)

(define-method set_resolution
  (of-object "GstClock")
  (c-name "gst_clock_set_resolution")
  (return-type "GstClockTime")
  (parameters
    '("GstClockTime" "resolution")
  )
)

(define-method get_resolution
  (of-object "GstClock")
  (c-name "gst_clock_get_resolution")
  (return-type "GstClockTime")
)

(define-method get_time
  (of-object "GstClock")
  (c-name "gst_clock_get_time")
  (return-type "GstClockTime")
)

(define-method set_calibration
  (of-object "GstClock")
  (c-name "gst_clock_set_calibration")
  (return-type "none")
  (parameters
    '("GstClockTime" "internal")
    '("GstClockTime" "external")
    '("GstClockTime" "rate_num")
    '("GstClockTime" "rate_denom")
  )
)

(define-method get_calibration
  (of-object "GstClock")
  (c-name "gst_clock_get_calibration")
  (return-type "none")
  (parameters
    '("GstClockTime*" "internal")
    '("GstClockTime*" "external")
    '("GstClockTime*" "rate_num")
    '("GstClockTime*" "rate_denom")
  )
)

(define-method set_master
  (of-object "GstClock")
  (c-name "gst_clock_set_master")
  (return-type "gboolean")
  (parameters
    '("GstClock*" "master")
  )
)

(define-method get_master
  (of-object "GstClock")
  (c-name "gst_clock_get_master")
  (return-type "GstClock*")
)

(define-method add_observation
  (of-object "GstClock")
  (c-name "gst_clock_add_observation")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "slave")
    '("GstClockTime" "master")
    '("gdouble*" "r_squared")
  )
)

(define-method get_internal_time
  (of-object "GstClock")
  (c-name "gst_clock_get_internal_time")
  (return-type "GstClockTime")
)

(define-method adjust_unlocked
  (of-object "GstClock")
  (c-name "gst_clock_adjust_unlocked")
  (return-type "GstClockTime")
  (parameters
    '("GstClockTime" "internal")
  )
)

(define-method unadjust_unlocked
  (of-object "GstClock")
  (c-name "gst_clock_unadjust_unlocked")
  (return-type "GstClockTime")
  (parameters
    '("GstClockTime" "external")
  )
)

(define-method new_single_shot_id
  (of-object "GstClock")
  (c-name "gst_clock_new_single_shot_id")
  (return-type "GstClockID")
  (parameters
    '("GstClockTime" "time")
  )
)

(define-method new_periodic_id
  (of-object "GstClock")
  (c-name "gst_clock_new_periodic_id")
  (return-type "GstClockID")
  (parameters
    '("GstClockTime" "start_time")
    '("GstClockTime" "interval")
  )
)

(define-method ref
  (of-object "GstClockID")
  (c-name "gst_clock_id_ref")
  (return-type "GstClockID")
)

(define-method unref
  (of-object "GstClockID")
  (c-name "gst_clock_id_unref")
  (return-type "none")
)

(define-function gst_clock_id_compare_func
  (c-name "gst_clock_id_compare_func")
  (return-type "gint")
  (parameters
    '("gconstpointer" "id1")
    '("gconstpointer" "id2")
  )
)

(define-method get_time
  (of-object "GstClockID")
  (c-name "gst_clock_id_get_time")
  (return-type "GstClockTime")
)

(define-method wait
  (of-object "GstClockID")
  (c-name "gst_clock_id_wait")
  (return-type "GstClockReturn")
  (parameters
    '("GstClockTimeDiff*" "jitter")
  )
)

(define-method wait_async
  (of-object "GstClockID")
  (c-name "gst_clock_id_wait_async")
  (return-type "GstClockReturn")
  (parameters
    '("GstClockCallback" "func")
    '("gpointer" "user_data")
  )
)

(define-method wait_async_full
  (of-object "GstClockID")
  (c-name "gst_clock_id_wait_async_full")
  (return-type "GstClockReturn")
  (parameters
    '("GstClockCallback" "func")
    '("gpointer" "user_data")
    '("GDestroyNotify" "destroy_data")
  )
)

(define-method unschedule
  (of-object "GstClockID")
  (c-name "gst_clock_id_unschedule")
  (return-type "none")
)

(define-method single_shot_id_reinit
  (of-object "GstClock")
  (c-name "gst_clock_single_shot_id_reinit")
  (return-type "gboolean")
  (parameters
    '("GstClockID" "id")
    '("GstClockTime" "time")
  )
)

(define-method periodic_id_reinit
  (of-object "GstClock")
  (c-name "gst_clock_periodic_id_reinit")
  (return-type "gboolean")
  (parameters
    '("GstClockID" "id")
    '("GstClockTime" "start_time")
    '("GstClockTime" "interval")
  )
)



;; From gstcompat.h



;; From gstconfig.h



;; From gstdatetime.h

(define-method get_year
  (of-object "GstDateTime")
  (c-name "gst_date_time_get_year")
  (return-type "gint")
)

(define-method get_month
  (of-object "GstDateTime")
  (c-name "gst_date_time_get_month")
  (return-type "gint")
)

(define-method get_day
  (of-object "GstDateTime")
  (c-name "gst_date_time_get_day")
  (return-type "gint")
)

(define-method get_hour
  (of-object "GstDateTime")
  (c-name "gst_date_time_get_hour")
  (return-type "gint")
)

(define-method get_minute
  (of-object "GstDateTime")
  (c-name "gst_date_time_get_minute")
  (return-type "gint")
)

(define-method get_second
  (of-object "GstDateTime")
  (c-name "gst_date_time_get_second")
  (return-type "gint")
)

(define-method get_microsecond
  (of-object "GstDateTime")
  (c-name "gst_date_time_get_microsecond")
  (return-type "gint")
)

(define-method get_time_zone_offset
  (of-object "GstDateTime")
  (c-name "gst_date_time_get_time_zone_offset")
  (return-type "gfloat")
)

(define-function gst_date_time_new_from_unix_epoch_local_time
  (c-name "gst_date_time_new_from_unix_epoch_local_time")
  (return-type "GstDateTime*")
  (parameters
    '("gint64" "secs")
  )
)

(define-function gst_date_time_new_from_unix_epoch_utc
  (c-name "gst_date_time_new_from_unix_epoch_utc")
  (return-type "GstDateTime*")
  (parameters
    '("gint64" "secs")
  )
)

(define-function gst_date_time_new_local_time
  (c-name "gst_date_time_new_local_time")
  (return-type "GstDateTime*")
  (parameters
    '("gint" "year")
    '("gint" "month")
    '("gint" "day")
    '("gint" "hour")
    '("gint" "minute")
    '("gdouble" "seconds")
  )
)

(define-function gst_date_time_new
  (c-name "gst_date_time_new")
  (is-constructor-of "GstDateTime")
  (return-type "GstDateTime*")
  (parameters
    '("gfloat" "tzoffset")
    '("gint" "year")
    '("gint" "month")
    '("gint" "day")
    '("gint" "hour")
    '("gint" "minute")
    '("gdouble" "seconds")
  )
)

(define-function gst_date_time_new_now_local_time
  (c-name "gst_date_time_new_now_local_time")
  (return-type "GstDateTime*")
)

(define-function gst_date_time_new_now_utc
  (c-name "gst_date_time_new_now_utc")
  (return-type "GstDateTime*")
)

(define-method ref
  (of-object "GstDateTime")
  (c-name "gst_date_time_ref")
  (return-type "GstDateTime*")
)

(define-method unref
  (of-object "GstDateTime")
  (c-name "gst_date_time_unref")
  (return-type "none")
)



;; From gstdebugutils.h



;; From gstelementdetails.h



;; From gstelementfactory.h

(define-function gst_element_factory_get_type
  (c-name "gst_element_factory_get_type")
  (return-type "GType")
)

(define-function gst_element_factory_find
  (c-name "gst_element_factory_find")
  (return-type "GstElementFactory*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_element_type
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_element_type")
  (return-type "GType")
)

(define-method get_longname
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_longname")
  (return-type "const-gchar*")
)

(define-method get_klass
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_klass")
  (return-type "const-gchar*")
)

(define-method get_description
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_description")
  (return-type "const-gchar*")
)

(define-method get_author
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_author")
  (return-type "const-gchar*")
)

(define-method get_documentation_uri
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_documentation_uri")
  (return-type "const-gchar*")
)

(define-method get_icon_name
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_icon_name")
  (return-type "const-gchar*")
)

(define-method get_num_pad_templates
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_num_pad_templates")
  (return-type "guint")
)

(define-method get_static_pad_templates
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_static_pad_templates")
  (return-type "const-GList*")
)

(define-method get_uri_type
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_uri_type")
  (return-type "gint")
)

(define-method get_uri_protocols
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_get_uri_protocols")
  (return-type "gchar**")
)

(define-method has_interface
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_has_interface")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "interfacename")
  )
)

(define-method create
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_create")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-function gst_element_factory_make
  (c-name "gst_element_factory_make")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "factoryname")
    '("const-gchar*" "name")
  )
)

(define-function gst_element_register
  (c-name "gst_element_register")
  (return-type "gboolean")
  (parameters
    '("GstPlugin*" "plugin")
    '("const-gchar*" "name")
    '("guint" "rank")
    '("GType" "type")
  )
)

(define-method list_is_type
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_list_is_type")
  (return-type "gboolean")
  (parameters
    '("GstElementFactoryListType" "type")
  )
)

(define-function gst_element_factory_list_get_elements
  (c-name "gst_element_factory_list_get_elements")
  (return-type "GList*")
  (parameters
    '("GstElementFactoryListType" "type")
    '("GstRank" "minrank")
  )
)

(define-function gst_element_factory_list_filter
  (c-name "gst_element_factory_list_filter")
  (return-type "GList*")
  (parameters
    '("GList*" "list")
    '("const-GstCaps*" "caps")
    '("GstPadDirection" "direction")
    '("gboolean" "subsetonly")
  )
)



;; From gstelement.h

(define-method add_pad_template
  (of-object "GstElementClass")
  (c-name "gst_element_class_add_pad_template")
  (return-type "none")
  (parameters
    '("GstPadTemplate*" "templ")
  )
)

(define-method get_pad_template
  (of-object "GstElementClass")
  (c-name "gst_element_class_get_pad_template")
  (return-type "GstPadTemplate*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_pad_template_list
  (of-object "GstElementClass")
  (c-name "gst_element_class_get_pad_template_list")
  (return-type "GList*")
)

(define-method set_documentation_uri
  (of-object "GstElementClass")
  (c-name "gst_element_class_set_documentation_uri")
  (return-type "none")
  (parameters
    '("const-gchar*" "uri")
  )
)

(define-method set_icon_name
  (of-object "GstElementClass")
  (c-name "gst_element_class_set_icon_name")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method set_details
  (of-object "GstElementClass")
  (c-name "gst_element_class_set_details")
  (return-type "none")
  (parameters
    '("const-GstElementDetails*" "details")
  )
)

(define-method set_details_simple
  (of-object "GstElementClass")
  (c-name "gst_element_class_set_details_simple")
  (return-type "none")
  (parameters
    '("const-gchar*" "longname")
    '("const-gchar*" "classification")
    '("const-gchar*" "description")
    '("const-gchar*" "author")
  )
)

(define-function gst_element_get_type
  (c-name "gst_element_get_type")
  (return-type "GType")
)

(define-method requires_clock
  (of-object "GstElement")
  (c-name "gst_element_requires_clock")
  (return-type "gboolean")
)

(define-method provides_clock
  (of-object "GstElement")
  (c-name "gst_element_provides_clock")
  (return-type "gboolean")
)

(define-method provide_clock
  (of-object "GstElement")
  (c-name "gst_element_provide_clock")
  (return-type "GstClock*")
)

(define-method get_clock
  (of-object "GstElement")
  (c-name "gst_element_get_clock")
  (return-type "GstClock*")
)

(define-method set_clock
  (of-object "GstElement")
  (c-name "gst_element_set_clock")
  (return-type "gboolean")
  (parameters
    '("GstClock*" "clock")
  )
)

(define-method set_base_time
  (of-object "GstElement")
  (c-name "gst_element_set_base_time")
  (return-type "none")
  (parameters
    '("GstClockTime" "time")
  )
)

(define-method get_base_time
  (of-object "GstElement")
  (c-name "gst_element_get_base_time")
  (return-type "GstClockTime")
)

(define-method set_start_time
  (of-object "GstElement")
  (c-name "gst_element_set_start_time")
  (return-type "none")
  (parameters
    '("GstClockTime" "time")
  )
)

(define-method get_start_time
  (of-object "GstElement")
  (c-name "gst_element_get_start_time")
  (return-type "GstClockTime")
)

(define-method is_indexable
  (of-object "GstElement")
  (c-name "gst_element_is_indexable")
  (return-type "gboolean")
)

(define-method set_index
  (of-object "GstElement")
  (c-name "gst_element_set_index")
  (return-type "none")
  (parameters
    '("GstIndex*" "index")
  )
)

(define-method get_index
  (of-object "GstElement")
  (c-name "gst_element_get_index")
  (return-type "GstIndex*")
)

(define-method set_bus
  (of-object "GstElement")
  (c-name "gst_element_set_bus")
  (return-type "none")
  (parameters
    '("GstBus*" "bus")
  )
)

(define-method get_bus
  (of-object "GstElement")
  (c-name "gst_element_get_bus")
  (return-type "GstBus*")
)

(define-method add_pad
  (of-object "GstElement")
  (c-name "gst_element_add_pad")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "pad")
  )
)

(define-method remove_pad
  (of-object "GstElement")
  (c-name "gst_element_remove_pad")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "pad")
  )
)

(define-method no_more_pads
  (of-object "GstElement")
  (c-name "gst_element_no_more_pads")
  (return-type "none")
)

(define-method get_pad
  (of-object "GstElement")
  (c-name "gst_element_get_pad")
  (return-type "GstPad*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_static_pad
  (of-object "GstElement")
  (c-name "gst_element_get_static_pad")
  (return-type "GstPad*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_request_pad
  (of-object "GstElement")
  (c-name "gst_element_get_request_pad")
  (return-type "GstPad*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method request_pad
  (of-object "GstElement")
  (c-name "gst_element_request_pad")
  (return-type "GstPad*")
  (parameters
    '("GstPadTemplate*" "templ")
    '("const-gchar*" "name")
    '("const-GstCaps*" "caps")
  )
)

(define-method release_request_pad
  (of-object "GstElement")
  (c-name "gst_element_release_request_pad")
  (return-type "none")
  (parameters
    '("GstPad*" "pad")
  )
)

(define-method iterate_pads
  (of-object "GstElement")
  (c-name "gst_element_iterate_pads")
  (return-type "GstIterator*")
)

(define-method iterate_src_pads
  (of-object "GstElement")
  (c-name "gst_element_iterate_src_pads")
  (return-type "GstIterator*")
)

(define-method iterate_sink_pads
  (of-object "GstElement")
  (c-name "gst_element_iterate_sink_pads")
  (return-type "GstIterator*")
)

(define-method send_event
  (of-object "GstElement")
  (c-name "gst_element_send_event")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
  )
)

(define-method seek
  (of-object "GstElement")
  (c-name "gst_element_seek")
  (return-type "gboolean")
  (parameters
    '("gdouble" "rate")
    '("GstFormat" "format")
    '("GstSeekFlags" "flags")
    '("GstSeekType" "cur_type")
    '("gint64" "cur")
    '("GstSeekType" "stop_type")
    '("gint64" "stop")
  )
)

(define-method get_query_types
  (of-object "GstElement")
  (c-name "gst_element_get_query_types")
  (return-type "const-GstQueryType*")
)

(define-method query
  (of-object "GstElement")
  (c-name "gst_element_query")
  (return-type "gboolean")
  (parameters
    '("GstQuery*" "query")
  )
)

(define-method post_message
  (of-object "GstElement")
  (c-name "gst_element_post_message")
  (return-type "gboolean")
  (parameters
    '("GstMessage*" "message")
  )
)

(define-method message_full
  (of-object "GstElement")
  (c-name "gst_element_message_full")
  (return-type "none")
  (parameters
    '("GstMessageType" "type")
    '("GQuark" "domain")
    '("gint" "code")
    '("gchar*" "text")
    '("gchar*" "debug")
    '("const-gchar*" "file")
    '("const-gchar*" "function")
    '("gint" "line")
  )
)

(define-method is_locked_state
  (of-object "GstElement")
  (c-name "gst_element_is_locked_state")
  (return-type "gboolean")
)

(define-method set_locked_state
  (of-object "GstElement")
  (c-name "gst_element_set_locked_state")
  (return-type "gboolean")
  (parameters
    '("gboolean" "locked_state")
  )
)

(define-method sync_state_with_parent
  (of-object "GstElement")
  (c-name "gst_element_sync_state_with_parent")
  (return-type "gboolean")
)

(define-method get_state
  (of-object "GstElement")
  (c-name "gst_element_get_state")
  (return-type "GstStateChangeReturn")
  (parameters
    '("GstState*" "state")
    '("GstState*" "pending")
    '("GstClockTime" "timeout")
  )
)

(define-method set_state
  (of-object "GstElement")
  (c-name "gst_element_set_state")
  (return-type "GstStateChangeReturn")
  (parameters
    '("GstState" "state")
  )
)

(define-method abort_state
  (of-object "GstElement")
  (c-name "gst_element_abort_state")
  (return-type "none")
)

(define-method change_state
  (of-object "GstElement")
  (c-name "gst_element_change_state")
  (return-type "GstStateChangeReturn")
  (parameters
    '("GstStateChange" "transition")
  )
)

(define-method continue_state
  (of-object "GstElement")
  (c-name "gst_element_continue_state")
  (return-type "GstStateChangeReturn")
  (parameters
    '("GstStateChangeReturn" "ret")
  )
)

(define-method lost_state
  (of-object "GstElement")
  (c-name "gst_element_lost_state")
  (return-type "none")
)

(define-method lost_state_full
  (of-object "GstElement")
  (c-name "gst_element_lost_state_full")
  (return-type "none")
  (parameters
    '("gboolean" "new_base_time")
  )
)

(define-method get_factory
  (of-object "GstElement")
  (c-name "gst_element_get_factory")
  (return-type "GstElementFactory*")
)



;; From gstenumtypes.h

(define-function gst_object_flags_get_type
  (c-name "gst_object_flags_get_type")
  (return-type "GType")
)

(define-function gst_bin_flags_get_type
  (c-name "gst_bin_flags_get_type")
  (return-type "GType")
)

(define-function gst_buffer_flag_get_type
  (c-name "gst_buffer_flag_get_type")
  (return-type "GType")
)

(define-function gst_buffer_copy_flags_get_type
  (c-name "gst_buffer_copy_flags_get_type")
  (return-type "GType")
)

(define-function gst_buffer_list_item_get_type
  (c-name "gst_buffer_list_item_get_type")
  (return-type "GType")
)

(define-function gst_bus_flags_get_type
  (c-name "gst_bus_flags_get_type")
  (return-type "GType")
)

(define-function gst_bus_sync_reply_get_type
  (c-name "gst_bus_sync_reply_get_type")
  (return-type "GType")
)

(define-function gst_caps_flags_get_type
  (c-name "gst_caps_flags_get_type")
  (return-type "GType")
)

(define-function gst_caps_intersect_mode_get_type
  (c-name "gst_caps_intersect_mode_get_type")
  (return-type "GType")
)

(define-function gst_clock_return_get_type
  (c-name "gst_clock_return_get_type")
  (return-type "GType")
)

(define-function gst_clock_entry_type_get_type
  (c-name "gst_clock_entry_type_get_type")
  (return-type "GType")
)

(define-function gst_clock_flags_get_type
  (c-name "gst_clock_flags_get_type")
  (return-type "GType")
)

(define-function gst_debug_graph_details_get_type
  (c-name "gst_debug_graph_details_get_type")
  (return-type "GType")
)

(define-function gst_state_get_type
  (c-name "gst_state_get_type")
  (return-type "GType")
)

(define-function gst_state_change_return_get_type
  (c-name "gst_state_change_return_get_type")
  (return-type "GType")
)

(define-function gst_state_change_get_type
  (c-name "gst_state_change_get_type")
  (return-type "GType")
)

(define-function gst_element_flags_get_type
  (c-name "gst_element_flags_get_type")
  (return-type "GType")
)

(define-function gst_core_error_get_type
  (c-name "gst_core_error_get_type")
  (return-type "GType")
)

(define-function gst_library_error_get_type
  (c-name "gst_library_error_get_type")
  (return-type "GType")
)

(define-function gst_resource_error_get_type
  (c-name "gst_resource_error_get_type")
  (return-type "GType")
)

(define-function gst_stream_error_get_type
  (c-name "gst_stream_error_get_type")
  (return-type "GType")
)

(define-function gst_event_type_flags_get_type
  (c-name "gst_event_type_flags_get_type")
  (return-type "GType")
)

(define-function gst_event_type_get_type
  (c-name "gst_event_type_get_type")
  (return-type "GType")
)

(define-function gst_seek_type_get_type
  (c-name "gst_seek_type_get_type")
  (return-type "GType")
)

(define-function gst_seek_flags_get_type
  (c-name "gst_seek_flags_get_type")
  (return-type "GType")
)

(define-function gst_qos_type_get_type
  (c-name "gst_qos_type_get_type")
  (return-type "GType")
)

(define-function gst_format_get_type
  (c-name "gst_format_get_type")
  (return-type "GType")
)

(define-function gst_index_certainty_get_type
  (c-name "gst_index_certainty_get_type")
  (return-type "GType")
)

(define-function gst_index_entry_type_get_type
  (c-name "gst_index_entry_type_get_type")
  (return-type "GType")
)

(define-function gst_index_lookup_method_get_type
  (c-name "gst_index_lookup_method_get_type")
  (return-type "GType")
)

(define-function gst_assoc_flags_get_type
  (c-name "gst_assoc_flags_get_type")
  (return-type "GType")
)

(define-function gst_index_resolver_method_get_type
  (c-name "gst_index_resolver_method_get_type")
  (return-type "GType")
)

(define-function gst_index_flags_get_type
  (c-name "gst_index_flags_get_type")
  (return-type "GType")
)

(define-function gst_debug_level_get_type
  (c-name "gst_debug_level_get_type")
  (return-type "GType")
)

(define-function gst_debug_color_flags_get_type
  (c-name "gst_debug_color_flags_get_type")
  (return-type "GType")
)

(define-function gst_iterator_result_get_type
  (c-name "gst_iterator_result_get_type")
  (return-type "GType")
)

(define-function gst_iterator_item_get_type
  (c-name "gst_iterator_item_get_type")
  (return-type "GType")
)

(define-function gst_message_type_get_type
  (c-name "gst_message_type_get_type")
  (return-type "GType")
)

(define-function gst_structure_change_type_get_type
  (c-name "gst_structure_change_type_get_type")
  (return-type "GType")
)

(define-function gst_stream_status_type_get_type
  (c-name "gst_stream_status_type_get_type")
  (return-type "GType")
)

(define-function gst_progress_type_get_type
  (c-name "gst_progress_type_get_type")
  (return-type "GType")
)

(define-function gst_mini_object_flags_get_type
  (c-name "gst_mini_object_flags_get_type")
  (return-type "GType")
)

(define-function gst_pad_link_return_get_type
  (c-name "gst_pad_link_return_get_type")
  (return-type "GType")
)

(define-function gst_flow_return_get_type
  (c-name "gst_flow_return_get_type")
  (return-type "GType")
)

(define-function gst_pad_link_check_get_type
  (c-name "gst_pad_link_check_get_type")
  (return-type "GType")
)

(define-function gst_activate_mode_get_type
  (c-name "gst_activate_mode_get_type")
  (return-type "GType")
)

(define-function gst_pad_direction_get_type
  (c-name "gst_pad_direction_get_type")
  (return-type "GType")
)

(define-function gst_pad_flags_get_type
  (c-name "gst_pad_flags_get_type")
  (return-type "GType")
)

(define-function gst_pad_presence_get_type
  (c-name "gst_pad_presence_get_type")
  (return-type "GType")
)

(define-function gst_pad_template_flags_get_type
  (c-name "gst_pad_template_flags_get_type")
  (return-type "GType")
)

(define-function gst_pipeline_flags_get_type
  (c-name "gst_pipeline_flags_get_type")
  (return-type "GType")
)

(define-function gst_plugin_error_get_type
  (c-name "gst_plugin_error_get_type")
  (return-type "GType")
)

(define-function gst_plugin_flags_get_type
  (c-name "gst_plugin_flags_get_type")
  (return-type "GType")
)

(define-function gst_plugin_dependency_flags_get_type
  (c-name "gst_plugin_dependency_flags_get_type")
  (return-type "GType")
)

(define-function gst_rank_get_type
  (c-name "gst_rank_get_type")
  (return-type "GType")
)

(define-function gst_query_type_get_type
  (c-name "gst_query_type_get_type")
  (return-type "GType")
)

(define-function gst_buffering_mode_get_type
  (c-name "gst_buffering_mode_get_type")
  (return-type "GType")
)

(define-function gst_clock_type_get_type
  (c-name "gst_clock_type_get_type")
  (return-type "GType")
)

(define-function gst_tag_merge_mode_get_type
  (c-name "gst_tag_merge_mode_get_type")
  (return-type "GType")
)

(define-function gst_tag_flag_get_type
  (c-name "gst_tag_flag_get_type")
  (return-type "GType")
)

(define-function gst_task_state_get_type
  (c-name "gst_task_state_get_type")
  (return-type "GType")
)

(define-function gst_alloc_trace_flags_get_type
  (c-name "gst_alloc_trace_flags_get_type")
  (return-type "GType")
)

(define-function gst_type_find_probability_get_type
  (c-name "gst_type_find_probability_get_type")
  (return-type "GType")
)

(define-function gst_uri_type_get_type
  (c-name "gst_uri_type_get_type")
  (return-type "GType")
)

(define-function gst_search_mode_get_type
  (c-name "gst_search_mode_get_type")
  (return-type "GType")
)

(define-function gst_parse_error_get_type
  (c-name "gst_parse_error_get_type")
  (return-type "GType")
)

(define-function gst_parse_flags_get_type
  (c-name "gst_parse_flags_get_type")
  (return-type "GType")
)



;; From gsterror.h

(define-function gst_g_error_get_type
  (c-name "gst_g_error_get_type")
  (return-type "GType")
)

(define-function gst_error_get_message
  (c-name "gst_error_get_message")
  (return-type "gchar*")
  (parameters
    '("GQuark" "domain")
    '("gint" "code")
  )
)

(define-function gst_stream_error_quark
  (c-name "gst_stream_error_quark")
  (return-type "GQuark")
)

(define-function gst_core_error_quark
  (c-name "gst_core_error_quark")
  (return-type "GQuark")
)

(define-function gst_resource_error_quark
  (c-name "gst_resource_error_quark")
  (return-type "GQuark")
)

(define-function gst_library_error_quark
  (c-name "gst_library_error_quark")
  (return-type "GQuark")
)



;; From gstevent.h

(define-method get_name
  (of-object "GstEventType")
  (c-name "gst_event_type_get_name")
  (return-type "const-gchar*")
)

(define-method to_quark
  (of-object "GstEventType")
  (c-name "gst_event_type_to_quark")
  (return-type "GQuark")
)

(define-method get_flags
  (of-object "GstEventType")
  (c-name "gst_event_type_get_flags")
  (return-type "GstEventTypeFlags")
)

(define-function gst_event_get_type
  (c-name "gst_event_get_type")
  (return-type "GType")
)

(define-method get_structure
  (of-object "GstEvent")
  (c-name "gst_event_get_structure")
  (return-type "const-GstStructure*")
)

(define-method has_name
  (of-object "GstEvent")
  (c-name "gst_event_has_name")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_seqnum
  (of-object "GstEvent")
  (c-name "gst_event_get_seqnum")
  (return-type "guint32")
)

(define-method set_seqnum
  (of-object "GstEvent")
  (c-name "gst_event_set_seqnum")
  (return-type "none")
  (parameters
    '("guint32" "seqnum")
  )
)

(define-function gst_event_new_flush_start
  (c-name "gst_event_new_flush_start")
  (return-type "GstEvent*")
)

(define-function gst_event_new_flush_stop
  (c-name "gst_event_new_flush_stop")
  (return-type "GstEvent*")
)

(define-function gst_event_new_eos
  (c-name "gst_event_new_eos")
  (return-type "GstEvent*")
)

(define-function gst_event_new_new_segment
  (c-name "gst_event_new_new_segment")
  (return-type "GstEvent*")
  (parameters
    '("gboolean" "update")
    '("gdouble" "rate")
    '("GstFormat" "format")
    '("gint64" "start")
    '("gint64" "stop")
    '("gint64" "position")
  )
)

(define-function gst_event_new_new_segment_full
  (c-name "gst_event_new_new_segment_full")
  (return-type "GstEvent*")
  (parameters
    '("gboolean" "update")
    '("gdouble" "rate")
    '("gdouble" "applied_rate")
    '("GstFormat" "format")
    '("gint64" "start")
    '("gint64" "stop")
    '("gint64" "position")
  )
)

(define-method parse_new_segment
  (of-object "GstEvent")
  (c-name "gst_event_parse_new_segment")
  (return-type "none")
  (parameters
    '("gboolean*" "update")
    '("gdouble*" "rate")
    '("GstFormat*" "format")
    '("gint64*" "start")
    '("gint64*" "stop")
    '("gint64*" "position")
  )
)

(define-method parse_new_segment_full
  (of-object "GstEvent")
  (c-name "gst_event_parse_new_segment_full")
  (return-type "none")
  (parameters
    '("gboolean*" "update")
    '("gdouble*" "rate")
    '("gdouble*" "applied_rate")
    '("GstFormat*" "format")
    '("gint64*" "start")
    '("gint64*" "stop")
    '("gint64*" "position")
  )
)

(define-function gst_event_new_tag
  (c-name "gst_event_new_tag")
  (return-type "GstEvent*")
  (parameters
    '("GstTagList*" "taglist")
  )
)

(define-method parse_tag
  (of-object "GstEvent")
  (c-name "gst_event_parse_tag")
  (return-type "none")
  (parameters
    '("GstTagList**" "taglist")
  )
)

(define-function gst_event_new_buffer_size
  (c-name "gst_event_new_buffer_size")
  (return-type "GstEvent*")
  (parameters
    '("GstFormat" "format")
    '("gint64" "minsize")
    '("gint64" "maxsize")
    '("gboolean" "async")
  )
)

(define-method parse_buffer_size
  (of-object "GstEvent")
  (c-name "gst_event_parse_buffer_size")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "minsize")
    '("gint64*" "maxsize")
    '("gboolean*" "async")
  )
)

(define-function gst_event_new_qos
  (c-name "gst_event_new_qos")
  (return-type "GstEvent*")
  (parameters
    '("gdouble" "proportion")
    '("GstClockTimeDiff" "diff")
    '("GstClockTime" "timestamp")
  )
)

(define-function gst_event_new_qos_full
  (c-name "gst_event_new_qos_full")
  (return-type "GstEvent*")
  (parameters
    '("GstQOSType" "type")
    '("gdouble" "proportion")
    '("GstClockTimeDiff" "diff")
    '("GstClockTime" "timestamp")
  )
)

(define-method parse_qos
  (of-object "GstEvent")
  (c-name "gst_event_parse_qos")
  (return-type "none")
  (parameters
    '("gdouble*" "proportion")
    '("GstClockTimeDiff*" "diff")
    '("GstClockTime*" "timestamp")
  )
)

(define-method parse_qos_full
  (of-object "GstEvent")
  (c-name "gst_event_parse_qos_full")
  (return-type "none")
  (parameters
    '("GstQOSType*" "type")
    '("gdouble*" "proportion")
    '("GstClockTimeDiff*" "diff")
    '("GstClockTime*" "timestamp")
  )
)

(define-function gst_event_new_seek
  (c-name "gst_event_new_seek")
  (return-type "GstEvent*")
  (parameters
    '("gdouble" "rate")
    '("GstFormat" "format")
    '("GstSeekFlags" "flags")
    '("GstSeekType" "start_type")
    '("gint64" "start")
    '("GstSeekType" "stop_type")
    '("gint64" "stop")
  )
)

(define-method parse_seek
  (of-object "GstEvent")
  (c-name "gst_event_parse_seek")
  (return-type "none")
  (parameters
    '("gdouble*" "rate")
    '("GstFormat*" "format")
    '("GstSeekFlags*" "flags")
    '("GstSeekType*" "start_type")
    '("gint64*" "start")
    '("GstSeekType*" "stop_type")
    '("gint64*" "stop")
  )
)

(define-function gst_event_new_navigation
  (c-name "gst_event_new_navigation")
  (return-type "GstEvent*")
  (parameters
    '("GstStructure*" "structure")
  )
)

(define-function gst_event_new_latency
  (c-name "gst_event_new_latency")
  (return-type "GstEvent*")
  (parameters
    '("GstClockTime" "latency")
  )
)

(define-method parse_latency
  (of-object "GstEvent")
  (c-name "gst_event_parse_latency")
  (return-type "none")
  (parameters
    '("GstClockTime*" "latency")
  )
)

(define-function gst_event_new_step
  (c-name "gst_event_new_step")
  (return-type "GstEvent*")
  (parameters
    '("GstFormat" "format")
    '("guint64" "amount")
    '("gdouble" "rate")
    '("gboolean" "flush")
    '("gboolean" "intermediate")
  )
)

(define-method parse_step
  (of-object "GstEvent")
  (c-name "gst_event_parse_step")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("guint64*" "amount")
    '("gdouble*" "rate")
    '("gboolean*" "flush")
    '("gboolean*" "intermediate")
  )
)



;; From gstfilter.h

(define-function gst_filter_run
  (c-name "gst_filter_run")
  (return-type "GList*")
  (parameters
    '("const-GList*" "list")
    '("GstFilterFunc" "func")
    '("gboolean" "first")
    '("gpointer" "user_data")
  )
)



;; From gstformat.h

(define-method get_name
  (of-object "GstFormat")
  (c-name "gst_format_get_name")
  (return-type "const-gchar*")
)

(define-method to_quark
  (of-object "GstFormat")
  (c-name "gst_format_to_quark")
  (return-type "GQuark")
)

(define-function gst_format_register
  (c-name "gst_format_register")
  (return-type "GstFormat")
  (parameters
    '("const-gchar*" "nick")
    '("const-gchar*" "description")
  )
)

(define-function gst_format_get_by_nick
  (c-name "gst_format_get_by_nick")
  (return-type "GstFormat")
  (parameters
    '("const-gchar*" "nick")
  )
)

(define-method s_contains
  (of-object "GstFormat")
  (c-name "gst_formats_contains")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "format")
  )
)

(define-method get_details
  (of-object "GstFormat")
  (c-name "gst_format_get_details")
  (return-type "const-GstFormatDefinition*")
)

(define-function gst_format_iterate_definitions
  (c-name "gst_format_iterate_definitions")
  (return-type "GstIterator*")
)



;; From gstghostpad.h

(define-function gst_proxy_pad_get_type
  (c-name "gst_proxy_pad_get_type")
  (return-type "GType")
)

(define-function gst_ghost_pad_get_type
  (c-name "gst_ghost_pad_get_type")
  (return-type "GType")
)

(define-function gst_ghost_pad_new
  (c-name "gst_ghost_pad_new")
  (is-constructor-of "GstGhostPad")
  (return-type "GstPad*")
  (parameters
    '("const-gchar*" "name")
    '("GstPad*" "target")
  )
)

(define-function gst_ghost_pad_new_no_target
  (c-name "gst_ghost_pad_new_no_target")
  (return-type "GstPad*")
  (parameters
    '("const-gchar*" "name")
    '("GstPadDirection" "dir")
  )
)

(define-function gst_ghost_pad_new_from_template
  (c-name "gst_ghost_pad_new_from_template")
  (return-type "GstPad*")
  (parameters
    '("const-gchar*" "name")
    '("GstPad*" "target")
    '("GstPadTemplate*" "templ")
  )
)

(define-function gst_ghost_pad_new_no_target_from_template
  (c-name "gst_ghost_pad_new_no_target_from_template")
  (return-type "GstPad*")
  (parameters
    '("const-gchar*" "name")
    '("GstPadTemplate*" "templ")
  )
)

(define-method get_target
  (of-object "GstGhostPad")
  (c-name "gst_ghost_pad_get_target")
  (return-type "GstPad*")
)

(define-method set_target
  (of-object "GstGhostPad")
  (c-name "gst_ghost_pad_set_target")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "newtarget")
  )
)

(define-method construct
  (of-object "GstGhostPad")
  (c-name "gst_ghost_pad_construct")
  (return-type "gboolean")
)



;; From gst.h

(define-function gst_init
  (c-name "gst_init")
  (return-type "none")
  (parameters
    '("int*" "argc")
    '("char**[]" "argv")
  )
)

(define-function gst_init_check
  (c-name "gst_init_check")
  (return-type "gboolean")
  (parameters
    '("int*" "argc")
    '("char**[]" "argv")
    '("GError**" "err")
  )
)

(define-function gst_is_initialized
  (c-name "gst_is_initialized")
  (return-type "gboolean")
)

(define-function gst_init_get_option_group
  (c-name "gst_init_get_option_group")
  (return-type "GOptionGroup*")
)

(define-function gst_deinit
  (c-name "gst_deinit")
  (return-type "none")
)

(define-function gst_version
  (c-name "gst_version")
  (return-type "none")
  (parameters
    '("guint*" "major")
    '("guint*" "minor")
    '("guint*" "micro")
    '("guint*" "nano")
  )
)

(define-function gst_version_string
  (c-name "gst_version_string")
  (return-type "gchar*")
)

(define-function gst_segtrap_is_enabled
  (c-name "gst_segtrap_is_enabled")
  (return-type "gboolean")
)

(define-function gst_segtrap_set_enabled
  (c-name "gst_segtrap_set_enabled")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-function gst_registry_fork_is_enabled
  (c-name "gst_registry_fork_is_enabled")
  (return-type "gboolean")
)

(define-function gst_registry_fork_set_enabled
  (c-name "gst_registry_fork_set_enabled")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-function gst_update_registry
  (c-name "gst_update_registry")
  (return-type "gboolean")
)



;; From gst-i18n-app.h



;; From gst-i18n-lib.h



;; From gstindexfactory.h

(define-function gst_index_factory_get_type
  (c-name "gst_index_factory_get_type")
  (return-type "GType")
)

(define-function gst_index_factory_new
  (c-name "gst_index_factory_new")
  (is-constructor-of "GstIndexFactory")
  (return-type "GstIndexFactory*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "longdesc")
    '("GType" "type")
  )
)

(define-method destroy
  (of-object "GstIndexFactory")
  (c-name "gst_index_factory_destroy")
  (return-type "none")
)

(define-function gst_index_factory_find
  (c-name "gst_index_factory_find")
  (return-type "GstIndexFactory*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method create
  (of-object "GstIndexFactory")
  (c-name "gst_index_factory_create")
  (return-type "GstIndex*")
)

(define-function gst_index_factory_make
  (c-name "gst_index_factory_make")
  (return-type "GstIndex*")
  (parameters
    '("const-gchar*" "name")
  )
)



;; From gstindex.h

(define-function gst_index_get_type
  (c-name "gst_index_get_type")
  (return-type "GType")
)

(define-function gst_index_new
  (c-name "gst_index_new")
  (is-constructor-of "GstIndex")
  (return-type "GstIndex*")
)

(define-method commit
  (of-object "GstIndex")
  (c-name "gst_index_commit")
  (return-type "none")
  (parameters
    '("gint" "id")
  )
)

(define-method get_group
  (of-object "GstIndex")
  (c-name "gst_index_get_group")
  (return-type "gint")
)

(define-method new_group
  (of-object "GstIndex")
  (c-name "gst_index_new_group")
  (return-type "gint")
)

(define-method set_group
  (of-object "GstIndex")
  (c-name "gst_index_set_group")
  (return-type "gboolean")
  (parameters
    '("gint" "groupnum")
  )
)

(define-method set_certainty
  (of-object "GstIndex")
  (c-name "gst_index_set_certainty")
  (return-type "none")
  (parameters
    '("GstIndexCertainty" "certainty")
  )
)

(define-method get_certainty
  (of-object "GstIndex")
  (c-name "gst_index_get_certainty")
  (return-type "GstIndexCertainty")
)

(define-method set_filter
  (of-object "GstIndex")
  (c-name "gst_index_set_filter")
  (return-type "none")
  (parameters
    '("GstIndexFilter" "filter")
    '("gpointer" "user_data")
  )
)

(define-method set_filter_full
  (of-object "GstIndex")
  (c-name "gst_index_set_filter_full")
  (return-type "none")
  (parameters
    '("GstIndexFilter" "filter")
    '("gpointer" "user_data")
    '("GDestroyNotify" "user_data_destroy")
  )
)

(define-method set_resolver
  (of-object "GstIndex")
  (c-name "gst_index_set_resolver")
  (return-type "none")
  (parameters
    '("GstIndexResolver" "resolver")
    '("gpointer" "user_data")
  )
)

(define-method set_resolver_full
  (of-object "GstIndex")
  (c-name "gst_index_set_resolver_full")
  (return-type "none")
  (parameters
    '("GstIndexResolver" "resolver")
    '("gpointer" "user_data")
    '("GDestroyNotify" "user_data_destroy")
  )
)

(define-method get_writer_id
  (of-object "GstIndex")
  (c-name "gst_index_get_writer_id")
  (return-type "gboolean")
  (parameters
    '("GstObject*" "writer")
    '("gint*" "id")
  )
)

(define-method add_format
  (of-object "GstIndex")
  (c-name "gst_index_add_format")
  (return-type "GstIndexEntry*")
  (parameters
    '("gint" "id")
    '("GstFormat" "format")
  )
)

(define-method add_associationv
  (of-object "GstIndex")
  (c-name "gst_index_add_associationv")
  (return-type "GstIndexEntry*")
  (parameters
    '("gint" "id")
    '("GstAssocFlags" "flags")
    '("gint" "n")
    '("const-GstIndexAssociation*" "list")
  )
)

(define-method add_association
  (of-object "GstIndex")
  (c-name "gst_index_add_association")
  (return-type "GstIndexEntry*")
  (parameters
    '("gint" "id")
    '("GstAssocFlags" "flags")
    '("GstFormat" "format")
    '("gint64" "value")
  )
  (varargs #t)
)

(define-method add_object
  (of-object "GstIndex")
  (c-name "gst_index_add_object")
  (return-type "GstIndexEntry*")
  (parameters
    '("gint" "id")
    '("gchar*" "key")
    '("GType" "type")
    '("gpointer" "object")
  )
)

(define-method add_id
  (of-object "GstIndex")
  (c-name "gst_index_add_id")
  (return-type "GstIndexEntry*")
  (parameters
    '("gint" "id")
    '("gchar*" "description")
  )
)

(define-method get_assoc_entry
  (of-object "GstIndex")
  (c-name "gst_index_get_assoc_entry")
  (return-type "GstIndexEntry*")
  (parameters
    '("gint" "id")
    '("GstIndexLookupMethod" "method")
    '("GstAssocFlags" "flags")
    '("GstFormat" "format")
    '("gint64" "value")
  )
)

(define-method get_assoc_entry_full
  (of-object "GstIndex")
  (c-name "gst_index_get_assoc_entry_full")
  (return-type "GstIndexEntry*")
  (parameters
    '("gint" "id")
    '("GstIndexLookupMethod" "method")
    '("GstAssocFlags" "flags")
    '("GstFormat" "format")
    '("gint64" "value")
    '("GCompareDataFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-function gst_index_entry_get_type
  (c-name "gst_index_entry_get_type")
  (return-type "GType")
)

(define-method copy
  (of-object "GstIndexEntry")
  (c-name "gst_index_entry_copy")
  (return-type "GstIndexEntry*")
)

(define-method free
  (of-object "GstIndexEntry")
  (c-name "gst_index_entry_free")
  (return-type "none")
)

(define-method assoc_map
  (of-object "GstIndexEntry")
  (c-name "gst_index_entry_assoc_map")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "format")
    '("gint64*" "value")
  )
)



;; From gstinfo.h

(define-function gst_debug_log
  (c-name "gst_debug_log")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "category")
    '("GstDebugLevel" "level")
    '("const-gchar*" "file")
    '("const-gchar*" "function")
    '("gint" "line")
    '("GObject*" "object")
    '("const-gchar*" "format")
  )
  (varargs #t)
)

(define-function gst_debug_log
  (c-name "gst_debug_log")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "category")
    '("GstDebugLevel" "level")
    '("const-gchar*" "file")
    '("const-gchar*" "function")
    '("gint" "line")
    '("GObject*" "object")
    '("const-gchar*" "format")
  )
  (varargs #t)
)

(define-function gst_debug_log_valist
  (c-name "gst_debug_log_valist")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "category")
    '("GstDebugLevel" "level")
    '("const-gchar*" "file")
    '("const-gchar*" "function")
    '("gint" "line")
    '("GObject*" "object")
    '("const-gchar*" "format")
    '("va_list" "args")
  )
)

(define-method get
  (of-object "GstDebugMessage")
  (c-name "gst_debug_message_get")
  (return-type "const-gchar*")
)

(define-function gst_debug_log_default
  (c-name "gst_debug_log_default")
  (return-type "none")
  (parameters
    '("GstDebugCategory*" "category")
    '("GstDebugLevel" "level")
    '("const-gchar*" "file")
    '("const-gchar*" "function")
    '("gint" "line")
    '("GObject*" "object")
    '("GstDebugMessage*" "message")
    '("gpointer" "unused")
  )
)

(define-method get_name
  (of-object "GstDebugLevel")
  (c-name "gst_debug_level_get_name")
  (return-type "const-gchar*")
)

(define-function gst_debug_add_log_function
  (c-name "gst_debug_add_log_function")
  (return-type "none")
  (parameters
    '("GstLogFunction" "func")
    '("gpointer" "data")
  )
)

(define-function gst_debug_remove_log_function
  (c-name "gst_debug_remove_log_function")
  (return-type "guint")
  (parameters
    '("GstLogFunction" "func")
  )
)

(define-function gst_debug_remove_log_function_by_data
  (c-name "gst_debug_remove_log_function_by_data")
  (return-type "guint")
  (parameters
    '("gpointer" "data")
  )
)

(define-function gst_debug_set_active
  (c-name "gst_debug_set_active")
  (return-type "none")
  (parameters
    '("gboolean" "active")
  )
)

(define-function gst_debug_is_active
  (c-name "gst_debug_is_active")
  (return-type "gboolean")
)

(define-function gst_debug_set_colored
  (c-name "gst_debug_set_colored")
  (return-type "none")
  (parameters
    '("gboolean" "colored")
  )
)

(define-function gst_debug_is_colored
  (c-name "gst_debug_is_colored")
  (return-type "gboolean")
)

(define-function gst_debug_set_default_threshold
  (c-name "gst_debug_set_default_threshold")
  (return-type "none")
  (parameters
    '("GstDebugLevel" "level")
  )
)

(define-function gst_debug_get_default_threshold
  (c-name "gst_debug_get_default_threshold")
  (return-type "GstDebugLevel")
)

(define-function gst_debug_set_threshold_for_name
  (c-name "gst_debug_set_threshold_for_name")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
    '("GstDebugLevel" "level")
  )
)

(define-function gst_debug_unset_threshold_for_name
  (c-name "gst_debug_unset_threshold_for_name")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method free
  (of-object "GstDebugCategory")
  (c-name "gst_debug_category_free")
  (return-type "none")
)

(define-method set_threshold
  (of-object "GstDebugCategory")
  (c-name "gst_debug_category_set_threshold")
  (return-type "none")
  (parameters
    '("GstDebugLevel" "level")
  )
)

(define-method reset_threshold
  (of-object "GstDebugCategory")
  (c-name "gst_debug_category_reset_threshold")
  (return-type "none")
)

(define-method get_threshold
  (of-object "GstDebugCategory")
  (c-name "gst_debug_category_get_threshold")
  (return-type "GstDebugLevel")
)

(define-method get_name
  (of-object "GstDebugCategory")
  (c-name "gst_debug_category_get_name")
  (return-type "const-gchar*")
)

(define-method get_color
  (of-object "GstDebugCategory")
  (c-name "gst_debug_category_get_color")
  (return-type "guint")
)

(define-method get_description
  (of-object "GstDebugCategory")
  (c-name "gst_debug_category_get_description")
  (return-type "const-gchar*")
)

(define-function gst_debug_get_all_categories
  (c-name "gst_debug_get_all_categories")
  (return-type "GSList*")
)

(define-function gst_debug_construct_term_color
  (c-name "gst_debug_construct_term_color")
  (return-type "gchar*")
  (parameters
    '("guint" "colorinfo")
  )
)

(define-function gst_debug_construct_win_color
  (c-name "gst_debug_construct_win_color")
  (return-type "gint")
  (parameters
    '("guint" "colorinfo")
  )
)



;; From gstinterface.h

(define-function gst_implements_interface_get_type
  (c-name "gst_implements_interface_get_type")
  (return-type "GType")
)

(define-method implements_interface
  (of-object "GstElement")
  (c-name "gst_element_implements_interface")
  (return-type "gboolean")
  (parameters
    '("GType" "iface_type")
  )
)

(define-function gst_implements_interface_cast
  (c-name "gst_implements_interface_cast")
  (return-type "gpointer")
  (parameters
    '("gpointer" "from")
    '("GType" "type")
  )
)

(define-function gst_implements_interface_check
  (c-name "gst_implements_interface_check")
  (return-type "gboolean")
  (parameters
    '("gpointer" "from")
    '("GType" "type")
  )
)



;; From gstiterator.h

(define-function gst_iterator_new
  (c-name "gst_iterator_new")
  (is-constructor-of "GstIterator")
  (return-type "GstIterator*")
  (parameters
    '("guint" "size")
    '("GType" "type")
    '("GMutex*" "lock")
    '("guint32*" "master_cookie")
    '("GstIteratorNextFunction" "next")
    '("GstIteratorItemFunction" "item")
    '("GstIteratorResyncFunction" "resync")
    '("GstIteratorFreeFunction" "free")
  )
)

(define-function gst_iterator_new_list
  (c-name "gst_iterator_new_list")
  (return-type "GstIterator*")
  (parameters
    '("GType" "type")
    '("GMutex*" "lock")
    '("guint32*" "master_cookie")
    '("GList**" "list")
    '("gpointer" "owner")
    '("GstIteratorItemFunction" "item")
    '("GstIteratorDisposeFunction" "free")
  )
)

(define-function gst_iterator_new_single
  (c-name "gst_iterator_new_single")
  (return-type "GstIterator*")
  (parameters
    '("GType" "type")
    '("gpointer" "object")
    '("GstCopyFunction" "copy")
    '("GFreeFunc" "free")
  )
)

(define-method next
  (of-object "GstIterator")
  (c-name "gst_iterator_next")
  (return-type "GstIteratorResult")
  (parameters
    '("gpointer*" "elem")
  )
)

(define-method resync
  (of-object "GstIterator")
  (c-name "gst_iterator_resync")
  (return-type "none")
)

(define-method free
  (of-object "GstIterator")
  (c-name "gst_iterator_free")
  (return-type "none")
)

(define-method push
  (of-object "GstIterator")
  (c-name "gst_iterator_push")
  (return-type "none")
  (parameters
    '("GstIterator*" "other")
  )
)

(define-method filter
  (of-object "GstIterator")
  (c-name "gst_iterator_filter")
  (return-type "GstIterator*")
  (parameters
    '("GCompareFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method fold
  (of-object "GstIterator")
  (c-name "gst_iterator_fold")
  (return-type "GstIteratorResult")
  (parameters
    '("GstIteratorFoldFunction" "func")
    '("GValue*" "ret")
    '("gpointer" "user_data")
  )
)

(define-method foreach
  (of-object "GstIterator")
  (c-name "gst_iterator_foreach")
  (return-type "GstIteratorResult")
  (parameters
    '("GFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method find_custom
  (of-object "GstIterator")
  (c-name "gst_iterator_find_custom")
  (return-type "gpointer")
  (parameters
    '("GCompareFunc" "func")
    '("gpointer" "user_data")
  )
)



;; From gstmacros.h



;; From gstmarshal.h



;; From gstmessage.h

(define-function gst_message_get_type
  (c-name "gst_message_get_type")
  (return-type "GType")
)

(define-method get_name
  (of-object "GstMessageType")
  (c-name "gst_message_type_get_name")
  (return-type "const-gchar*")
)

(define-method to_quark
  (of-object "GstMessageType")
  (c-name "gst_message_type_to_quark")
  (return-type "GQuark")
)

;; This method is not generated for some reason.
(define-method get_seqnum
  (of-object "GstMessage")
  (c-name "gst_message_get_seqnum")
  (return-type "guint32")
)

(define-method set_seqnum
  (of-object "GstMessage")
  (c-name "gst_message_set_seqnum")
  (return-type "none")
  (parameters
    '("guint32" "seqnum")
  )
)

(define-function gst_message_new_eos
  (c-name "gst_message_new_eos")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
  )
)

(define-function gst_message_new_error
  (c-name "gst_message_new_error")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GError*" "error")
    '("const-gchar*" "debug")
  )
)

(define-method parse_error
  (of-object "GstMessage")
  (c-name "gst_message_parse_error")
  (return-type "none")
  (parameters
    '("GError**" "gerror")
    '("gchar**" "debug")
  )
)

(define-function gst_message_new_warning
  (c-name "gst_message_new_warning")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GError*" "error")
    '("const-gchar*" "debug")
  )
)

(define-method parse_warning
  (of-object "GstMessage")
  (c-name "gst_message_parse_warning")
  (return-type "none")
  (parameters
    '("GError**" "gerror")
    '("gchar**" "debug")
  )
)

(define-function gst_message_new_info
  (c-name "gst_message_new_info")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GError*" "error")
    '("const-gchar*" "debug")
  )
)

(define-method parse_info
  (of-object "GstMessage")
  (c-name "gst_message_parse_info")
  (return-type "none")
  (parameters
    '("GError**" "gerror")
    '("gchar**" "debug")
  )
)

(define-function gst_message_new_tag
  (c-name "gst_message_new_tag")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstTagList*" "tag_list")
  )
)

(define-function gst_message_new_tag_full
  (c-name "gst_message_new_tag_full")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstPad*" "pad")
    '("GstTagList*" "tag_list")
  )
)

(define-method parse_tag
  (of-object "GstMessage")
  (c-name "gst_message_parse_tag")
  (return-type "none")
  (parameters
    '("GstTagList**" "tag_list")
  )
)

(define-method parse_tag_full
  (of-object "GstMessage")
  (c-name "gst_message_parse_tag_full")
  (return-type "none")
  (parameters
    '("GstPad**" "pad")
    '("GstTagList**" "tag_list")
  )
)

(define-function gst_message_new_buffering
  (c-name "gst_message_new_buffering")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("gint" "percent")
  )
)

(define-method parse_buffering
  (of-object "GstMessage")
  (c-name "gst_message_parse_buffering")
  (return-type "none")
  (parameters
    '("gint*" "percent")
  )
)

(define-method set_buffering_stats
  (of-object "GstMessage")
  (c-name "gst_message_set_buffering_stats")
  (return-type "none")
  (parameters
    '("GstBufferingMode" "mode")
    '("gint" "avg_in")
    '("gint" "avg_out")
    '("gint64" "buffering_left")
  )
)

(define-method parse_buffering_stats
  (of-object "GstMessage")
  (c-name "gst_message_parse_buffering_stats")
  (return-type "none")
  (parameters
    '("GstBufferingMode*" "mode")
    '("gint*" "avg_in")
    '("gint*" "avg_out")
    '("gint64*" "buffering_left")
  )
)

(define-function gst_message_new_state_changed
  (c-name "gst_message_new_state_changed")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstState" "oldstate")
    '("GstState" "newstate")
    '("GstState" "pending")
  )
)

(define-method parse_state_changed
  (of-object "GstMessage")
  (c-name "gst_message_parse_state_changed")
  (return-type "none")
  (parameters
    '("GstState*" "oldstate")
    '("GstState*" "newstate")
    '("GstState*" "pending")
  )
)

(define-function gst_message_new_state_dirty
  (c-name "gst_message_new_state_dirty")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
  )
)

(define-function gst_message_new_step_done
  (c-name "gst_message_new_step_done")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstFormat" "format")
    '("guint64" "amount")
    '("gdouble" "rate")
    '("gboolean" "flush")
    '("gboolean" "intermediate")
    '("guint64" "duration")
    '("gboolean" "eos")
  )
)

(define-method parse_step_done
  (of-object "GstMessage")
  (c-name "gst_message_parse_step_done")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("guint64*" "amount")
    '("gdouble*" "rate")
    '("gboolean*" "flush")
    '("gboolean*" "intermediate")
    '("guint64*" "duration")
    '("gboolean*" "eos")
  )
)

(define-function gst_message_new_clock_provide
  (c-name "gst_message_new_clock_provide")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstClock*" "clock")
    '("gboolean" "ready")
  )
)

(define-method parse_clock_provide
  (of-object "GstMessage")
  (c-name "gst_message_parse_clock_provide")
  (return-type "none")
  (parameters
    '("GstClock**" "clock")
    '("gboolean*" "ready")
  )
)

(define-function gst_message_new_clock_lost
  (c-name "gst_message_new_clock_lost")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstClock*" "clock")
  )
)

(define-method parse_clock_lost
  (of-object "GstMessage")
  (c-name "gst_message_parse_clock_lost")
  (return-type "none")
  (parameters
    '("GstClock**" "clock")
  )
)

(define-function gst_message_new_new_clock
  (c-name "gst_message_new_new_clock")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstClock*" "clock")
  )
)

(define-method parse_new_clock
  (of-object "GstMessage")
  (c-name "gst_message_parse_new_clock")
  (return-type "none")
  (parameters
    '("GstClock**" "clock")
  )
)

(define-function gst_message_new_application
  (c-name "gst_message_new_application")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstStructure*" "structure")
  )
)

(define-function gst_message_new_element
  (c-name "gst_message_new_element")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstStructure*" "structure")
  )
)

(define-function gst_message_new_segment_start
  (c-name "gst_message_new_segment_start")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstFormat" "format")
    '("gint64" "position")
  )
)

(define-method parse_segment_start
  (of-object "GstMessage")
  (c-name "gst_message_parse_segment_start")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "position")
  )
)

(define-function gst_message_new_segment_done
  (c-name "gst_message_new_segment_done")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstFormat" "format")
    '("gint64" "position")
  )
)

(define-method parse_segment_done
  (of-object "GstMessage")
  (c-name "gst_message_parse_segment_done")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "position")
  )
)

(define-function gst_message_new_duration
  (c-name "gst_message_new_duration")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstFormat" "format")
    '("gint64" "duration")
  )
)

(define-method parse_duration
  (of-object "GstMessage")
  (c-name "gst_message_parse_duration")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "duration")
  )
)

(define-function gst_message_new_latency
  (c-name "gst_message_new_latency")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
  )
)

(define-function gst_message_new_async_start
  (c-name "gst_message_new_async_start")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("gboolean" "new_base_time")
  )
)

(define-method parse_async_start
  (of-object "GstMessage")
  (c-name "gst_message_parse_async_start")
  (return-type "none")
  (parameters
    '("gboolean*" "new_base_time")
  )
)

(define-function gst_message_new_async_done
  (c-name "gst_message_new_async_done")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
  )
)

(define-function gst_message_new_structure_change
  (c-name "gst_message_new_structure_change")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstStructureChangeType" "type")
    '("GstElement*" "owner")
    '("gboolean" "busy")
  )
)

(define-method parse_structure_change
  (of-object "GstMessage")
  (c-name "gst_message_parse_structure_change")
  (return-type "none")
  (parameters
    '("GstStructureChangeType*" "type")
    '("GstElement**" "owner")
    '("gboolean*" "busy")
  )
)

(define-function gst_message_new_stream_status
  (c-name "gst_message_new_stream_status")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstStreamStatusType" "type")
    '("GstElement*" "owner")
  )
)

(define-method parse_stream_status
  (of-object "GstMessage")
  (c-name "gst_message_parse_stream_status")
  (return-type "none")
  (parameters
    '("GstStreamStatusType*" "type")
    '("GstElement**" "owner")
  )
)

(define-method set_stream_status_object
  (of-object "GstMessage")
  (c-name "gst_message_set_stream_status_object")
  (return-type "none")
  (parameters
    '("const-GValue*" "object")
  )
)

(define-method get_stream_status_object
  (of-object "GstMessage")
  (c-name "gst_message_get_stream_status_object")
  (return-type "const-GValue*")
)

(define-function gst_message_new_request_state
  (c-name "gst_message_new_request_state")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstState" "state")
  )
)

(define-method parse_request_state
  (of-object "GstMessage")
  (c-name "gst_message_parse_request_state")
  (return-type "none")
  (parameters
    '("GstState*" "state")
  )
)

(define-function gst_message_new_step_start
  (c-name "gst_message_new_step_start")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("gboolean" "active")
    '("GstFormat" "format")
    '("guint64" "amount")
    '("gdouble" "rate")
    '("gboolean" "flush")
    '("gboolean" "intermediate")
  )
)

(define-method parse_step_start
  (of-object "GstMessage")
  (c-name "gst_message_parse_step_start")
  (return-type "none")
  (parameters
    '("gboolean*" "active")
    '("GstFormat*" "format")
    '("guint64*" "amount")
    '("gdouble*" "rate")
    '("gboolean*" "flush")
    '("gboolean*" "intermediate")
  )
)

(define-function gst_message_new_qos
  (c-name "gst_message_new_qos")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("gboolean" "live")
    '("guint64" "running_time")
    '("guint64" "stream_time")
    '("guint64" "timestamp")
    '("guint64" "duration")
  )
)

(define-method set_qos_values
  (of-object "GstMessage")
  (c-name "gst_message_set_qos_values")
  (return-type "none")
  (parameters
    '("gint64" "jitter")
    '("gdouble" "proportion")
    '("gint" "quality")
  )
)

(define-method set_qos_stats
  (of-object "GstMessage")
  (c-name "gst_message_set_qos_stats")
  (return-type "none")
  (parameters
    '("GstFormat" "format")
    '("guint64" "processed")
    '("guint64" "dropped")
  )
)

(define-method parse_qos
  (of-object "GstMessage")
  (c-name "gst_message_parse_qos")
  (return-type "none")
  (parameters
    '("gboolean*" "live")
    '("guint64*" "running_time")
    '("guint64*" "stream_time")
    '("guint64*" "timestamp")
    '("guint64*" "duration")
  )
)

(define-method parse_qos_values
  (of-object "GstMessage")
  (c-name "gst_message_parse_qos_values")
  (return-type "none")
  (parameters
    '("gint64*" "jitter")
    '("gdouble*" "proportion")
    '("gint*" "quality")
  )
)

(define-method parse_qos_stats
  (of-object "GstMessage")
  (c-name "gst_message_parse_qos_stats")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("guint64*" "processed")
    '("guint64*" "dropped")
  )
)

(define-function gst_message_new_progress
  (c-name "gst_message_new_progress")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("GstProgressType" "type")
    '("const-gchar*" "code")
    '("const-gchar*" "text")
  )
)

(define-method parse_progress
  (of-object "GstMessage")
  (c-name "gst_message_parse_progress")
  (return-type "none")
  (parameters
    '("GstProgressType*" "type")
    '("gchar**" "code")
    '("gchar**" "text")
  )
)

(define-function gst_message_new_custom
  (c-name "gst_message_new_custom")
  (return-type "GstMessage*")
  (parameters
    '("GstMessageType" "type")
    '("GstObject*" "src")
    '("GstStructure*" "structure")
  )
)

(define-method get_structure
  (of-object "GstMessage")
  (c-name "gst_message_get_structure")
  (return-type "const-GstStructure*")
)



;; From gstminiobject.h

(define-function gst_mini_object_get_type
  (c-name "gst_mini_object_get_type")
  (return-type "GType")
)

(define-function gst_mini_object_new
  (c-name "gst_mini_object_new")
  (is-constructor-of "GstMiniObject")
  (return-type "GstMiniObject*")
  (parameters
    '("GType" "type")
  )
)

(define-method copy
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_copy")
  (return-type "GstMiniObject*")
)

(define-method is_writable
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_is_writable")
  (return-type "gboolean")
)

(define-method make_writable
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_make_writable")
  (return-type "GstMiniObject*")
)

(define-method ref
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_ref")
  (return-type "GstMiniObject*")
)

(define-method unref
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_unref")
  (return-type "none")
)

(define-method weak_ref
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_weak_ref")
  (return-type "none")
  (parameters
    '("GstMiniObjectWeakNotify" "notify")
    '("gpointer" "data")
  )
)

(define-method weak_unref
  (of-object "GstMiniObject")
  (c-name "gst_mini_object_weak_unref")
  (return-type "none")
  (parameters
    '("GstMiniObjectWeakNotify" "notify")
    '("gpointer" "data")
  )
)

(define-function gst_mini_object_replace
  (c-name "gst_mini_object_replace")
  (return-type "none")
  (parameters
    '("GstMiniObject**" "olddata")
    '("GstMiniObject*" "newdata")
  )
)

(define-function gst_param_spec_mini_object_get_type
  (c-name "gst_param_spec_mini_object_get_type")
  (return-type "GType")
)

(define-function gst_param_spec_mini_object
  (c-name "gst_param_spec_mini_object")
  (return-type "GParamSpec*")
  (parameters
    '("const-char*" "name")
    '("const-char*" "nick")
    '("const-char*" "blurb")
    '("GType" "object_type")
    '("GParamFlags" "flags")
  )
)

(define-function gst_value_set_mini_object
  (c-name "gst_value_set_mini_object")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("GstMiniObject*" "mini_object")
  )
)

(define-function gst_value_take_mini_object
  (c-name "gst_value_take_mini_object")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("GstMiniObject*" "mini_object")
  )
)

(define-function gst_value_get_mini_object
  (c-name "gst_value_get_mini_object")
  (return-type "GstMiniObject*")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_dup_mini_object
  (c-name "gst_value_dup_mini_object")
  (return-type "GstMiniObject*")
  (parameters
    '("const-GValue*" "value")
  )
)



;; From gstobject.h

(define-function gst_object_get_type
  (c-name "gst_object_get_type")
  (return-type "GType")
)

(define-method set_name
  (of-object "GstObject")
  (c-name "gst_object_set_name")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_name
  (of-object "GstObject")
  (c-name "gst_object_get_name")
  (return-type "gchar*")
)

(define-method set_name_prefix
  (of-object "GstObject")
  (c-name "gst_object_set_name_prefix")
  (return-type "none")
  (parameters
    '("const-gchar*" "name_prefix")
  )
)

(define-method get_name_prefix
  (of-object "GstObject")
  (c-name "gst_object_get_name_prefix")
  (return-type "gchar*")
)

(define-method set_parent
  (of-object "GstObject")
  (c-name "gst_object_set_parent")
  (return-type "gboolean")
  (parameters
    '("GstObject*" "parent")
  )
)

(define-method get_parent
  (of-object "GstObject")
  (c-name "gst_object_get_parent")
  (return-type "GstObject*")
)

(define-method unparent
  (of-object "GstObject")
  (c-name "gst_object_unparent")
  (return-type "none")
)

(define-method has_ancestor
  (of-object "GstObject")
  (c-name "gst_object_has_ancestor")
  (return-type "gboolean")
  (parameters
    '("GstObject*" "ancestor")
  )
)

(define-function gst_object_default_deep_notify
  (c-name "gst_object_default_deep_notify")
  (return-type "none")
  (parameters
    '("GObject*" "object")
    '("GstObject*" "orig")
    '("GParamSpec*" "pspec")
    '("gchar**" "excluded_props")
  )
)

(define-function gst_object_ref
  (c-name "gst_object_ref")
  (return-type "gpointer")
  (parameters
    '("gpointer" "object")
  )
)

(define-function gst_object_unref
  (c-name "gst_object_unref")
  (return-type "none")
  (parameters
    '("gpointer" "object")
  )
)

(define-function gst_object_ref_sink
  (c-name "gst_object_ref_sink")
  (return-type "none")
  (parameters
    '("gpointer" "object")
  )
)

(define-function gst_object_sink
  (c-name "gst_object_sink")
  (return-type "none")
  (parameters
    '("gpointer" "object")
  )
)

(define-function gst_object_replace
  (c-name "gst_object_replace")
  (return-type "none")
  (parameters
    '("GstObject**" "oldobj")
    '("GstObject*" "newobj")
  )
)

(define-method get_path_string
  (of-object "GstObject")
  (c-name "gst_object_get_path_string")
  (return-type "gchar*")
)

(define-function gst_object_check_uniqueness
  (c-name "gst_object_check_uniqueness")
  (return-type "gboolean")
  (parameters
    '("GList*" "list")
    '("const-gchar*" "name")
  )
)

(define-method save_thyself
  (of-object "GstObject")
  (c-name "gst_object_save_thyself")
  (return-type "GstXmlNodePtr")
  (parameters
    '("GstXmlNodePtr" "parent")
  )
)

(define-method restore_thyself
  (of-object "GstObject")
  (c-name "gst_object_restore_thyself")
  (return-type "none")
  (parameters
    '("GstXmlNodePtr" "self")
  )
)

(define-function gst_class_signal_connect
  (c-name "gst_class_signal_connect")
  (return-type "guint")
  (parameters
    '("GstObjectClass*" "klass")
    '("const-gchar*" "name")
    '("gpointer" "func")
    '("gpointer" "func_data")
  )
)

(define-function gst_class_signal_emit_by_name
  (c-name "gst_class_signal_emit_by_name")
  (return-type "none")
  (parameters
    '("GstObject*" "object")
    '("const-gchar*" "name")
    '("GstXmlNodePtr" "self")
  )
)



;; From gstpad.h

(define-function gst_flow_get_name
  (c-name "gst_flow_get_name")
  (return-type "const-gchar*")
  (parameters
    '("GstFlowReturn" "ret")
  )
)

(define-function gst_flow_to_quark
  (c-name "gst_flow_to_quark")
  (return-type "GQuark")
  (parameters
    '("GstFlowReturn" "ret")
  )
)

(define-function gst_pad_get_type
  (c-name "gst_pad_get_type")
  (return-type "GType")
)

(define-function gst_pad_new
  (c-name "gst_pad_new")
  (is-constructor-of "GstPad")
  (return-type "GstPad*")
  (parameters
    '("const-gchar*" "name")
    '("GstPadDirection" "direction")
  )
)

(define-function gst_pad_new_from_template
  (c-name "gst_pad_new_from_template")
  (return-type "GstPad*")
  (parameters
    '("GstPadTemplate*" "templ")
    '("const-gchar*" "name")
  )
)

(define-function gst_pad_new_from_static_template
  (c-name "gst_pad_new_from_static_template")
  (return-type "GstPad*")
  (parameters
    '("GstStaticPadTemplate*" "templ")
    '("const-gchar*" "name")
  )
)

(define-method get_direction
  (of-object "GstPad")
  (c-name "gst_pad_get_direction")
  (return-type "GstPadDirection")
)

(define-method set_active
  (of-object "GstPad")
  (c-name "gst_pad_set_active")
  (return-type "gboolean")
  (parameters
    '("gboolean" "active")
  )
)

(define-method is_active
  (of-object "GstPad")
  (c-name "gst_pad_is_active")
  (return-type "gboolean")
)

(define-method activate_pull
  (of-object "GstPad")
  (c-name "gst_pad_activate_pull")
  (return-type "gboolean")
  (parameters
    '("gboolean" "active")
  )
)

(define-method activate_push
  (of-object "GstPad")
  (c-name "gst_pad_activate_push")
  (return-type "gboolean")
  (parameters
    '("gboolean" "active")
  )
)

(define-method set_blocked
  (of-object "GstPad")
  (c-name "gst_pad_set_blocked")
  (return-type "gboolean")
  (parameters
    '("gboolean" "blocked")
  )
)

(define-method set_blocked_async
  (of-object "GstPad")
  (c-name "gst_pad_set_blocked_async")
  (return-type "gboolean")
  (parameters
    '("gboolean" "blocked")
    '("GstPadBlockCallback" "callback")
    '("gpointer" "user_data")
  )
)

(define-method set_blocked_async_full
  (of-object "GstPad")
  (c-name "gst_pad_set_blocked_async_full")
  (return-type "gboolean")
  (parameters
    '("gboolean" "blocked")
    '("GstPadBlockCallback" "callback")
    '("gpointer" "user_data")
    '("GDestroyNotify" "destroy_data")
  )
)

(define-method is_blocked
  (of-object "GstPad")
  (c-name "gst_pad_is_blocked")
  (return-type "gboolean")
)

(define-method is_blocking
  (of-object "GstPad")
  (c-name "gst_pad_is_blocking")
  (return-type "gboolean")
)

(define-method set_element_private
  (of-object "GstPad")
  (c-name "gst_pad_set_element_private")
  (return-type "none")
  (parameters
    '("gpointer" "priv")
  )
)

(define-method get_element_private
  (of-object "GstPad")
  (c-name "gst_pad_get_element_private")
  (return-type "gpointer")
)

(define-method get_pad_template
  (of-object "GstPad")
  (c-name "gst_pad_get_pad_template")
  (return-type "GstPadTemplate*")
)

(define-method set_bufferalloc_function
  (of-object "GstPad")
  (c-name "gst_pad_set_bufferalloc_function")
  (return-type "none")
  (parameters
    '("GstPadBufferAllocFunction" "bufalloc")
  )
)

(define-method alloc_buffer
  (of-object "GstPad")
  (c-name "gst_pad_alloc_buffer")
  (return-type "GstFlowReturn")
  (parameters
    '("guint64" "offset")
    '("gint" "size")
    '("GstCaps*" "caps")
    '("GstBuffer**" "buf")
  )
)

(define-method alloc_buffer_and_set_caps
  (of-object "GstPad")
  (c-name "gst_pad_alloc_buffer_and_set_caps")
  (return-type "GstFlowReturn")
  (parameters
    '("guint64" "offset")
    '("gint" "size")
    '("GstCaps*" "caps")
    '("GstBuffer**" "buf")
  )
)

(define-method set_activate_function
  (of-object "GstPad")
  (c-name "gst_pad_set_activate_function")
  (return-type "none")
  (parameters
    '("GstPadActivateFunction" "activate")
  )
)

(define-method set_activatepull_function
  (of-object "GstPad")
  (c-name "gst_pad_set_activatepull_function")
  (return-type "none")
  (parameters
    '("GstPadActivateModeFunction" "activatepull")
  )
)

(define-method set_activatepush_function
  (of-object "GstPad")
  (c-name "gst_pad_set_activatepush_function")
  (return-type "none")
  (parameters
    '("GstPadActivateModeFunction" "activatepush")
  )
)

(define-method set_chain_function
  (of-object "GstPad")
  (c-name "gst_pad_set_chain_function")
  (return-type "none")
  (parameters
    '("GstPadChainFunction" "chain")
  )
)

(define-method set_chain_list_function
  (of-object "GstPad")
  (c-name "gst_pad_set_chain_list_function")
  (return-type "none")
  (parameters
    '("GstPadChainListFunction" "chainlist")
  )
)

(define-method set_getrange_function
  (of-object "GstPad")
  (c-name "gst_pad_set_getrange_function")
  (return-type "none")
  (parameters
    '("GstPadGetRangeFunction" "get")
  )
)

(define-method set_checkgetrange_function
  (of-object "GstPad")
  (c-name "gst_pad_set_checkgetrange_function")
  (return-type "none")
  (parameters
    '("GstPadCheckGetRangeFunction" "check")
  )
)

(define-method set_event_function
  (of-object "GstPad")
  (c-name "gst_pad_set_event_function")
  (return-type "none")
  (parameters
    '("GstPadEventFunction" "event")
  )
)

(define-method set_link_function
  (of-object "GstPad")
  (c-name "gst_pad_set_link_function")
  (return-type "none")
  (parameters
    '("GstPadLinkFunction" "link")
  )
)

(define-method set_unlink_function
  (of-object "GstPad")
  (c-name "gst_pad_set_unlink_function")
  (return-type "none")
  (parameters
    '("GstPadUnlinkFunction" "unlink")
  )
)

(define-method can_link
  (of-object "GstPad")
  (c-name "gst_pad_can_link")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "sinkpad")
  )
)

(define-method link
  (of-object "GstPad")
  (c-name "gst_pad_link")
  (return-type "GstPadLinkReturn")
  (parameters
    '("GstPad*" "sinkpad")
  )
)

(define-method link_full
  (of-object "GstPad")
  (c-name "gst_pad_link_full")
  (return-type "GstPadLinkReturn")
  (parameters
    '("GstPad*" "sinkpad")
    '("GstPadLinkCheck" "flags")
  )
)

(define-method unlink
  (of-object "GstPad")
  (c-name "gst_pad_unlink")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "sinkpad")
  )
)

(define-method is_linked
  (of-object "GstPad")
  (c-name "gst_pad_is_linked")
  (return-type "gboolean")
)

(define-method get_peer
  (of-object "GstPad")
  (c-name "gst_pad_get_peer")
  (return-type "GstPad*")
)

(define-method set_getcaps_function
  (of-object "GstPad")
  (c-name "gst_pad_set_getcaps_function")
  (return-type "none")
  (parameters
    '("GstPadGetCapsFunction" "getcaps")
  )
)

(define-method set_acceptcaps_function
  (of-object "GstPad")
  (c-name "gst_pad_set_acceptcaps_function")
  (return-type "none")
  (parameters
    '("GstPadAcceptCapsFunction" "acceptcaps")
  )
)

(define-method set_fixatecaps_function
  (of-object "GstPad")
  (c-name "gst_pad_set_fixatecaps_function")
  (return-type "none")
  (parameters
    '("GstPadFixateCapsFunction" "fixatecaps")
  )
)

(define-method set_setcaps_function
  (of-object "GstPad")
  (c-name "gst_pad_set_setcaps_function")
  (return-type "none")
  (parameters
    '("GstPadSetCapsFunction" "setcaps")
  )
)

(define-method get_pad_template_caps
  (of-object "GstPad")
  (c-name "gst_pad_get_pad_template_caps")
  (return-type "const-GstCaps*")
)

(define-method get_caps_reffed
  (of-object "GstPad")
  (c-name "gst_pad_get_caps_reffed")
  (return-type "GstCaps*")
)

(define-method get_caps
  (of-object "GstPad")
  (c-name "gst_pad_get_caps")
  (return-type "GstCaps*")
)

(define-method fixate_caps
  (of-object "GstPad")
  (c-name "gst_pad_fixate_caps")
  (return-type "none")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method accept_caps
  (of-object "GstPad")
  (c-name "gst_pad_accept_caps")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method set_caps
  (of-object "GstPad")
  (c-name "gst_pad_set_caps")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method peer_get_caps_reffed
  (of-object "GstPad")
  (c-name "gst_pad_peer_get_caps_reffed")
  (return-type "GstCaps*")
)

(define-method peer_get_caps
  (of-object "GstPad")
  (c-name "gst_pad_peer_get_caps")
  (return-type "GstCaps*")
)

(define-method peer_accept_caps
  (of-object "GstPad")
  (c-name "gst_pad_peer_accept_caps")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method get_allowed_caps
  (of-object "GstPad")
  (c-name "gst_pad_get_allowed_caps")
  (return-type "GstCaps*")
)

(define-method get_negotiated_caps
  (of-object "GstPad")
  (c-name "gst_pad_get_negotiated_caps")
  (return-type "GstCaps*")
)

(define-method push
  (of-object "GstPad")
  (c-name "gst_pad_push")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-method push_list
  (of-object "GstPad")
  (c-name "gst_pad_push_list")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBufferList*" "list")
  )
)

(define-method check_pull_range
  (of-object "GstPad")
  (c-name "gst_pad_check_pull_range")
  (return-type "gboolean")
)

(define-method pull_range
  (of-object "GstPad")
  (c-name "gst_pad_pull_range")
  (return-type "GstFlowReturn")
  (parameters
    '("guint64" "offset")
    '("guint" "size")
    '("GstBuffer**" "buffer")
  )
)

(define-method push_event
  (of-object "GstPad")
  (c-name "gst_pad_push_event")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
  )
)

(define-method event_default
  (of-object "GstPad")
  (c-name "gst_pad_event_default")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
  )
)

(define-method chain
  (of-object "GstPad")
  (c-name "gst_pad_chain")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-method chain_list
  (of-object "GstPad")
  (c-name "gst_pad_chain_list")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBufferList*" "list")
  )
)

(define-method get_range
  (of-object "GstPad")
  (c-name "gst_pad_get_range")
  (return-type "GstFlowReturn")
  (parameters
    '("guint64" "offset")
    '("guint" "size")
    '("GstBuffer**" "buffer")
  )
)

(define-method send_event
  (of-object "GstPad")
  (c-name "gst_pad_send_event")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
  )
)

(define-method start_task
  (of-object "GstPad")
  (c-name "gst_pad_start_task")
  (return-type "gboolean")
  (parameters
    '("GstTaskFunction" "func")
    '("gpointer" "data")
  )
)

(define-method pause_task
  (of-object "GstPad")
  (c-name "gst_pad_pause_task")
  (return-type "gboolean")
)

(define-method stop_task
  (of-object "GstPad")
  (c-name "gst_pad_stop_task")
  (return-type "gboolean")
)

(define-method set_internal_link_function
  (of-object "GstPad")
  (c-name "gst_pad_set_internal_link_function")
  (return-type "none")
  (parameters
    '("GstPadIntLinkFunction" "intlink")
  )
)

(define-method get_internal_links
  (of-object "GstPad")
  (c-name "gst_pad_get_internal_links")
  (return-type "GList*")
)

(define-method get_internal_links_default
  (of-object "GstPad")
  (c-name "gst_pad_get_internal_links_default")
  (return-type "GList*")
)

(define-method set_iterate_internal_links_function
  (of-object "GstPad")
  (c-name "gst_pad_set_iterate_internal_links_function")
  (return-type "none")
  (parameters
    '("GstPadIterIntLinkFunction" "iterintlink")
  )
)

(define-method iterate_internal_links
  (of-object "GstPad")
  (c-name "gst_pad_iterate_internal_links")
  (return-type "GstIterator*")
)

(define-method iterate_internal_links_default
  (of-object "GstPad")
  (c-name "gst_pad_iterate_internal_links_default")
  (return-type "GstIterator*")
)

(define-method set_query_type_function
  (of-object "GstPad")
  (c-name "gst_pad_set_query_type_function")
  (return-type "none")
  (parameters
    '("GstPadQueryTypeFunction" "type_func")
  )
)

(define-method get_query_types
  (of-object "GstPad")
  (c-name "gst_pad_get_query_types")
  (return-type "const-GstQueryType*")
)

(define-method get_query_types_default
  (of-object "GstPad")
  (c-name "gst_pad_get_query_types_default")
  (return-type "const-GstQueryType*")
)

(define-method query
  (of-object "GstPad")
  (c-name "gst_pad_query")
  (return-type "gboolean")
  (parameters
    '("GstQuery*" "query")
  )
)

(define-method peer_query
  (of-object "GstPad")
  (c-name "gst_pad_peer_query")
  (return-type "gboolean")
  (parameters
    '("GstQuery*" "query")
  )
)

(define-method set_query_function
  (of-object "GstPad")
  (c-name "gst_pad_set_query_function")
  (return-type "none")
  (parameters
    '("GstPadQueryFunction" "query")
  )
)

(define-method query_default
  (of-object "GstPad")
  (c-name "gst_pad_query_default")
  (return-type "gboolean")
  (parameters
    '("GstQuery*" "query")
  )
)

(define-method dispatcher
  (of-object "GstPad")
  (c-name "gst_pad_dispatcher")
  (return-type "gboolean")
  (parameters
    '("GstPadDispatcherFunction" "dispatch")
    '("gpointer" "data")
  )
)

(define-function gst_pad_load_and_link
  (c-name "gst_pad_load_and_link")
  (return-type "none")
  (parameters
    '("xmlNodePtr" "self")
    '("GstObject*" "parent")
  )
)



;; From gstpadtemplate.h

(define-function gst_pad_template_get_type
  (c-name "gst_pad_template_get_type")
  (return-type "GType")
)

(define-function gst_static_pad_template_get_type
  (c-name "gst_static_pad_template_get_type")
  (return-type "GType")
)

(define-function gst_pad_template_new
  (c-name "gst_pad_template_new")
  (is-constructor-of "GstPadTemplate")
  (return-type "GstPadTemplate*")
  (parameters
    '("const-gchar*" "name_template")
    '("GstPadDirection" "direction")
    '("GstPadPresence" "presence")
    '("GstCaps*" "caps")
  )
)

(define-method get
  (of-object "GstStaticPadTemplate")
  (c-name "gst_static_pad_template_get")
  (return-type "GstPadTemplate*")
)

(define-method get_caps
  (of-object "GstStaticPadTemplate")
  (c-name "gst_static_pad_template_get_caps")
  (return-type "GstCaps*")
)

(define-method get_caps
  (of-object "GstPadTemplate")
  (c-name "gst_pad_template_get_caps")
  (return-type "GstCaps*")
)

(define-method pad_created
  (of-object "GstPadTemplate")
  (c-name "gst_pad_template_pad_created")
  (return-type "none")
  (parameters
    '("GstPad*" "pad")
  )
)



;; From gstparamspecs.h

(define-function gst_param_spec_fraction_get_type
  (c-name "gst_param_spec_fraction_get_type")
  (return-type "GType")
)

(define-function gst_param_spec_fraction
  (c-name "gst_param_spec_fraction")
  (return-type "GParamSpec*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "nick")
    '("const-gchar*" "blurb")
    '("gint" "min_num")
    '("gint" "min_denom")
    '("gint" "max_num")
    '("gint" "max_denom")
    '("gint" "default_num")
    '("gint" "default_denom")
    '("GParamFlags" "flags")
  )
)



;; From gstparse.h

(define-function gst_parse_error_quark
  (c-name "gst_parse_error_quark")
  (return-type "GQuark")
)

(define-function gst_parse_context_get_type
  (c-name "gst_parse_context_get_type")
  (return-type "GType")
)

(define-function gst_parse_context_new
  (c-name "gst_parse_context_new")
  (is-constructor-of "GstParseContext")
  (return-type "GstParseContext*")
)

(define-method get_missing_elements
  (of-object "GstParseContext")
  (c-name "gst_parse_context_get_missing_elements")
  (return-type "gchar**")
)

(define-method free
  (of-object "GstParseContext")
  (c-name "gst_parse_context_free")
  (return-type "none")
)

(define-function gst_parse_launch
  (c-name "gst_parse_launch")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "pipeline_description")
    '("GError**" "error")
  )
)

(define-function gst_parse_launchv
  (c-name "gst_parse_launchv")
  (return-type "GstElement*")
  (parameters
    '("const-gchar**" "argv")
    '("GError**" "error")
  )
)

(define-function gst_parse_launch_full
  (c-name "gst_parse_launch_full")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "pipeline_description")
    '("GstParseContext*" "context")
    '("GstParseFlags" "flags")
    '("GError**" "error")
  )
)

(define-function gst_parse_launchv_full
  (c-name "gst_parse_launchv_full")
  (return-type "GstElement*")
  (parameters
    '("const-gchar**" "argv")
    '("GstParseContext*" "context")
    '("GstParseFlags" "flags")
    '("GError**" "error")
  )
)



;; From gstpipeline.h

(define-function gst_pipeline_get_type
  (c-name "gst_pipeline_get_type")
  (return-type "GType")
)

(define-function gst_pipeline_new
  (c-name "gst_pipeline_new")
  (is-constructor-of "GstPipeline")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_bus
  (of-object "GstPipeline")
  (c-name "gst_pipeline_get_bus")
  (return-type "GstBus*")
)

(define-method set_new_stream_time
  (of-object "GstPipeline")
  (c-name "gst_pipeline_set_new_stream_time")
  (return-type "none")
  (parameters
    '("GstClockTime" "time")
  )
)

(define-method get_last_stream_time
  (of-object "GstPipeline")
  (c-name "gst_pipeline_get_last_stream_time")
  (return-type "GstClockTime")
)

(define-method use_clock
  (of-object "GstPipeline")
  (c-name "gst_pipeline_use_clock")
  (return-type "none")
  (parameters
    '("GstClock*" "clock")
  )
)

(define-method set_clock
  (of-object "GstPipeline")
  (c-name "gst_pipeline_set_clock")
  (return-type "gboolean")
  (parameters
    '("GstClock*" "clock")
  )
)

(define-method get_clock
  (of-object "GstPipeline")
  (c-name "gst_pipeline_get_clock")
  (return-type "GstClock*")
)

(define-method auto_clock
  (of-object "GstPipeline")
  (c-name "gst_pipeline_auto_clock")
  (return-type "none")
)

(define-method set_delay
  (of-object "GstPipeline")
  (c-name "gst_pipeline_set_delay")
  (return-type "none")
  (parameters
    '("GstClockTime" "delay")
  )
)

(define-method get_delay
  (of-object "GstPipeline")
  (c-name "gst_pipeline_get_delay")
  (return-type "GstClockTime")
)

(define-method set_auto_flush_bus
  (of-object "GstPipeline")
  (c-name "gst_pipeline_set_auto_flush_bus")
  (return-type "none")
  (parameters
    '("gboolean" "auto_flush")
  )
)

(define-method get_auto_flush_bus
  (of-object "GstPipeline")
  (c-name "gst_pipeline_get_auto_flush_bus")
  (return-type "gboolean")
)



;; From gstpluginfeature.h

(define-function gst_plugin_feature_get_type
  (c-name "gst_plugin_feature_get_type")
  (return-type "GType")
)

(define-method load
  (of-object "GstPluginFeature")
  (c-name "gst_plugin_feature_load")
  (return-type "GstPluginFeature*")
)

(define-method type_name_filter
  (of-object "GstPluginFeature")
  (c-name "gst_plugin_feature_type_name_filter")
  (return-type "gboolean")
  (parameters
    '("GstTypeNameData*" "data")
  )
)

(define-method set_rank
  (of-object "GstPluginFeature")
  (c-name "gst_plugin_feature_set_rank")
  (return-type "none")
  (parameters
    '("guint" "rank")
  )
)

(define-method set_name
  (of-object "GstPluginFeature")
  (c-name "gst_plugin_feature_set_name")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_rank
  (of-object "GstPluginFeature")
  (c-name "gst_plugin_feature_get_rank")
  (return-type "guint")
)

(define-method get_name
  (of-object "GstPluginFeature")
  (c-name "gst_plugin_feature_get_name")
  (return-type "const-gchar*")
)

(define-function gst_plugin_feature_list_free
  (c-name "gst_plugin_feature_list_free")
  (return-type "none")
  (parameters
    '("GList*" "list")
  )
)

(define-function gst_plugin_feature_list_copy
  (c-name "gst_plugin_feature_list_copy")
  (return-type "GList*")
  (parameters
    '("GList*" "list")
  )
)

(define-function gst_plugin_feature_list_debug
  (c-name "gst_plugin_feature_list_debug")
  (return-type "none")
  (parameters
    '("GList*" "list")
  )
)

(define-method check_version
  (of-object "GstPluginFeature")
  (c-name "gst_plugin_feature_check_version")
  (return-type "gboolean")
  (parameters
    '("guint" "min_major")
    '("guint" "min_minor")
    '("guint" "min_micro")
  )
)

(define-function gst_plugin_feature_rank_compare_func
  (c-name "gst_plugin_feature_rank_compare_func")
  (return-type "gint")
  (parameters
    '("gconstpointer" "p1")
    '("gconstpointer" "p2")
  )
)



;; From gstplugin.h

(define-function gst_plugin_error_quark
  (c-name "gst_plugin_error_quark")
  (return-type "GQuark")
)

(define-function gst_plugin_get_type
  (c-name "gst_plugin_get_type")
  (return-type "GType")
)

(define-function gst_plugin_register_static
  (c-name "gst_plugin_register_static")
  (return-type "gboolean")
  (parameters
    '("gint" "major_version")
    '("gint" "minor_version")
    '("const-gchar*" "name")
    '("const-gchar*" "description")
    '("GstPluginInitFunc" "init_func")
    '("const-gchar*" "version")
    '("const-gchar*" "license")
    '("const-gchar*" "source")
    '("const-gchar*" "package")
    '("const-gchar*" "origin")
  )
)

(define-function gst_plugin_register_static_full
  (c-name "gst_plugin_register_static_full")
  (return-type "gboolean")
  (parameters
    '("gint" "major_version")
    '("gint" "minor_version")
    '("const-gchar*" "name")
    '("const-gchar*" "description")
    '("GstPluginInitFullFunc" "init_full_func")
    '("const-gchar*" "version")
    '("const-gchar*" "license")
    '("const-gchar*" "source")
    '("const-gchar*" "package")
    '("const-gchar*" "origin")
    '("gpointer" "user_data")
  )
)

(define-method get_name
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_name")
  (return-type "const-gchar*")
)

(define-method get_description
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_description")
  (return-type "const-gchar*")
)

(define-method get_filename
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_filename")
  (return-type "const-gchar*")
)

(define-method get_version
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_version")
  (return-type "const-gchar*")
)

(define-method get_license
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_license")
  (return-type "const-gchar*")
)

(define-method get_source
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_source")
  (return-type "const-gchar*")
)

(define-method get_package
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_package")
  (return-type "const-gchar*")
)

(define-method get_origin
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_origin")
  (return-type "const-gchar*")
)

(define-method get_cache_data
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_cache_data")
  (return-type "const-GstStructure*")
)

(define-method set_cache_data
  (of-object "GstPlugin")
  (c-name "gst_plugin_set_cache_data")
  (return-type "none")
  (parameters
    '("GstStructure*" "cache_data")
  )
)

(define-method get_module
  (of-object "GstPlugin")
  (c-name "gst_plugin_get_module")
  (return-type "GModule*")
)

(define-method is_loaded
  (of-object "GstPlugin")
  (c-name "gst_plugin_is_loaded")
  (return-type "gboolean")
)

(define-method name_filter
  (of-object "GstPlugin")
  (c-name "gst_plugin_name_filter")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-function gst_plugin_load_file
  (c-name "gst_plugin_load_file")
  (return-type "GstPlugin*")
  (parameters
    '("const-gchar*" "filename")
    '("GError**" "error")
  )
)

(define-method load
  (of-object "GstPlugin")
  (c-name "gst_plugin_load")
  (return-type "GstPlugin*")
)

(define-function gst_plugin_load_by_name
  (c-name "gst_plugin_load_by_name")
  (return-type "GstPlugin*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method add_dependency
  (of-object "GstPlugin")
  (c-name "gst_plugin_add_dependency")
  (return-type "none")
  (parameters
    '("const-gchar**" "env_vars")
    '("const-gchar**" "paths")
    '("const-gchar**" "names")
    '("GstPluginDependencyFlags" "flags")
  )
)

(define-method add_dependency_simple
  (of-object "GstPlugin")
  (c-name "gst_plugin_add_dependency_simple")
  (return-type "none")
  (parameters
    '("const-gchar*" "env_vars")
    '("const-gchar*" "paths")
    '("const-gchar*" "names")
    '("GstPluginDependencyFlags" "flags")
  )
)

(define-function gst_plugin_list_free
  (c-name "gst_plugin_list_free")
  (return-type "none")
  (parameters
    '("GList*" "list")
  )
)



;; From gstpluginloader.h



;; From gstpoll.h

(define-function gst_poll_new
  (c-name "gst_poll_new")
  (is-constructor-of "GstPoll")
  (return-type "GstPoll*")
  (parameters
    '("gboolean" "controllable")
  )
)

(define-function gst_poll_new_timer
  (c-name "gst_poll_new_timer")
  (return-type "GstPoll*")
)

(define-method free
  (of-object "GstPoll")
  (c-name "gst_poll_free")
  (return-type "none")
)

(define-method get_read_gpollfd
  (of-object "GstPoll")
  (c-name "gst_poll_get_read_gpollfd")
  (return-type "none")
  (parameters
    '("GPollFD*" "fd")
  )
)

(define-method init
  (of-object "GstPollFD")
  (c-name "gst_poll_fd_init")
  (return-type "none")
)

(define-method add_fd
  (of-object "GstPoll")
  (c-name "gst_poll_add_fd")
  (return-type "gboolean")
  (parameters
    '("GstPollFD*" "fd")
  )
)

(define-method remove_fd
  (of-object "GstPoll")
  (c-name "gst_poll_remove_fd")
  (return-type "gboolean")
  (parameters
    '("GstPollFD*" "fd")
  )
)

(define-method fd_ctl_write
  (of-object "GstPoll")
  (c-name "gst_poll_fd_ctl_write")
  (return-type "gboolean")
  (parameters
    '("GstPollFD*" "fd")
    '("gboolean" "active")
  )
)

(define-method fd_ctl_read
  (of-object "GstPoll")
  (c-name "gst_poll_fd_ctl_read")
  (return-type "gboolean")
  (parameters
    '("GstPollFD*" "fd")
    '("gboolean" "active")
  )
)

(define-method fd_ignored
  (of-object "GstPoll")
  (c-name "gst_poll_fd_ignored")
  (return-type "none")
  (parameters
    '("GstPollFD*" "fd")
  )
)

(define-method fd_has_closed
  (of-object "GstPoll")
  (c-name "gst_poll_fd_has_closed")
  (return-type "gboolean")
  (parameters
    '("GstPollFD*" "fd")
  )
)

(define-method fd_has_error
  (of-object "GstPoll")
  (c-name "gst_poll_fd_has_error")
  (return-type "gboolean")
  (parameters
    '("GstPollFD*" "fd")
  )
)

(define-method fd_can_read
  (of-object "GstPoll")
  (c-name "gst_poll_fd_can_read")
  (return-type "gboolean")
  (parameters
    '("GstPollFD*" "fd")
  )
)

(define-method fd_can_write
  (of-object "GstPoll")
  (c-name "gst_poll_fd_can_write")
  (return-type "gboolean")
  (parameters
    '("GstPollFD*" "fd")
  )
)

(define-method wait
  (of-object "GstPoll")
  (c-name "gst_poll_wait")
  (return-type "gint")
  (parameters
    '("GstClockTime" "timeout")
  )
)

(define-method set_controllable
  (of-object "GstPoll")
  (c-name "gst_poll_set_controllable")
  (return-type "gboolean")
  (parameters
    '("gboolean" "controllable")
  )
)

(define-method restart
  (of-object "GstPoll")
  (c-name "gst_poll_restart")
  (return-type "none")
)

(define-method set_flushing
  (of-object "GstPoll")
  (c-name "gst_poll_set_flushing")
  (return-type "none")
  (parameters
    '("gboolean" "flushing")
  )
)

(define-method write_control
  (of-object "GstPoll")
  (c-name "gst_poll_write_control")
  (return-type "gboolean")
)

(define-method read_control
  (of-object "GstPoll")
  (c-name "gst_poll_read_control")
  (return-type "gboolean")
)



;; From gstpreset.h

(define-function gst_preset_get_type
  (c-name "gst_preset_get_type")
  (return-type "GType")
)

(define-method get_preset_names
  (of-object "GstPreset")
  (c-name "gst_preset_get_preset_names")
  (return-type "gchar**")
)

(define-method get_property_names
  (of-object "GstPreset")
  (c-name "gst_preset_get_property_names")
  (return-type "gchar**")
)

(define-method load_preset
  (of-object "GstPreset")
  (c-name "gst_preset_load_preset")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method save_preset
  (of-object "GstPreset")
  (c-name "gst_preset_save_preset")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method rename_preset
  (of-object "GstPreset")
  (c-name "gst_preset_rename_preset")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "old_name")
    '("const-gchar*" "new_name")
  )
)

(define-method delete_preset
  (of-object "GstPreset")
  (c-name "gst_preset_delete_preset")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method set_meta
  (of-object "GstPreset")
  (c-name "gst_preset_set_meta")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "tag")
    '("const-gchar*" "value")
  )
)

(define-method get_meta
  (of-object "GstPreset")
  (c-name "gst_preset_get_meta")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "tag")
    '("gchar**" "value")
  )
)



;; From gst_private.h

(define-function priv_gst_plugin_loading_have_whitelist
  (c-name "priv_gst_plugin_loading_have_whitelist")
  (return-type "gboolean")
)

(define-function priv_gst_plugin_loading_get_whitelist_hash
  (c-name "priv_gst_plugin_loading_get_whitelist_hash")
  (return-type "guint32")
)

(define-function priv_gst_plugin_desc_is_whitelisted
  (c-name "priv_gst_plugin_desc_is_whitelisted")
  (return-type "gboolean")
  (parameters
    '("GstPluginDesc*" "desc")
    '("const-gchar*" "filename")
  )
)

(define-function priv_gst_structure_append_to_gstring
  (c-name "priv_gst_structure_append_to_gstring")
  (return-type "gboolean")
  (parameters
    '("const-GstStructure*" "structure")
    '("GString*" "s")
  )
)

(define-method binary_read_cache
  (of-object "GstRegistry")
  (c-name "gst_registry_binary_read_cache")
  (return-type "gboolean")
  (parameters
    '("const-char*" "location")
  )
)

(define-method binary_write_cache
  (of-object "GstRegistry")
  (c-name "gst_registry_binary_write_cache")
  (return-type "gboolean")
  (parameters
    '("const-char*" "location")
  )
)

(define-function priv_gst_date_time_compare
  (c-name "priv_gst_date_time_compare")
  (return-type "gint")
  (parameters
    '("gconstpointer" "dt1")
    '("gconstpointer" "dt2")
  )
)



;; From gstquark.h



;; From gstquery.h

(define-method get_name
  (of-object "GstQueryType")
  (c-name "gst_query_type_get_name")
  (return-type "const-gchar*")
)

(define-method to_quark
  (of-object "GstQueryType")
  (c-name "gst_query_type_to_quark")
  (return-type "GQuark")
)

(define-function gst_query_get_type
  (c-name "gst_query_get_type")
  (return-type "GType")
)

(define-function gst_query_type_register
  (c-name "gst_query_type_register")
  (return-type "GstQueryType")
  (parameters
    '("const-gchar*" "nick")
    '("const-gchar*" "description")
  )
)

(define-function gst_query_type_get_by_nick
  (c-name "gst_query_type_get_by_nick")
  (return-type "GstQueryType")
  (parameters
    '("const-gchar*" "nick")
  )
)

(define-method s_contains
  (of-object "GstQueryType")
  (c-name "gst_query_types_contains")
  (return-type "gboolean")
  (parameters
    '("GstQueryType" "type")
  )
)

(define-method get_details
  (of-object "GstQueryType")
  (c-name "gst_query_type_get_details")
  (return-type "const-GstQueryTypeDefinition*")
)

(define-function gst_query_type_iterate_definitions
  (c-name "gst_query_type_iterate_definitions")
  (return-type "GstIterator*")
)

(define-method set_position
  (of-object "GstQuery")
  (c-name "gst_query_set_position")
  (return-type "none")
  (parameters
    '("GstFormat" "format")
    '("gint64" "cur")
  )
)

(define-method parse_position
  (of-object "GstQuery")
  (c-name "gst_query_parse_position")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "cur")
  )
)

(define-function gst_query_new_duration
  (c-name "gst_query_new_duration")
  (return-type "GstQuery*")
  (parameters
    '("GstFormat" "format")
  )
)

(define-method set_duration
  (of-object "GstQuery")
  (c-name "gst_query_set_duration")
  (return-type "none")
  (parameters
    '("GstFormat" "format")
    '("gint64" "duration")
  )
)

(define-method parse_duration
  (of-object "GstQuery")
  (c-name "gst_query_parse_duration")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "duration")
  )
)

(define-function gst_query_new_latency
  (c-name "gst_query_new_latency")
  (return-type "GstQuery*")
)

(define-method set_latency
  (of-object "GstQuery")
  (c-name "gst_query_set_latency")
  (return-type "none")
  (parameters
    '("gboolean" "live")
    '("GstClockTime" "min_latency")
    '("GstClockTime" "max_latency")
  )
)

(define-method parse_latency
  (of-object "GstQuery")
  (c-name "gst_query_parse_latency")
  (return-type "none")
  (parameters
    '("gboolean*" "live")
    '("GstClockTime*" "min_latency")
    '("GstClockTime*" "max_latency")
  )
)

(define-function gst_query_new_convert
  (c-name "gst_query_new_convert")
  (return-type "GstQuery*")
  (parameters
    '("GstFormat" "src_format")
    '("gint64" "value")
    '("GstFormat" "dest_format")
  )
)

(define-method set_convert
  (of-object "GstQuery")
  (c-name "gst_query_set_convert")
  (return-type "none")
  (parameters
    '("GstFormat" "src_format")
    '("gint64" "src_value")
    '("GstFormat" "dest_format")
    '("gint64" "dest_value")
  )
)

(define-method parse_convert
  (of-object "GstQuery")
  (c-name "gst_query_parse_convert")
  (return-type "none")
  (parameters
    '("GstFormat*" "src_format")
    '("gint64*" "src_value")
    '("GstFormat*" "dest_format")
    '("gint64*" "dest_value")
  )
)

(define-function gst_query_new_segment
  (c-name "gst_query_new_segment")
  (return-type "GstQuery*")
  (parameters
    '("GstFormat" "format")
  )
)

(define-method set_segment
  (of-object "GstQuery")
  (c-name "gst_query_set_segment")
  (return-type "none")
  (parameters
    '("gdouble" "rate")
    '("GstFormat" "format")
    '("gint64" "start_value")
    '("gint64" "stop_value")
  )
)

(define-method parse_segment
  (of-object "GstQuery")
  (c-name "gst_query_parse_segment")
  (return-type "none")
  (parameters
    '("gdouble*" "rate")
    '("GstFormat*" "format")
    '("gint64*" "start_value")
    '("gint64*" "stop_value")
  )
)

(define-function gst_query_new_application
  (c-name "gst_query_new_application")
  (return-type "GstQuery*")
  (parameters
    '("GstQueryType" "type")
    '("GstStructure*" "structure")
  )
)

(define-method get_structure
  (of-object "GstQuery")
  (c-name "gst_query_get_structure")
  (return-type "GstStructure*")
)

(define-function gst_query_new_seeking
  (c-name "gst_query_new_seeking")
  (return-type "GstQuery*")
  (parameters
    '("GstFormat" "format")
  )
)

(define-method set_seeking
  (of-object "GstQuery")
  (c-name "gst_query_set_seeking")
  (return-type "none")
  (parameters
    '("GstFormat" "format")
    '("gboolean" "seekable")
    '("gint64" "segment_start")
    '("gint64" "segment_end")
  )
)

(define-method parse_seeking
  (of-object "GstQuery")
  (c-name "gst_query_parse_seeking")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("gboolean*" "seekable")
    '("gint64*" "segment_start")
    '("gint64*" "segment_end")
  )
)

(define-function gst_query_new_formats
  (c-name "gst_query_new_formats")
  (return-type "GstQuery*")
)

(define-method set_formats
  (of-object "GstQuery")
  (c-name "gst_query_set_formats")
  (return-type "none")
  (parameters
    '("gint" "n_formats")
  )
  (varargs #t)
)

(define-method set_formatsv
  (of-object "GstQuery")
  (c-name "gst_query_set_formatsv")
  (return-type "none")
  (parameters
    '("gint" "n_formats")
    '("const-GstFormat*" "formats")
  )
)

(define-method parse_formats_length
  (of-object "GstQuery")
  (c-name "gst_query_parse_formats_length")
  (return-type "none")
  (parameters
    '("guint*" "n_formats")
  )
)

(define-method parse_formats_nth
  (of-object "GstQuery")
  (c-name "gst_query_parse_formats_nth")
  (return-type "none")
  (parameters
    '("guint" "nth")
    '("GstFormat*" "format")
  )
)

(define-function gst_query_new_buffering
  (c-name "gst_query_new_buffering")
  (return-type "GstQuery*")
  (parameters
    '("GstFormat" "format")
  )
)

(define-method set_buffering_percent
  (of-object "GstQuery")
  (c-name "gst_query_set_buffering_percent")
  (return-type "none")
  (parameters
    '("gboolean" "busy")
    '("gint" "percent")
  )
)

(define-method parse_buffering_percent
  (of-object "GstQuery")
  (c-name "gst_query_parse_buffering_percent")
  (return-type "none")
  (parameters
    '("gboolean*" "busy")
    '("gint*" "percent")
  )
)

(define-method set_buffering_stats
  (of-object "GstQuery")
  (c-name "gst_query_set_buffering_stats")
  (return-type "none")
  (parameters
    '("GstBufferingMode" "mode")
    '("gint" "avg_in")
    '("gint" "avg_out")
    '("gint64" "buffering_left")
  )
)

(define-method parse_buffering_stats
  (of-object "GstQuery")
  (c-name "gst_query_parse_buffering_stats")
  (return-type "none")
  (parameters
    '("GstBufferingMode*" "mode")
    '("gint*" "avg_in")
    '("gint*" "avg_out")
    '("gint64*" "buffering_left")
  )
)

(define-method set_buffering_range
  (of-object "GstQuery")
  (c-name "gst_query_set_buffering_range")
  (return-type "none")
  (parameters
    '("GstFormat" "format")
    '("gint64" "start")
    '("gint64" "stop")
    '("gint64" "estimated_total")
  )
)

(define-method parse_buffering_range
  (of-object "GstQuery")
  (c-name "gst_query_parse_buffering_range")
  (return-type "none")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "start")
    '("gint64*" "stop")
    '("gint64*" "estimated_total")
  )
)

(define-method add_buffering_range
  (of-object "GstQuery")
  (c-name "gst_query_add_buffering_range")
  (return-type "gboolean")
  (parameters
    '("gint64" "start")
    '("gint64" "stop")
  )
)

(define-method get_n_buffering_ranges
  (of-object "GstQuery")
  (c-name "gst_query_get_n_buffering_ranges")
  (return-type "guint")
)

(define-method parse_nth_buffering_range
  (of-object "GstQuery")
  (c-name "gst_query_parse_nth_buffering_range")
  (return-type "gboolean")
  (parameters
    '("guint" "index")
    '("gint64*" "start")
    '("gint64*" "stop")
  )
)

(define-function gst_query_new_uri
  (c-name "gst_query_new_uri")
  (return-type "GstQuery*")
)

(define-method parse_uri
  (of-object "GstQuery")
  (c-name "gst_query_parse_uri")
  (return-type "none")
  (parameters
    '("gchar**" "uri")
  )
)

(define-method set_uri
  (of-object "GstQuery")
  (c-name "gst_query_set_uri")
  (return-type "none")
  (parameters
    '("const-gchar*" "uri")
  )
)



;; From gstregistrybinary.h



;; From gstregistrychunks.h



;; From gstregistry.h

(define-function gst_registry_get_type
  (c-name "gst_registry_get_type")
  (return-type "GType")
)

(define-function gst_registry_get_default
  (c-name "gst_registry_get_default")
  (return-type "GstRegistry*")
)

(define-method scan_path
  (of-object "GstRegistry")
  (c-name "gst_registry_scan_path")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "path")
  )
)

(define-method add_path
  (of-object "GstRegistry")
  (c-name "gst_registry_add_path")
  (return-type "none")
  (parameters
    '("const-gchar*" "path")
  )
)

(define-method get_path_list
  (of-object "GstRegistry")
  (c-name "gst_registry_get_path_list")
  (return-type "GList*")
)

(define-method add_plugin
  (of-object "GstRegistry")
  (c-name "gst_registry_add_plugin")
  (return-type "gboolean")
  (parameters
    '("GstPlugin*" "plugin")
  )
)

(define-method remove_plugin
  (of-object "GstRegistry")
  (c-name "gst_registry_remove_plugin")
  (return-type "none")
  (parameters
    '("GstPlugin*" "plugin")
  )
)

(define-method add_feature
  (of-object "GstRegistry")
  (c-name "gst_registry_add_feature")
  (return-type "gboolean")
  (parameters
    '("GstPluginFeature*" "feature")
  )
)

(define-method remove_feature
  (of-object "GstRegistry")
  (c-name "gst_registry_remove_feature")
  (return-type "none")
  (parameters
    '("GstPluginFeature*" "feature")
  )
)

(define-method get_plugin_list
  (of-object "GstRegistry")
  (c-name "gst_registry_get_plugin_list")
  (return-type "GList*")
)

(define-method plugin_filter
  (of-object "GstRegistry")
  (c-name "gst_registry_plugin_filter")
  (return-type "GList*")
  (parameters
    '("GstPluginFilter" "filter")
    '("gboolean" "first")
    '("gpointer" "user_data")
  )
)

(define-method feature_filter
  (of-object "GstRegistry")
  (c-name "gst_registry_feature_filter")
  (return-type "GList*")
  (parameters
    '("GstPluginFeatureFilter" "filter")
    '("gboolean" "first")
    '("gpointer" "user_data")
  )
)

(define-method get_feature_list
  (of-object "GstRegistry")
  (c-name "gst_registry_get_feature_list")
  (return-type "GList*")
  (parameters
    '("GType" "type")
  )
)

(define-method get_feature_list_by_plugin
  (of-object "GstRegistry")
  (c-name "gst_registry_get_feature_list_by_plugin")
  (return-type "GList*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_feature_list_cookie
  (of-object "GstRegistry")
  (c-name "gst_registry_get_feature_list_cookie")
  (return-type "guint32")
)

(define-method find_plugin
  (of-object "GstRegistry")
  (c-name "gst_registry_find_plugin")
  (return-type "GstPlugin*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method find_feature
  (of-object "GstRegistry")
  (c-name "gst_registry_find_feature")
  (return-type "GstPluginFeature*")
  (parameters
    '("const-gchar*" "name")
    '("GType" "type")
  )
)

(define-method lookup
  (of-object "GstRegistry")
  (c-name "gst_registry_lookup")
  (return-type "GstPlugin*")
  (parameters
    '("const-char*" "filename")
  )
)

(define-method lookup_feature
  (of-object "GstRegistry")
  (c-name "gst_registry_lookup_feature")
  (return-type "GstPluginFeature*")
  (parameters
    '("const-char*" "name")
  )
)

(define-method xml_read_cache
  (of-object "GstRegistry")
  (c-name "gst_registry_xml_read_cache")
  (return-type "gboolean")
  (parameters
    '("const-char*" "location")
  )
)

(define-method xml_write_cache
  (of-object "GstRegistry")
  (c-name "gst_registry_xml_write_cache")
  (return-type "gboolean")
  (parameters
    '("const-char*" "location")
  )
)

(define-function gst_default_registry_check_feature_version
  (c-name "gst_default_registry_check_feature_version")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "feature_name")
    '("guint" "min_major")
    '("guint" "min_minor")
    '("guint" "min_micro")
  )
)



;; From gstsegment.h

(define-function gst_segment_get_type
  (c-name "gst_segment_get_type")
  (return-type "GType")
)

(define-function gst_segment_new
  (c-name "gst_segment_new")
  (is-constructor-of "GstSegment")
  (return-type "GstSegment*")
)

(define-method copy
  (of-object "GstSegment")
  (c-name "gst_segment_copy")
  (return-type "GstSegment*")
)

(define-method free
  (of-object "GstSegment")
  (c-name "gst_segment_free")
  (return-type "none")
)

(define-method init
  (of-object "GstSegment")
  (c-name "gst_segment_init")
  (return-type "none")
  (parameters
    '("GstFormat" "format")
  )
)

(define-method set_duration
  (of-object "GstSegment")
  (c-name "gst_segment_set_duration")
  (return-type "none")
  (parameters
    '("GstFormat" "format")
    '("gint64" "duration")
  )
)

(define-method set_last_stop
  (of-object "GstSegment")
  (c-name "gst_segment_set_last_stop")
  (return-type "none")
  (parameters
    '("GstFormat" "format")
    '("gint64" "position")
  )
)

(define-method set_seek
  (of-object "GstSegment")
  (c-name "gst_segment_set_seek")
  (return-type "none")
  (parameters
    '("gdouble" "rate")
    '("GstFormat" "format")
    '("GstSeekFlags" "flags")
    '("GstSeekType" "start_type")
    '("gint64" "start")
    '("GstSeekType" "stop_type")
    '("gint64" "stop")
    '("gboolean*" "update")
  )
)

(define-method set_newsegment
  (of-object "GstSegment")
  (c-name "gst_segment_set_newsegment")
  (return-type "none")
  (parameters
    '("gboolean" "update")
    '("gdouble" "rate")
    '("GstFormat" "format")
    '("gint64" "start")
    '("gint64" "stop")
    '("gint64" "time")
  )
)

(define-method set_newsegment_full
  (of-object "GstSegment")
  (c-name "gst_segment_set_newsegment_full")
  (return-type "none")
  (parameters
    '("gboolean" "update")
    '("gdouble" "rate")
    '("gdouble" "applied_rate")
    '("GstFormat" "format")
    '("gint64" "start")
    '("gint64" "stop")
    '("gint64" "time")
  )
)

(define-method to_stream_time
  (of-object "GstSegment")
  (c-name "gst_segment_to_stream_time")
  (return-type "gint64")
  (parameters
    '("GstFormat" "format")
    '("gint64" "position")
  )
)

(define-method to_running_time
  (of-object "GstSegment")
  (c-name "gst_segment_to_running_time")
  (return-type "gint64")
  (parameters
    '("GstFormat" "format")
    '("gint64" "position")
  )
)

(define-method to_position
  (of-object "GstSegment")
  (c-name "gst_segment_to_position")
  (return-type "gint64")
  (parameters
    '("GstFormat" "format")
    '("gint64" "running_time")
  )
)

(define-method clip
  (of-object "GstSegment")
  (c-name "gst_segment_clip")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "format")
    '("gint64" "start")
    '("gint64" "stop")
    '("gint64*" "clip_start")
    '("gint64*" "clip_stop")
  )
)

(define-method set_running_time
  (of-object "GstSegment")
  (c-name "gst_segment_set_running_time")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "format")
    '("gint64" "running_time")
  )
)



;; From gststructure.h

(define-function gst_structure_get_type
  (c-name "gst_structure_get_type")
  (return-type "GType")
)

(define-function gst_structure_empty_new
  (c-name "gst_structure_empty_new")
  (is-constructor-of "GstStructureEmpty")
  (return-type "GstStructure*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-function gst_structure_id_empty_new
  (c-name "gst_structure_id_empty_new")
  (is-constructor-of "GstStructureIdEmpty")
  (return-type "GstStructure*")
  (parameters
    '("GQuark" "quark")
  )
)

(define-function gst_structure_new
  (c-name "gst_structure_new")
  (is-constructor-of "GstStructure")
  (return-type "GstStructure*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "firstfield")
  )
  (varargs #t)
)

(define-function gst_structure_new_valist
  (c-name "gst_structure_new_valist")
  (return-type "GstStructure*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "firstfield")
    '("va_list" "varargs")
  )
)

(define-function gst_structure_id_new
  (c-name "gst_structure_id_new")
  (is-constructor-of "GstStructureId")
  (return-type "GstStructure*")
  (parameters
    '("GQuark" "name_quark")
    '("GQuark" "field_quark")
  )
  (varargs #t)
)

(define-method copy
  (of-object "GstStructure")
  (c-name "gst_structure_copy")
  (return-type "GstStructure*")
)

(define-method set_parent_refcount
  (of-object "GstStructure")
  (c-name "gst_structure_set_parent_refcount")
  (return-type "none")
  (parameters
    '("gint*" "refcount")
  )
)

(define-method free
  (of-object "GstStructure")
  (c-name "gst_structure_free")
  (return-type "none")
)

(define-method get_name
  (of-object "GstStructure")
  (c-name "gst_structure_get_name")
  (return-type "const-gchar*")
)

(define-method get_name_id
  (of-object "GstStructure")
  (c-name "gst_structure_get_name_id")
  (return-type "GQuark")
)

(define-method has_name
  (of-object "GstStructure")
  (c-name "gst_structure_has_name")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method set_name
  (of-object "GstStructure")
  (c-name "gst_structure_set_name")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method id_set_value
  (of-object "GstStructure")
  (c-name "gst_structure_id_set_value")
  (return-type "none")
  (parameters
    '("GQuark" "field")
    '("const-GValue*" "value")
  )
)

(define-method set_value
  (of-object "GstStructure")
  (c-name "gst_structure_set_value")
  (return-type "none")
  (parameters
    '("const-gchar*" "fieldname")
    '("const-GValue*" "value")
  )
)

(define-method id_take_value
  (of-object "GstStructure")
  (c-name "gst_structure_id_take_value")
  (return-type "none")
  (parameters
    '("GQuark" "field")
    '("GValue*" "value")
  )
)

(define-method take_value
  (of-object "GstStructure")
  (c-name "gst_structure_take_value")
  (return-type "none")
  (parameters
    '("const-gchar*" "fieldname")
    '("GValue*" "value")
  )
)

(define-method set
  (of-object "GstStructure")
  (c-name "gst_structure_set")
  (return-type "none")
  (parameters
    '("const-gchar*" "fieldname")
  )
  (varargs #t)
)

(define-method set_valist
  (of-object "GstStructure")
  (c-name "gst_structure_set_valist")
  (return-type "none")
  (parameters
    '("const-gchar*" "fieldname")
    '("va_list" "varargs")
  )
)

(define-method id_set
  (of-object "GstStructure")
  (c-name "gst_structure_id_set")
  (return-type "none")
  (parameters
    '("GQuark" "fieldname")
  )
  (varargs #t)
)

(define-method id_set_valist
  (of-object "GstStructure")
  (c-name "gst_structure_id_set_valist")
  (return-type "none")
  (parameters
    '("GQuark" "fieldname")
    '("va_list" "varargs")
  )
)

(define-method get_valist
  (of-object "GstStructure")
  (c-name "gst_structure_get_valist")
  (return-type "gboolean")
  (parameters
    '("const-char*" "first_fieldname")
    '("va_list" "args")
  )
)

(define-method get
  (of-object "GstStructure")
  (c-name "gst_structure_get")
  (return-type "gboolean")
  (parameters
    '("const-char*" "first_fieldname")
  )
  (varargs #t)
)

(define-method id_get_valist
  (of-object "GstStructure")
  (c-name "gst_structure_id_get_valist")
  (return-type "gboolean")
  (parameters
    '("GQuark" "first_field_id")
    '("va_list" "args")
  )
)

(define-method id_get
  (of-object "GstStructure")
  (c-name "gst_structure_id_get")
  (return-type "gboolean")
  (parameters
    '("GQuark" "first_field_id")
  )
  (varargs #t)
)

(define-method id_get_value
  (of-object "GstStructure")
  (c-name "gst_structure_id_get_value")
  (return-type "const-GValue*")
  (parameters
    '("GQuark" "field")
  )
)

(define-method get_value
  (of-object "GstStructure")
  (c-name "gst_structure_get_value")
  (return-type "const-GValue*")
  (parameters
    '("const-gchar*" "fieldname")
  )
)

(define-method remove_field
  (of-object "GstStructure")
  (c-name "gst_structure_remove_field")
  (return-type "none")
  (parameters
    '("const-gchar*" "fieldname")
  )
)

(define-method remove_fields
  (of-object "GstStructure")
  (c-name "gst_structure_remove_fields")
  (return-type "none")
  (parameters
    '("const-gchar*" "fieldname")
  )
  (varargs #t)
)

(define-method remove_fields_valist
  (of-object "GstStructure")
  (c-name "gst_structure_remove_fields_valist")
  (return-type "none")
  (parameters
    '("const-gchar*" "fieldname")
    '("va_list" "varargs")
  )
)

(define-method remove_all_fields
  (of-object "GstStructure")
  (c-name "gst_structure_remove_all_fields")
  (return-type "none")
)

(define-method get_field_type
  (of-object "GstStructure")
  (c-name "gst_structure_get_field_type")
  (return-type "GType")
  (parameters
    '("const-gchar*" "fieldname")
  )
)

(define-method foreach
  (of-object "GstStructure")
  (c-name "gst_structure_foreach")
  (return-type "gboolean")
  (parameters
    '("GstStructureForeachFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method map_in_place
  (of-object "GstStructure")
  (c-name "gst_structure_map_in_place")
  (return-type "gboolean")
  (parameters
    '("GstStructureMapFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method n_fields
  (of-object "GstStructure")
  (c-name "gst_structure_n_fields")
  (return-type "gint")
)

(define-method nth_field_name
  (of-object "GstStructure")
  (c-name "gst_structure_nth_field_name")
  (return-type "const-gchar*")
  (parameters
    '("guint" "index")
  )
)

(define-method id_has_field
  (of-object "GstStructure")
  (c-name "gst_structure_id_has_field")
  (return-type "gboolean")
  (parameters
    '("GQuark" "field")
  )
)

(define-method id_has_field_typed
  (of-object "GstStructure")
  (c-name "gst_structure_id_has_field_typed")
  (return-type "gboolean")
  (parameters
    '("GQuark" "field")
    '("GType" "type")
  )
)

(define-method has_field
  (of-object "GstStructure")
  (c-name "gst_structure_has_field")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
  )
)

(define-method has_field_typed
  (of-object "GstStructure")
  (c-name "gst_structure_has_field_typed")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("GType" "type")
  )
)

(define-method get_boolean
  (of-object "GstStructure")
  (c-name "gst_structure_get_boolean")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("gboolean*" "value")
  )
)

(define-method get_int
  (of-object "GstStructure")
  (c-name "gst_structure_get_int")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("gint*" "value")
  )
)

(define-method get_uint
  (of-object "GstStructure")
  (c-name "gst_structure_get_uint")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("guint*" "value")
  )
)

(define-method get_fourcc
  (of-object "GstStructure")
  (c-name "gst_structure_get_fourcc")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("guint32*" "value")
  )
)

(define-method get_double
  (of-object "GstStructure")
  (c-name "gst_structure_get_double")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("gdouble*" "value")
  )
)

(define-method get_date
  (of-object "GstStructure")
  (c-name "gst_structure_get_date")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("GDate**" "value")
  )
)

(define-method get_date_time
  (of-object "GstStructure")
  (c-name "gst_structure_get_date_time")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("GstDateTime**" "value")
  )
)

(define-method get_clock_time
  (of-object "GstStructure")
  (c-name "gst_structure_get_clock_time")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("GstClockTime*" "value")
  )
)

(define-method get_string
  (of-object "GstStructure")
  (c-name "gst_structure_get_string")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "fieldname")
  )
)

(define-method get_enum
  (of-object "GstStructure")
  (c-name "gst_structure_get_enum")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("GType" "enumtype")
    '("gint*" "value")
  )
)

(define-method get_fraction
  (of-object "GstStructure")
  (c-name "gst_structure_get_fraction")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
    '("gint*" "value_numerator")
    '("gint*" "value_denominator")
  )
)

(define-method to_string
  (of-object "GstStructure")
  (c-name "gst_structure_to_string")
  (return-type "gchar*")
)

(define-function gst_structure_from_string
  (c-name "gst_structure_from_string")
  (return-type "GstStructure*")
  (parameters
    '("const-gchar*" "string")
    '("gchar**" "end")
  )
)

(define-method fixate_field_nearest_int
  (of-object "GstStructure")
  (c-name "gst_structure_fixate_field_nearest_int")
  (return-type "gboolean")
  (parameters
    '("const-char*" "field_name")
    '("int" "target")
  )
)

(define-method fixate_field_nearest_double
  (of-object "GstStructure")
  (c-name "gst_structure_fixate_field_nearest_double")
  (return-type "gboolean")
  (parameters
    '("const-char*" "field_name")
    '("double" "target")
  )
)

(define-method fixate_field_boolean
  (of-object "GstStructure")
  (c-name "gst_structure_fixate_field_boolean")
  (return-type "gboolean")
  (parameters
    '("const-char*" "field_name")
    '("gboolean" "target")
  )
)

(define-method fixate_field_string
  (of-object "GstStructure")
  (c-name "gst_structure_fixate_field_string")
  (return-type "gboolean")
  (parameters
    '("const-char*" "field_name")
    '("const-gchar*" "target")
  )
)

(define-method fixate_field_nearest_fraction
  (of-object "GstStructure")
  (c-name "gst_structure_fixate_field_nearest_fraction")
  (return-type "gboolean")
  (parameters
    '("const-char*" "field_name")
    '("const-gint" "target_numerator")
    '("const-gint" "target_denominator")
  )
)



;; From gstsystemclock.h

(define-function gst_system_clock_get_type
  (c-name "gst_system_clock_get_type")
  (return-type "GType")
)

(define-function gst_system_clock_obtain
  (c-name "gst_system_clock_obtain")
  (return-type "GstClock*")
)



;; From gsttaglist.h

(define-function gst_tag_list_get_type
  (c-name "gst_tag_list_get_type")
  (return-type "GType")
)

(define-function gst_tag_register
  (c-name "gst_tag_register")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
    '("GstTagFlag" "flag")
    '("GType" "type")
    '("const-gchar*" "nick")
    '("const-gchar*" "blurb")
    '("GstTagMergeFunc" "func")
  )
)

(define-function gst_tag_merge_use_first
  (c-name "gst_tag_merge_use_first")
  (return-type "none")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "src")
  )
)

(define-function gst_tag_merge_strings_with_comma
  (c-name "gst_tag_merge_strings_with_comma")
  (return-type "none")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "src")
  )
)

(define-function gst_tag_exists
  (c-name "gst_tag_exists")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
  )
)

(define-function gst_tag_get_type
  (c-name "gst_tag_get_type")
  (return-type "GType")
  (parameters
    '("const-gchar*" "tag")
  )
)

(define-function gst_tag_get_nick
  (c-name "gst_tag_get_nick")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "tag")
  )
)

(define-function gst_tag_get_description
  (c-name "gst_tag_get_description")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "tag")
  )
)

(define-function gst_tag_get_flag
  (c-name "gst_tag_get_flag")
  (return-type "GstTagFlag")
  (parameters
    '("const-gchar*" "tag")
  )
)

(define-function gst_tag_is_fixed
  (c-name "gst_tag_is_fixed")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
  )
)

(define-function gst_tag_list_new
  (c-name "gst_tag_list_new")
  (is-constructor-of "GstTagList")
  (return-type "GstTagList*")
)

(define-function gst_tag_list_new_full
  (c-name "gst_tag_list_new_full")
  (return-type "GstTagList*")
  (parameters
    '("const-gchar*" "tag")
  )
  (varargs #t)
)

(define-function gst_tag_list_new_full_valist
  (c-name "gst_tag_list_new_full_valist")
  (return-type "GstTagList*")
  (parameters
    '("va_list" "var_args")
  )
)

(define-function gst_is_tag_list
  (c-name "gst_is_tag_list")
  (return-type "gboolean")
  (parameters
    '("gconstpointer" "p")
  )
)

(define-method copy
  (of-object "GstTagList")
  (c-name "gst_tag_list_copy")
  (return-type "GstTagList*")
)

(define-method is_empty
  (of-object "GstTagList")
  (c-name "gst_tag_list_is_empty")
  (return-type "gboolean")
)

(define-method insert
  (of-object "GstTagList")
  (c-name "gst_tag_list_insert")
  (return-type "none")
  (parameters
    '("const-GstTagList*" "from")
    '("GstTagMergeMode" "mode")
  )
)

(define-method merge
  (of-object "GstTagList")
  (c-name "gst_tag_list_merge")
  (return-type "GstTagList*")
  (parameters
    '("const-GstTagList*" "list2")
    '("GstTagMergeMode" "mode")
  )
)

(define-method free
  (of-object "GstTagList")
  (c-name "gst_tag_list_free")
  (return-type "none")
)

(define-method get_tag_size
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_tag_size")
  (return-type "guint")
  (parameters
    '("const-gchar*" "tag")
  )
)

(define-method add
  (of-object "GstTagList")
  (c-name "gst_tag_list_add")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
  )
  (varargs #t)
)

(define-method add_values
  (of-object "GstTagList")
  (c-name "gst_tag_list_add_values")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
  )
  (varargs #t)
)

(define-method add_valist
  (of-object "GstTagList")
  (c-name "gst_tag_list_add_valist")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
    '("va_list" "var_args")
  )
)

(define-method add_valist_values
  (of-object "GstTagList")
  (c-name "gst_tag_list_add_valist_values")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
    '("va_list" "var_args")
  )
)

(define-method add_value
  (of-object "GstTagList")
  (c-name "gst_tag_list_add_value")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
    '("const-GValue*" "value")
  )
)

(define-method remove_tag
  (of-object "GstTagList")
  (c-name "gst_tag_list_remove_tag")
  (return-type "none")
  (parameters
    '("const-gchar*" "tag")
  )
)

(define-method foreach
  (of-object "GstTagList")
  (c-name "gst_tag_list_foreach")
  (return-type "none")
  (parameters
    '("GstTagForeachFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method get_value_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_value_index")
  (return-type "const-GValue*")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
  )
)

(define-function gst_tag_list_copy_value
  (c-name "gst_tag_list_copy_value")
  (return-type "gboolean")
  (parameters
    '("GValue*" "dest")
    '("const-GstTagList*" "list")
    '("const-gchar*" "tag")
  )
)

(define-method get_char
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_char")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("gchar*" "value")
  )
)

(define-method get_char_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_char_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("gchar*" "value")
  )
)

(define-method get_uchar
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_uchar")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guchar*" "value")
  )
)

(define-method get_uchar_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_uchar_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("guchar*" "value")
  )
)

(define-method get_boolean
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_boolean")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("gboolean*" "value")
  )
)

(define-method get_boolean_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_boolean_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("gboolean*" "value")
  )
)

(define-method get_int
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_int")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("gint*" "value")
  )
)

(define-method get_int_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_int_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("gint*" "value")
  )
)

(define-method get_uint
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_uint")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint*" "value")
  )
)

(define-method get_uint_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_uint_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("guint*" "value")
  )
)

(define-method get_long
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_long")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("glong*" "value")
  )
)

(define-method get_long_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_long_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("glong*" "value")
  )
)

(define-method get_ulong
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_ulong")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("gulong*" "value")
  )
)

(define-method get_ulong_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_ulong_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("gulong*" "value")
  )
)

(define-method get_int64
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_int64")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("gint64*" "value")
  )
)

(define-method get_int64_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_int64_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("gint64*" "value")
  )
)

(define-method get_uint64
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_uint64")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint64*" "value")
  )
)

(define-method get_uint64_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_uint64_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("guint64*" "value")
  )
)

(define-method get_float
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_float")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("gfloat*" "value")
  )
)

(define-method get_float_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_float_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("gfloat*" "value")
  )
)

(define-method get_double
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_double")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("gdouble*" "value")
  )
)

(define-method get_double_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_double_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("gdouble*" "value")
  )
)

(define-method get_string
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_string")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("gchar**" "value")
  )
)

(define-method get_string_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_string_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("gchar**" "value")
  )
)

(define-method peek_string_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_peek_string_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("const-gchar**" "value")
  )
)

(define-method get_pointer
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_pointer")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("gpointer*" "value")
  )
)

(define-method get_pointer_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_pointer_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("gpointer*" "value")
  )
)

(define-method get_date
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_date")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("GDate**" "value")
  )
)

(define-method get_date_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_date_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("GDate**" "value")
  )
)

(define-method get_date_time
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_date_time")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("GstDateTime**" "value")
  )
)

(define-method get_date_time_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_date_time_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("GstDateTime**" "value")
  )
)

(define-method get_buffer
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_buffer")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("GstBuffer**" "value")
  )
)

(define-method get_buffer_index
  (of-object "GstTagList")
  (c-name "gst_tag_list_get_buffer_index")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "tag")
    '("guint" "index")
    '("GstBuffer**" "value")
  )
)



;; From gsttagsetter.h

(define-function gst_tag_setter_get_type
  (c-name "gst_tag_setter_get_type")
  (return-type "GType")
)

(define-method reset_tags
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_reset_tags")
  (return-type "none")
)

(define-method merge_tags
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_merge_tags")
  (return-type "none")
  (parameters
    '("const-GstTagList*" "list")
    '("GstTagMergeMode" "mode")
  )
)

(define-method add_tags
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_add_tags")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
  )
  (varargs #t)
)

(define-method add_tag_values
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_add_tag_values")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
  )
  (varargs #t)
)

(define-method add_tag_valist
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_add_tag_valist")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
    '("va_list" "var_args")
  )
)

(define-method add_tag_valist_values
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_add_tag_valist_values")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
    '("va_list" "var_args")
  )
)

(define-method add_tag_value
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_add_tag_value")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
    '("const-gchar*" "tag")
    '("const-GValue*" "value")
  )
)

(define-method get_tag_list
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_get_tag_list")
  (return-type "const-GstTagList*")
)

(define-method set_tag_merge_mode
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_set_tag_merge_mode")
  (return-type "none")
  (parameters
    '("GstTagMergeMode" "mode")
  )
)

(define-method get_tag_merge_mode
  (of-object "GstTagSetter")
  (c-name "gst_tag_setter_get_tag_merge_mode")
  (return-type "GstTagMergeMode")
)



;; From gsttask.h

(define-function gst_task_cleanup_all
  (c-name "gst_task_cleanup_all")
  (return-type "none")
)

(define-function gst_task_get_type
  (c-name "gst_task_get_type")
  (return-type "GType")
)

(define-function gst_task_create
  (c-name "gst_task_create")
  (return-type "GstTask*")
  (parameters
    '("GstTaskFunction" "func")
    '("gpointer" "data")
  )
)

(define-method set_lock
  (of-object "GstTask")
  (c-name "gst_task_set_lock")
  (return-type "none")
  (parameters
    '("GStaticRecMutex*" "mutex")
  )
)

(define-method set_priority
  (of-object "GstTask")
  (c-name "gst_task_set_priority")
  (return-type "none")
  (parameters
    '("GThreadPriority" "priority")
  )
)

(define-method get_pool
  (of-object "GstTask")
  (c-name "gst_task_get_pool")
  (return-type "GstTaskPool*")
)

(define-method set_pool
  (of-object "GstTask")
  (c-name "gst_task_set_pool")
  (return-type "none")
  (parameters
    '("GstTaskPool*" "pool")
  )
)

(define-method set_thread_callbacks
  (of-object "GstTask")
  (c-name "gst_task_set_thread_callbacks")
  (return-type "none")
  (parameters
    '("GstTaskThreadCallbacks*" "callbacks")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method get_state
  (of-object "GstTask")
  (c-name "gst_task_get_state")
  (return-type "GstTaskState")
)

(define-method set_state
  (of-object "GstTask")
  (c-name "gst_task_set_state")
  (return-type "gboolean")
  (parameters
    '("GstTaskState" "state")
  )
)

(define-method start
  (of-object "GstTask")
  (c-name "gst_task_start")
  (return-type "gboolean")
)

(define-method stop
  (of-object "GstTask")
  (c-name "gst_task_stop")
  (return-type "gboolean")
)

(define-method pause
  (of-object "GstTask")
  (c-name "gst_task_pause")
  (return-type "gboolean")
)

(define-method join
  (of-object "GstTask")
  (c-name "gst_task_join")
  (return-type "gboolean")
)



;; From gsttaskpool.h

(define-function gst_task_pool_get_type
  (c-name "gst_task_pool_get_type")
  (return-type "GType")
)

(define-function gst_task_pool_new
  (c-name "gst_task_pool_new")
  (is-constructor-of "GstTaskPool")
  (return-type "GstTaskPool*")
)

(define-method prepare
  (of-object "GstTaskPool")
  (c-name "gst_task_pool_prepare")
  (return-type "none")
  (parameters
    '("GError**" "error")
  )
)

(define-method push
  (of-object "GstTaskPool")
  (c-name "gst_task_pool_push")
  (return-type "gpointer")
  (parameters
    '("GstTaskPoolFunction" "func")
    '("gpointer" "user_data")
    '("GError**" "error")
  )
)

(define-method join
  (of-object "GstTaskPool")
  (c-name "gst_task_pool_join")
  (return-type "none")
  (parameters
    '("gpointer" "id")
  )
)

(define-method cleanup
  (of-object "GstTaskPool")
  (c-name "gst_task_pool_cleanup")
  (return-type "none")
)



;; From gsttrace.h

(define-function gst_trace_new
  (c-name "gst_trace_new")
  (is-constructor-of "GstTrace")
  (return-type "GstTrace*")
  (parameters
    '("const-gchar*" "filename")
    '("gint" "size")
  )
)

(define-method destroy
  (of-object "GstTrace")
  (c-name "gst_trace_destroy")
  (return-type "none")
)

(define-method flush
  (of-object "GstTrace")
  (c-name "gst_trace_flush")
  (return-type "none")
)

(define-method text_flush
  (of-object "GstTrace")
  (c-name "gst_trace_text_flush")
  (return-type "none")
)

(define-method set_default
  (of-object "GstTrace")
  (c-name "gst_trace_set_default")
  (return-type "none")
)

(define-function gst_trace_read_tsc
  (c-name "gst_trace_read_tsc")
  (return-type "none")
  (parameters
    '("gint64*" "dst")
  )
)

(define-function gst_alloc_trace_available
  (c-name "gst_alloc_trace_available")
  (return-type "gboolean")
)

(define-function gst_alloc_trace_list
  (c-name "gst_alloc_trace_list")
  (return-type "const-GList*")
)

(define-function gst_alloc_trace_live_all
  (c-name "gst_alloc_trace_live_all")
  (return-type "int")
)

(define-function gst_alloc_trace_print_all
  (c-name "gst_alloc_trace_print_all")
  (return-type "none")
)

(define-function gst_alloc_trace_print_live
  (c-name "gst_alloc_trace_print_live")
  (return-type "none")
)

(define-function gst_alloc_trace_set_flags_all
  (c-name "gst_alloc_trace_set_flags_all")
  (return-type "none")
  (parameters
    '("GstAllocTraceFlags" "flags")
  )
)

(define-function gst_alloc_trace_get
  (c-name "gst_alloc_trace_get")
  (return-type "GstAllocTrace*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method print
  (of-object "GstAllocTrace")
  (c-name "gst_alloc_trace_print")
  (return-type "none")
)

(define-method set_flags
  (of-object "GstAllocTrace")
  (c-name "gst_alloc_trace_set_flags")
  (return-type "none")
  (parameters
    '("GstAllocTraceFlags" "flags")
  )
)



;; From gsttypefindfactory.h

(define-function gst_type_find_factory_get_type
  (c-name "gst_type_find_factory_get_type")
  (return-type "GType")
)

(define-function gst_type_find_factory_get_list
  (c-name "gst_type_find_factory_get_list")
  (return-type "GList*")
)

(define-method get_extensions
  (of-object "GstTypeFindFactory")
  (c-name "gst_type_find_factory_get_extensions")
  (return-type "gchar**")
)

(define-method get_caps
  (of-object "GstTypeFindFactory")
  (c-name "gst_type_find_factory_get_caps")
  (return-type "GstCaps*")
)

(define-method call_function
  (of-object "GstTypeFindFactory")
  (c-name "gst_type_find_factory_call_function")
  (return-type "none")
  (parameters
    '("GstTypeFind*" "find")
  )
)



;; From gsttypefind.h

(define-function gst_type_find_get_type
  (c-name "gst_type_find_get_type")
  (return-type "GType")
)

(define-method peek
  (of-object "GstTypeFind")
  (c-name "gst_type_find_peek")
  (return-type "guint8*")
  (parameters
    '("gint64" "offset")
    '("guint" "size")
  )
)

(define-method suggest
  (of-object "GstTypeFind")
  (c-name "gst_type_find_suggest")
  (return-type "none")
  (parameters
    '("guint" "probability")
    '("const-GstCaps*" "caps")
  )
)

(define-method suggest_simple
  (of-object "GstTypeFind")
  (c-name "gst_type_find_suggest_simple")
  (return-type "none")
  (parameters
    '("guint" "probability")
    '("const-char*" "media_type")
    '("const-char*" "fieldname")
  )
  (varargs #t)
)

(define-method get_length
  (of-object "GstTypeFind")
  (c-name "gst_type_find_get_length")
  (return-type "guint64")
)

(define-function gst_type_find_register
  (c-name "gst_type_find_register")
  (return-type "gboolean")
  (parameters
    '("GstPlugin*" "plugin")
    '("const-gchar*" "name")
    '("guint" "rank")
    '("GstTypeFindFunction" "func")
    '("gchar**" "extensions")
    '("const-GstCaps*" "possible_caps")
    '("gpointer" "data")
    '("GDestroyNotify" "data_notify")
  )
)



;; From gsturi.h

(define-function gst_uri_protocol_is_valid
  (c-name "gst_uri_protocol_is_valid")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "protocol")
  )
)

(define-function gst_uri_protocol_is_supported
  (c-name "gst_uri_protocol_is_supported")
  (return-type "gboolean")
  (parameters
    '("const-GstURIType" "type")
    '("const-gchar*" "protocol")
  )
)

(define-function gst_uri_is_valid
  (c-name "gst_uri_is_valid")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "uri")
  )
)

(define-function gst_uri_get_protocol
  (c-name "gst_uri_get_protocol")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "uri")
  )
)

(define-function gst_uri_has_protocol
  (c-name "gst_uri_has_protocol")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "uri")
    '("const-gchar*" "protocol")
  )
)

(define-function gst_uri_get_location
  (c-name "gst_uri_get_location")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "uri")
  )
)

(define-function gst_uri_construct
  (c-name "gst_uri_construct")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "protocol")
    '("const-gchar*" "location")
  )
)

(define-function gst_filename_to_uri
  (c-name "gst_filename_to_uri")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "filename")
    '("GError**" "error")
  )
)

(define-function gst_element_make_from_uri
  (c-name "gst_element_make_from_uri")
  (return-type "GstElement*")
  (parameters
    '("const-GstURIType" "type")
    '("const-gchar*" "uri")
    '("const-gchar*" "elementname")
  )
)

(define-function gst_uri_handler_get_type
  (c-name "gst_uri_handler_get_type")
  (return-type "GType")
)

(define-method get_uri_type
  (of-object "GstURIHandler")
  (c-name "gst_uri_handler_get_uri_type")
  (return-type "guint")
)

(define-method get_protocols
  (of-object "GstURIHandler")
  (c-name "gst_uri_handler_get_protocols")
  (return-type "gchar**")
)

(define-method get_uri
  (of-object "GstURIHandler")
  (c-name "gst_uri_handler_get_uri")
  (return-type "const-gchar*")
)

(define-method set_uri
  (of-object "GstURIHandler")
  (c-name "gst_uri_handler_set_uri")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "uri")
  )
)

(define-method new_uri
  (of-object "GstURIHandler")
  (c-name "gst_uri_handler_new_uri")
  (return-type "none")
  (parameters
    '("const-gchar*" "uri")
  )
)



;; From gstutils.h

(define-function gst_util_set_value_from_string
  (c-name "gst_util_set_value_from_string")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-gchar*" "value_str")
  )
)

(define-function gst_util_set_object_arg
  (c-name "gst_util_set_object_arg")
  (return-type "none")
  (parameters
    '("GObject*" "object")
    '("const-gchar*" "name")
    '("const-gchar*" "value")
  )
)

(define-function gst_util_dump_mem
  (c-name "gst_util_dump_mem")
  (return-type "none")
  (parameters
    '("const-guchar*" "mem")
    '("guint" "size")
  )
)

(define-function gst_util_gdouble_to_guint64
  (c-name "gst_util_gdouble_to_guint64")
  (return-type "guint64")
  (parameters
    '("gdouble" "value")
  )
)

(define-function gst_util_guint64_to_gdouble
  (c-name "gst_util_guint64_to_gdouble")
  (return-type "gdouble")
  (parameters
    '("guint64" "value")
  )
)

(define-function gst_util_uint64_scale
  (c-name "gst_util_uint64_scale")
  (return-type "guint64")
  (parameters
    '("guint64" "val")
    '("guint64" "num")
    '("guint64" "denom")
  )
)

(define-function gst_util_uint64_scale_round
  (c-name "gst_util_uint64_scale_round")
  (return-type "guint64")
  (parameters
    '("guint64" "val")
    '("guint64" "num")
    '("guint64" "denom")
  )
)

(define-function gst_util_uint64_scale_ceil
  (c-name "gst_util_uint64_scale_ceil")
  (return-type "guint64")
  (parameters
    '("guint64" "val")
    '("guint64" "num")
    '("guint64" "denom")
  )
)

(define-function gst_util_uint64_scale_int
  (c-name "gst_util_uint64_scale_int")
  (return-type "guint64")
  (parameters
    '("guint64" "val")
    '("gint" "num")
    '("gint" "denom")
  )
)

(define-function gst_util_uint64_scale_int_round
  (c-name "gst_util_uint64_scale_int_round")
  (return-type "guint64")
  (parameters
    '("guint64" "val")
    '("gint" "num")
    '("gint" "denom")
  )
)

(define-function gst_util_uint64_scale_int_ceil
  (c-name "gst_util_uint64_scale_int_ceil")
  (return-type "guint64")
  (parameters
    '("guint64" "val")
    '("gint" "num")
    '("gint" "denom")
  )
)

(define-function gst_util_seqnum_next
  (c-name "gst_util_seqnum_next")
  (return-type "guint32")
)

(define-function gst_util_seqnum_compare
  (c-name "gst_util_seqnum_compare")
  (return-type "gint32")
  (parameters
    '("guint32" "s1")
    '("guint32" "s2")
  )
)

(define-function gst_print_pad_caps
  (c-name "gst_print_pad_caps")
  (return-type "none")
  (parameters
    '("GString*" "buf")
    '("gint" "indent")
    '("GstPad*" "pad")
  )
)

(define-function gst_print_element_args
  (c-name "gst_print_element_args")
  (return-type "none")
  (parameters
    '("GString*" "buf")
    '("gint" "indent")
    '("GstElement*" "element")
  )
)

(define-function gst_type_register_static_full
  (c-name "gst_type_register_static_full")
  (return-type "GType")
  (parameters
    '("GType" "parent_type")
    '("const-gchar*" "type_name")
    '("guint" "class_size")
    '("GBaseInitFunc" "base_init")
    '("GBaseFinalizeFunc" "base_finalize")
    '("GClassInitFunc" "class_init")
    '("GClassFinalizeFunc" "class_finalize")
    '("gconstpointer" "class_data")
    '("guint" "instance_size")
    '("guint16" "n_preallocs")
    '("GInstanceInitFunc" "instance_init")
    '("const-GTypeValueTable*" "value_table")
    '("GTypeFlags" "flags")
  )
)

(define-method create_all_pads
  (of-object "GstElement")
  (c-name "gst_element_create_all_pads")
  (return-type "none")
)

(define-method get_compatible_pad
  (of-object "GstElement")
  (c-name "gst_element_get_compatible_pad")
  (return-type "GstPad*")
  (parameters
    '("GstPad*" "pad")
    '("const-GstCaps*" "caps")
  )
)

(define-method get_compatible_pad_template
  (of-object "GstElement")
  (c-name "gst_element_get_compatible_pad_template")
  (return-type "GstPadTemplate*")
  (parameters
    '("GstPadTemplate*" "compattempl")
  )
)

(define-function gst_element_state_get_name
  (c-name "gst_element_state_get_name")
  (return-type "const-gchar*")
  (parameters
    '("GstState" "state")
  )
)

(define-function gst_element_state_change_return_get_name
  (c-name "gst_element_state_change_return_get_name")
  (return-type "const-gchar*")
  (parameters
    '("GstStateChangeReturn" "state_ret")
  )
)

(define-method link
  (of-object "GstElement")
  (c-name "gst_element_link")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "dest")
  )
)

(define-method link_many
  (of-object "GstElement")
  (c-name "gst_element_link_many")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element_2")
  )
  (varargs #t)
)

(define-method link_filtered
  (of-object "GstElement")
  (c-name "gst_element_link_filtered")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "dest")
    '("GstCaps*" "filter")
  )
)

(define-method unlink
  (of-object "GstElement")
  (c-name "gst_element_unlink")
  (return-type "none")
  (parameters
    '("GstElement*" "dest")
  )
)

(define-method unlink_many
  (of-object "GstElement")
  (c-name "gst_element_unlink_many")
  (return-type "none")
  (parameters
    '("GstElement*" "element_2")
  )
  (varargs #t)
)

(define-method link_pads
  (of-object "GstElement")
  (c-name "gst_element_link_pads")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "srcpadname")
    '("GstElement*" "dest")
    '("const-gchar*" "destpadname")
  )
)

(define-method link_pads_full
  (of-object "GstElement")
  (c-name "gst_element_link_pads_full")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "srcpadname")
    '("GstElement*" "dest")
    '("const-gchar*" "destpadname")
    '("GstPadLinkCheck" "flags")
  )
)

(define-method unlink_pads
  (of-object "GstElement")
  (c-name "gst_element_unlink_pads")
  (return-type "none")
  (parameters
    '("const-gchar*" "srcpadname")
    '("GstElement*" "dest")
    '("const-gchar*" "destpadname")
  )
)

(define-method link_pads_filtered
  (of-object "GstElement")
  (c-name "gst_element_link_pads_filtered")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "srcpadname")
    '("GstElement*" "dest")
    '("const-gchar*" "destpadname")
    '("GstCaps*" "filter")
  )
)

(define-method seek_simple
  (of-object "GstElement")
  (c-name "gst_element_seek_simple")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "format")
    '("GstSeekFlags" "seek_flags")
    '("gint64" "seek_pos")
  )
)

(define-method can_src_caps
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_can_src_caps")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-method can_sink_caps
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_can_sink_caps")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-method can_sink_all_caps
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_can_sink_all_caps")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-method can_src_all_caps
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_can_src_all_caps")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-method can_sink_any_caps
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_can_sink_any_caps")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-method can_src_any_caps
  (of-object "GstElementFactory")
  (c-name "gst_element_factory_can_src_any_caps")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-method query_position
  (of-object "GstElement")
  (c-name "gst_element_query_position")
  (return-type "gboolean")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "cur")
  )
)

(define-method query_duration
  (of-object "GstElement")
  (c-name "gst_element_query_duration")
  (return-type "gboolean")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "duration")
  )
)

(define-method query_convert
  (of-object "GstElement")
  (c-name "gst_element_query_convert")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "src_format")
    '("gint64" "src_val")
    '("GstFormat*" "dest_format")
    '("gint64*" "dest_val")
  )
)

(define-method install_std_props
  (of-object "GstElementClass")
  (c-name "gst_element_class_install_std_props")
  (return-type "none")
  (parameters
    '("const-gchar*" "first_name")
  )
  (varargs #t)
)

(define-method use_fixed_caps
  (of-object "GstPad")
  (c-name "gst_pad_use_fixed_caps")
  (return-type "none")
)

(define-method get_fixed_caps_func
  (of-object "GstPad")
  (c-name "gst_pad_get_fixed_caps_func")
  (return-type "GstCaps*")
)

(define-method proxy_getcaps
  (of-object "GstPad")
  (c-name "gst_pad_proxy_getcaps")
  (return-type "GstCaps*")
)

(define-method proxy_setcaps
  (of-object "GstPad")
  (c-name "gst_pad_proxy_setcaps")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method get_parent_element
  (of-object "GstPad")
  (c-name "gst_pad_get_parent_element")
  (return-type "GstElement*")
)

(define-method query_position
  (of-object "GstPad")
  (c-name "gst_pad_query_position")
  (return-type "gboolean")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "cur")
  )
)

(define-method query_duration
  (of-object "GstPad")
  (c-name "gst_pad_query_duration")
  (return-type "gboolean")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "duration")
  )
)

(define-method query_convert
  (of-object "GstPad")
  (c-name "gst_pad_query_convert")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "src_format")
    '("gint64" "src_val")
    '("GstFormat*" "dest_format")
    '("gint64*" "dest_val")
  )
)

(define-method query_peer_position
  (of-object "GstPad")
  (c-name "gst_pad_query_peer_position")
  (return-type "gboolean")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "cur")
  )
)

(define-method query_peer_duration
  (of-object "GstPad")
  (c-name "gst_pad_query_peer_duration")
  (return-type "gboolean")
  (parameters
    '("GstFormat*" "format")
    '("gint64*" "duration")
  )
)

(define-method query_peer_convert
  (of-object "GstPad")
  (c-name "gst_pad_query_peer_convert")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "src_format")
    '("gint64" "src_val")
    '("GstFormat*" "dest_format")
    '("gint64*" "dest_val")
  )
)

(define-method add_many
  (of-object "GstBin")
  (c-name "gst_bin_add_many")
  (return-type "none")
  (parameters
    '("GstElement*" "element_1")
  )
  (varargs #t)
)

(define-method remove_many
  (of-object "GstBin")
  (c-name "gst_bin_remove_many")
  (return-type "none")
  (parameters
    '("GstElement*" "element_1")
  )
  (varargs #t)
)

(define-method find_unlinked_pad
  (of-object "GstBin")
  (c-name "gst_bin_find_unlinked_pad")
  (return-type "GstPad*")
  (parameters
    '("GstPadDirection" "direction")
  )
)

(define-method find_unconnected_pad
  (of-object "GstBin")
  (c-name "gst_bin_find_unconnected_pad")
  (return-type "GstPad*")
  (parameters
    '("GstPadDirection" "direction")
  )
)

(define-method merge
  (of-object "GstBuffer")
  (c-name "gst_buffer_merge")
  (return-type "GstBuffer*")
  (parameters
    '("GstBuffer*" "buf2")
  )
)

(define-method join
  (of-object "GstBuffer")
  (c-name "gst_buffer_join")
  (return-type "GstBuffer*")
  (parameters
    '("GstBuffer*" "buf2")
  )
)

(define-method stamp
  (of-object "GstBuffer")
  (c-name "gst_buffer_stamp")
  (return-type "none")
  (parameters
    '("const-GstBuffer*" "src")
  )
)

(define-function gst_atomic_int_set
  (c-name "gst_atomic_int_set")
  (return-type "none")
  (parameters
    '("gint*" "atomic_int")
    '("gint" "value")
  )
)

(define-method add_data_probe
  (of-object "GstPad")
  (c-name "gst_pad_add_data_probe")
  (return-type "gulong")
  (parameters
    '("GCallback" "handler")
    '("gpointer" "data")
  )
)

(define-method add_data_probe_full
  (of-object "GstPad")
  (c-name "gst_pad_add_data_probe_full")
  (return-type "gulong")
  (parameters
    '("GCallback" "handler")
    '("gpointer" "data")
    '("GDestroyNotify" "notify")
  )
)

(define-method remove_data_probe
  (of-object "GstPad")
  (c-name "gst_pad_remove_data_probe")
  (return-type "none")
  (parameters
    '("guint" "handler_id")
  )
)

(define-method add_event_probe
  (of-object "GstPad")
  (c-name "gst_pad_add_event_probe")
  (return-type "gulong")
  (parameters
    '("GCallback" "handler")
    '("gpointer" "data")
  )
)

(define-method add_event_probe_full
  (of-object "GstPad")
  (c-name "gst_pad_add_event_probe_full")
  (return-type "gulong")
  (parameters
    '("GCallback" "handler")
    '("gpointer" "data")
    '("GDestroyNotify" "notify")
  )
)

(define-method remove_event_probe
  (of-object "GstPad")
  (c-name "gst_pad_remove_event_probe")
  (return-type "none")
  (parameters
    '("guint" "handler_id")
  )
)

(define-method add_buffer_probe
  (of-object "GstPad")
  (c-name "gst_pad_add_buffer_probe")
  (return-type "gulong")
  (parameters
    '("GCallback" "handler")
    '("gpointer" "data")
  )
)

(define-method add_buffer_probe_full
  (of-object "GstPad")
  (c-name "gst_pad_add_buffer_probe_full")
  (return-type "gulong")
  (parameters
    '("GCallback" "handler")
    '("gpointer" "data")
    '("GDestroyNotify" "notify")
  )
)

(define-method remove_buffer_probe
  (of-object "GstPad")
  (c-name "gst_pad_remove_buffer_probe")
  (return-type "none")
  (parameters
    '("guint" "handler_id")
  )
)

(define-method found_tags_for_pad
  (of-object "GstElement")
  (c-name "gst_element_found_tags_for_pad")
  (return-type "none")
  (parameters
    '("GstPad*" "pad")
    '("GstTagList*" "list")
  )
)

(define-method found_tags
  (of-object "GstElement")
  (c-name "gst_element_found_tags")
  (return-type "none")
  (parameters
    '("GstTagList*" "list")
  )
)

(define-function gst_parse_bin_from_description
  (c-name "gst_parse_bin_from_description")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "bin_description")
    '("gboolean" "ghost_unlinked_pads")
    '("GError**" "err")
  )
)

(define-function gst_parse_bin_from_description_full
  (c-name "gst_parse_bin_from_description_full")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "bin_description")
    '("gboolean" "ghost_unlinked_pads")
    '("GstParseContext*" "context")
    '("GstParseFlags" "flags")
    '("GError**" "err")
  )
)

(define-function gst_util_get_timestamp
  (c-name "gst_util_get_timestamp")
  (return-type "GstClockTime")
)

(define-function gst_util_array_binary_search
  (c-name "gst_util_array_binary_search")
  (return-type "gpointer")
  (parameters
    '("gpointer" "array")
    '("guint" "num_elements")
    '("gsize" "element_size")
    '("GCompareDataFunc" "search_func")
    '("GstSearchMode" "mode")
    '("gconstpointer" "search_data")
    '("gpointer" "user_data")
  )
)

(define-function gst_util_greatest_common_divisor
  (c-name "gst_util_greatest_common_divisor")
  (return-type "gint")
  (parameters
    '("gint" "a")
    '("gint" "b")
  )
)

(define-function gst_util_fraction_to_double
  (c-name "gst_util_fraction_to_double")
  (return-type "none")
  (parameters
    '("gint" "src_n")
    '("gint" "src_d")
    '("gdouble*" "dest")
  )
)

(define-function gst_util_double_to_fraction
  (c-name "gst_util_double_to_fraction")
  (return-type "none")
  (parameters
    '("gdouble" "src")
    '("gint*" "dest_n")
    '("gint*" "dest_d")
  )
)

(define-function gst_util_fraction_multiply
  (c-name "gst_util_fraction_multiply")
  (return-type "gboolean")
  (parameters
    '("gint" "a_n")
    '("gint" "a_d")
    '("gint" "b_n")
    '("gint" "b_d")
    '("gint*" "res_n")
    '("gint*" "res_d")
  )
)

(define-function gst_util_fraction_add
  (c-name "gst_util_fraction_add")
  (return-type "gboolean")
  (parameters
    '("gint" "a_n")
    '("gint" "a_d")
    '("gint" "b_n")
    '("gint" "b_d")
    '("gint*" "res_n")
    '("gint*" "res_d")
  )
)

(define-function gst_util_fraction_compare
  (c-name "gst_util_fraction_compare")
  (return-type "gint")
  (parameters
    '("gint" "a_n")
    '("gint" "a_d")
    '("gint" "b_n")
    '("gint" "b_d")
  )
)

(define-function gst_event_new_sink_message
  (c-name "gst_event_new_sink_message")
  (return-type "GstEvent*")
  (parameters
    '("GstMessage*" "msg")
  )
)

(define-method parse_sink_message
  (of-object "GstEvent")
  (c-name "gst_event_parse_sink_message")
  (return-type "none")
  (parameters
    '("GstMessage**" "msg")
  )
)



;; From gstvalue.h

(define-function gst_int_range_get_type
  (c-name "gst_int_range_get_type")
  (return-type "GType")
)

(define-function gst_int64_range_get_type
  (c-name "gst_int64_range_get_type")
  (return-type "GType")
)

(define-function gst_double_range_get_type
  (c-name "gst_double_range_get_type")
  (return-type "GType")
)

(define-function gst_fraction_range_get_type
  (c-name "gst_fraction_range_get_type")
  (return-type "GType")
)

(define-function gst_fourcc_get_type
  (c-name "gst_fourcc_get_type")
  (return-type "GType")
)

(define-function gst_fraction_get_type
  (c-name "gst_fraction_get_type")
  (return-type "GType")
)

(define-function gst_value_list_get_type
  (c-name "gst_value_list_get_type")
  (return-type "GType")
)

(define-function gst_value_array_get_type
  (c-name "gst_value_array_get_type")
  (return-type "GType")
)

(define-function gst_date_get_type
  (c-name "gst_date_get_type")
  (return-type "GType")
)

(define-function gst_date_time_get_type
  (c-name "gst_date_time_get_type")
  (return-type "GType")
)

(define-function gst_value_register
  (c-name "gst_value_register")
  (return-type "none")
  (parameters
    '("const-GstValueTable*" "table")
  )
)

(define-function gst_value_init_and_copy
  (c-name "gst_value_init_and_copy")
  (return-type "none")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "src")
  )
)

(define-function gst_value_serialize
  (c-name "gst_value_serialize")
  (return-type "gchar*")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_deserialize
  (c-name "gst_value_deserialize")
  (return-type "gboolean")
  (parameters
    '("GValue*" "dest")
    '("const-gchar*" "src")
  )
)

(define-function gst_value_list_append_value
  (c-name "gst_value_list_append_value")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-GValue*" "append_value")
  )
)

(define-function gst_value_list_prepend_value
  (c-name "gst_value_list_prepend_value")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-GValue*" "prepend_value")
  )
)

(define-function gst_value_list_concat
  (c-name "gst_value_list_concat")
  (return-type "none")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "value1")
    '("const-GValue*" "value2")
  )
)

(define-function gst_value_list_merge
  (c-name "gst_value_list_merge")
  (return-type "none")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "value1")
    '("const-GValue*" "value2")
  )
)

(define-function gst_value_list_get_size
  (c-name "gst_value_list_get_size")
  (return-type "guint")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_list_get_value
  (c-name "gst_value_list_get_value")
  (return-type "const-GValue*")
  (parameters
    '("const-GValue*" "value")
    '("guint" "index")
  )
)

(define-function gst_value_array_append_value
  (c-name "gst_value_array_append_value")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-GValue*" "append_value")
  )
)

(define-function gst_value_array_prepend_value
  (c-name "gst_value_array_prepend_value")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-GValue*" "prepend_value")
  )
)

(define-function gst_value_array_get_size
  (c-name "gst_value_array_get_size")
  (return-type "guint")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_array_get_value
  (c-name "gst_value_array_get_value")
  (return-type "const-GValue*")
  (parameters
    '("const-GValue*" "value")
    '("guint" "index")
  )
)

(define-function gst_value_set_fourcc
  (c-name "gst_value_set_fourcc")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("guint32" "fourcc")
  )
)

(define-function gst_value_get_fourcc
  (c-name "gst_value_get_fourcc")
  (return-type "guint32")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_set_int_range
  (c-name "gst_value_set_int_range")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("gint" "start")
    '("gint" "end")
  )
)

(define-function gst_value_get_int_range_min
  (c-name "gst_value_get_int_range_min")
  (return-type "gint")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_get_int_range_max
  (c-name "gst_value_get_int_range_max")
  (return-type "gint")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_set_int64_range
  (c-name "gst_value_set_int64_range")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("gint64" "start")
    '("gint64" "end")
  )
)

(define-function gst_value_get_int64_range_min
  (c-name "gst_value_get_int64_range_min")
  (return-type "gint64")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_get_int64_range_max
  (c-name "gst_value_get_int64_range_max")
  (return-type "gint64")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_set_double_range
  (c-name "gst_value_set_double_range")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("gdouble" "start")
    '("gdouble" "end")
  )
)

(define-function gst_value_get_double_range_min
  (c-name "gst_value_get_double_range_min")
  (return-type "gdouble")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_get_double_range_max
  (c-name "gst_value_get_double_range_max")
  (return-type "gdouble")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_get_caps
  (c-name "gst_value_get_caps")
  (return-type "const-GstCaps*")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_set_caps
  (c-name "gst_value_set_caps")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-GstCaps*" "caps")
  )
)

(define-function gst_value_get_structure
  (c-name "gst_value_get_structure")
  (return-type "const-GstStructure*")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_set_structure
  (c-name "gst_value_set_structure")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-GstStructure*" "structure")
  )
)

(define-function gst_value_set_fraction
  (c-name "gst_value_set_fraction")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("gint" "numerator")
    '("gint" "denominator")
  )
)

(define-function gst_value_get_fraction_numerator
  (c-name "gst_value_get_fraction_numerator")
  (return-type "gint")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_get_fraction_denominator
  (c-name "gst_value_get_fraction_denominator")
  (return-type "gint")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_fraction_multiply
  (c-name "gst_value_fraction_multiply")
  (return-type "gboolean")
  (parameters
    '("GValue*" "product")
    '("const-GValue*" "factor1")
    '("const-GValue*" "factor2")
  )
)

(define-function gst_value_fraction_subtract
  (c-name "gst_value_fraction_subtract")
  (return-type "gboolean")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "minuend")
    '("const-GValue*" "subtrahend")
  )
)

(define-function gst_value_set_fraction_range
  (c-name "gst_value_set_fraction_range")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-GValue*" "start")
    '("const-GValue*" "end")
  )
)

(define-function gst_value_set_fraction_range_full
  (c-name "gst_value_set_fraction_range_full")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("gint" "numerator_start")
    '("gint" "denominator_start")
    '("gint" "numerator_end")
    '("gint" "denominator_end")
  )
)

(define-function gst_value_get_fraction_range_min
  (c-name "gst_value_get_fraction_range_min")
  (return-type "const-GValue*")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_get_fraction_range_max
  (c-name "gst_value_get_fraction_range_max")
  (return-type "const-GValue*")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_get_date
  (c-name "gst_value_get_date")
  (return-type "const-GDate*")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gst_value_set_date
  (c-name "gst_value_set_date")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("const-GDate*" "date")
  )
)

(define-function gst_value_compare
  (c-name "gst_value_compare")
  (return-type "gint")
  (parameters
    '("const-GValue*" "value1")
    '("const-GValue*" "value2")
  )
)

(define-function gst_value_can_compare
  (c-name "gst_value_can_compare")
  (return-type "gboolean")
  (parameters
    '("const-GValue*" "value1")
    '("const-GValue*" "value2")
  )
)

(define-function gst_value_union
  (c-name "gst_value_union")
  (return-type "gboolean")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "value1")
    '("const-GValue*" "value2")
  )
)

(define-function gst_value_can_union
  (c-name "gst_value_can_union")
  (return-type "gboolean")
  (parameters
    '("const-GValue*" "value1")
    '("const-GValue*" "value2")
  )
)

(define-function gst_value_register_union_func
  (c-name "gst_value_register_union_func")
  (return-type "none")
  (parameters
    '("GType" "type1")
    '("GType" "type2")
    '("GstValueUnionFunc" "func")
  )
)

(define-function gst_value_intersect
  (c-name "gst_value_intersect")
  (return-type "gboolean")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "value1")
    '("const-GValue*" "value2")
  )
)

(define-function gst_value_can_intersect
  (c-name "gst_value_can_intersect")
  (return-type "gboolean")
  (parameters
    '("const-GValue*" "value1")
    '("const-GValue*" "value2")
  )
)

(define-function gst_value_register_intersect_func
  (c-name "gst_value_register_intersect_func")
  (return-type "none")
  (parameters
    '("GType" "type1")
    '("GType" "type2")
    '("GstValueIntersectFunc" "func")
  )
)

(define-function gst_value_subtract
  (c-name "gst_value_subtract")
  (return-type "gboolean")
  (parameters
    '("GValue*" "dest")
    '("const-GValue*" "minuend")
    '("const-GValue*" "subtrahend")
  )
)

(define-function gst_value_can_subtract
  (c-name "gst_value_can_subtract")
  (return-type "gboolean")
  (parameters
    '("const-GValue*" "minuend")
    '("const-GValue*" "subtrahend")
  )
)

(define-function gst_value_register_subtract_func
  (c-name "gst_value_register_subtract_func")
  (return-type "none")
  (parameters
    '("GType" "minuend_type")
    '("GType" "subtrahend_type")
    '("GstValueSubtractFunc" "func")
  )
)

(define-function gst_value_is_fixed
  (c-name "gst_value_is_fixed")
  (return-type "gboolean")
  (parameters
    '("const-GValue*" "value")
  )
)



;; From gstversion.h



;; From gstxml.h

(define-function gst_xml_get_type
  (c-name "gst_xml_get_type")
  (return-type "GType")
)

(define-function gst_xml_write
  (c-name "gst_xml_write")
  (return-type "xmlDocPtr")
  (parameters
    '("GstElement*" "element")
  )
)

(define-function gst_xml_write_file
  (c-name "gst_xml_write_file")
  (return-type "gint")
  (parameters
    '("GstElement*" "element")
    '("FILE*" "out")
  )
)

(define-function gst_xml_new
  (c-name "gst_xml_new")
  (is-constructor-of "GstXml")
  (return-type "GstXML*")
)

(define-method parse_doc
  (of-object "GstXML")
  (c-name "gst_xml_parse_doc")
  (return-type "gboolean")
  (parameters
    '("xmlDocPtr" "doc")
    '("const-guchar*" "root")
  )
)

(define-method parse_file
  (of-object "GstXML")
  (c-name "gst_xml_parse_file")
  (return-type "gboolean")
  (parameters
    '("const-guchar*" "fname")
    '("const-guchar*" "root")
  )
)

(define-method parse_memory
  (of-object "GstXML")
  (c-name "gst_xml_parse_memory")
  (return-type "gboolean")
  (parameters
    '("guchar*" "buffer")
    '("guint" "size")
    '("const-gchar*" "root")
  )
)

(define-method get_element
  (of-object "GstXML")
  (c-name "gst_xml_get_element")
  (return-type "GstElement*")
  (parameters
    '("const-guchar*" "name")
  )
)

(define-method get_topelements
  (of-object "GstXML")
  (c-name "gst_xml_get_topelements")
  (return-type "GList*")
)

(define-function gst_xml_make_element
  (c-name "gst_xml_make_element")
  (return-type "GstElement*")
  (parameters
    '("xmlNodePtr" "cur")
    '("GstObject*" "parent")
  )
)



;; From math-compat.h



;; From gstadapter.h

(define-function gst_adapter_get_type
  (c-name "gst_adapter_get_type")
  (return-type "GType")
)

(define-function gst_adapter_new
  (c-name "gst_adapter_new")
  (is-constructor-of "GstAdapter")
  (return-type "GstAdapter*")
)

(define-method clear
  (of-object "GstAdapter")
  (c-name "gst_adapter_clear")
  (return-type "none")
)

(define-method push
  (of-object "GstAdapter")
  (c-name "gst_adapter_push")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buf")
  )
)

(define-method peek
  (of-object "GstAdapter")
  (c-name "gst_adapter_peek")
  (return-type "const-guint8*")
  (parameters
    '("guint" "size")
  )
)

(define-method copy
  (of-object "GstAdapter")
  (c-name "gst_adapter_copy")
  (return-type "none")
  (parameters
    '("guint8*" "dest")
    '("guint" "offset")
    '("guint" "size")
  )
)

(define-method flush
  (of-object "GstAdapter")
  (c-name "gst_adapter_flush")
  (return-type "none")
  (parameters
    '("guint" "flush")
  )
)

(define-method take
  (of-object "GstAdapter")
  (c-name "gst_adapter_take")
  (return-type "guint8*")
  (parameters
    '("guint" "nbytes")
  )
)

(define-method take_buffer
  (of-object "GstAdapter")
  (c-name "gst_adapter_take_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("guint" "nbytes")
  )
)

(define-method take_list
  (of-object "GstAdapter")
  (c-name "gst_adapter_take_list")
  (return-type "GList*")
  (parameters
    '("guint" "nbytes")
  )
)

(define-method available
  (of-object "GstAdapter")
  (c-name "gst_adapter_available")
  (return-type "guint")
)

(define-method available_fast
  (of-object "GstAdapter")
  (c-name "gst_adapter_available_fast")
  (return-type "guint")
)

(define-method prev_timestamp
  (of-object "GstAdapter")
  (c-name "gst_adapter_prev_timestamp")
  (return-type "GstClockTime")
  (parameters
    '("guint64*" "distance")
  )
)

(define-method masked_scan_uint32
  (of-object "GstAdapter")
  (c-name "gst_adapter_masked_scan_uint32")
  (return-type "guint")
  (parameters
    '("guint32" "mask")
    '("guint32" "pattern")
    '("guint" "offset")
    '("guint" "size")
  )
)

(define-method masked_scan_uint32_peek
  (of-object "GstAdapter")
  (c-name "gst_adapter_masked_scan_uint32_peek")
  (return-type "guint")
  (parameters
    '("guint32" "mask")
    '("guint32" "pattern")
    '("guint" "offset")
    '("guint" "size")
    '("guint32*" "value")
  )
)



;; From gstbaseparse.h

(define-function gst_base_parse_get_type
  (c-name "gst_base_parse_get_type")
  (return-type "GType")
)

(define-function gst_base_parse_frame_get_type
  (c-name "gst_base_parse_frame_get_type")
  (return-type "GType")
)

(define-function gst_base_parse_frame_new
  (c-name "gst_base_parse_frame_new")
  (is-constructor-of "GstBaseParseFrame")
  (return-type "GstBaseParseFrame*")
  (parameters
    '("GstBuffer*" "buffer")
    '("GstBaseParseFrameFlags" "flags")
    '("gint" "overhead")
  )
)

(define-method init
  (of-object "GstBaseParseFrame")
  (c-name "gst_base_parse_frame_init")
  (return-type "none")
)

(define-method free
  (of-object "GstBaseParseFrame")
  (c-name "gst_base_parse_frame_free")
  (return-type "none")
)

(define-method push_frame
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_push_frame")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBaseParseFrame*" "frame")
  )
)

(define-method set_duration
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_duration")
  (return-type "none")
  (parameters
    '("GstFormat" "fmt")
    '("gint64" "duration")
    '("gint" "interval")
  )
)

(define-method set_average_bitrate
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_average_bitrate")
  (return-type "none")
  (parameters
    '("guint" "bitrate")
  )
)

(define-method set_min_frame_size
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_min_frame_size")
  (return-type "none")
  (parameters
    '("guint" "min_size")
  )
)

(define-method set_has_timing_info
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_has_timing_info")
  (return-type "none")
  (parameters
    '("gboolean" "has_timing")
  )
)

(define-method set_syncable
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_syncable")
  (return-type "none")
  (parameters
    '("gboolean" "syncable")
  )
)

(define-method set_passthrough
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_passthrough")
  (return-type "none")
  (parameters
    '("gboolean" "passthrough")
  )
)

(define-method set_frame_rate
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_set_frame_rate")
  (return-type "none")
  (parameters
    '("guint" "fps_num")
    '("guint" "fps_den")
    '("guint" "lead_in")
    '("guint" "lead_out")
  )
)

(define-method convert_default
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_convert_default")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "src_format")
    '("gint64" "src_value")
    '("GstFormat" "dest_format")
    '("gint64*" "dest_value")
  )
)

(define-method add_index_entry
  (of-object "GstBaseParse")
  (c-name "gst_base_parse_add_index_entry")
  (return-type "gboolean")
  (parameters
    '("guint64" "offset")
    '("GstClockTime" "ts")
    '("gboolean" "key")
    '("gboolean" "force")
  )
)



;; From gstbasesink.h

(define-function gst_base_sink_get_type
  (c-name "gst_base_sink_get_type")
  (return-type "GType")
)

(define-method do_preroll
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_do_preroll")
  (return-type "GstFlowReturn")
  (parameters
    '("GstMiniObject*" "obj")
  )
)

(define-method wait_preroll
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_wait_preroll")
  (return-type "GstFlowReturn")
)

(define-method set_sync
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_sync")
  (return-type "none")
  (parameters
    '("gboolean" "sync")
  )
)

(define-method get_sync
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_get_sync")
  (return-type "gboolean")
)

(define-method set_max_lateness
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_max_lateness")
  (return-type "none")
  (parameters
    '("gint64" "max_lateness")
  )
)

(define-method get_max_lateness
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_get_max_lateness")
  (return-type "gint64")
)

(define-method set_qos_enabled
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_qos_enabled")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method is_qos_enabled
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_is_qos_enabled")
  (return-type "gboolean")
)

(define-method set_async_enabled
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_async_enabled")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method is_async_enabled
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_is_async_enabled")
  (return-type "gboolean")
)

(define-method set_ts_offset
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_ts_offset")
  (return-type "none")
  (parameters
    '("GstClockTimeDiff" "offset")
  )
)

(define-method get_ts_offset
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_get_ts_offset")
  (return-type "GstClockTimeDiff")
)

(define-method get_last_buffer
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_get_last_buffer")
  (return-type "GstBuffer*")
)

(define-method set_last_buffer_enabled
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_last_buffer_enabled")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method is_last_buffer_enabled
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_is_last_buffer_enabled")
  (return-type "gboolean")
)

(define-method query_latency
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_query_latency")
  (return-type "gboolean")
  (parameters
    '("gboolean*" "live")
    '("gboolean*" "upstream_live")
    '("GstClockTime*" "min_latency")
    '("GstClockTime*" "max_latency")
  )
)

(define-method get_latency
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_get_latency")
  (return-type "GstClockTime")
)

(define-method set_render_delay
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_render_delay")
  (return-type "none")
  (parameters
    '("GstClockTime" "delay")
  )
)

(define-method get_render_delay
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_get_render_delay")
  (return-type "GstClockTime")
)

(define-method set_blocksize
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_blocksize")
  (return-type "none")
  (parameters
    '("guint" "blocksize")
  )
)

(define-method get_blocksize
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_get_blocksize")
  (return-type "guint")
)

(define-method set_throttle_time
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_set_throttle_time")
  (return-type "none")
  (parameters
    '("guint64" "throttle")
  )
)

(define-method get_throttle_time
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_get_throttle_time")
  (return-type "guint64")
)

(define-method wait_clock
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_wait_clock")
  (return-type "GstClockReturn")
  (parameters
    '("GstClockTime" "time")
    '("GstClockTimeDiff*" "jitter")
  )
)

(define-method wait_eos
  (of-object "GstBaseSink")
  (c-name "gst_base_sink_wait_eos")
  (return-type "GstFlowReturn")
  (parameters
    '("GstClockTime" "time")
    '("GstClockTimeDiff*" "jitter")
  )
)



;; From gstbasesrc.h

(define-function gst_base_src_get_type
  (c-name "gst_base_src_get_type")
  (return-type "GType")
)

(define-method wait_playing
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_wait_playing")
  (return-type "GstFlowReturn")
)

(define-method set_live
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_set_live")
  (return-type "none")
  (parameters
    '("gboolean" "live")
  )
)

(define-method is_live
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_is_live")
  (return-type "gboolean")
)

(define-method set_format
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_set_format")
  (return-type "none")
  (parameters
    '("GstFormat" "format")
  )
)

(define-method query_latency
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_query_latency")
  (return-type "gboolean")
  (parameters
    '("gboolean*" "live")
    '("GstClockTime*" "min_latency")
    '("GstClockTime*" "max_latency")
  )
)

(define-method set_blocksize
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_set_blocksize")
  (return-type "none")
  (parameters
    '("gulong" "blocksize")
  )
)

(define-method get_blocksize
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_get_blocksize")
  (return-type "gulong")
)

(define-method set_do_timestamp
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_set_do_timestamp")
  (return-type "none")
  (parameters
    '("gboolean" "timestamp")
  )
)

(define-method get_do_timestamp
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_get_do_timestamp")
  (return-type "gboolean")
)

(define-method new_seamless_segment
  (of-object "GstBaseSrc")
  (c-name "gst_base_src_new_seamless_segment")
  (return-type "gboolean")
  (parameters
    '("gint64" "start")
    '("gint64" "stop")
    '("gint64" "position")
  )
)



;; From gstbasetransform.h

(define-function gst_base_transform_get_type
  (c-name "gst_base_transform_get_type")
  (return-type "GType")
)

(define-method set_passthrough
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_set_passthrough")
  (return-type "none")
  (parameters
    '("gboolean" "passthrough")
  )
)

(define-method is_passthrough
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_is_passthrough")
  (return-type "gboolean")
)

(define-method set_in_place
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_set_in_place")
  (return-type "none")
  (parameters
    '("gboolean" "in_place")
  )
)

(define-method is_in_place
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_is_in_place")
  (return-type "gboolean")
)

(define-method update_qos
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_update_qos")
  (return-type "none")
  (parameters
    '("gdouble" "proportion")
    '("GstClockTimeDiff" "diff")
    '("GstClockTime" "timestamp")
  )
)

(define-method set_qos_enabled
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_set_qos_enabled")
  (return-type "none")
  (parameters
    '("gboolean" "enabled")
  )
)

(define-method is_qos_enabled
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_is_qos_enabled")
  (return-type "gboolean")
)

(define-method set_gap_aware
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_set_gap_aware")
  (return-type "none")
  (parameters
    '("gboolean" "gap_aware")
  )
)

(define-method suggest
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_suggest")
  (return-type "none")
  (parameters
    '("GstCaps*" "caps")
    '("guint" "size")
  )
)

(define-method reconfigure
  (of-object "GstBaseTransform")
  (c-name "gst_base_transform_reconfigure")
  (return-type "none")
)



;; From gstbitreader-docs.h

(define-method skip_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_skip_unchecked")
  (return-type "none")
  (parameters
    '("guint" "nbits")
  )
)

(define-method skip_to_byte_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_skip_to_byte_unchecked")
  (return-type "none")
)

(define-method peek_bits_uint8_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_peek_bits_uint8_unchecked")
  (return-type "guint8")
  (parameters
    '("guint" "nbits")
  )
)

(define-method get_bits_uint8_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_bits_uint8_unchecked")
  (return-type "guint8")
  (parameters
    '("guint" "nbits")
  )
)

(define-method peek_bits_uint16_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_peek_bits_uint16_unchecked")
  (return-type "guint16")
  (parameters
    '("guint" "nbits")
  )
)

(define-method get_bits_uint16_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_bits_uint16_unchecked")
  (return-type "guint16")
  (parameters
    '("guint" "nbits")
  )
)

(define-method peek_bits_uint32_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_peek_bits_uint32_unchecked")
  (return-type "guint32")
  (parameters
    '("guint" "nbits")
  )
)

(define-method get_bits_uint32_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_bits_uint32_unchecked")
  (return-type "guint32")
  (parameters
    '("guint" "nbits")
  )
)

(define-method peek_bits_uint64_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_peek_bits_uint64_unchecked")
  (return-type "guint64")
  (parameters
    '("guint" "nbits")
  )
)

(define-method get_bits_uint64_unchecked
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_bits_uint64_unchecked")
  (return-type "guint64")
  (parameters
    '("guint" "nbits")
  )
)



;; From gstbitreader.h

(define-function gst_bit_reader_new
  (c-name "gst_bit_reader_new")
  (is-constructor-of "GstBitReader")
  (return-type "GstBitReader*")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
  )
)

(define-function gst_bit_reader_new_from_buffer
  (c-name "gst_bit_reader_new_from_buffer")
  (return-type "GstBitReader*")
  (parameters
    '("const-GstBuffer*" "buffer")
  )
)

(define-method free
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_free")
  (return-type "none")
)

(define-method init
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_init")
  (return-type "none")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
  )
)

(define-method init_from_buffer
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_init_from_buffer")
  (return-type "none")
  (parameters
    '("const-GstBuffer*" "buffer")
  )
)

(define-method set_pos
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_set_pos")
  (return-type "gboolean")
  (parameters
    '("guint" "pos")
  )
)

(define-method get_pos
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_pos")
  (return-type "guint")
)

(define-method get_remaining
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_remaining")
  (return-type "guint")
)

(define-method get_size
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_size")
  (return-type "guint")
)

(define-method skip
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_skip")
  (return-type "gboolean")
  (parameters
    '("guint" "nbits")
  )
)

(define-method skip_to_byte
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_skip_to_byte")
  (return-type "gboolean")
)

(define-method get_bits_uint8
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_bits_uint8")
  (return-type "gboolean")
  (parameters
    '("guint8*" "val")
    '("guint" "nbits")
  )
)

(define-method get_bits_uint16
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_bits_uint16")
  (return-type "gboolean")
  (parameters
    '("guint16*" "val")
    '("guint" "nbits")
  )
)

(define-method get_bits_uint32
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_bits_uint32")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
    '("guint" "nbits")
  )
)

(define-method get_bits_uint64
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_get_bits_uint64")
  (return-type "gboolean")
  (parameters
    '("guint64*" "val")
    '("guint" "nbits")
  )
)

(define-method peek_bits_uint8
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_peek_bits_uint8")
  (return-type "gboolean")
  (parameters
    '("guint8*" "val")
    '("guint" "nbits")
  )
)

(define-method peek_bits_uint16
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_peek_bits_uint16")
  (return-type "gboolean")
  (parameters
    '("guint16*" "val")
    '("guint" "nbits")
  )
)

(define-method peek_bits_uint32
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_peek_bits_uint32")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
    '("guint" "nbits")
  )
)

(define-method peek_bits_uint64
  (of-object "GstBitReader")
  (c-name "gst_bit_reader_peek_bits_uint64")
  (return-type "gboolean")
  (parameters
    '("guint64*" "val")
    '("guint" "nbits")
  )
)



;; From gstbytereader-docs.h

(define-method skip_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_skip_unchecked")
  (return-type "none")
  (parameters
    '("guint" "nbytes")
  )
)

(define-method get_uint8_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint8_unchecked")
  (return-type "guint8")
)

(define-method peek_uint8_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint8_unchecked")
  (return-type "guint8")
)

(define-method get_int8_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int8_unchecked")
  (return-type "gint8")
)

(define-method peek_int8_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int8_unchecked")
  (return-type "gint8")
)

(define-method get_uint16_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint16_le_unchecked")
  (return-type "guint16")
)

(define-method get_uint16_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint16_be_unchecked")
  (return-type "guint16")
)

(define-method peek_uint16_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint16_le_unchecked")
  (return-type "guint16")
)

(define-method peek_uint16_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint16_be_unchecked")
  (return-type "guint16")
)

(define-method get_int16_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int16_le_unchecked")
  (return-type "gint16")
)

(define-method get_int16_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int16_be_unchecked")
  (return-type "gint16")
)

(define-method peek_int16_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int16_le_unchecked")
  (return-type "gint16")
)

(define-method peek_int16_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int16_be_unchecked")
  (return-type "gint16")
)

(define-method get_uint24_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint24_le_unchecked")
  (return-type "guint32")
)

(define-method get_uint24_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint24_be_unchecked")
  (return-type "guint32")
)

(define-method peek_uint24_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint24_le_unchecked")
  (return-type "guint32")
)

(define-method peek_uint24_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint24_be_unchecked")
  (return-type "guint32")
)

(define-method get_int24_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int24_le_unchecked")
  (return-type "gint32")
)

(define-method get_int24_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int24_be_unchecked")
  (return-type "gint32")
)

(define-method peek_int24_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int24_le_unchecked")
  (return-type "gint32")
)

(define-method peek_int24_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int24_be_unchecked")
  (return-type "gint32")
)

(define-method get_uint32_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint32_le_unchecked")
  (return-type "guint32")
)

(define-method get_uint32_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint32_be_unchecked")
  (return-type "guint32")
)

(define-method peek_uint32_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint32_le_unchecked")
  (return-type "guint32")
)

(define-method peek_uint32_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint32_be_unchecked")
  (return-type "guint32")
)

(define-method get_int32_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int32_le_unchecked")
  (return-type "gint32")
)

(define-method get_int32_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int32_be_unchecked")
  (return-type "gint32")
)

(define-method peek_int32_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int32_le_unchecked")
  (return-type "gint32")
)

(define-method peek_int32_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int32_be_unchecked")
  (return-type "gint32")
)

(define-method get_uint64_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint64_le_unchecked")
  (return-type "guint64")
)

(define-method get_uint64_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint64_be_unchecked")
  (return-type "guint64")
)

(define-method peek_uint64_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint64_le_unchecked")
  (return-type "guint64")
)

(define-method peek_uint64_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint64_be_unchecked")
  (return-type "guint64")
)

(define-method get_int64_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int64_le_unchecked")
  (return-type "gint64")
)

(define-method get_int64_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int64_be_unchecked")
  (return-type "gint64")
)

(define-method peek_int64_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int64_le_unchecked")
  (return-type "gint64")
)

(define-method peek_int64_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int64_be_unchecked")
  (return-type "gint64")
)

(define-method get_float32_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_float32_le_unchecked")
  (return-type "gfloat")
)

(define-method get_float32_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_float32_be_unchecked")
  (return-type "gfloat")
)

(define-method get_float64_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_float64_le_unchecked")
  (return-type "gdouble")
)

(define-method get_float64_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_float64_be_unchecked")
  (return-type "gdouble")
)

(define-method peek_float32_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_float32_le_unchecked")
  (return-type "gfloat")
)

(define-method peek_float32_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_float32_be_unchecked")
  (return-type "gfloat")
)

(define-method peek_float64_le_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_float64_le_unchecked")
  (return-type "gdouble")
)

(define-method peek_float64_be_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_float64_be_unchecked")
  (return-type "gdouble")
)

(define-method peek_data_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_data_unchecked")
  (return-type "const-guint8*")
)

(define-method get_data_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_data_unchecked")
  (return-type "const-guint8*")
  (parameters
    '("guint" "size")
  )
)

(define-method dup_data_unchecked
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_dup_data_unchecked")
  (return-type "guint8*")
  (parameters
    '("guint" "size")
  )
)



;; From gstbytereader.h

(define-function gst_byte_reader_new
  (c-name "gst_byte_reader_new")
  (is-constructor-of "GstByteReader")
  (return-type "GstByteReader*")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
  )
)

(define-function gst_byte_reader_new_from_buffer
  (c-name "gst_byte_reader_new_from_buffer")
  (return-type "GstByteReader*")
  (parameters
    '("const-GstBuffer*" "buffer")
  )
)

(define-method free
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_free")
  (return-type "none")
)

(define-method init
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_init")
  (return-type "none")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
  )
)

(define-method init_from_buffer
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_init_from_buffer")
  (return-type "none")
  (parameters
    '("const-GstBuffer*" "buffer")
  )
)

(define-method set_pos
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_set_pos")
  (return-type "gboolean")
  (parameters
    '("guint" "pos")
  )
)

(define-method get_pos
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_pos")
  (return-type "guint")
)

(define-method get_remaining
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_remaining")
  (return-type "guint")
)

(define-method get_size
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_size")
  (return-type "guint")
)

(define-method skip
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_skip")
  (return-type "gboolean")
  (parameters
    '("guint" "nbytes")
  )
)

(define-method get_uint8
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint8")
  (return-type "gboolean")
  (parameters
    '("guint8*" "val")
  )
)

(define-method get_int8
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int8")
  (return-type "gboolean")
  (parameters
    '("gint8*" "val")
  )
)

(define-method get_uint16_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint16_le")
  (return-type "gboolean")
  (parameters
    '("guint16*" "val")
  )
)

(define-method get_int16_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int16_le")
  (return-type "gboolean")
  (parameters
    '("gint16*" "val")
  )
)

(define-method get_uint16_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint16_be")
  (return-type "gboolean")
  (parameters
    '("guint16*" "val")
  )
)

(define-method get_int16_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int16_be")
  (return-type "gboolean")
  (parameters
    '("gint16*" "val")
  )
)

(define-method get_uint24_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint24_le")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
  )
)

(define-method get_int24_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int24_le")
  (return-type "gboolean")
  (parameters
    '("gint32*" "val")
  )
)

(define-method get_uint24_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint24_be")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
  )
)

(define-method get_int24_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int24_be")
  (return-type "gboolean")
  (parameters
    '("gint32*" "val")
  )
)

(define-method get_uint32_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint32_le")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
  )
)

(define-method get_int32_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int32_le")
  (return-type "gboolean")
  (parameters
    '("gint32*" "val")
  )
)

(define-method get_uint32_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint32_be")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
  )
)

(define-method get_int32_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int32_be")
  (return-type "gboolean")
  (parameters
    '("gint32*" "val")
  )
)

(define-method get_uint64_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint64_le")
  (return-type "gboolean")
  (parameters
    '("guint64*" "val")
  )
)

(define-method get_int64_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int64_le")
  (return-type "gboolean")
  (parameters
    '("gint64*" "val")
  )
)

(define-method get_uint64_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_uint64_be")
  (return-type "gboolean")
  (parameters
    '("guint64*" "val")
  )
)

(define-method get_int64_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_int64_be")
  (return-type "gboolean")
  (parameters
    '("gint64*" "val")
  )
)

(define-method peek_uint8
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint8")
  (return-type "gboolean")
  (parameters
    '("guint8*" "val")
  )
)

(define-method peek_int8
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int8")
  (return-type "gboolean")
  (parameters
    '("gint8*" "val")
  )
)

(define-method peek_uint16_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint16_le")
  (return-type "gboolean")
  (parameters
    '("guint16*" "val")
  )
)

(define-method peek_int16_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int16_le")
  (return-type "gboolean")
  (parameters
    '("gint16*" "val")
  )
)

(define-method peek_uint16_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint16_be")
  (return-type "gboolean")
  (parameters
    '("guint16*" "val")
  )
)

(define-method peek_int16_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int16_be")
  (return-type "gboolean")
  (parameters
    '("gint16*" "val")
  )
)

(define-method peek_uint24_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint24_le")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
  )
)

(define-method peek_int24_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int24_le")
  (return-type "gboolean")
  (parameters
    '("gint32*" "val")
  )
)

(define-method peek_uint24_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint24_be")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
  )
)

(define-method peek_int24_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int24_be")
  (return-type "gboolean")
  (parameters
    '("gint32*" "val")
  )
)

(define-method peek_uint32_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint32_le")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
  )
)

(define-method peek_int32_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int32_le")
  (return-type "gboolean")
  (parameters
    '("gint32*" "val")
  )
)

(define-method peek_uint32_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint32_be")
  (return-type "gboolean")
  (parameters
    '("guint32*" "val")
  )
)

(define-method peek_int32_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int32_be")
  (return-type "gboolean")
  (parameters
    '("gint32*" "val")
  )
)

(define-method peek_uint64_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint64_le")
  (return-type "gboolean")
  (parameters
    '("guint64*" "val")
  )
)

(define-method peek_int64_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int64_le")
  (return-type "gboolean")
  (parameters
    '("gint64*" "val")
  )
)

(define-method peek_uint64_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_uint64_be")
  (return-type "gboolean")
  (parameters
    '("guint64*" "val")
  )
)

(define-method peek_int64_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_int64_be")
  (return-type "gboolean")
  (parameters
    '("gint64*" "val")
  )
)

(define-method get_float32_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_float32_le")
  (return-type "gboolean")
  (parameters
    '("gfloat*" "val")
  )
)

(define-method get_float32_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_float32_be")
  (return-type "gboolean")
  (parameters
    '("gfloat*" "val")
  )
)

(define-method get_float64_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_float64_le")
  (return-type "gboolean")
  (parameters
    '("gdouble*" "val")
  )
)

(define-method get_float64_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_float64_be")
  (return-type "gboolean")
  (parameters
    '("gdouble*" "val")
  )
)

(define-method peek_float32_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_float32_le")
  (return-type "gboolean")
  (parameters
    '("gfloat*" "val")
  )
)

(define-method peek_float32_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_float32_be")
  (return-type "gboolean")
  (parameters
    '("gfloat*" "val")
  )
)

(define-method peek_float64_le
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_float64_le")
  (return-type "gboolean")
  (parameters
    '("gdouble*" "val")
  )
)

(define-method peek_float64_be
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_float64_be")
  (return-type "gboolean")
  (parameters
    '("gdouble*" "val")
  )
)

(define-method dup_data
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_dup_data")
  (return-type "gboolean")
  (parameters
    '("guint" "size")
    '("guint8**" "val")
  )
)

(define-method get_data
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_data")
  (return-type "gboolean")
  (parameters
    '("guint" "size")
    '("const-guint8**" "val")
  )
)

(define-method peek_data
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_data")
  (return-type "gboolean")
  (parameters
    '("guint" "size")
    '("const-guint8**" "val")
  )
)

(define-method dup_string_utf8
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_dup_string_utf8")
  (return-type "gboolean")
  (parameters
    '("gchar**" "str")
  )
)

(define-method dup_string_utf16
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_dup_string_utf16")
  (return-type "gboolean")
  (parameters
    '("guint16**" "str")
  )
)

(define-method dup_string_utf32
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_dup_string_utf32")
  (return-type "gboolean")
  (parameters
    '("guint32**" "str")
  )
)

(define-method skip_string_utf8
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_skip_string_utf8")
  (return-type "gboolean")
)

(define-method skip_string_utf16
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_skip_string_utf16")
  (return-type "gboolean")
)

(define-method skip_string_utf32
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_skip_string_utf32")
  (return-type "gboolean")
)

(define-method get_string_utf8
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_get_string_utf8")
  (return-type "gboolean")
  (parameters
    '("const-gchar**" "str")
  )
)

(define-method peek_string_utf8
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_peek_string_utf8")
  (return-type "gboolean")
  (parameters
    '("const-gchar**" "str")
  )
)

(define-method masked_scan_uint32
  (of-object "GstByteReader")
  (c-name "gst_byte_reader_masked_scan_uint32")
  (return-type "guint")
  (parameters
    '("guint32" "mask")
    '("guint32" "pattern")
    '("guint" "offset")
    '("guint" "size")
  )
)



;; From gstbytewriter-docs.h

(define-method put_uint8_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint8_unchecked")
  (return-type "none")
  (parameters
    '("guint8" "val")
  )
)

(define-method put_uint16_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint16_be_unchecked")
  (return-type "none")
  (parameters
    '("guint16" "val")
  )
)

(define-method put_uint24_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint24_be_unchecked")
  (return-type "none")
  (parameters
    '("guint32" "val")
  )
)

(define-method put_uint32_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint32_be_unchecked")
  (return-type "none")
  (parameters
    '("guint32" "val")
  )
)

(define-method put_uint64_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint64_be_unchecked")
  (return-type "none")
  (parameters
    '("guint64" "val")
  )
)

(define-method put_uint16_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint16_le_unchecked")
  (return-type "none")
  (parameters
    '("guint16" "val")
  )
)

(define-method put_uint24_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint24_le_unchecked")
  (return-type "none")
  (parameters
    '("guint32" "val")
  )
)

(define-method put_uint32_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint32_le_unchecked")
  (return-type "none")
  (parameters
    '("guint32" "val")
  )
)

(define-method put_uint64_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint64_le_unchecked")
  (return-type "none")
  (parameters
    '("guint64" "val")
  )
)

(define-method put_int8_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int8_unchecked")
  (return-type "none")
  (parameters
    '("gint8" "val")
  )
)

(define-method put_int16_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int16_be_unchecked")
  (return-type "none")
  (parameters
    '("gint16" "val")
  )
)

(define-method put_int24_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int24_be_unchecked")
  (return-type "none")
  (parameters
    '("gint32" "val")
  )
)

(define-method put_int32_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int32_be_unchecked")
  (return-type "none")
  (parameters
    '("gint32" "val")
  )
)

(define-method put_int64_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int64_be_unchecked")
  (return-type "none")
  (parameters
    '("gint64" "val")
  )
)

(define-method put_int16_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int16_le_unchecked")
  (return-type "none")
  (parameters
    '("gint16" "val")
  )
)

(define-method put_int24_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int24_le_unchecked")
  (return-type "none")
  (parameters
    '("gint32" "val")
  )
)

(define-method put_int32_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int32_le_unchecked")
  (return-type "none")
  (parameters
    '("gint32" "val")
  )
)

(define-method put_int64_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int64_le_unchecked")
  (return-type "none")
  (parameters
    '("gint64" "val")
  )
)

(define-method put_float32_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_float32_be_unchecked")
  (return-type "none")
  (parameters
    '("gfloat" "val")
  )
)

(define-method put_float64_be_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_float64_be_unchecked")
  (return-type "none")
  (parameters
    '("gdouble" "val")
  )
)

(define-method put_float32_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_float32_le_unchecked")
  (return-type "none")
  (parameters
    '("gfloat" "val")
  )
)

(define-method put_float64_le_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_float64_le_unchecked")
  (return-type "none")
  (parameters
    '("gdouble" "val")
  )
)

(define-method put_data_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_data_unchecked")
  (return-type "none")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
  )
)

(define-method fill_unchecked
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_fill_unchecked")
  (return-type "none")
  (parameters
    '("guint8" "value")
    '("guint" "size")
  )
)



;; From gstbytewriter.h

(define-function gst_byte_writer_new
  (c-name "gst_byte_writer_new")
  (is-constructor-of "GstByteWriter")
  (return-type "GstByteWriter*")
)

(define-function gst_byte_writer_new_with_size
  (c-name "gst_byte_writer_new_with_size")
  (return-type "GstByteWriter*")
  (parameters
    '("guint" "size")
    '("gboolean" "fixed")
  )
)

(define-function gst_byte_writer_new_with_data
  (c-name "gst_byte_writer_new_with_data")
  (return-type "GstByteWriter*")
  (parameters
    '("guint8*" "data")
    '("guint" "size")
    '("gboolean" "initialized")
  )
)

(define-function gst_byte_writer_new_with_buffer
  (c-name "gst_byte_writer_new_with_buffer")
  (return-type "GstByteWriter*")
  (parameters
    '("GstBuffer*" "buffer")
    '("gboolean" "initialized")
  )
)

(define-method init
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_init")
  (return-type "none")
)

(define-method init_with_size
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_init_with_size")
  (return-type "none")
  (parameters
    '("guint" "size")
    '("gboolean" "fixed")
  )
)

(define-method init_with_data
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_init_with_data")
  (return-type "none")
  (parameters
    '("guint8*" "data")
    '("guint" "size")
    '("gboolean" "initialized")
  )
)

(define-method init_with_buffer
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_init_with_buffer")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
    '("gboolean" "initialized")
  )
)

(define-method free
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_free")
  (return-type "none")
)

(define-method free_and_get_data
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_free_and_get_data")
  (return-type "guint8*")
)

(define-method free_and_get_buffer
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_free_and_get_buffer")
  (return-type "GstBuffer*")
)

(define-method reset
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_reset")
  (return-type "none")
)

(define-method reset_and_get_data
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_reset_and_get_data")
  (return-type "guint8*")
)

(define-method reset_and_get_buffer
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_reset_and_get_buffer")
  (return-type "GstBuffer*")
)

(define-method ensure_free_space
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_ensure_free_space")
  (return-type "gboolean")
  (parameters
    '("guint" "size")
  )
)

(define-method put_uint8
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint8")
  (return-type "gboolean")
  (parameters
    '("guint8" "val")
  )
)

(define-method put_int8
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int8")
  (return-type "gboolean")
  (parameters
    '("gint8" "val")
  )
)

(define-method put_uint16_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint16_be")
  (return-type "gboolean")
  (parameters
    '("guint16" "val")
  )
)

(define-method put_uint16_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint16_le")
  (return-type "gboolean")
  (parameters
    '("guint16" "val")
  )
)

(define-method put_int16_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int16_be")
  (return-type "gboolean")
  (parameters
    '("gint16" "val")
  )
)

(define-method put_int16_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int16_le")
  (return-type "gboolean")
  (parameters
    '("gint16" "val")
  )
)

(define-method put_uint24_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint24_be")
  (return-type "gboolean")
  (parameters
    '("guint32" "val")
  )
)

(define-method put_uint24_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint24_le")
  (return-type "gboolean")
  (parameters
    '("guint32" "val")
  )
)

(define-method put_int24_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int24_be")
  (return-type "gboolean")
  (parameters
    '("gint32" "val")
  )
)

(define-method put_int24_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int24_le")
  (return-type "gboolean")
  (parameters
    '("gint32" "val")
  )
)

(define-method put_uint32_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint32_be")
  (return-type "gboolean")
  (parameters
    '("guint32" "val")
  )
)

(define-method put_uint32_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint32_le")
  (return-type "gboolean")
  (parameters
    '("guint32" "val")
  )
)

(define-method put_int32_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int32_be")
  (return-type "gboolean")
  (parameters
    '("gint32" "val")
  )
)

(define-method put_int32_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int32_le")
  (return-type "gboolean")
  (parameters
    '("gint32" "val")
  )
)

(define-method put_uint64_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint64_be")
  (return-type "gboolean")
  (parameters
    '("guint64" "val")
  )
)

(define-method put_uint64_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_uint64_le")
  (return-type "gboolean")
  (parameters
    '("guint64" "val")
  )
)

(define-method put_int64_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int64_be")
  (return-type "gboolean")
  (parameters
    '("gint64" "val")
  )
)

(define-method put_int64_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_int64_le")
  (return-type "gboolean")
  (parameters
    '("gint64" "val")
  )
)

(define-method put_float32_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_float32_be")
  (return-type "gboolean")
  (parameters
    '("gfloat" "val")
  )
)

(define-method put_float32_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_float32_le")
  (return-type "gboolean")
  (parameters
    '("gfloat" "val")
  )
)

(define-method put_float64_be
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_float64_be")
  (return-type "gboolean")
  (parameters
    '("gdouble" "val")
  )
)

(define-method put_float64_le
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_float64_le")
  (return-type "gboolean")
  (parameters
    '("gdouble" "val")
  )
)

(define-method put_data
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_data")
  (return-type "gboolean")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
  )
)

(define-method fill
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_fill")
  (return-type "gboolean")
  (parameters
    '("guint8" "value")
    '("guint" "size")
  )
)

(define-method put_string_utf8
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_string_utf8")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "data")
  )
)

(define-method put_string_utf16
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_string_utf16")
  (return-type "gboolean")
  (parameters
    '("const-guint16*" "data")
  )
)

(define-method put_string_utf32
  (of-object "GstByteWriter")
  (c-name "gst_byte_writer_put_string_utf32")
  (return-type "gboolean")
  (parameters
    '("const-guint32*" "data")
  )
)



;; From gstcollectpads.h

(define-function gst_collect_pads_get_type
  (c-name "gst_collect_pads_get_type")
  (return-type "GType")
)

(define-function gst_collect_pads_new
  (c-name "gst_collect_pads_new")
  (is-constructor-of "GstCollectPads")
  (return-type "GstCollectPads*")
)

(define-method set_function
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_set_function")
  (return-type "none")
  (parameters
    '("GstCollectPadsFunction" "func")
    '("gpointer" "user_data")
  )
)

(define-method set_clip_function
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_set_clip_function")
  (return-type "none")
  (parameters
    '("GstCollectPadsClipFunction" "clipfunc")
    '("gpointer" "user_data")
  )
)

(define-method add_pad
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_add_pad")
  (return-type "GstCollectData*")
  (parameters
    '("GstPad*" "pad")
    '("guint" "size")
  )
)

(define-method add_pad_full
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_add_pad_full")
  (return-type "GstCollectData*")
  (parameters
    '("GstPad*" "pad")
    '("guint" "size")
    '("GstCollectDataDestroyNotify" "destroy_notify")
  )
)

(define-method remove_pad
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_remove_pad")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "pad")
  )
)

(define-method is_active
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_is_active")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "pad")
  )
)

(define-method collect
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_collect")
  (return-type "GstFlowReturn")
)

(define-method collect_range
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_collect_range")
  (return-type "GstFlowReturn")
  (parameters
    '("guint64" "offset")
    '("guint" "length")
  )
)

(define-method start
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_start")
  (return-type "none")
)

(define-method stop
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_stop")
  (return-type "none")
)

(define-method set_flushing
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_set_flushing")
  (return-type "none")
  (parameters
    '("gboolean" "flushing")
  )
)

(define-method peek
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_peek")
  (return-type "GstBuffer*")
  (parameters
    '("GstCollectData*" "data")
  )
)

(define-method pop
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_pop")
  (return-type "GstBuffer*")
  (parameters
    '("GstCollectData*" "data")
  )
)

(define-method available
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_available")
  (return-type "guint")
)

(define-method read
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_read")
  (return-type "guint")
  (parameters
    '("GstCollectData*" "data")
    '("guint8**" "bytes")
    '("guint" "size")
  )
)

(define-method read_buffer
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_read_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("GstCollectData*" "data")
    '("guint" "size")
  )
)

(define-method take_buffer
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_take_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("GstCollectData*" "data")
    '("guint" "size")
  )
)

(define-method flush
  (of-object "GstCollectPads")
  (c-name "gst_collect_pads_flush")
  (return-type "guint")
  (parameters
    '("GstCollectData*" "data")
    '("guint" "size")
  )
)



;; From gstdataqueue.h

(define-function gst_data_queue_get_type
  (c-name "gst_data_queue_get_type")
  (return-type "GType")
)

(define-function gst_data_queue_new
  (c-name "gst_data_queue_new")
  (is-constructor-of "GstDataQueue")
  (return-type "GstDataQueue*")
  (parameters
    '("GstDataQueueCheckFullFunction" "checkfull")
    '("gpointer" "checkdata")
  )
)

(define-function gst_data_queue_new_full
  (c-name "gst_data_queue_new_full")
  (return-type "GstDataQueue*")
  (parameters
    '("GstDataQueueCheckFullFunction" "checkfull")
    '("GstDataQueueFullCallback" "fullcallback")
    '("GstDataQueueEmptyCallback" "emptycallback")
    '("gpointer" "checkdata")
  )
)

(define-method push
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_push")
  (return-type "gboolean")
  (parameters
    '("GstDataQueueItem*" "item")
  )
)

(define-method pop
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_pop")
  (return-type "gboolean")
  (parameters
    '("GstDataQueueItem**" "item")
  )
)

(define-method flush
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_flush")
  (return-type "none")
)

(define-method set_flushing
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_set_flushing")
  (return-type "none")
  (parameters
    '("gboolean" "flushing")
  )
)

(define-method drop_head
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_drop_head")
  (return-type "gboolean")
  (parameters
    '("GType" "type")
  )
)

(define-method is_full
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_is_full")
  (return-type "gboolean")
)

(define-method is_empty
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_is_empty")
  (return-type "gboolean")
)

(define-method get_level
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_get_level")
  (return-type "none")
  (parameters
    '("GstDataQueueSize*" "level")
  )
)

(define-method limits_changed
  (of-object "GstDataQueue")
  (c-name "gst_data_queue_limits_changed")
  (return-type "none")
)



;; From gstpushsrc.h

(define-function gst_push_src_get_type
  (c-name "gst_push_src_get_type")
  (return-type "GType")
)



;; From gsttypefindhelper.h

(define-function gst_type_find_helper
  (c-name "gst_type_find_helper")
  (return-type "GstCaps*")
  (parameters
    '("GstPad*" "src")
    '("guint64" "size")
  )
)

(define-function gst_type_find_helper_for_buffer
  (c-name "gst_type_find_helper_for_buffer")
  (return-type "GstCaps*")
  (parameters
    '("GstObject*" "obj")
    '("GstBuffer*" "buf")
    '("GstTypeFindProbability*" "prob")
  )
)

(define-function gst_type_find_helper_for_extension
  (c-name "gst_type_find_helper_for_extension")
  (return-type "GstCaps*")
  (parameters
    '("GstObject*" "obj")
    '("const-gchar*" "extension")
  )
)

(define-function gst_type_find_helper_get_range
  (c-name "gst_type_find_helper_get_range")
  (return-type "GstCaps*")
  (parameters
    '("GstObject*" "obj")
    '("GstTypeFindHelperGetRangeFunction" "func")
    '("guint64" "size")
    '("GstTypeFindProbability*" "prob")
  )
)

(define-function gst_type_find_helper_get_range_ext
  (c-name "gst_type_find_helper_get_range_ext")
  (return-type "GstCaps*")
  (parameters
    '("GstObject*" "obj")
    '("GstTypeFindHelperGetRangeFunction" "func")
    '("guint64" "size")
    '("const-gchar*" "extension")
    '("GstTypeFindProbability*" "prob")
  )
)



;; From gstcontroller.h

(define-function gst_controller_get_type
  (c-name "gst_controller_get_type")
  (return-type "GType")
)

(define-function gst_controller_new_valist
  (c-name "gst_controller_new_valist")
  (return-type "GstController*")
  (parameters
    '("GObject*" "object")
    '("va_list" "var_args")
  )
)

(define-function gst_controller_new_list
  (c-name "gst_controller_new_list")
  (return-type "GstController*")
  (parameters
    '("GObject*" "object")
    '("GList*" "list")
  )
)

(define-function gst_controller_new
  (c-name "gst_controller_new")
  (is-constructor-of "GstController")
  (return-type "GstController*")
  (parameters
    '("GObject*" "object")
  )
  (varargs #t)
)

(define-method remove_properties_valist
  (of-object "GstController")
  (c-name "gst_controller_remove_properties_valist")
  (return-type "gboolean")
  (parameters
    '("va_list" "var_args")
  )
)

(define-method remove_properties_list
  (of-object "GstController")
  (c-name "gst_controller_remove_properties_list")
  (return-type "gboolean")
  (parameters
    '("GList*" "list")
  )
)

(define-method remove_properties
  (of-object "GstController")
  (c-name "gst_controller_remove_properties")
  (return-type "gboolean")
  (parameters
  )
  (varargs #t)
)

(define-method set_disabled
  (of-object "GstController")
  (c-name "gst_controller_set_disabled")
  (return-type "none")
  (parameters
    '("gboolean" "disabled")
  )
)

(define-method set_property_disabled
  (of-object "GstController")
  (c-name "gst_controller_set_property_disabled")
  (return-type "none")
  (parameters
    '("const-gchar*" "property_name")
    '("gboolean" "disabled")
  )
)

(define-method set_control_source
  (of-object "GstController")
  (c-name "gst_controller_set_control_source")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "property_name")
    '("GstControlSource*" "csource")
  )
)

(define-method get_control_source
  (of-object "GstController")
  (c-name "gst_controller_get_control_source")
  (return-type "GstControlSource*")
  (parameters
    '("const-gchar*" "property_name")
  )
)

(define-method suggest_next_sync
  (of-object "GstController")
  (c-name "gst_controller_suggest_next_sync")
  (return-type "GstClockTime")
)

(define-method sync_values
  (of-object "GstController")
  (c-name "gst_controller_sync_values")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "timestamp")
  )
)

(define-method get
  (of-object "GstController")
  (c-name "gst_controller_get")
  (return-type "GValue*")
  (parameters
    '("const-gchar*" "property_name")
    '("GstClockTime" "timestamp")
  )
)

(define-method get_value_arrays
  (of-object "GstController")
  (c-name "gst_controller_get_value_arrays")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "timestamp")
    '("GSList*" "value_arrays")
  )
)

(define-method get_value_array
  (of-object "GstController")
  (c-name "gst_controller_get_value_array")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "timestamp")
    '("GstValueArray*" "value_array")
  )
)

(define-function gst_object_control_properties
  (c-name "gst_object_control_properties")
  (return-type "GstController*")
  (parameters
    '("GObject*" "object")
  )
  (varargs #t)
)

(define-function gst_object_uncontrol_properties
  (c-name "gst_object_uncontrol_properties")
  (return-type "gboolean")
  (parameters
    '("GObject*" "object")
  )
  (varargs #t)
)

(define-function gst_object_get_controller
  (c-name "gst_object_get_controller")
  (return-type "GstController*")
  (parameters
    '("GObject*" "object")
  )
)

(define-function gst_object_set_controller
  (c-name "gst_object_set_controller")
  (return-type "gboolean")
  (parameters
    '("GObject*" "object")
    '("GstController*" "controller")
  )
)

(define-function gst_object_suggest_next_sync
  (c-name "gst_object_suggest_next_sync")
  (return-type "GstClockTime")
  (parameters
    '("GObject*" "object")
  )
)

(define-function gst_object_sync_values
  (c-name "gst_object_sync_values")
  (return-type "gboolean")
  (parameters
    '("GObject*" "object")
    '("GstClockTime" "timestamp")
  )
)

(define-function gst_object_set_control_source
  (c-name "gst_object_set_control_source")
  (return-type "gboolean")
  (parameters
    '("GObject*" "object")
    '("const-gchar*" "property_name")
    '("GstControlSource*" "csource")
  )
)

(define-function gst_object_get_control_source
  (c-name "gst_object_get_control_source")
  (return-type "GstControlSource*")
  (parameters
    '("GObject*" "object")
    '("const-gchar*" "property_name")
  )
)

(define-function gst_object_get_value_arrays
  (c-name "gst_object_get_value_arrays")
  (return-type "gboolean")
  (parameters
    '("GObject*" "object")
    '("GstClockTime" "timestamp")
    '("GSList*" "value_arrays")
  )
)

(define-function gst_object_get_value_array
  (c-name "gst_object_get_value_array")
  (return-type "gboolean")
  (parameters
    '("GObject*" "object")
    '("GstClockTime" "timestamp")
    '("GstValueArray*" "value_array")
  )
)

(define-function gst_object_get_control_rate
  (c-name "gst_object_get_control_rate")
  (return-type "GstClockTime")
  (parameters
    '("GObject*" "object")
  )
)

(define-function gst_object_set_control_rate
  (c-name "gst_object_set_control_rate")
  (return-type "none")
  (parameters
    '("GObject*" "object")
    '("GstClockTime" "control_rate")
  )
)

(define-function gst_controller_init
  (c-name "gst_controller_init")
  (return-type "gboolean")
  (parameters
    '("int*" "argc")
    '("char***" "argv")
  )
)

(define-method set
  (of-object "GstController")
  (c-name "gst_controller_set")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "property_name")
    '("GstClockTime" "timestamp")
    '("GValue*" "value")
  )
)

(define-method set_from_list
  (of-object "GstController")
  (c-name "gst_controller_set_from_list")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "property_name")
    '("GSList*" "timedvalues")
  )
)

(define-method unset
  (of-object "GstController")
  (c-name "gst_controller_unset")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "property_name")
    '("GstClockTime" "timestamp")
  )
)

(define-method unset_all
  (of-object "GstController")
  (c-name "gst_controller_unset_all")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "property_name")
  )
)

(define-method get_all
  (of-object "GstController")
  (c-name "gst_controller_get_all")
  (return-type "const-GList*")
  (parameters
    '("const-gchar*" "property_name")
  )
)

(define-method set_interpolation_mode
  (of-object "GstController")
  (c-name "gst_controller_set_interpolation_mode")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "property_name")
    '("GstInterpolateMode" "mode")
  )
)



;; From gstcontrollerprivate.h



;; From gstcontrolsource.h

(define-function gst_control_source_get_type
  (c-name "gst_control_source_get_type")
  (return-type "GType")
)

(define-method get_value
  (of-object "GstControlSource")
  (c-name "gst_control_source_get_value")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "timestamp")
    '("GValue*" "value")
  )
)

(define-method get_value_array
  (of-object "GstControlSource")
  (c-name "gst_control_source_get_value_array")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "timestamp")
    '("GstValueArray*" "value_array")
  )
)

(define-method bind
  (of-object "GstControlSource")
  (c-name "gst_control_source_bind")
  (return-type "gboolean")
  (parameters
    '("GParamSpec*" "pspec")
  )
)



;; From gstinterpolationcontrolsource.h

(define-function gst_interpolation_control_source_get_type
  (c-name "gst_interpolation_control_source_get_type")
  (return-type "GType")
)

(define-function gst_interpolation_control_source_new
  (c-name "gst_interpolation_control_source_new")
  (is-constructor-of "GstInterpolationControlSource")
  (return-type "GstInterpolationControlSource*")
)

(define-method set_interpolation_mode
  (of-object "GstInterpolationControlSource")
  (c-name "gst_interpolation_control_source_set_interpolation_mode")
  (return-type "gboolean")
  (parameters
    '("GstInterpolateMode" "mode")
  )
)

(define-method set
  (of-object "GstInterpolationControlSource")
  (c-name "gst_interpolation_control_source_set")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "timestamp")
    '("const-GValue*" "value")
  )
)

(define-method set_from_list
  (of-object "GstInterpolationControlSource")
  (c-name "gst_interpolation_control_source_set_from_list")
  (return-type "gboolean")
  (parameters
    '("const-GSList*" "timedvalues")
  )
)

(define-method unset
  (of-object "GstInterpolationControlSource")
  (c-name "gst_interpolation_control_source_unset")
  (return-type "gboolean")
  (parameters
    '("GstClockTime" "timestamp")
  )
)

(define-method unset_all
  (of-object "GstInterpolationControlSource")
  (c-name "gst_interpolation_control_source_unset_all")
  (return-type "none")
)

(define-method get_all
  (of-object "GstInterpolationControlSource")
  (c-name "gst_interpolation_control_source_get_all")
  (return-type "GList*")
)

(define-method get_count
  (of-object "GstInterpolationControlSource")
  (c-name "gst_interpolation_control_source_get_count")
  (return-type "gint")
)



;; From gstinterpolationcontrolsourceprivate.h



;; From gstlfocontrolsource.h

(define-function gst_lfo_control_source_get_type
  (c-name "gst_lfo_control_source_get_type")
  (return-type "GType")
)

(define-function gst_lfo_waveform_get_type
  (c-name "gst_lfo_waveform_get_type")
  (return-type "GType")
)

(define-function gst_lfo_control_source_new
  (c-name "gst_lfo_control_source_new")
  (is-constructor-of "GstLfoControlSource")
  (return-type "GstLFOControlSource*")
)



;; From gstlfocontrolsourceprivate.h



;; From dataprotocol.h

(define-function gst_dp_version_get_type
  (c-name "gst_dp_version_get_type")
  (return-type "GType")
)

(define-function gst_dp_init
  (c-name "gst_dp_init")
  (return-type "none")
)

(define-function gst_dp_packetizer_new
  (c-name "gst_dp_packetizer_new")
  (is-constructor-of "GstDpPacketizer")
  (return-type "GstDPPacketizer*")
  (parameters
    '("GstDPVersion" "version")
  )
)

(define-method free
  (of-object "GstDPPacketizer")
  (c-name "gst_dp_packetizer_free")
  (return-type "none")
)

(define-function gst_dp_crc
  (c-name "gst_dp_crc")
  (return-type "guint16")
  (parameters
    '("const-guint8*" "buffer")
    '("guint" "length")
  )
)

(define-function gst_dp_header_payload_length
  (c-name "gst_dp_header_payload_length")
  (return-type "guint32")
  (parameters
    '("const-guint8*" "header")
  )
)

(define-function gst_dp_header_payload_type
  (c-name "gst_dp_header_payload_type")
  (return-type "GstDPPayloadType")
  (parameters
    '("const-guint8*" "header")
  )
)

(define-function gst_dp_header_from_buffer
  (c-name "gst_dp_header_from_buffer")
  (return-type "gboolean")
  (parameters
    '("const-GstBuffer*" "buffer")
    '("GstDPHeaderFlag" "flags")
    '("guint*" "length")
    '("guint8**" "header")
  )
)

(define-function gst_dp_packet_from_caps
  (c-name "gst_dp_packet_from_caps")
  (return-type "gboolean")
  (parameters
    '("const-GstCaps*" "caps")
    '("GstDPHeaderFlag" "flags")
    '("guint*" "length")
    '("guint8**" "header")
    '("guint8**" "payload")
  )
)

(define-function gst_dp_packet_from_event
  (c-name "gst_dp_packet_from_event")
  (return-type "gboolean")
  (parameters
    '("const-GstEvent*" "event")
    '("GstDPHeaderFlag" "flags")
    '("guint*" "length")
    '("guint8**" "header")
    '("guint8**" "payload")
  )
)

(define-function gst_dp_buffer_from_header
  (c-name "gst_dp_buffer_from_header")
  (return-type "GstBuffer*")
  (parameters
    '("guint" "header_length")
    '("const-guint8*" "header")
  )
)

(define-function gst_dp_caps_from_packet
  (c-name "gst_dp_caps_from_packet")
  (return-type "GstCaps*")
  (parameters
    '("guint" "header_length")
    '("const-guint8*" "header")
    '("const-guint8*" "payload")
  )
)

(define-function gst_dp_event_from_packet
  (c-name "gst_dp_event_from_packet")
  (return-type "GstEvent*")
  (parameters
    '("guint" "header_length")
    '("const-guint8*" "header")
    '("const-guint8*" "payload")
  )
)

(define-function gst_dp_validate_header
  (c-name "gst_dp_validate_header")
  (return-type "gboolean")
  (parameters
    '("guint" "header_length")
    '("const-guint8*" "header")
  )
)

(define-function gst_dp_validate_payload
  (c-name "gst_dp_validate_payload")
  (return-type "gboolean")
  (parameters
    '("guint" "header_length")
    '("const-guint8*" "header")
    '("const-guint8*" "payload")
  )
)

(define-function gst_dp_validate_packet
  (c-name "gst_dp_validate_packet")
  (return-type "gboolean")
  (parameters
    '("guint" "header_length")
    '("const-guint8*" "header")
    '("const-guint8*" "payload")
  )
)



;; From dp-private.h

(define-function gst_dp_dump_byte_array
  (c-name "gst_dp_dump_byte_array")
  (return-type "none")
  (parameters
    '("guint8*" "array")
    '("guint" "length")
  )
)



;; From gstnetclientclock.h

(define-function gst_net_client_clock_get_type
  (c-name "gst_net_client_clock_get_type")
  (return-type "GType")
)

(define-function gst_net_client_clock_new
  (c-name "gst_net_client_clock_new")
  (is-constructor-of "GstNetClientClock")
  (return-type "GstClock*")
  (parameters
    '("gchar*" "name")
    '("const-gchar*" "remote_address")
    '("gint" "remote_port")
    '("GstClockTime" "base_time")
  )
)



;; From gstnet.h



;; From gstnettimepacket.h

(define-function gst_net_time_packet_new
  (c-name "gst_net_time_packet_new")
  (is-constructor-of "GstNetTimePacket")
  (return-type "GstNetTimePacket*")
  (parameters
    '("const-guint8*" "buffer")
  )
)

(define-method serialize
  (of-object "GstNetTimePacket")
  (c-name "gst_net_time_packet_serialize")
  (return-type "guint8*")
)

(define-function gst_net_time_packet_receive
  (c-name "gst_net_time_packet_receive")
  (return-type "GstNetTimePacket*")
  (parameters
    '("gint" "fd")
    '("struct-sockaddr*" "addr")
    '("socklen_t*" "len")
  )
)

(define-method send
  (of-object "GstNetTimePacket")
  (c-name "gst_net_time_packet_send")
  (return-type "gint")
  (parameters
    '("gint" "fd")
    '("struct-sockaddr*" "addr")
    '("socklen_t" "len")
  )
)



;; From gstnettimeprovider.h

(define-function gst_net_time_provider_get_type
  (c-name "gst_net_time_provider_get_type")
  (return-type "GType")
)

(define-function gst_net_time_provider_new
  (c-name "gst_net_time_provider_new")
  (is-constructor-of "GstNetTimeProvider")
  (return-type "GstNetTimeProvider*")
  (parameters
    '("GstClock*" "clock")
    '("const-gchar*" "address")
    '("gint" "port")
  )
)



;; From gstbufferstraw.h

(define-function gst_buffer_straw_start_pipeline
  (c-name "gst_buffer_straw_start_pipeline")
  (return-type "none")
  (parameters
    '("GstElement*" "bin")
    '("GstPad*" "pad")
  )
)

(define-function gst_buffer_straw_get_buffer
  (c-name "gst_buffer_straw_get_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("GstElement*" "bin")
    '("GstPad*" "pad")
  )
)

(define-function gst_buffer_straw_stop_pipeline
  (c-name "gst_buffer_straw_stop_pipeline")
  (return-type "none")
  (parameters
    '("GstElement*" "bin")
    '("GstPad*" "pad")
  )
)



;; From gstcheck.h

(define-function gst_check_init
  (c-name "gst_check_init")
  (return-type "none")
  (parameters
    '("int*" "argc")
    '("char**[]" "argv")
  )
)

(define-function gst_check_chain_func
  (c-name "gst_check_chain_func")
  (return-type "GstFlowReturn")
  (parameters
    '("GstPad*" "pad")
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_check_message_error
  (c-name "gst_check_message_error")
  (return-type "none")
  (parameters
    '("GstMessage*" "message")
    '("GstMessageType" "type")
    '("GQuark" "domain")
    '("gint" "code")
  )
)

(define-function gst_check_setup_element
  (c-name "gst_check_setup_element")
  (return-type "GstElement*")
  (parameters
    '("const-gchar*" "factory")
  )
)

(define-function gst_check_teardown_element
  (c-name "gst_check_teardown_element")
  (return-type "none")
  (parameters
    '("GstElement*" "element")
  )
)

(define-function gst_check_setup_src_pad
  (c-name "gst_check_setup_src_pad")
  (return-type "GstPad*")
  (parameters
    '("GstElement*" "element")
    '("GstStaticPadTemplate*" "tmpl")
    '("GstCaps*" "caps")
  )
)

(define-function gst_check_setup_src_pad_by_name
  (c-name "gst_check_setup_src_pad_by_name")
  (return-type "GstPad*")
  (parameters
    '("GstElement*" "element")
    '("GstStaticPadTemplate*" "tmpl")
    '("const-gchar*" "name")
  )
)

(define-function gst_check_setup_sink_pad_by_name
  (c-name "gst_check_setup_sink_pad_by_name")
  (return-type "GstPad*")
  (parameters
    '("GstElement*" "element")
    '("GstStaticPadTemplate*" "tmpl")
    '("const-gchar*" "name")
  )
)

(define-function gst_check_teardown_pad_by_name
  (c-name "gst_check_teardown_pad_by_name")
  (return-type "none")
  (parameters
    '("GstElement*" "element")
    '("const-gchar*" "name")
  )
)

(define-function gst_check_teardown_src_pad
  (c-name "gst_check_teardown_src_pad")
  (return-type "none")
  (parameters
    '("GstElement*" "element")
  )
)

(define-function gst_check_drop_buffers
  (c-name "gst_check_drop_buffers")
  (return-type "none")
)

(define-function gst_check_caps_equal
  (c-name "gst_check_caps_equal")
  (return-type "none")
  (parameters
    '("GstCaps*" "caps1")
    '("GstCaps*" "caps2")
  )
)

(define-function gst_check_element_push_buffer_list
  (c-name "gst_check_element_push_buffer_list")
  (return-type "none")
  (parameters
    '("const-gchar*" "element_name")
    '("GList*" "buffer_in")
    '("GList*" "buffer_out")
    '("GstFlowReturn" "last_flow_return")
  )
)

(define-function gst_check_element_push_buffer
  (c-name "gst_check_element_push_buffer")
  (return-type "none")
  (parameters
    '("const-gchar*" "element_name")
    '("GstBuffer*" "buffer_in")
    '("GstBuffer*" "buffer_out")
  )
)

(define-function gst_check_setup_sink_pad
  (c-name "gst_check_setup_sink_pad")
  (return-type "GstPad*")
  (parameters
    '("GstElement*" "element")
    '("GstStaticPadTemplate*" "tmpl")
    '("GstCaps*" "caps")
  )
)

(define-function gst_check_teardown_sink_pad
  (c-name "gst_check_teardown_sink_pad")
  (return-type "none")
  (parameters
    '("GstElement*" "element")
  )
)

(define-function gst_check_abi_list
  (c-name "gst_check_abi_list")
  (return-type "none")
  (parameters
    '("GstCheckABIStruct[]" "list")
    '("gboolean" "have_abi_sizes")
  )
)

(define-function gst_check_run_suite
  (c-name "gst_check_run_suite")
  (return-type "gint")
  (parameters
    '("Suite*" "suite")
    '("const-gchar*" "name")
    '("const-gchar*" "fname")
  )
)



;; From gstconsistencychecker.h

(define-function gst_consistency_checker_new
  (c-name "gst_consistency_checker_new")
  (is-constructor-of "GstConsistencyChecker")
  (return-type "GstStreamConsistency*")
  (parameters
    '("GstPad*" "pad")
  )
)

(define-function gst_consistency_checker_reset
  (c-name "gst_consistency_checker_reset")
  (return-type "none")
  (parameters
    '("GstStreamConsistency*" "consist")
  )
)

(define-function gst_consistency_checker_free
  (c-name "gst_consistency_checker_free")
  (return-type "none")
  (parameters
    '("GstStreamConsistency*" "consist")
  )
)



;; From internal-check.h


;; -*- scheme -*-
; object definitions ...
(define-object AppBuffer
  (in-module "Gst")
  (parent "GstBuffer")
  (c-name "GstAppBuffer")
  (gtype-id "GST_TYPE_APP_BUFFER")
)

(define-object AppSink
  (in-module "Gst")
  (parent "GstBaseSink")
  (c-name "GstAppSink")
  (gtype-id "GST_TYPE_APP_SINK")
)

(define-object AppSrc
  (in-module "Gst")
  (parent "GstBaseSrc")
  (c-name "GstAppSrc")
  (gtype-id "GST_TYPE_APP_SRC")
)

(define-object AudioClock
  (in-module "Gst")
  (parent "GstSystemClock")
  (c-name "GstAudioClock")
  (gtype-id "GST_TYPE_AUDIO_CLOCK")
)

(define-object AudioFilter
  (in-module "Gst")
  (parent "GstBaseTransform")
  (c-name "GstAudioFilter")
  (gtype-id "GST_TYPE_AUDIO_FILTER")
)

(define-object BaseAudioSink
  (in-module "Gst")
  (parent "GstBaseSink")
  (c-name "GstBaseAudioSink")
  (gtype-id "GST_TYPE_BASE_AUDIO_SINK")
)

(define-object AudioSink
  (in-module "Gst")
  (parent "GstBaseAudioSink")
  (c-name "GstAudioSink")
  (gtype-id "GST_TYPE_AUDIO_SINK")
)

(define-object BaseAudioSrc
  (in-module "Gst")
  (parent "GstPushSrc")
  (c-name "GstBaseAudioSrc")
  (gtype-id "GST_TYPE_BASE_AUDIO_SRC")
)

(define-object AudioSrc
  (in-module "Gst")
  (parent "GstBaseAudioSrc")
  (c-name "GstAudioSrc")
  (gtype-id "GST_TYPE_AUDIO_SRC")
)

(define-object BaseRTPDepayload
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstBaseRTPDepayload")
  (gtype-id "GST_TYPE_BASE_RTP_DEPAYLOAD")
)

(define-object BaseRTPPayload
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstBaseRTPPayload")
  (gtype-id "GST_TYPE_BASE_RTP_PAYLOAD")
)

(define-object BaseRTPAudioPayload
  (in-module "Gst")
  (parent "GstBaseRTPPayload")
  (c-name "GstBaseRTPAudioPayload")
  (gtype-id "GST_TYPE_BASE_RTP_AUDIO_PAYLOAD")
)

(define-object CddaBaseSrc
  (in-module "Gst")
  (parent "GstPushSrc")
  (c-name "GstCddaBaseSrc")
  (gtype-id "GST_TYPE_CDDA_BASE_SRC")
)

(define-object ColorBalance
  (in-module "Gst")
  (c-name "GstColorBalance")
  (gtype-id "GST_TYPE_COLOR_BALANCE")
)

(define-object ColorBalanceChannel
  (in-module "Gst")
  (parent "GObject")
  (c-name "GstColorBalanceChannel")
  (gtype-id "GST_TYPE_COLOR_BALANCE_CHANNEL")
)

(define-object Discoverer
  (in-module "Gst")
  (parent "GObject")
  (c-name "GstDiscoverer")
  (gtype-id "GST_TYPE_DISCOVERER")
)

(define-object Mixer
  (in-module "Gst")
  (c-name "GstMixer")
  (gtype-id "GST_TYPE_MIXER")
)

(define-object MixerTrack
  (in-module "Gst")
  (parent "GObject")
  (c-name "GstMixerTrack")
  (gtype-id "GST_TYPE_MIXER_TRACK")
)

(define-object MixerOptions
  (in-module "Gst")
  (parent "GstMixerTrack")
  (c-name "GstMixerOptions")
  (gtype-id "GST_TYPE_MIXER_OPTIONS")
)

(define-object NetBuffer
  (in-module "Gst")
  (parent "GstBuffer")
  (c-name "GstNetBuffer")
  (gtype-id "GST_TYPE_NET_BUFFER")
)

(define-object RingBuffer
  (in-module "Gst")
  (parent "GstObject")
  (c-name "GstRingBuffer")
  (gtype-id "GST_TYPE_RING_BUFFER")
)

(define-object TagDemux
  (in-module "Gst")
  (parent "GstElement")
  (c-name "GstTagDemux")
  (gtype-id "GST_TYPE_TAG_DEMUX")
)

(define-object Tuner
  (in-module "Gst")
  (c-name "GstTuner")
  (gtype-id "GST_TYPE_TUNER")
)

(define-object TunerChannel
  (in-module "Gst")
  (parent "GObject")
  (c-name "GstTunerChannel")
  (gtype-id "GST_TYPE_TUNER_CHANNEL")
)

(define-object TunerNorm
  (in-module "Gst")
  (parent "GObject")
  (c-name "GstTunerNorm")
  (gtype-id "GST_TYPE_TUNER_NORM")
)

(define-object VideoFilter
  (in-module "Gst")
  (parent "GstBaseTransform")
  (c-name "GstVideoFilter")
  (gtype-id "GST_TYPE_VIDEO_FILTER")
)

(define-object VideoSink
  (in-module "Gst")
  (parent "GstBaseSink")
  (c-name "GstVideoSink")
  (gtype-id "GST_TYPE_VIDEO_SINK")
)

(define-object XOverlay
  (in-module "Gst")
  (c-name "GstXOverlay")
  (gtype-id "GST_TYPE_XOVERLAY")
)

;; Enumerations and flags ...

(define-enum AppStreamType
  (in-module "Gst")
  (c-name "GstAppStreamType")
  (gtype-id "GST_TYPE_APP_STREAM_TYPE")
  (values
    '("stream" "GST_APP_STREAM_TYPE_STREAM")
    '("seekable" "GST_APP_STREAM_TYPE_SEEKABLE")
    '("random-access" "GST_APP_STREAM_TYPE_RANDOM_ACCESS")
  )
)

(define-flags AudioFieldFlag
  (in-module "Gst")
  (c-name "GstAudioFieldFlag")
  (gtype-id "GST_TYPE_AUDIO_FIELD_FLAG")
  (values
    '("rate" "GST_AUDIO_FIELD_RATE")
    '("channels" "GST_AUDIO_FIELD_CHANNELS")
    '("endianness" "GST_AUDIO_FIELD_ENDIANNESS")
    '("width" "GST_AUDIO_FIELD_WIDTH")
    '("depth" "GST_AUDIO_FIELD_DEPTH")
    '("signed" "GST_AUDIO_FIELD_SIGNED")
  )
)

(define-enum BaseAudioSinkSlaveMethod
  (in-module "Gst")
  (c-name "GstBaseAudioSinkSlaveMethod")
  (gtype-id "GST_TYPE_BASE_AUDIO_SINK_SLAVE_METHOD")
  (values
    '("resample" "GST_BASE_AUDIO_SINK_SLAVE_RESAMPLE")
    '("skew" "GST_BASE_AUDIO_SINK_SLAVE_SKEW")
    '("none" "GST_BASE_AUDIO_SINK_SLAVE_NONE")
  )
)

(define-enum BaseAudioSrcSlaveMethod
  (in-module "Gst")
  (c-name "GstBaseAudioSrcSlaveMethod")
  (gtype-id "GST_TYPE_BASE_AUDIO_SRC_SLAVE_METHOD")
  (values
    '("resample" "GST_BASE_AUDIO_SRC_SLAVE_RESAMPLE")
    '("retimestamp" "GST_BASE_AUDIO_SRC_SLAVE_RETIMESTAMP")
    '("skew" "GST_BASE_AUDIO_SRC_SLAVE_SKEW")
    '("none" "GST_BASE_AUDIO_SRC_SLAVE_NONE")
  )
)

(define-enum RingBufferState
  (in-module "Gst")
  (c-name "GstRingBufferState")
  (gtype-id "GST_TYPE_RING_BUFFER_STATE")
  (values
    '("stopped" "GST_RING_BUFFER_STATE_STOPPED")
    '("paused" "GST_RING_BUFFER_STATE_PAUSED")
    '("started" "GST_RING_BUFFER_STATE_STARTED")
  )
)

(define-enum RingBufferSegState
  (in-module "Gst")
  (c-name "GstRingBufferSegState")
  (gtype-id "GST_TYPE_RING_BUFFER_SEG_STATE")
  (values
    '("invalid" "GST_SEGSTATE_INVALID")
    '("empty" "GST_SEGSTATE_EMPTY")
    '("filled" "GST_SEGSTATE_FILLED")
    '("partial" "GST_SEGSTATE_PARTIAL")
  )
)

(define-enum BufferFormatType
  (in-module "Gst")
  (c-name "GstBufferFormatType")
  (gtype-id "GST_TYPE_BUFFER_FORMAT_TYPE")
  (values
    '("linear" "GST_BUFTYPE_LINEAR")
    '("float" "GST_BUFTYPE_FLOAT")
    '("mu-law" "GST_BUFTYPE_MU_LAW")
    '("a-law" "GST_BUFTYPE_A_LAW")
    '("ima-adpcm" "GST_BUFTYPE_IMA_ADPCM")
    '("mpeg" "GST_BUFTYPE_MPEG")
    '("gsm" "GST_BUFTYPE_GSM")
    '("iec958" "GST_BUFTYPE_IEC958")
    '("ac3" "GST_BUFTYPE_AC3")
    '("eac3" "GST_BUFTYPE_EAC3")
    '("dts" "GST_BUFTYPE_DTS")
  )
)

(define-enum BufferFormat
  (in-module "Gst")
  (c-name "GstBufferFormat")
  (gtype-id "GST_TYPE_BUFFER_FORMAT")
  (values
    '("unknown" "GST_UNKNOWN")
    '("s8" "GST_S8")
    '("u8" "GST_U8")
    '("s16-le" "GST_S16_LE")
    '("s16-be" "GST_S16_BE")
    '("u16-le" "GST_U16_LE")
    '("u16-be" "GST_U16_BE")
    '("s24-le" "GST_S24_LE")
    '("s24-be" "GST_S24_BE")
    '("u24-le" "GST_U24_LE")
    '("u24-be" "GST_U24_BE")
    '("s32-le" "GST_S32_LE")
    '("s32-be" "GST_S32_BE")
    '("u32-le" "GST_U32_LE")
    '("u32-be" "GST_U32_BE")
    '("s24-3le" "GST_S24_3LE")
    '("s24-3be" "GST_S24_3BE")
    '("u24-3le" "GST_U24_3LE")
    '("u24-3be" "GST_U24_3BE")
    '("s20-3le" "GST_S20_3LE")
    '("s20-3be" "GST_S20_3BE")
    '("u20-3le" "GST_U20_3LE")
    '("u20-3be" "GST_U20_3BE")
    '("s18-3le" "GST_S18_3LE")
    '("s18-3be" "GST_S18_3BE")
    '("u18-3le" "GST_U18_3LE")
    '("u18-3be" "GST_U18_3BE")
    '("float32-le" "GST_FLOAT32_LE")
    '("float32-be" "GST_FLOAT32_BE")
    '("float64-le" "GST_FLOAT64_LE")
    '("float64-be" "GST_FLOAT64_BE")
    '("mu-law" "GST_MU_LAW")
    '("a-law" "GST_A_LAW")
    '("ima-adpcm" "GST_IMA_ADPCM")
    '("mpeg" "GST_MPEG")
    '("gsm" "GST_GSM")
    '("iec958" "GST_IEC958")
    '("ac3" "GST_AC3")
    '("eac3" "GST_EAC3")
    '("dts" "GST_DTS")
  )
)

(define-enum AudioChannelPosition
  (in-module "Gst")
  (c-name "GstAudioChannelPosition")
  (gtype-id "GST_TYPE_AUDIO_CHANNEL_POSITION")
  (values
    '("invalid" "GST_AUDIO_CHANNEL_POSITION_INVALID")
    '("front-mono" "GST_AUDIO_CHANNEL_POSITION_FRONT_MONO")
    '("front-left" "GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT")
    '("front-right" "GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT")
    '("rear-center" "GST_AUDIO_CHANNEL_POSITION_REAR_CENTER")
    '("rear-left" "GST_AUDIO_CHANNEL_POSITION_REAR_LEFT")
    '("rear-right" "GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT")
    '("lfe" "GST_AUDIO_CHANNEL_POSITION_LFE")
    '("front-center" "GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER")
    '("front-left-of-center" "GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER")
    '("front-right-of-center" "GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER")
    '("side-left" "GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT")
    '("side-right" "GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT")
    '("none" "GST_AUDIO_CHANNEL_POSITION_NONE")
    '("num" "GST_AUDIO_CHANNEL_POSITION_NUM")
  )
)

(define-enum CddaBaseSrcMode
  (in-module "Gst")
  (c-name "GstCddaBaseSrcMode")
  (gtype-id "GST_TYPE_CDDA_BASE_SRC_MODE")
  (values
    '("normal" "GST_CDDA_BASE_SRC_MODE_NORMAL")
    '("continuous" "GST_CDDA_BASE_SRC_MODE_CONTINUOUS")
  )
)

(define-enum FFTWindow
  (in-module "Gst")
  (c-name "GstFFTWindow")
  (gtype-id "GST_TYPE_FFT_WINDOW")
  (values
    '("rectangular" "GST_FFT_WINDOW_RECTANGULAR")
    '("hamming" "GST_FFT_WINDOW_HAMMING")
    '("hann" "GST_FFT_WINDOW_HANN")
    '("bartlett" "GST_FFT_WINDOW_BARTLETT")
    '("blackman" "GST_FFT_WINDOW_BLACKMAN")
  )
)

(define-enum ColorBalanceType
  (in-module "Gst")
  (c-name "GstColorBalanceType")
  (gtype-id "GST_TYPE_COLOR_BALANCE_TYPE")
  (values
    '("hardware" "GST_COLOR_BALANCE_HARDWARE")
    '("software" "GST_COLOR_BALANCE_SOFTWARE")
  )
)

(define-enum MixerType
  (in-module "Gst")
  (c-name "GstMixerType")
  (gtype-id "GST_TYPE_MIXER_TYPE")
  (values
    '("hardware" "GST_MIXER_HARDWARE")
    '("software" "GST_MIXER_SOFTWARE")
  )
)

(define-enum MixerMessageType
  (in-module "Gst")
  (c-name "GstMixerMessageType")
  (gtype-id "GST_TYPE_MIXER_MESSAGE_TYPE")
  (values
    '("invalid" "GST_MIXER_MESSAGE_INVALID")
    '("mute-toggled" "GST_MIXER_MESSAGE_MUTE_TOGGLED")
    '("record-toggled" "GST_MIXER_MESSAGE_RECORD_TOGGLED")
    '("volume-changed" "GST_MIXER_MESSAGE_VOLUME_CHANGED")
    '("option-changed" "GST_MIXER_MESSAGE_OPTION_CHANGED")
    '("options-list-changed" "GST_MIXER_MESSAGE_OPTIONS_LIST_CHANGED")
    '("mixer-changed" "GST_MIXER_MESSAGE_MIXER_CHANGED")
  )
)

(define-flags MixerFlags
  (in-module "Gst")
  (c-name "GstMixerFlags")
  (gtype-id "GST_TYPE_MIXER_FLAGS")
  (values
    '("none" "GST_MIXER_FLAG_NONE")
    '("auto-notifications" "GST_MIXER_FLAG_AUTO_NOTIFICATIONS")
    '("has-whitelist" "GST_MIXER_FLAG_HAS_WHITELIST")
    '("grouping" "GST_MIXER_FLAG_GROUPING")
  )
)

(define-flags MixerTrackFlags
  (in-module "Gst")
  (c-name "GstMixerTrackFlags")
  (gtype-id "GST_TYPE_MIXER_TRACK_FLAGS")
  (values
    '("input" "GST_MIXER_TRACK_INPUT")
    '("output" "GST_MIXER_TRACK_OUTPUT")
    '("mute" "GST_MIXER_TRACK_MUTE")
    '("record" "GST_MIXER_TRACK_RECORD")
    '("master" "GST_MIXER_TRACK_MASTER")
    '("software" "GST_MIXER_TRACK_SOFTWARE")
    '("no-record" "GST_MIXER_TRACK_NO_RECORD")
    '("no-mute" "GST_MIXER_TRACK_NO_MUTE")
    '("whitelist" "GST_MIXER_TRACK_WHITELIST")
    '("readonly" "GST_MIXER_TRACK_READONLY")
    '("writeonly" "GST_MIXER_TRACK_WRITEONLY")
  )
)

(define-enum NavigationCommand
  (in-module "Gst")
  (c-name "GstNavigationCommand")
  (gtype-id "GST_TYPE_NAVIGATION_COMMAND")
  (values
    '("invalid" "GST_NAVIGATION_COMMAND_INVALID")
    '("menu1" "GST_NAVIGATION_COMMAND_MENU1")
    '("menu2" "GST_NAVIGATION_COMMAND_MENU2")
    '("menu3" "GST_NAVIGATION_COMMAND_MENU3")
    '("menu4" "GST_NAVIGATION_COMMAND_MENU4")
    '("menu5" "GST_NAVIGATION_COMMAND_MENU5")
    '("menu6" "GST_NAVIGATION_COMMAND_MENU6")
    '("menu7" "GST_NAVIGATION_COMMAND_MENU7")
    '("left" "GST_NAVIGATION_COMMAND_LEFT")
    '("right" "GST_NAVIGATION_COMMAND_RIGHT")
    '("up" "GST_NAVIGATION_COMMAND_UP")
    '("down" "GST_NAVIGATION_COMMAND_DOWN")
    '("activate" "GST_NAVIGATION_COMMAND_ACTIVATE")
    '("prev-angle" "GST_NAVIGATION_COMMAND_PREV_ANGLE")
    '("next-angle" "GST_NAVIGATION_COMMAND_NEXT_ANGLE")
  )
)

(define-enum NavigationQueryType
  (in-module "Gst")
  (c-name "GstNavigationQueryType")
  (gtype-id "GST_TYPE_NAVIGATION_QUERY_TYPE")
  (values
    '("invalid" "GST_NAVIGATION_QUERY_INVALID")
    '("commands" "GST_NAVIGATION_QUERY_COMMANDS")
    '("angles" "GST_NAVIGATION_QUERY_ANGLES")
  )
)

(define-enum NavigationMessageType
  (in-module "Gst")
  (c-name "GstNavigationMessageType")
  (gtype-id "GST_TYPE_NAVIGATION_MESSAGE_TYPE")
  (values
    '("invalid" "GST_NAVIGATION_MESSAGE_INVALID")
    '("mouse-over" "GST_NAVIGATION_MESSAGE_MOUSE_OVER")
    '("commands-changed" "GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED")
    '("angles-changed" "GST_NAVIGATION_MESSAGE_ANGLES_CHANGED")
  )
)

(define-enum NavigationEventType
  (in-module "Gst")
  (c-name "GstNavigationEventType")
  (gtype-id "GST_TYPE_NAVIGATION_EVENT_TYPE")
  (values
    '("invalid" "GST_NAVIGATION_EVENT_INVALID")
    '("key-press" "GST_NAVIGATION_EVENT_KEY_PRESS")
    '("key-release" "GST_NAVIGATION_EVENT_KEY_RELEASE")
    '("mouse-button-press" "GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS")
    '("mouse-button-release" "GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE")
    '("mouse-move" "GST_NAVIGATION_EVENT_MOUSE_MOVE")
    '("command" "GST_NAVIGATION_EVENT_COMMAND")
  )
)

(define-enum StreamVolumeFormat
  (in-module "Gst")
  (c-name "GstStreamVolumeFormat")
  (gtype-id "GST_TYPE_STREAM_VOLUME_FORMAT")
  (values
    '("linear" "GST_STREAM_VOLUME_FORMAT_LINEAR")
    '("cubic" "GST_STREAM_VOLUME_FORMAT_CUBIC")
    '("db" "GST_STREAM_VOLUME_FORMAT_DB")
  )
)

(define-flags TunerChannelFlags
  (in-module "Gst")
  (c-name "GstTunerChannelFlags")
  (gtype-id "GST_TYPE_TUNER_CHANNEL_FLAGS")
  (values
    '("input" "GST_TUNER_CHANNEL_INPUT")
    '("output" "GST_TUNER_CHANNEL_OUTPUT")
    '("frequency" "GST_TUNER_CHANNEL_FREQUENCY")
    '("audio" "GST_TUNER_CHANNEL_AUDIO")
  )
)

(define-enum NetType
  (in-module "Gst")
  (c-name "GstNetType")
  (gtype-id "GST_TYPE_NET_TYPE")
  (values
    '("unknown" "GST_NET_TYPE_UNKNOWN")
    '("ip4" "GST_NET_TYPE_IP4")
    '("ip6" "GST_NET_TYPE_IP6")
  )
)

(define-enum RTCPType
  (in-module "Gst")
  (c-name "GstRTCPType")
  (gtype-id "GST_TYPE_RTCP_TYPE")
  (values
    '("invalid" "GST_RTCP_TYPE_INVALID")
    '("sr" "GST_RTCP_TYPE_SR")
    '("rr" "GST_RTCP_TYPE_RR")
    '("sdes" "GST_RTCP_TYPE_SDES")
    '("bye" "GST_RTCP_TYPE_BYE")
    '("app" "GST_RTCP_TYPE_APP")
    '("rtpfb" "GST_RTCP_TYPE_RTPFB")
    '("psfb" "GST_RTCP_TYPE_PSFB")
  )
)

(define-enum RTCPFBType
  (in-module "Gst")
  (c-name "GstRTCPFBType")
  (gtype-id "GST_TYPE_RTCPFB_TYPE")
  (values
    '("fb-type-invalid" "GST_RTCP_FB_TYPE_INVALID")
    '("rtpfb-type-nack" "GST_RTCP_RTPFB_TYPE_NACK")
    '("psfb-type-pli" "GST_RTCP_PSFB_TYPE_PLI")
    '("psfb-type-sli" "GST_RTCP_PSFB_TYPE_SLI")
    '("psfb-type-rpsi" "GST_RTCP_PSFB_TYPE_RPSI")
    '("psfb-type-afb" "GST_RTCP_PSFB_TYPE_AFB")
  )
)

(define-enum RTCPSDESType
  (in-module "Gst")
  (c-name "GstRTCPSDESType")
  (gtype-id "GST_TYPE_RTCPSDES_TYPE")
  (values
    '("invalid" "GST_RTCP_SDES_INVALID")
    '("end" "GST_RTCP_SDES_END")
    '("cname" "GST_RTCP_SDES_CNAME")
    '("name" "GST_RTCP_SDES_NAME")
    '("email" "GST_RTCP_SDES_EMAIL")
    '("phone" "GST_RTCP_SDES_PHONE")
    '("loc" "GST_RTCP_SDES_LOC")
    '("tool" "GST_RTCP_SDES_TOOL")
    '("note" "GST_RTCP_SDES_NOTE")
    '("priv" "GST_RTCP_SDES_PRIV")
  )
)

(define-enum RTPPayload
  (in-module "Gst")
  (c-name "GstRTPPayload")
  (gtype-id "GST_TYPE_RTP_PAYLOAD")
  (values
    '("pcmu" "GST_RTP_PAYLOAD_PCMU")
    '("1016" "GST_RTP_PAYLOAD_1016")
    '("g721" "GST_RTP_PAYLOAD_G721")
    '("gsm" "GST_RTP_PAYLOAD_GSM")
    '("g723" "GST_RTP_PAYLOAD_G723")
    '("dvi4-8000" "GST_RTP_PAYLOAD_DVI4_8000")
    '("dvi4-16000" "GST_RTP_PAYLOAD_DVI4_16000")
    '("lpc" "GST_RTP_PAYLOAD_LPC")
    '("pcma" "GST_RTP_PAYLOAD_PCMA")
    '("g722" "GST_RTP_PAYLOAD_G722")
    '("l16-stereo" "GST_RTP_PAYLOAD_L16_STEREO")
    '("l16-mono" "GST_RTP_PAYLOAD_L16_MONO")
    '("qcelp" "GST_RTP_PAYLOAD_QCELP")
    '("cn" "GST_RTP_PAYLOAD_CN")
    '("mpa" "GST_RTP_PAYLOAD_MPA")
    '("g728" "GST_RTP_PAYLOAD_G728")
    '("dvi4-11025" "GST_RTP_PAYLOAD_DVI4_11025")
    '("dvi4-22050" "GST_RTP_PAYLOAD_DVI4_22050")
    '("g729" "GST_RTP_PAYLOAD_G729")
    '("cellb" "GST_RTP_PAYLOAD_CELLB")
    '("jpeg" "GST_RTP_PAYLOAD_JPEG")
    '("nv" "GST_RTP_PAYLOAD_NV")
    '("h261" "GST_RTP_PAYLOAD_H261")
    '("mpv" "GST_RTP_PAYLOAD_MPV")
    '("mp2t" "GST_RTP_PAYLOAD_MP2T")
    '("h263" "GST_RTP_PAYLOAD_H263")
  )
)

(define-enum RTSPResult
  (in-module "Gst")
  (c-name "GstRTSPResult")
  (gtype-id "GST_TYPE_RTSP_RESULT")
  (values
    '("ok" "GST_RTSP_OK")
    '("error" "GST_RTSP_ERROR")
    '("einval" "GST_RTSP_EINVAL")
    '("eintr" "GST_RTSP_EINTR")
    '("enomem" "GST_RTSP_ENOMEM")
    '("eresolv" "GST_RTSP_ERESOLV")
    '("enotimpl" "GST_RTSP_ENOTIMPL")
    '("esys" "GST_RTSP_ESYS")
    '("eparse" "GST_RTSP_EPARSE")
    '("ewsastart" "GST_RTSP_EWSASTART")
    '("ewsaversion" "GST_RTSP_EWSAVERSION")
    '("eeof" "GST_RTSP_EEOF")
    '("enet" "GST_RTSP_ENET")
    '("enotip" "GST_RTSP_ENOTIP")
    '("etimeout" "GST_RTSP_ETIMEOUT")
    '("etget" "GST_RTSP_ETGET")
    '("etpost" "GST_RTSP_ETPOST")
    '("elast" "GST_RTSP_ELAST")
  )
)

(define-flags RTSPEvent
  (in-module "Gst")
  (c-name "GstRTSPEvent")
  (gtype-id "GST_TYPE_RTSP_EVENT")
  (values
    '("read" "GST_RTSP_EV_READ")
    '("write" "GST_RTSP_EV_WRITE")
  )
)

(define-enum RTSPFamily
  (in-module "Gst")
  (c-name "GstRTSPFamily")
  (gtype-id "GST_TYPE_RTSP_FAMILY")
  (values
    '("none" "GST_RTSP_FAM_NONE")
    '("inet" "GST_RTSP_FAM_INET")
    '("inet6" "GST_RTSP_FAM_INET6")
  )
)

(define-enum RTSPState
  (in-module "Gst")
  (c-name "GstRTSPState")
  (gtype-id "GST_TYPE_RTSP_STATE")
  (values
    '("invalid" "GST_RTSP_STATE_INVALID")
    '("init" "GST_RTSP_STATE_INIT")
    '("ready" "GST_RTSP_STATE_READY")
    '("seeking" "GST_RTSP_STATE_SEEKING")
    '("playing" "GST_RTSP_STATE_PLAYING")
    '("recording" "GST_RTSP_STATE_RECORDING")
  )
)

(define-enum RTSPVersion
  (in-module "Gst")
  (c-name "GstRTSPVersion")
  (gtype-id "GST_TYPE_RTSP_VERSION")
  (values
    '("invalid" "GST_RTSP_VERSION_INVALID")
    '("1-0" "GST_RTSP_VERSION_1_0")
    '("1-1" "GST_RTSP_VERSION_1_1")
  )
)

(define-flags RTSPMethod
  (in-module "Gst")
  (c-name "GstRTSPMethod")
  (gtype-id "GST_TYPE_RTSP_METHOD")
  (values
    '("invalid" "GST_RTSP_INVALID")
    '("describe" "GST_RTSP_DESCRIBE")
    '("announce" "GST_RTSP_ANNOUNCE")
    '("get-parameter" "GST_RTSP_GET_PARAMETER")
    '("options" "GST_RTSP_OPTIONS")
    '("pause" "GST_RTSP_PAUSE")
    '("play" "GST_RTSP_PLAY")
    '("record" "GST_RTSP_RECORD")
    '("redirect" "GST_RTSP_REDIRECT")
    '("setup" "GST_RTSP_SETUP")
    '("set-parameter" "GST_RTSP_SET_PARAMETER")
    '("teardown" "GST_RTSP_TEARDOWN")
    '("get" "GST_RTSP_GET")
    '("post" "GST_RTSP_POST")
  )
)

(define-enum RTSPAuthMethod
  (in-module "Gst")
  (c-name "GstRTSPAuthMethod")
  (gtype-id "GST_TYPE_RTSP_AUTH_METHOD")
  (values
    '("none" "GST_RTSP_AUTH_NONE")
    '("basic" "GST_RTSP_AUTH_BASIC")
    '("digest" "GST_RTSP_AUTH_DIGEST")
  )
)

(define-enum RTSPHeaderField
  (in-module "Gst")
  (c-name "GstRTSPHeaderField")
  (gtype-id "GST_TYPE_RTSP_HEADER_FIELD")
  (values
    '("invalid" "GST_RTSP_HDR_INVALID")
    '("accept" "GST_RTSP_HDR_ACCEPT")
    '("accept-encoding" "GST_RTSP_HDR_ACCEPT_ENCODING")
    '("accept-language" "GST_RTSP_HDR_ACCEPT_LANGUAGE")
    '("allow" "GST_RTSP_HDR_ALLOW")
    '("authorization" "GST_RTSP_HDR_AUTHORIZATION")
    '("bandwidth" "GST_RTSP_HDR_BANDWIDTH")
    '("blocksize" "GST_RTSP_HDR_BLOCKSIZE")
    '("cache-control" "GST_RTSP_HDR_CACHE_CONTROL")
    '("conference" "GST_RTSP_HDR_CONFERENCE")
    '("connection" "GST_RTSP_HDR_CONNECTION")
    '("content-base" "GST_RTSP_HDR_CONTENT_BASE")
    '("content-encoding" "GST_RTSP_HDR_CONTENT_ENCODING")
    '("content-language" "GST_RTSP_HDR_CONTENT_LANGUAGE")
    '("content-length" "GST_RTSP_HDR_CONTENT_LENGTH")
    '("content-location" "GST_RTSP_HDR_CONTENT_LOCATION")
    '("content-type" "GST_RTSP_HDR_CONTENT_TYPE")
    '("cseq" "GST_RTSP_HDR_CSEQ")
    '("date" "GST_RTSP_HDR_DATE")
    '("expires" "GST_RTSP_HDR_EXPIRES")
    '("from" "GST_RTSP_HDR_FROM")
    '("if-modified-since" "GST_RTSP_HDR_IF_MODIFIED_SINCE")
    '("last-modified" "GST_RTSP_HDR_LAST_MODIFIED")
    '("proxy-authenticate" "GST_RTSP_HDR_PROXY_AUTHENTICATE")
    '("proxy-require" "GST_RTSP_HDR_PROXY_REQUIRE")
    '("public" "GST_RTSP_HDR_PUBLIC")
    '("range" "GST_RTSP_HDR_RANGE")
    '("referer" "GST_RTSP_HDR_REFERER")
    '("require" "GST_RTSP_HDR_REQUIRE")
    '("retry-after" "GST_RTSP_HDR_RETRY_AFTER")
    '("rtp-info" "GST_RTSP_HDR_RTP_INFO")
    '("scale" "GST_RTSP_HDR_SCALE")
    '("session" "GST_RTSP_HDR_SESSION")
    '("server" "GST_RTSP_HDR_SERVER")
    '("speed" "GST_RTSP_HDR_SPEED")
    '("transport" "GST_RTSP_HDR_TRANSPORT")
    '("unsupported" "GST_RTSP_HDR_UNSUPPORTED")
    '("user-agent" "GST_RTSP_HDR_USER_AGENT")
    '("via" "GST_RTSP_HDR_VIA")
    '("www-authenticate" "GST_RTSP_HDR_WWW_AUTHENTICATE")
    '("client-challenge" "GST_RTSP_HDR_CLIENT_CHALLENGE")
    '("real-challenge1" "GST_RTSP_HDR_REAL_CHALLENGE1")
    '("real-challenge2" "GST_RTSP_HDR_REAL_CHALLENGE2")
    '("real-challenge3" "GST_RTSP_HDR_REAL_CHALLENGE3")
    '("subscribe" "GST_RTSP_HDR_SUBSCRIBE")
    '("alert" "GST_RTSP_HDR_ALERT")
    '("client-id" "GST_RTSP_HDR_CLIENT_ID")
    '("company-id" "GST_RTSP_HDR_COMPANY_ID")
    '("guid" "GST_RTSP_HDR_GUID")
    '("region-data" "GST_RTSP_HDR_REGION_DATA")
    '("max-asm-width" "GST_RTSP_HDR_MAX_ASM_WIDTH")
    '("language" "GST_RTSP_HDR_LANGUAGE")
    '("player-start-time" "GST_RTSP_HDR_PLAYER_START_TIME")
    '("location" "GST_RTSP_HDR_LOCATION")
    '("etag" "GST_RTSP_HDR_ETAG")
    '("if-match" "GST_RTSP_HDR_IF_MATCH")
    '("accept-charset" "GST_RTSP_HDR_ACCEPT_CHARSET")
    '("supported" "GST_RTSP_HDR_SUPPORTED")
    '("vary" "GST_RTSP_HDR_VARY")
    '("x-accelerate-streaming" "GST_RTSP_HDR_X_ACCELERATE_STREAMING")
    '("x-accept-authent" "GST_RTSP_HDR_X_ACCEPT_AUTHENT")
    '("x-accept-proxy-authent" "GST_RTSP_HDR_X_ACCEPT_PROXY_AUTHENT")
    '("x-broadcast-id" "GST_RTSP_HDR_X_BROADCAST_ID")
    '("x-burst-streaming" "GST_RTSP_HDR_X_BURST_STREAMING")
    '("x-notice" "GST_RTSP_HDR_X_NOTICE")
    '("x-player-lag-time" "GST_RTSP_HDR_X_PLAYER_LAG_TIME")
    '("x-playlist" "GST_RTSP_HDR_X_PLAYLIST")
    '("x-playlist-change-notice" "GST_RTSP_HDR_X_PLAYLIST_CHANGE_NOTICE")
    '("x-playlist-gen-id" "GST_RTSP_HDR_X_PLAYLIST_GEN_ID")
    '("x-playlist-seek-id" "GST_RTSP_HDR_X_PLAYLIST_SEEK_ID")
    '("x-proxy-client-agent" "GST_RTSP_HDR_X_PROXY_CLIENT_AGENT")
    '("x-proxy-client-verb" "GST_RTSP_HDR_X_PROXY_CLIENT_VERB")
    '("x-receding-playlistchange" "GST_RTSP_HDR_X_RECEDING_PLAYLISTCHANGE")
    '("x-rtp-info" "GST_RTSP_HDR_X_RTP_INFO")
    '("x-startupprofile" "GST_RTSP_HDR_X_STARTUPPROFILE")
    '("timestamp" "GST_RTSP_HDR_TIMESTAMP")
    '("authentication-info" "GST_RTSP_HDR_AUTHENTICATION_INFO")
    '("host" "GST_RTSP_HDR_HOST")
    '("pragma" "GST_RTSP_HDR_PRAGMA")
    '("x-server-ip-address" "GST_RTSP_HDR_X_SERVER_IP_ADDRESS")
    '("x-sessioncookie" "GST_RTSP_HDR_X_SESSIONCOOKIE")
    '("last" "GST_RTSP_HDR_LAST")
  )
)

(define-enum RTSPStatusCode
  (in-module "Gst")
  (c-name "GstRTSPStatusCode")
  (gtype-id "GST_TYPE_RTSP_STATUS_CODE")
  (values
    '("invalid" "GST_RTSP_STS_INVALID")
    '("continue" "GST_RTSP_STS_CONTINUE")
    '("ok" "GST_RTSP_STS_OK")
    '("created" "GST_RTSP_STS_CREATED")
    '("low-on-storage" "GST_RTSP_STS_LOW_ON_STORAGE")
    '("multiple-choices" "GST_RTSP_STS_MULTIPLE_CHOICES")
    '("moved-permanently" "GST_RTSP_STS_MOVED_PERMANENTLY")
    '("move-temporarily" "GST_RTSP_STS_MOVE_TEMPORARILY")
    '("see-other" "GST_RTSP_STS_SEE_OTHER")
    '("not-modified" "GST_RTSP_STS_NOT_MODIFIED")
    '("use-proxy" "GST_RTSP_STS_USE_PROXY")
    '("bad-request" "GST_RTSP_STS_BAD_REQUEST")
    '("unauthorized" "GST_RTSP_STS_UNAUTHORIZED")
    '("payment-required" "GST_RTSP_STS_PAYMENT_REQUIRED")
    '("forbidden" "GST_RTSP_STS_FORBIDDEN")
    '("not-found" "GST_RTSP_STS_NOT_FOUND")
    '("method-not-allowed" "GST_RTSP_STS_METHOD_NOT_ALLOWED")
    '("not-acceptable" "GST_RTSP_STS_NOT_ACCEPTABLE")
    '("proxy-auth-required" "GST_RTSP_STS_PROXY_AUTH_REQUIRED")
    '("request-timeout" "GST_RTSP_STS_REQUEST_TIMEOUT")
    '("gone" "GST_RTSP_STS_GONE")
    '("length-required" "GST_RTSP_STS_LENGTH_REQUIRED")
    '("precondition-failed" "GST_RTSP_STS_PRECONDITION_FAILED")
    '("request-entity-too-large" "GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE")
    '("request-uri-too-large" "GST_RTSP_STS_REQUEST_URI_TOO_LARGE")
    '("unsupported-media-type" "GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE")
    '("parameter-not-understood" "GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD")
    '("conference-not-found" "GST_RTSP_STS_CONFERENCE_NOT_FOUND")
    '("not-enough-bandwidth" "GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH")
    '("session-not-found" "GST_RTSP_STS_SESSION_NOT_FOUND")
    '("method-not-valid-in-this-state" "GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE")
    '("header-field-not-valid-for-resource" "GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE")
    '("invalid-range" "GST_RTSP_STS_INVALID_RANGE")
    '("parameter-is-readonly" "GST_RTSP_STS_PARAMETER_IS_READONLY")
    '("aggregate-operation-not-allowed" "GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED")
    '("only-aggregate-operation-allowed" "GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED")
    '("unsupported-transport" "GST_RTSP_STS_UNSUPPORTED_TRANSPORT")
    '("destination-unreachable" "GST_RTSP_STS_DESTINATION_UNREACHABLE")
    '("internal-server-error" "GST_RTSP_STS_INTERNAL_SERVER_ERROR")
    '("not-implemented" "GST_RTSP_STS_NOT_IMPLEMENTED")
    '("bad-gateway" "GST_RTSP_STS_BAD_GATEWAY")
    '("service-unavailable" "GST_RTSP_STS_SERVICE_UNAVAILABLE")
    '("gateway-timeout" "GST_RTSP_STS_GATEWAY_TIMEOUT")
    '("rtsp-version-not-supported" "GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED")
    '("option-not-supported" "GST_RTSP_STS_OPTION_NOT_SUPPORTED")
  )
)

(define-enum RTSPMsgType
  (in-module "Gst")
  (c-name "GstRTSPMsgType")
  (gtype-id "GST_TYPE_RTSP_MSG_TYPE")
  (values
    '("invalid" "GST_RTSP_MESSAGE_INVALID")
    '("request" "GST_RTSP_MESSAGE_REQUEST")
    '("response" "GST_RTSP_MESSAGE_RESPONSE")
    '("http-request" "GST_RTSP_MESSAGE_HTTP_REQUEST")
    '("http-response" "GST_RTSP_MESSAGE_HTTP_RESPONSE")
    '("data" "GST_RTSP_MESSAGE_DATA")
  )
)

(define-enum RTSPRangeUnit
  (in-module "Gst")
  (c-name "GstRTSPRangeUnit")
  (gtype-id "GST_TYPE_RTSP_RANGE_UNIT")
  (values
    '("smpte" "GST_RTSP_RANGE_SMPTE")
    '("smpte-30-drop" "GST_RTSP_RANGE_SMPTE_30_DROP")
    '("smpte-25" "GST_RTSP_RANGE_SMPTE_25")
    '("npt" "GST_RTSP_RANGE_NPT")
    '("clock" "GST_RTSP_RANGE_CLOCK")
  )
)

(define-enum RTSPTimeType
  (in-module "Gst")
  (c-name "GstRTSPTimeType")
  (gtype-id "GST_TYPE_RTSP_TIME_TYPE")
  (values
    '("seconds" "GST_RTSP_TIME_SECONDS")
    '("now" "GST_RTSP_TIME_NOW")
    '("end" "GST_RTSP_TIME_END")
  )
)

(define-flags RTSPTransMode
  (in-module "Gst")
  (c-name "GstRTSPTransMode")
  (gtype-id "GST_TYPE_RTSP_TRANS_MODE")
  (values
    '("unknown" "GST_RTSP_TRANS_UNKNOWN")
    '("rtp" "GST_RTSP_TRANS_RTP")
    '("rdt" "GST_RTSP_TRANS_RDT")
  )
)

(define-flags RTSPProfile
  (in-module "Gst")
  (c-name "GstRTSPProfile")
  (gtype-id "GST_TYPE_RTSP_PROFILE")
  (values
    '("unknown" "GST_RTSP_PROFILE_UNKNOWN")
    '("avp" "GST_RTSP_PROFILE_AVP")
    '("savp" "GST_RTSP_PROFILE_SAVP")
  )
)

(define-flags RTSPLowerTrans
  (in-module "Gst")
  (c-name "GstRTSPLowerTrans")
  (gtype-id "GST_TYPE_RTSP_LOWER_TRANS")
  (values
    '("unknown" "GST_RTSP_LOWER_TRANS_UNKNOWN")
    '("udp" "GST_RTSP_LOWER_TRANS_UDP")
    '("udp-mcast" "GST_RTSP_LOWER_TRANS_UDP_MCAST")
    '("tcp" "GST_RTSP_LOWER_TRANS_TCP")
    '("http" "GST_RTSP_LOWER_TRANS_HTTP")
  )
)

(define-enum SDPResult
  (in-module "Gst")
  (c-name "GstSDPResult")
  (gtype-id "GST_TYPE_SDP_RESULT")
  (values
    '("ok" "GST_SDP_OK")
    '("einval" "GST_SDP_EINVAL")
  )
)

(define-enum TagDemuxResult
  (in-module "Gst")
  (c-name "GstTagDemuxResult")
  (gtype-id "GST_TYPE_TAG_DEMUX_RESULT")
  (values
    '("broken-tag" "GST_TAG_DEMUX_RESULT_BROKEN_TAG")
    '("again" "GST_TAG_DEMUX_RESULT_AGAIN")
    '("ok" "GST_TAG_DEMUX_RESULT_OK")
  )
)

(define-enum TagImageType
  (in-module "Gst")
  (c-name "GstTagImageType")
  (gtype-id "GST_TYPE_TAG_IMAGE_TYPE")
  (values
    '("none" "GST_TAG_IMAGE_TYPE_NONE")
    '("undefined" "GST_TAG_IMAGE_TYPE_UNDEFINED")
    '("front-cover" "GST_TAG_IMAGE_TYPE_FRONT_COVER")
    '("back-cover" "GST_TAG_IMAGE_TYPE_BACK_COVER")
    '("leaflet-page" "GST_TAG_IMAGE_TYPE_LEAFLET_PAGE")
    '("medium" "GST_TAG_IMAGE_TYPE_MEDIUM")
    '("lead-artist" "GST_TAG_IMAGE_TYPE_LEAD_ARTIST")
    '("artist" "GST_TAG_IMAGE_TYPE_ARTIST")
    '("conductor" "GST_TAG_IMAGE_TYPE_CONDUCTOR")
    '("band-orchestra" "GST_TAG_IMAGE_TYPE_BAND_ORCHESTRA")
    '("composer" "GST_TAG_IMAGE_TYPE_COMPOSER")
    '("lyricist" "GST_TAG_IMAGE_TYPE_LYRICIST")
    '("recording-location" "GST_TAG_IMAGE_TYPE_RECORDING_LOCATION")
    '("during-recording" "GST_TAG_IMAGE_TYPE_DURING_RECORDING")
    '("during-performance" "GST_TAG_IMAGE_TYPE_DURING_PERFORMANCE")
    '("video-capture" "GST_TAG_IMAGE_TYPE_VIDEO_CAPTURE")
    '("fish" "GST_TAG_IMAGE_TYPE_FISH")
    '("illustration" "GST_TAG_IMAGE_TYPE_ILLUSTRATION")
    '("band-artist-logo" "GST_TAG_IMAGE_TYPE_BAND_ARTIST_LOGO")
    '("publisher-studio-logo" "GST_TAG_IMAGE_TYPE_PUBLISHER_STUDIO_LOGO")
  )
)

(define-enum DiscovererResult
  (in-module "Gst")
  (c-name "GstDiscovererResult")
  (gtype-id "GST_TYPE_DISCOVERER_RESULT")
  (values
    '("ok" "GST_DISCOVERER_OK")
    '("uri-invalid" "GST_DISCOVERER_URI_INVALID")
    '("error" "GST_DISCOVERER_ERROR")
    '("timeout" "GST_DISCOVERER_TIMEOUT")
    '("busy" "GST_DISCOVERER_BUSY")
    '("missing-plugins" "GST_DISCOVERER_MISSING_PLUGINS")
  )
)

(define-enum InstallPluginsReturn
  (in-module "Gst")
  (c-name "GstInstallPluginsReturn")
  (gtype-id "GST_TYPE_INSTALL_PLUGINS_RETURN")
  (values
    '("success" "GST_INSTALL_PLUGINS_SUCCESS")
    '("not-found" "GST_INSTALL_PLUGINS_NOT_FOUND")
    '("error" "GST_INSTALL_PLUGINS_ERROR")
    '("partial-success" "GST_INSTALL_PLUGINS_PARTIAL_SUCCESS")
    '("user-abort" "GST_INSTALL_PLUGINS_USER_ABORT")
    '("crashed" "GST_INSTALL_PLUGINS_CRASHED")
    '("invalid" "GST_INSTALL_PLUGINS_INVALID")
    '("started-ok" "GST_INSTALL_PLUGINS_STARTED_OK")
    '("internal-failure" "GST_INSTALL_PLUGINS_INTERNAL_FAILURE")
    '("helper-missing" "GST_INSTALL_PLUGINS_HELPER_MISSING")
    '("install-in-progress" "GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS")
  )
)

(define-enum VideoFormat
  (in-module "Gst")
  (c-name "GstVideoFormat")
  (gtype-id "GST_TYPE_VIDEO_FORMAT")
  (values
    '("unknown" "GST_VIDEO_FORMAT_UNKNOWN")
    '("i420" "GST_VIDEO_FORMAT_I420")
    '("yv12" "GST_VIDEO_FORMAT_YV12")
    '("yuy2" "GST_VIDEO_FORMAT_YUY2")
    '("uyvy" "GST_VIDEO_FORMAT_UYVY")
    '("ayuv" "GST_VIDEO_FORMAT_AYUV")
    '("rgbx" "GST_VIDEO_FORMAT_RGBx")
    '("bgrx" "GST_VIDEO_FORMAT_BGRx")
    '("xrgb" "GST_VIDEO_FORMAT_xRGB")
    '("xbgr" "GST_VIDEO_FORMAT_xBGR")
    '("rgba" "GST_VIDEO_FORMAT_RGBA")
    '("bgra" "GST_VIDEO_FORMAT_BGRA")
    '("argb" "GST_VIDEO_FORMAT_ARGB")
    '("abgr" "GST_VIDEO_FORMAT_ABGR")
    '("rgb" "GST_VIDEO_FORMAT_RGB")
    '("bgr" "GST_VIDEO_FORMAT_BGR")
    '("y41b" "GST_VIDEO_FORMAT_Y41B")
    '("y42b" "GST_VIDEO_FORMAT_Y42B")
    '("yvyu" "GST_VIDEO_FORMAT_YVYU")
    '("y444" "GST_VIDEO_FORMAT_Y444")
    '("v210" "GST_VIDEO_FORMAT_v210")
    '("v216" "GST_VIDEO_FORMAT_v216")
    '("nv12" "GST_VIDEO_FORMAT_NV12")
    '("nv21" "GST_VIDEO_FORMAT_NV21")
    '("gray8" "GST_VIDEO_FORMAT_GRAY8")
    '("gray16-be" "GST_VIDEO_FORMAT_GRAY16_BE")
    '("gray16-le" "GST_VIDEO_FORMAT_GRAY16_LE")
    '("v308" "GST_VIDEO_FORMAT_v308")
    '("y800" "GST_VIDEO_FORMAT_Y800")
    '("y16" "GST_VIDEO_FORMAT_Y16")
    '("rgb16" "GST_VIDEO_FORMAT_RGB16")
    '("bgr16" "GST_VIDEO_FORMAT_BGR16")
    '("rgb15" "GST_VIDEO_FORMAT_RGB15")
    '("bgr15" "GST_VIDEO_FORMAT_BGR15")
    '("uyvp" "GST_VIDEO_FORMAT_UYVP")
    '("a420" "GST_VIDEO_FORMAT_A420")
    '("rgb8-paletted" "GST_VIDEO_FORMAT_RGB8_PALETTED")
    '("yuv9" "GST_VIDEO_FORMAT_YUV9")
    '("yvu9" "GST_VIDEO_FORMAT_YVU9")
    '("iyu1" "GST_VIDEO_FORMAT_IYU1")
    '("argb64" "GST_VIDEO_FORMAT_ARGB64")
    '("ayuv64" "GST_VIDEO_FORMAT_AYUV64")
    '("r210" "GST_VIDEO_FORMAT_r210")
  )
)


;; From gstappbuffer.h

(define-function gst_app_buffer_get_type
  (c-name "gst_app_buffer_get_type")
  (return-type "GType")
)

(define-function gst_app_buffer_new
  (c-name "gst_app_buffer_new")
  (is-constructor-of "GstAppBuffer")
  (return-type "GstBuffer*")
  (parameters
    '("void*" "data")
    '("int" "length")
    '("GstAppBufferFinalizeFunc" "finalize")
    '("void*" "priv")
  )
)



;; From gstapp-marshal.h



;; From gstappsink.h

(define-function gst_app_sink_get_type
  (c-name "gst_app_sink_get_type")
  (return-type "GType")
)

(define-method set_caps
  (of-object "GstAppSink")
  (c-name "gst_app_sink_set_caps")
  (return-type "none")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-method get_caps
  (of-object "GstAppSink")
  (c-name "gst_app_sink_get_caps")
  (return-type "GstCaps*")
)

(define-method is_eos
  (of-object "GstAppSink")
  (c-name "gst_app_sink_is_eos")
  (return-type "gboolean")
)

(define-method set_emit_signals
  (of-object "GstAppSink")
  (c-name "gst_app_sink_set_emit_signals")
  (return-type "none")
  (parameters
    '("gboolean" "emit")
  )
)

(define-method get_emit_signals
  (of-object "GstAppSink")
  (c-name "gst_app_sink_get_emit_signals")
  (return-type "gboolean")
)

(define-method set_max_buffers
  (of-object "GstAppSink")
  (c-name "gst_app_sink_set_max_buffers")
  (return-type "none")
  (parameters
    '("guint" "max")
  )
)

(define-method get_max_buffers
  (of-object "GstAppSink")
  (c-name "gst_app_sink_get_max_buffers")
  (return-type "guint")
)

(define-method set_drop
  (of-object "GstAppSink")
  (c-name "gst_app_sink_set_drop")
  (return-type "none")
  (parameters
    '("gboolean" "drop")
  )
)

(define-method get_drop
  (of-object "GstAppSink")
  (c-name "gst_app_sink_get_drop")
  (return-type "gboolean")
)

(define-method pull_preroll
  (of-object "GstAppSink")
  (c-name "gst_app_sink_pull_preroll")
  (return-type "GstBuffer*")
)

(define-method pull_buffer
  (of-object "GstAppSink")
  (c-name "gst_app_sink_pull_buffer")
  (return-type "GstBuffer*")
)

(define-method pull_buffer_list
  (of-object "GstAppSink")
  (c-name "gst_app_sink_pull_buffer_list")
  (return-type "GstBufferList*")
)

(define-method set_callbacks
  (of-object "GstAppSink")
  (c-name "gst_app_sink_set_callbacks")
  (return-type "none")
  (parameters
    '("GstAppSinkCallbacks*" "callbacks")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)



;; From gstappsrc.h

(define-function gst_app_src_get_type
  (c-name "gst_app_src_get_type")
  (return-type "GType")
)

(define-function gst_app_stream_type_get_type
  (c-name "gst_app_stream_type_get_type")
  (return-type "GType")
)

(define-method set_caps
  (of-object "GstAppSrc")
  (c-name "gst_app_src_set_caps")
  (return-type "none")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-method get_caps
  (of-object "GstAppSrc")
  (c-name "gst_app_src_get_caps")
  (return-type "GstCaps*")
)

(define-method set_size
  (of-object "GstAppSrc")
  (c-name "gst_app_src_set_size")
  (return-type "none")
  (parameters
    '("gint64" "size")
  )
)

(define-method get_size
  (of-object "GstAppSrc")
  (c-name "gst_app_src_get_size")
  (return-type "gint64")
)

(define-method set_stream_type
  (of-object "GstAppSrc")
  (c-name "gst_app_src_set_stream_type")
  (return-type "none")
  (parameters
    '("GstAppStreamType" "type")
  )
)

(define-method get_stream_type
  (of-object "GstAppSrc")
  (c-name "gst_app_src_get_stream_type")
  (return-type "GstAppStreamType")
)

(define-method set_max_bytes
  (of-object "GstAppSrc")
  (c-name "gst_app_src_set_max_bytes")
  (return-type "none")
  (parameters
    '("guint64" "max")
  )
)

(define-method get_max_bytes
  (of-object "GstAppSrc")
  (c-name "gst_app_src_get_max_bytes")
  (return-type "guint64")
)

(define-method set_latency
  (of-object "GstAppSrc")
  (c-name "gst_app_src_set_latency")
  (return-type "none")
  (parameters
    '("guint64" "min")
    '("guint64" "max")
  )
)

(define-method get_latency
  (of-object "GstAppSrc")
  (c-name "gst_app_src_get_latency")
  (return-type "none")
  (parameters
    '("guint64*" "min")
    '("guint64*" "max")
  )
)

(define-method set_emit_signals
  (of-object "GstAppSrc")
  (c-name "gst_app_src_set_emit_signals")
  (return-type "none")
  (parameters
    '("gboolean" "emit")
  )
)

(define-method get_emit_signals
  (of-object "GstAppSrc")
  (c-name "gst_app_src_get_emit_signals")
  (return-type "gboolean")
)

(define-method push_buffer
  (of-object "GstAppSrc")
  (c-name "gst_app_src_push_buffer")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-method end_of_stream
  (of-object "GstAppSrc")
  (c-name "gst_app_src_end_of_stream")
  (return-type "GstFlowReturn")
)

(define-method set_callbacks
  (of-object "GstAppSrc")
  (c-name "gst_app_src_set_callbacks")
  (return-type "none")
  (parameters
    '("GstAppSrcCallbacks*" "callbacks")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)



;; From audio-enumtypes.h

(define-function gst_audio_channel_position_get_type
  (c-name "gst_audio_channel_position_get_type")
  (return-type "GType")
)

(define-function gst_ring_buffer_state_get_type
  (c-name "gst_ring_buffer_state_get_type")
  (return-type "GType")
)

(define-function gst_ring_buffer_seg_state_get_type
  (c-name "gst_ring_buffer_seg_state_get_type")
  (return-type "GType")
)

(define-function gst_buffer_format_type_get_type
  (c-name "gst_buffer_format_type_get_type")
  (return-type "GType")
)

(define-function gst_buffer_format_get_type
  (c-name "gst_buffer_format_get_type")
  (return-type "GType")
)



;; From audio.h

(define-function gst_audio_frame_byte_size
  (c-name "gst_audio_frame_byte_size")
  (return-type "int")
  (parameters
    '("GstPad*" "pad")
  )
)

(define-function gst_audio_frame_length
  (c-name "gst_audio_frame_length")
  (return-type "long")
  (parameters
    '("GstPad*" "pad")
    '("GstBuffer*" "buf")
  )
)

(define-function gst_audio_duration_from_pad_buffer
  (c-name "gst_audio_duration_from_pad_buffer")
  (return-type "GstClockTime")
  (parameters
    '("GstPad*" "pad")
    '("GstBuffer*" "buf")
  )
)

(define-function gst_audio_is_buffer_framed
  (c-name "gst_audio_is_buffer_framed")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "pad")
    '("GstBuffer*" "buf")
  )
)

(define-function gst_audio_structure_set_int
  (c-name "gst_audio_structure_set_int")
  (return-type "none")
  (parameters
    '("GstStructure*" "structure")
    '("GstAudioFieldFlag" "flag")
  )
)

(define-function gst_audio_buffer_clip
  (c-name "gst_audio_buffer_clip")
  (return-type "GstBuffer*")
  (parameters
    '("GstBuffer*" "buffer")
    '("GstSegment*" "segment")
    '("gint" "rate")
    '("gint" "frame_size")
  )
)



;; From gstaudioclock.h

(define-function gst_audio_clock_get_type
  (c-name "gst_audio_clock_get_type")
  (return-type "GType")
)

(define-function gst_audio_clock_new
  (c-name "gst_audio_clock_new")
  (is-constructor-of "GstAudioClock")
  (return-type "GstClock*")
  (parameters
    '("const-gchar*" "name")
    '("GstAudioClockGetTimeFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-function gst_audio_clock_new_full
  (c-name "gst_audio_clock_new_full")
  (return-type "GstClock*")
  (parameters
    '("const-gchar*" "name")
    '("GstAudioClockGetTimeFunc" "func")
    '("gpointer" "user_data")
    '("GDestroyNotify" "destroy_notify")
  )
)

(define-method reset
  (of-object "GstAudioClock")
  (c-name "gst_audio_clock_reset")
  (return-type "none")
  (parameters
    '("GstClockTime" "time")
  )
)

(define-function gst_audio_clock_get_time
  (c-name "gst_audio_clock_get_time")
  (return-type "GstClockTime")
  (parameters
    '("GstClock*" "clock")
  )
)

(define-function gst_audio_clock_adjust
  (c-name "gst_audio_clock_adjust")
  (return-type "GstClockTime")
  (parameters
    '("GstClock*" "clock")
    '("GstClockTime" "time")
  )
)

(define-function gst_audio_clock_invalidate
  (c-name "gst_audio_clock_invalidate")
  (return-type "none")
  (parameters
    '("GstClock*" "clock")
  )
)



;; From gstaudiofilter.h

(define-function gst_audio_filter_get_type
  (c-name "gst_audio_filter_get_type")
  (return-type "GType")
)

(define-method add_pad_templates
  (of-object "GstAudioFilterClass")
  (c-name "gst_audio_filter_class_add_pad_templates")
  (return-type "none")
  (parameters
    '("const-GstCaps*" "allowed_caps")
  )
)



;; From gstaudiosink.h

(define-function gst_audio_sink_get_type
  (c-name "gst_audio_sink_get_type")
  (return-type "GType")
)



;; From gstaudiosrc.h

(define-function gst_audio_src_get_type
  (c-name "gst_audio_src_get_type")
  (return-type "GType")
)



;; From gstbaseaudiosink.h

(define-function gst_base_audio_sink_get_type
  (c-name "gst_base_audio_sink_get_type")
  (return-type "GType")
)

(define-function gst_base_audio_sink_slave_method_get_type
  (c-name "gst_base_audio_sink_slave_method_get_type")
  (return-type "GType")
)

(define-method create_ringbuffer
  (of-object "GstBaseAudioSink")
  (c-name "gst_base_audio_sink_create_ringbuffer")
  (return-type "GstRingBuffer*")
)

(define-method set_provide_clock
  (of-object "GstBaseAudioSink")
  (c-name "gst_base_audio_sink_set_provide_clock")
  (return-type "none")
  (parameters
    '("gboolean" "provide")
  )
)

(define-method get_provide_clock
  (of-object "GstBaseAudioSink")
  (c-name "gst_base_audio_sink_get_provide_clock")
  (return-type "gboolean")
)

(define-method set_slave_method
  (of-object "GstBaseAudioSink")
  (c-name "gst_base_audio_sink_set_slave_method")
  (return-type "none")
  (parameters
    '("GstBaseAudioSinkSlaveMethod" "method")
  )
)

(define-method get_slave_method
  (of-object "GstBaseAudioSink")
  (c-name "gst_base_audio_sink_get_slave_method")
  (return-type "GstBaseAudioSinkSlaveMethod")
)

(define-method set_drift_tolerance
  (of-object "GstBaseAudioSink")
  (c-name "gst_base_audio_sink_set_drift_tolerance")
  (return-type "none")
  (parameters
    '("gint64" "drift_tolerance")
  )
)

(define-method get_drift_tolerance
  (of-object "GstBaseAudioSink")
  (c-name "gst_base_audio_sink_get_drift_tolerance")
  (return-type "gint64")
)



;; From gstbaseaudiosrc.h

(define-function gst_base_audio_src_get_type
  (c-name "gst_base_audio_src_get_type")
  (return-type "GType")
)

(define-function gst_base_audio_src_slave_method_get_type
  (c-name "gst_base_audio_src_slave_method_get_type")
  (return-type "GType")
)

(define-method create_ringbuffer
  (of-object "GstBaseAudioSrc")
  (c-name "gst_base_audio_src_create_ringbuffer")
  (return-type "GstRingBuffer*")
)

(define-method set_provide_clock
  (of-object "GstBaseAudioSrc")
  (c-name "gst_base_audio_src_set_provide_clock")
  (return-type "none")
  (parameters
    '("gboolean" "provide")
  )
)

(define-method get_provide_clock
  (of-object "GstBaseAudioSrc")
  (c-name "gst_base_audio_src_get_provide_clock")
  (return-type "gboolean")
)

(define-method set_slave_method
  (of-object "GstBaseAudioSrc")
  (c-name "gst_base_audio_src_set_slave_method")
  (return-type "none")
  (parameters
    '("GstBaseAudioSrcSlaveMethod" "method")
  )
)

(define-method get_slave_method
  (of-object "GstBaseAudioSrc")
  (c-name "gst_base_audio_src_get_slave_method")
  (return-type "GstBaseAudioSrcSlaveMethod")
)



;; From gstringbuffer.h

(define-function gst_ring_buffer_get_type
  (c-name "gst_ring_buffer_get_type")
  (return-type "GType")
)

(define-method set_callback
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_set_callback")
  (return-type "none")
  (parameters
    '("GstRingBufferCallback" "cb")
    '("gpointer" "user_data")
  )
)

(define-function gst_ring_buffer_parse_caps
  (c-name "gst_ring_buffer_parse_caps")
  (return-type "gboolean")
  (parameters
    '("GstRingBufferSpec*" "spec")
    '("GstCaps*" "caps")
  )
)

(define-function gst_ring_buffer_debug_spec_caps
  (c-name "gst_ring_buffer_debug_spec_caps")
  (return-type "none")
  (parameters
    '("GstRingBufferSpec*" "spec")
  )
)

(define-function gst_ring_buffer_debug_spec_buff
  (c-name "gst_ring_buffer_debug_spec_buff")
  (return-type "none")
  (parameters
    '("GstRingBufferSpec*" "spec")
  )
)

(define-method convert
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_convert")
  (return-type "gboolean")
  (parameters
    '("GstFormat" "src_fmt")
    '("gint64" "src_val")
    '("GstFormat" "dest_fmt")
    '("gint64*" "dest_val")
  )
)

(define-method open_device
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_open_device")
  (return-type "gboolean")
)

(define-method close_device
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_close_device")
  (return-type "gboolean")
)

(define-method device_is_open
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_device_is_open")
  (return-type "gboolean")
)

(define-method acquire
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_acquire")
  (return-type "gboolean")
  (parameters
    '("GstRingBufferSpec*" "spec")
  )
)

(define-method release
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_release")
  (return-type "gboolean")
)

(define-method is_acquired
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_is_acquired")
  (return-type "gboolean")
)

(define-method activate
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_activate")
  (return-type "gboolean")
  (parameters
    '("gboolean" "active")
  )
)

(define-method is_active
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_is_active")
  (return-type "gboolean")
)

(define-method set_flushing
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_set_flushing")
  (return-type "none")
  (parameters
    '("gboolean" "flushing")
  )
)

(define-method start
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_start")
  (return-type "gboolean")
)

(define-method pause
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_pause")
  (return-type "gboolean")
)

(define-method stop
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_stop")
  (return-type "gboolean")
)

(define-method delay
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_delay")
  (return-type "guint")
)

(define-method samples_done
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_samples_done")
  (return-type "guint64")
)

(define-method set_sample
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_set_sample")
  (return-type "none")
  (parameters
    '("guint64" "sample")
  )
)

(define-method clear_all
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_clear_all")
  (return-type "none")
)

(define-method commit
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_commit")
  (return-type "guint")
  (parameters
    '("guint64" "sample")
    '("guchar*" "data")
    '("guint" "len")
  )
)

(define-method commit_full
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_commit_full")
  (return-type "guint")
  (parameters
    '("guint64*" "sample")
    '("guchar*" "data")
    '("gint" "in_samples")
    '("gint" "out_samples")
    '("gint*" "accum")
  )
)

(define-method read
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_read")
  (return-type "guint")
  (parameters
    '("guint64" "sample")
    '("guchar*" "data")
    '("guint" "len")
  )
)

(define-method prepare_read
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_prepare_read")
  (return-type "gboolean")
  (parameters
    '("gint*" "segment")
    '("guint8**" "readptr")
    '("gint*" "len")
  )
)

(define-method clear
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_clear")
  (return-type "none")
  (parameters
    '("gint" "segment")
  )
)

(define-method advance
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_advance")
  (return-type "none")
  (parameters
    '("guint" "advance")
  )
)

(define-method may_start
  (of-object "GstRingBuffer")
  (c-name "gst_ring_buffer_may_start")
  (return-type "none")
  (parameters
    '("gboolean" "allowed")
  )
)



;; From mixerutils.h

(define-function gst_audio_default_registry_mixer_filter
  (c-name "gst_audio_default_registry_mixer_filter")
  (return-type "GList*")
  (parameters
    '("GstAudioMixerFilterFunc" "filter_func")
    '("gboolean" "first")
    '("gpointer" "user_data")
  )
)



;; From multichannel.h

(define-function gst_audio_get_channel_positions
  (c-name "gst_audio_get_channel_positions")
  (return-type "GstAudioChannelPosition*")
  (parameters
    '("GstStructure*" "str")
  )
)

(define-function gst_audio_set_channel_positions
  (c-name "gst_audio_set_channel_positions")
  (return-type "none")
  (parameters
    '("GstStructure*" "str")
    '("const-GstAudioChannelPosition*" "pos")
  )
)

(define-function gst_audio_set_structure_channel_positions_list
  (c-name "gst_audio_set_structure_channel_positions_list")
  (return-type "none")
  (parameters
    '("GstStructure*" "str")
    '("const-GstAudioChannelPosition*" "pos")
    '("gint" "num_positions")
  )
)

(define-function gst_audio_set_caps_channel_positions_list
  (c-name "gst_audio_set_caps_channel_positions_list")
  (return-type "none")
  (parameters
    '("GstCaps*" "caps")
    '("const-GstAudioChannelPosition*" "pos")
    '("gint" "num_positions")
  )
)

(define-function gst_audio_fixate_channel_positions
  (c-name "gst_audio_fixate_channel_positions")
  (return-type "GstAudioChannelPosition*")
  (parameters
    '("GstStructure*" "str")
  )
)

(define-function gst_audio_check_channel_positions
  (c-name "gst_audio_check_channel_positions")
  (return-type "gboolean")
  (parameters
    '("const-GstAudioChannelPosition*" "pos")
    '("guint" "channels")
  )
)



;; From gstcddabasesrc.h

(define-function gst_cdda_base_src_get_type
  (c-name "gst_cdda_base_src_get_type")
  (return-type "GType")
)

(define-function gst_cdda_base_src_mode_get_type
  (c-name "gst_cdda_base_src_mode_get_type")
  (return-type "GType")
)

(define-method add_track
  (of-object "GstCddaBaseSrc")
  (c-name "gst_cdda_base_src_add_track")
  (return-type "gboolean")
  (parameters
    '("GstCddaBaseSrcTrack*" "track")
  )
)



;; From gstfftf32.h

(define-function gst_fft_f32_new
  (c-name "gst_fft_f32_new")
  (is-constructor-of "GstFftF32")
  (return-type "GstFFTF32*")
  (parameters
    '("gint" "len")
    '("gboolean" "inverse")
  )
)

(define-method fft
  (of-object "GstFFTF32")
  (c-name "gst_fft_f32_fft")
  (return-type "none")
  (parameters
    '("const-gfloat*" "timedata")
    '("GstFFTF32Complex*" "freqdata")
  )
)

(define-method inverse_fft
  (of-object "GstFFTF32")
  (c-name "gst_fft_f32_inverse_fft")
  (return-type "none")
  (parameters
    '("const-GstFFTF32Complex*" "freqdata")
    '("gfloat*" "timedata")
  )
)

(define-method free
  (of-object "GstFFTF32")
  (c-name "gst_fft_f32_free")
  (return-type "none")
)

(define-method window
  (of-object "GstFFTF32")
  (c-name "gst_fft_f32_window")
  (return-type "none")
  (parameters
    '("gfloat*" "timedata")
    '("GstFFTWindow" "window")
  )
)



;; From gstfftf64.h

(define-function gst_fft_f64_new
  (c-name "gst_fft_f64_new")
  (is-constructor-of "GstFftF64")
  (return-type "GstFFTF64*")
  (parameters
    '("gint" "len")
    '("gboolean" "inverse")
  )
)

(define-method fft
  (of-object "GstFFTF64")
  (c-name "gst_fft_f64_fft")
  (return-type "none")
  (parameters
    '("const-gdouble*" "timedata")
    '("GstFFTF64Complex*" "freqdata")
  )
)

(define-method inverse_fft
  (of-object "GstFFTF64")
  (c-name "gst_fft_f64_inverse_fft")
  (return-type "none")
  (parameters
    '("const-GstFFTF64Complex*" "freqdata")
    '("gdouble*" "timedata")
  )
)

(define-method free
  (of-object "GstFFTF64")
  (c-name "gst_fft_f64_free")
  (return-type "none")
)

(define-method window
  (of-object "GstFFTF64")
  (c-name "gst_fft_f64_window")
  (return-type "none")
  (parameters
    '("gdouble*" "timedata")
    '("GstFFTWindow" "window")
  )
)



;; From gstfft.h

(define-function gst_fft_next_fast_length
  (c-name "gst_fft_next_fast_length")
  (return-type "gint")
  (parameters
    '("gint" "n")
  )
)



;; From gstffts16.h

(define-function gst_fft_s16_new
  (c-name "gst_fft_s16_new")
  (is-constructor-of "GstFftS16")
  (return-type "GstFFTS16*")
  (parameters
    '("gint" "len")
    '("gboolean" "inverse")
  )
)

(define-method fft
  (of-object "GstFFTS16")
  (c-name "gst_fft_s16_fft")
  (return-type "none")
  (parameters
    '("const-gint16*" "timedata")
    '("GstFFTS16Complex*" "freqdata")
  )
)

(define-method inverse_fft
  (of-object "GstFFTS16")
  (c-name "gst_fft_s16_inverse_fft")
  (return-type "none")
  (parameters
    '("const-GstFFTS16Complex*" "freqdata")
    '("gint16*" "timedata")
  )
)

(define-method free
  (of-object "GstFFTS16")
  (c-name "gst_fft_s16_free")
  (return-type "none")
)

(define-method window
  (of-object "GstFFTS16")
  (c-name "gst_fft_s16_window")
  (return-type "none")
  (parameters
    '("gint16*" "timedata")
    '("GstFFTWindow" "window")
  )
)



;; From gstffts32.h

(define-function gst_fft_s32_new
  (c-name "gst_fft_s32_new")
  (is-constructor-of "GstFftS32")
  (return-type "GstFFTS32*")
  (parameters
    '("gint" "len")
    '("gboolean" "inverse")
  )
)

(define-method fft
  (of-object "GstFFTS32")
  (c-name "gst_fft_s32_fft")
  (return-type "none")
  (parameters
    '("const-gint32*" "timedata")
    '("GstFFTS32Complex*" "freqdata")
  )
)

(define-method inverse_fft
  (of-object "GstFFTS32")
  (c-name "gst_fft_s32_inverse_fft")
  (return-type "none")
  (parameters
    '("const-GstFFTS32Complex*" "freqdata")
    '("gint32*" "timedata")
  )
)

(define-method free
  (of-object "GstFFTS32")
  (c-name "gst_fft_s32_free")
  (return-type "none")
)

(define-method window
  (of-object "GstFFTS32")
  (c-name "gst_fft_s32_window")
  (return-type "none")
  (parameters
    '("gint32*" "timedata")
    '("GstFFTWindow" "window")
  )
)



;; From kiss_fft_f32.h

(define-function kiss_fft_f32_alloc
  (c-name "kiss_fft_f32_alloc")
  (return-type "kiss_fft_f32_cfg")
  (parameters
    '("int" "nfft")
    '("int" "inverse_fft")
    '("void*" "mem")
    '("size_t*" "lenmem")
  )
)

(define-function kiss_fft_f32
  (c-name "kiss_fft_f32")
  (return-type "none")
  (parameters
    '("kiss_fft_f32_cfg" "cfg")
    '("const-kiss_fft_f32_cpx*" "fin")
    '("kiss_fft_f32_cpx*" "fout")
  )
)

(define-function kiss_fft_f32_stride
  (c-name "kiss_fft_f32_stride")
  (return-type "none")
  (parameters
    '("kiss_fft_f32_cfg" "cfg")
    '("const-kiss_fft_f32_cpx*" "fin")
    '("kiss_fft_f32_cpx*" "fout")
    '("int" "fin_stride")
  )
)

(define-function kiss_fft_f32_cleanup
  (c-name "kiss_fft_f32_cleanup")
  (return-type "none")
)

(define-function kiss_fft_f32_next_fast_size
  (c-name "kiss_fft_f32_next_fast_size")
  (return-type "int")
  (parameters
    '("int" "n")
  )
)



;; From kiss_fft_f64.h

(define-function kiss_fft_f64_alloc
  (c-name "kiss_fft_f64_alloc")
  (return-type "kiss_fft_f64_cfg")
  (parameters
    '("int" "nfft")
    '("int" "inverse_fft")
    '("void*" "mem")
    '("size_t*" "lenmem")
  )
)

(define-function kiss_fft_f64
  (c-name "kiss_fft_f64")
  (return-type "none")
  (parameters
    '("kiss_fft_f64_cfg" "cfg")
    '("const-kiss_fft_f64_cpx*" "fin")
    '("kiss_fft_f64_cpx*" "fout")
  )
)

(define-function kiss_fft_f64_stride
  (c-name "kiss_fft_f64_stride")
  (return-type "none")
  (parameters
    '("kiss_fft_f64_cfg" "cfg")
    '("const-kiss_fft_f64_cpx*" "fin")
    '("kiss_fft_f64_cpx*" "fout")
    '("int" "fin_stride")
  )
)

(define-function kiss_fft_f64_cleanup
  (c-name "kiss_fft_f64_cleanup")
  (return-type "none")
)

(define-function kiss_fft_f64_next_fast_size
  (c-name "kiss_fft_f64_next_fast_size")
  (return-type "int")
  (parameters
    '("int" "n")
  )
)



;; From _kiss_fft_guts_f32.h



;; From _kiss_fft_guts_f64.h



;; From _kiss_fft_guts_s16.h



;; From _kiss_fft_guts_s32.h



;; From kiss_fftr_f32.h

(define-function kiss_fftr_f32_alloc
  (c-name "kiss_fftr_f32_alloc")
  (return-type "kiss_fftr_f32_cfg")
  (parameters
    '("int" "nfft")
    '("int" "inverse_fft")
    '("void*" "mem")
    '("size_t*" "lenmem")
  )
)

(define-function kiss_fftr_f32
  (c-name "kiss_fftr_f32")
  (return-type "none")
  (parameters
    '("kiss_fftr_f32_cfg" "cfg")
    '("const-kiss_fft_f32_scalar*" "timedata")
    '("kiss_fft_f32_cpx*" "freqdata")
  )
)

(define-function kiss_fftri_f32
  (c-name "kiss_fftri_f32")
  (return-type "none")
  (parameters
    '("kiss_fftr_f32_cfg" "cfg")
    '("const-kiss_fft_f32_cpx*" "freqdata")
    '("kiss_fft_f32_scalar*" "timedata")
  )
)



;; From kiss_fftr_f64.h

(define-function kiss_fftr_f64_alloc
  (c-name "kiss_fftr_f64_alloc")
  (return-type "kiss_fftr_f64_cfg")
  (parameters
    '("int" "nfft")
    '("int" "inverse_fft")
    '("void*" "mem")
    '("size_t*" "lenmem")
  )
)

(define-function kiss_fftr_f64
  (c-name "kiss_fftr_f64")
  (return-type "none")
  (parameters
    '("kiss_fftr_f64_cfg" "cfg")
    '("const-kiss_fft_f64_scalar*" "timedata")
    '("kiss_fft_f64_cpx*" "freqdata")
  )
)

(define-function kiss_fftri_f64
  (c-name "kiss_fftri_f64")
  (return-type "none")
  (parameters
    '("kiss_fftr_f64_cfg" "cfg")
    '("const-kiss_fft_f64_cpx*" "freqdata")
    '("kiss_fft_f64_scalar*" "timedata")
  )
)



;; From kiss_fftr_s16.h

(define-function kiss_fftr_s16_alloc
  (c-name "kiss_fftr_s16_alloc")
  (return-type "kiss_fftr_s16_cfg")
  (parameters
    '("int" "nfft")
    '("int" "inverse_fft")
    '("void*" "mem")
    '("size_t*" "lenmem")
  )
)

(define-function kiss_fftr_s16
  (c-name "kiss_fftr_s16")
  (return-type "none")
  (parameters
    '("kiss_fftr_s16_cfg" "cfg")
    '("const-kiss_fft_s16_scalar*" "timedata")
    '("kiss_fft_s16_cpx*" "freqdata")
  )
)

(define-function kiss_fftri_s16
  (c-name "kiss_fftri_s16")
  (return-type "none")
  (parameters
    '("kiss_fftr_s16_cfg" "cfg")
    '("const-kiss_fft_s16_cpx*" "freqdata")
    '("kiss_fft_s16_scalar*" "timedata")
  )
)



;; From kiss_fftr_s32.h

(define-function kiss_fftr_s32_alloc
  (c-name "kiss_fftr_s32_alloc")
  (return-type "kiss_fftr_s32_cfg")
  (parameters
    '("int" "nfft")
    '("int" "inverse_fft")
    '("void*" "mem")
    '("size_t*" "lenmem")
  )
)

(define-function kiss_fftr_s32
  (c-name "kiss_fftr_s32")
  (return-type "none")
  (parameters
    '("kiss_fftr_s32_cfg" "cfg")
    '("const-kiss_fft_s32_scalar*" "timedata")
    '("kiss_fft_s32_cpx*" "freqdata")
  )
)

(define-function kiss_fftri_s32
  (c-name "kiss_fftri_s32")
  (return-type "none")
  (parameters
    '("kiss_fftr_s32_cfg" "cfg")
    '("const-kiss_fft_s32_cpx*" "freqdata")
    '("kiss_fft_s32_scalar*" "timedata")
  )
)



;; From kiss_fft_s16.h

(define-function kiss_fft_s16_alloc
  (c-name "kiss_fft_s16_alloc")
  (return-type "kiss_fft_s16_cfg")
  (parameters
    '("int" "nfft")
    '("int" "inverse_fft")
    '("void*" "mem")
    '("size_t*" "lenmem")
  )
)

(define-function kiss_fft_s16
  (c-name "kiss_fft_s16")
  (return-type "none")
  (parameters
    '("kiss_fft_s16_cfg" "cfg")
    '("const-kiss_fft_s16_cpx*" "fin")
    '("kiss_fft_s16_cpx*" "fout")
  )
)

(define-function kiss_fft_s16_stride
  (c-name "kiss_fft_s16_stride")
  (return-type "none")
  (parameters
    '("kiss_fft_s16_cfg" "cfg")
    '("const-kiss_fft_s16_cpx*" "fin")
    '("kiss_fft_s16_cpx*" "fout")
    '("int" "fin_stride")
  )
)

(define-function kiss_fft_s16_cleanup
  (c-name "kiss_fft_s16_cleanup")
  (return-type "none")
)

(define-function kiss_fft_s16_next_fast_size
  (c-name "kiss_fft_s16_next_fast_size")
  (return-type "int")
  (parameters
    '("int" "n")
  )
)



;; From kiss_fft_s32.h

(define-function kiss_fft_s32_alloc
  (c-name "kiss_fft_s32_alloc")
  (return-type "kiss_fft_s32_cfg")
  (parameters
    '("int" "nfft")
    '("int" "inverse_fft")
    '("void*" "mem")
    '("size_t*" "lenmem")
  )
)

(define-function kiss_fft_s32
  (c-name "kiss_fft_s32")
  (return-type "none")
  (parameters
    '("kiss_fft_s32_cfg" "cfg")
    '("const-kiss_fft_s32_cpx*" "fin")
    '("kiss_fft_s32_cpx*" "fout")
  )
)

(define-function kiss_fft_s32_stride
  (c-name "kiss_fft_s32_stride")
  (return-type "none")
  (parameters
    '("kiss_fft_s32_cfg" "cfg")
    '("const-kiss_fft_s32_cpx*" "fin")
    '("kiss_fft_s32_cpx*" "fout")
    '("int" "fin_stride")
  )
)

(define-function kiss_fft_s32_cleanup
  (c-name "kiss_fft_s32_cleanup")
  (return-type "none")
)

(define-function kiss_fft_s32_next_fast_size
  (c-name "kiss_fft_s32_next_fast_size")
  (return-type "int")
  (parameters
    '("int" "n")
  )
)



;; From floatcast.h



;; From colorbalancechannel.h

(define-function gst_color_balance_channel_get_type
  (c-name "gst_color_balance_channel_get_type")
  (return-type "GType")
)



;; From colorbalance.h

(define-function gst_color_balance_get_type
  (c-name "gst_color_balance_get_type")
  (return-type "GType")
)

(define-method list_channels
  (of-object "GstColorBalance")
  (c-name "gst_color_balance_list_channels")
  (return-type "const-GList*")
)

(define-method set_value
  (of-object "GstColorBalance")
  (c-name "gst_color_balance_set_value")
  (return-type "none")
  (parameters
    '("GstColorBalanceChannel*" "channel")
    '("gint" "value")
  )
)

(define-method get_value
  (of-object "GstColorBalance")
  (c-name "gst_color_balance_get_value")
  (return-type "gint")
  (parameters
    '("GstColorBalanceChannel*" "channel")
  )
)

(define-method get_balance_type
  (of-object "GstColorBalance")
  (c-name "gst_color_balance_get_balance_type")
  (return-type "GstColorBalanceType")
)

(define-method value_changed
  (of-object "GstColorBalance")
  (c-name "gst_color_balance_value_changed")
  (return-type "none")
  (parameters
    '("GstColorBalanceChannel*" "channel")
    '("gint" "value")
  )
)



;; From interfaces-enumtypes.h

(define-function gst_color_balance_type_get_type
  (c-name "gst_color_balance_type_get_type")
  (return-type "GType")
)

(define-function gst_mixer_type_get_type
  (c-name "gst_mixer_type_get_type")
  (return-type "GType")
)

(define-function gst_mixer_message_type_get_type
  (c-name "gst_mixer_message_type_get_type")
  (return-type "GType")
)

(define-function gst_mixer_flags_get_type
  (c-name "gst_mixer_flags_get_type")
  (return-type "GType")
)

(define-function gst_mixer_track_flags_get_type
  (c-name "gst_mixer_track_flags_get_type")
  (return-type "GType")
)

(define-function gst_navigation_command_get_type
  (c-name "gst_navigation_command_get_type")
  (return-type "GType")
)

(define-function gst_navigation_query_type_get_type
  (c-name "gst_navigation_query_type_get_type")
  (return-type "GType")
)

(define-function gst_navigation_message_type_get_type
  (c-name "gst_navigation_message_type_get_type")
  (return-type "GType")
)

(define-function gst_navigation_event_type_get_type
  (c-name "gst_navigation_event_type_get_type")
  (return-type "GType")
)

(define-function gst_stream_volume_format_get_type
  (c-name "gst_stream_volume_format_get_type")
  (return-type "GType")
)

(define-function gst_tuner_channel_flags_get_type
  (c-name "gst_tuner_channel_flags_get_type")
  (return-type "GType")
)



;; From interfaces-marshal.h



;; From mixer.h

(define-function gst_mixer_get_type
  (c-name "gst_mixer_get_type")
  (return-type "GType")
)

(define-method list_tracks
  (of-object "GstMixer")
  (c-name "gst_mixer_list_tracks")
  (return-type "const-GList*")
)

(define-method set_volume
  (of-object "GstMixer")
  (c-name "gst_mixer_set_volume")
  (return-type "none")
  (parameters
    '("GstMixerTrack*" "track")
    '("gint*" "volumes")
  )
)

(define-method get_volume
  (of-object "GstMixer")
  (c-name "gst_mixer_get_volume")
  (return-type "none")
  (parameters
    '("GstMixerTrack*" "track")
    '("gint*" "volumes")
  )
)

(define-method set_mute
  (of-object "GstMixer")
  (c-name "gst_mixer_set_mute")
  (return-type "none")
  (parameters
    '("GstMixerTrack*" "track")
    '("gboolean" "mute")
  )
)

(define-method set_record
  (of-object "GstMixer")
  (c-name "gst_mixer_set_record")
  (return-type "none")
  (parameters
    '("GstMixerTrack*" "track")
    '("gboolean" "record")
  )
)

(define-method set_option
  (of-object "GstMixer")
  (c-name "gst_mixer_set_option")
  (return-type "none")
  (parameters
    '("GstMixerOptions*" "opts")
    '("gchar*" "value")
  )
)

(define-method get_option
  (of-object "GstMixer")
  (c-name "gst_mixer_get_option")
  (return-type "const-gchar*")
  (parameters
    '("GstMixerOptions*" "opts")
  )
)

(define-method mute_toggled
  (of-object "GstMixer")
  (c-name "gst_mixer_mute_toggled")
  (return-type "none")
  (parameters
    '("GstMixerTrack*" "track")
    '("gboolean" "mute")
  )
)

(define-method record_toggled
  (of-object "GstMixer")
  (c-name "gst_mixer_record_toggled")
  (return-type "none")
  (parameters
    '("GstMixerTrack*" "track")
    '("gboolean" "record")
  )
)

(define-method volume_changed
  (of-object "GstMixer")
  (c-name "gst_mixer_volume_changed")
  (return-type "none")
  (parameters
    '("GstMixerTrack*" "track")
    '("gint*" "volumes")
  )
)

(define-method option_changed
  (of-object "GstMixer")
  (c-name "gst_mixer_option_changed")
  (return-type "none")
  (parameters
    '("GstMixerOptions*" "opts")
    '("const-gchar*" "value")
  )
)

(define-method mixer_changed
  (of-object "GstMixer")
  (c-name "gst_mixer_mixer_changed")
  (return-type "none")
)

(define-method options_list_changed
  (of-object "GstMixer")
  (c-name "gst_mixer_options_list_changed")
  (return-type "none")
  (parameters
    '("GstMixerOptions*" "opts")
  )
)

(define-method get_mixer_type
  (of-object "GstMixer")
  (c-name "gst_mixer_get_mixer_type")
  (return-type "GstMixerType")
)

(define-method get_mixer_flags
  (of-object "GstMixer")
  (c-name "gst_mixer_get_mixer_flags")
  (return-type "GstMixerFlags")
)

(define-function gst_mixer_message_get_type
  (c-name "gst_mixer_message_get_type")
  (return-type "GstMixerMessageType")
  (parameters
    '("GstMessage*" "message")
  )
)

(define-function gst_mixer_message_parse_mute_toggled
  (c-name "gst_mixer_message_parse_mute_toggled")
  (return-type "none")
  (parameters
    '("GstMessage*" "message")
    '("GstMixerTrack**" "track")
    '("gboolean*" "mute")
  )
)

(define-function gst_mixer_message_parse_record_toggled
  (c-name "gst_mixer_message_parse_record_toggled")
  (return-type "none")
  (parameters
    '("GstMessage*" "message")
    '("GstMixerTrack**" "track")
    '("gboolean*" "record")
  )
)

(define-function gst_mixer_message_parse_volume_changed
  (c-name "gst_mixer_message_parse_volume_changed")
  (return-type "none")
  (parameters
    '("GstMessage*" "message")
    '("GstMixerTrack**" "track")
    '("gint**" "volumes")
    '("gint*" "num_channels")
  )
)

(define-function gst_mixer_message_parse_option_changed
  (c-name "gst_mixer_message_parse_option_changed")
  (return-type "none")
  (parameters
    '("GstMessage*" "message")
    '("GstMixerOptions**" "options")
    '("const-gchar**" "value")
  )
)

(define-function gst_mixer_message_parse_options_list_changed
  (c-name "gst_mixer_message_parse_options_list_changed")
  (return-type "none")
  (parameters
    '("GstMessage*" "message")
    '("GstMixerOptions**" "options")
  )
)



;; From mixeroptions.h

(define-function gst_mixer_options_get_type
  (c-name "gst_mixer_options_get_type")
  (return-type "GType")
)

(define-method get_values
  (of-object "GstMixerOptions")
  (c-name "gst_mixer_options_get_values")
  (return-type "GList*")
)



;; From mixertrack.h

(define-function gst_mixer_track_get_type
  (c-name "gst_mixer_track_get_type")
  (return-type "GType")
)



;; From navigation.h

(define-function gst_navigation_get_type
  (c-name "gst_navigation_get_type")
  (return-type "GType")
)

(define-function gst_navigation_query_get_type
  (c-name "gst_navigation_query_get_type")
  (return-type "GstNavigationQueryType")
  (parameters
    '("GstQuery*" "query")
  )
)

(define-function gst_navigation_query_new_commands
  (c-name "gst_navigation_query_new_commands")
  (return-type "GstQuery*")
)

(define-function gst_navigation_query_set_commands
  (c-name "gst_navigation_query_set_commands")
  (return-type "none")
  (parameters
    '("GstQuery*" "query")
    '("gint" "n_cmds")
  )
  (varargs #t)
)

(define-function gst_navigation_query_set_commandsv
  (c-name "gst_navigation_query_set_commandsv")
  (return-type "none")
  (parameters
    '("GstQuery*" "query")
    '("gint" "n_cmds")
    '("GstNavigationCommand*" "cmds")
  )
)

(define-function gst_navigation_query_parse_commands_length
  (c-name "gst_navigation_query_parse_commands_length")
  (return-type "gboolean")
  (parameters
    '("GstQuery*" "query")
    '("guint*" "n_cmds")
  )
)

(define-function gst_navigation_query_parse_commands_nth
  (c-name "gst_navigation_query_parse_commands_nth")
  (return-type "gboolean")
  (parameters
    '("GstQuery*" "query")
    '("guint" "nth")
    '("GstNavigationCommand*" "cmd")
  )
)

(define-function gst_navigation_query_new_angles
  (c-name "gst_navigation_query_new_angles")
  (return-type "GstQuery*")
)

(define-function gst_navigation_query_set_angles
  (c-name "gst_navigation_query_set_angles")
  (return-type "none")
  (parameters
    '("GstQuery*" "query")
    '("guint" "cur_angle")
    '("guint" "n_angles")
  )
)

(define-function gst_navigation_query_parse_angles
  (c-name "gst_navigation_query_parse_angles")
  (return-type "gboolean")
  (parameters
    '("GstQuery*" "query")
    '("guint*" "cur_angle")
    '("guint*" "n_angles")
  )
)

(define-function gst_navigation_message_get_type
  (c-name "gst_navigation_message_get_type")
  (return-type "GstNavigationMessageType")
  (parameters
    '("GstMessage*" "message")
  )
)

(define-function gst_navigation_message_new_mouse_over
  (c-name "gst_navigation_message_new_mouse_over")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("gboolean" "active")
  )
)

(define-function gst_navigation_message_parse_mouse_over
  (c-name "gst_navigation_message_parse_mouse_over")
  (return-type "gboolean")
  (parameters
    '("GstMessage*" "message")
    '("gboolean*" "active")
  )
)

(define-function gst_navigation_message_new_commands_changed
  (c-name "gst_navigation_message_new_commands_changed")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
  )
)

(define-function gst_navigation_message_new_angles_changed
  (c-name "gst_navigation_message_new_angles_changed")
  (return-type "GstMessage*")
  (parameters
    '("GstObject*" "src")
    '("guint" "cur_angle")
    '("guint" "n_angles")
  )
)

(define-function gst_navigation_message_parse_angles_changed
  (c-name "gst_navigation_message_parse_angles_changed")
  (return-type "gboolean")
  (parameters
    '("GstMessage*" "message")
    '("guint*" "cur_angle")
    '("guint*" "n_angles")
  )
)

(define-function gst_navigation_event_get_type
  (c-name "gst_navigation_event_get_type")
  (return-type "GstNavigationEventType")
  (parameters
    '("GstEvent*" "event")
  )
)

(define-function gst_navigation_event_parse_key_event
  (c-name "gst_navigation_event_parse_key_event")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
    '("const-gchar**" "key")
  )
)

(define-function gst_navigation_event_parse_mouse_button_event
  (c-name "gst_navigation_event_parse_mouse_button_event")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
    '("gint*" "button")
    '("gdouble*" "x")
    '("gdouble*" "y")
  )
)

(define-function gst_navigation_event_parse_mouse_move_event
  (c-name "gst_navigation_event_parse_mouse_move_event")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
    '("gdouble*" "x")
    '("gdouble*" "y")
  )
)

(define-function gst_navigation_event_parse_command
  (c-name "gst_navigation_event_parse_command")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
    '("GstNavigationCommand*" "command")
  )
)

(define-method send_event
  (of-object "GstNavigation")
  (c-name "gst_navigation_send_event")
  (return-type "none")
  (parameters
    '("GstStructure*" "structure")
  )
)

(define-method send_key_event
  (of-object "GstNavigation")
  (c-name "gst_navigation_send_key_event")
  (return-type "none")
  (parameters
    '("const-char*" "event")
    '("const-char*" "key")
  )
)

(define-method send_mouse_event
  (of-object "GstNavigation")
  (c-name "gst_navigation_send_mouse_event")
  (return-type "none")
  (parameters
    '("const-char*" "event")
    '("int" "button")
    '("double" "x")
    '("double" "y")
  )
)

(define-method send_command
  (of-object "GstNavigation")
  (c-name "gst_navigation_send_command")
  (return-type "none")
  (parameters
    '("GstNavigationCommand" "command")
  )
)



;; From propertyprobe.h

(define-function gst_property_probe_get_type
  (c-name "gst_property_probe_get_type")
  (return-type "GType")
)

(define-method get_properties
  (of-object "GstPropertyProbe")
  (c-name "gst_property_probe_get_properties")
  (return-type "const-GList*")
)

(define-method get_property
  (of-object "GstPropertyProbe")
  (c-name "gst_property_probe_get_property")
  (return-type "const-GParamSpec*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method probe_property
  (of-object "GstPropertyProbe")
  (c-name "gst_property_probe_probe_property")
  (return-type "none")
  (parameters
    '("const-GParamSpec*" "pspec")
  )
)

(define-method probe_property_name
  (of-object "GstPropertyProbe")
  (c-name "gst_property_probe_probe_property_name")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method needs_probe
  (of-object "GstPropertyProbe")
  (c-name "gst_property_probe_needs_probe")
  (return-type "gboolean")
  (parameters
    '("const-GParamSpec*" "pspec")
  )
)

(define-method needs_probe_name
  (of-object "GstPropertyProbe")
  (c-name "gst_property_probe_needs_probe_name")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_values
  (of-object "GstPropertyProbe")
  (c-name "gst_property_probe_get_values")
  (return-type "GValueArray*")
  (parameters
    '("const-GParamSpec*" "pspec")
  )
)

(define-method get_values_name
  (of-object "GstPropertyProbe")
  (c-name "gst_property_probe_get_values_name")
  (return-type "GValueArray*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method probe_and_get_values
  (of-object "GstPropertyProbe")
  (c-name "gst_property_probe_probe_and_get_values")
  (return-type "GValueArray*")
  (parameters
    '("const-GParamSpec*" "pspec")
  )
)

(define-method probe_and_get_values_name
  (of-object "GstPropertyProbe")
  (c-name "gst_property_probe_probe_and_get_values_name")
  (return-type "GValueArray*")
  (parameters
    '("const-gchar*" "name")
  )
)



;; From streamvolume.h

(define-function gst_stream_volume_get_type
  (c-name "gst_stream_volume_get_type")
  (return-type "GType")
)

(define-method set_volume
  (of-object "GstStreamVolume")
  (c-name "gst_stream_volume_set_volume")
  (return-type "none")
  (parameters
    '("GstStreamVolumeFormat" "format")
    '("gdouble" "val")
  )
)

(define-method get_volume
  (of-object "GstStreamVolume")
  (c-name "gst_stream_volume_get_volume")
  (return-type "gdouble")
  (parameters
    '("GstStreamVolumeFormat" "format")
  )
)

(define-method set_mute
  (of-object "GstStreamVolume")
  (c-name "gst_stream_volume_set_mute")
  (return-type "none")
  (parameters
    '("gboolean" "mute")
  )
)

(define-method get_mute
  (of-object "GstStreamVolume")
  (c-name "gst_stream_volume_get_mute")
  (return-type "gboolean")
)

(define-function gst_stream_volume_convert_volume
  (c-name "gst_stream_volume_convert_volume")
  (return-type "gdouble")
  (parameters
    '("GstStreamVolumeFormat" "from")
    '("GstStreamVolumeFormat" "to")
    '("gdouble" "val")
  )
)



;; From tunerchannel.h

(define-function gst_tuner_channel_get_type
  (c-name "gst_tuner_channel_get_type")
  (return-type "GType")
)



;; From tuner.h

(define-function gst_tuner_get_type
  (c-name "gst_tuner_get_type")
  (return-type "GType")
)

(define-method list_channels
  (of-object "GstTuner")
  (c-name "gst_tuner_list_channels")
  (return-type "const-GList*")
)

(define-method set_channel
  (of-object "GstTuner")
  (c-name "gst_tuner_set_channel")
  (return-type "none")
  (parameters
    '("GstTunerChannel*" "channel")
  )
)

(define-method get_channel
  (of-object "GstTuner")
  (c-name "gst_tuner_get_channel")
  (return-type "GstTunerChannel*")
)

(define-method list_norms
  (of-object "GstTuner")
  (c-name "gst_tuner_list_norms")
  (return-type "const-GList*")
)

(define-method set_norm
  (of-object "GstTuner")
  (c-name "gst_tuner_set_norm")
  (return-type "none")
  (parameters
    '("GstTunerNorm*" "norm")
  )
)

(define-method get_norm
  (of-object "GstTuner")
  (c-name "gst_tuner_get_norm")
  (return-type "GstTunerNorm*")
)

(define-method set_frequency
  (of-object "GstTuner")
  (c-name "gst_tuner_set_frequency")
  (return-type "none")
  (parameters
    '("GstTunerChannel*" "channel")
    '("gulong" "frequency")
  )
)

(define-method get_frequency
  (of-object "GstTuner")
  (c-name "gst_tuner_get_frequency")
  (return-type "gulong")
  (parameters
    '("GstTunerChannel*" "channel")
  )
)

(define-method signal_strength
  (of-object "GstTuner")
  (c-name "gst_tuner_signal_strength")
  (return-type "gint")
  (parameters
    '("GstTunerChannel*" "channel")
  )
)

(define-method find_norm_by_name
  (of-object "GstTuner")
  (c-name "gst_tuner_find_norm_by_name")
  (return-type "GstTunerNorm*")
  (parameters
    '("gchar*" "norm")
  )
)

(define-method find_channel_by_name
  (of-object "GstTuner")
  (c-name "gst_tuner_find_channel_by_name")
  (return-type "GstTunerChannel*")
  (parameters
    '("gchar*" "channel")
  )
)

(define-method channel_changed
  (of-object "GstTuner")
  (c-name "gst_tuner_channel_changed")
  (return-type "none")
  (parameters
    '("GstTunerChannel*" "channel")
  )
)

(define-method norm_changed
  (of-object "GstTuner")
  (c-name "gst_tuner_norm_changed")
  (return-type "none")
  (parameters
    '("GstTunerNorm*" "norm")
  )
)

(define-method frequency_changed
  (of-object "GstTuner")
  (c-name "gst_tuner_frequency_changed")
  (return-type "none")
  (parameters
    '("GstTunerChannel*" "channel")
    '("gulong" "frequency")
  )
)

(define-method signal_changed
  (of-object "GstTuner")
  (c-name "gst_tuner_signal_changed")
  (return-type "none")
  (parameters
    '("GstTunerChannel*" "channel")
    '("gint" "signal")
  )
)



;; From tunernorm.h

(define-function gst_tuner_norm_get_type
  (c-name "gst_tuner_norm_get_type")
  (return-type "GType")
)



;; From videoorientation.h

(define-function gst_video_orientation_get_type
  (c-name "gst_video_orientation_get_type")
  (return-type "GType")
)

(define-method get_hflip
  (of-object "GstVideoOrientation")
  (c-name "gst_video_orientation_get_hflip")
  (return-type "gboolean")
  (parameters
    '("gboolean*" "flip")
  )
)

(define-method get_vflip
  (of-object "GstVideoOrientation")
  (c-name "gst_video_orientation_get_vflip")
  (return-type "gboolean")
  (parameters
    '("gboolean*" "flip")
  )
)

(define-method get_hcenter
  (of-object "GstVideoOrientation")
  (c-name "gst_video_orientation_get_hcenter")
  (return-type "gboolean")
  (parameters
    '("gint*" "center")
  )
)

(define-method get_vcenter
  (of-object "GstVideoOrientation")
  (c-name "gst_video_orientation_get_vcenter")
  (return-type "gboolean")
  (parameters
    '("gint*" "center")
  )
)

(define-method set_hflip
  (of-object "GstVideoOrientation")
  (c-name "gst_video_orientation_set_hflip")
  (return-type "gboolean")
  (parameters
    '("gboolean" "flip")
  )
)

(define-method set_vflip
  (of-object "GstVideoOrientation")
  (c-name "gst_video_orientation_set_vflip")
  (return-type "gboolean")
  (parameters
    '("gboolean" "flip")
  )
)

(define-method set_hcenter
  (of-object "GstVideoOrientation")
  (c-name "gst_video_orientation_set_hcenter")
  (return-type "gboolean")
  (parameters
    '("gint" "center")
  )
)

(define-method set_vcenter
  (of-object "GstVideoOrientation")
  (c-name "gst_video_orientation_set_vcenter")
  (return-type "gboolean")
  (parameters
    '("gint" "center")
  )
)



;; From xoverlay.h

(define-function gst_x_overlay_get_type
  (c-name "gst_x_overlay_get_type")
  (return-type "GType")
)

(define-method set_xwindow_id
  (of-object "GstXOverlay")
  (c-name "gst_x_overlay_set_xwindow_id")
  (return-type "none")
  (parameters
    '("gulong" "xwindow_id")
  )
)

(define-method set_render_rectangle
  (of-object "GstXOverlay")
  (c-name "gst_x_overlay_set_render_rectangle")
  (return-type "gboolean")
  (parameters
    '("gint" "x")
    '("gint" "y")
    '("gint" "width")
    '("gint" "height")
  )
)

(define-method expose
  (of-object "GstXOverlay")
  (c-name "gst_x_overlay_expose")
  (return-type "none")
)

(define-method handle_events
  (of-object "GstXOverlay")
  (c-name "gst_x_overlay_handle_events")
  (return-type "none")
  (parameters
    '("gboolean" "handle_events")
  )
)

(define-method set_window_handle
  (of-object "GstXOverlay")
  (c-name "gst_x_overlay_set_window_handle")
  (return-type "none")
  (parameters
    '("guintptr" "handle")
  )
)

(define-method got_xwindow_id
  (of-object "GstXOverlay")
  (c-name "gst_x_overlay_got_xwindow_id")
  (return-type "none")
  (parameters
    '("gulong" "xwindow_id")
  )
)

(define-method got_window_handle
  (of-object "GstXOverlay")
  (c-name "gst_x_overlay_got_window_handle")
  (return-type "none")
  (parameters
    '("guintptr" "handle")
  )
)

(define-method prepare_xwindow_id
  (of-object "GstXOverlay")
  (c-name "gst_x_overlay_prepare_xwindow_id")
  (return-type "none")
)



;; From gstnetbuffer.h

(define-function gst_netbuffer_get_type
  (c-name "gst_netbuffer_get_type")
  (return-type "GType")
)

(define-function gst_netbuffer_new
  (c-name "gst_netbuffer_new")
  (is-constructor-of "GstNetbuffer")
  (return-type "GstNetBuffer*")
)

(define-method set_ip4_address
  (of-object "GstNetAddress")
  (c-name "gst_netaddress_set_ip4_address")
  (return-type "none")
  (parameters
    '("guint32" "address")
    '("guint16" "port")
  )
)

(define-method set_ip6_address
  (of-object "GstNetAddress")
  (c-name "gst_netaddress_set_ip6_address")
  (return-type "none")
  (parameters
    '("guint8" "address[16]")
    '("guint16" "port")
  )
)

(define-method set_address_bytes
  (of-object "GstNetAddress")
  (c-name "gst_netaddress_set_address_bytes")
  (return-type "gint")
  (parameters
    '("GstNetType" "type")
    '("guint8" "address[16]")
    '("guint16" "port")
  )
)

(define-method get_net_type
  (of-object "GstNetAddress")
  (c-name "gst_netaddress_get_net_type")
  (return-type "GstNetType")
)

(define-method get_ip4_address
  (of-object "GstNetAddress")
  (c-name "gst_netaddress_get_ip4_address")
  (return-type "gboolean")
  (parameters
    '("guint32*" "address")
    '("guint16*" "port")
  )
)

(define-method get_ip6_address
  (of-object "GstNetAddress")
  (c-name "gst_netaddress_get_ip6_address")
  (return-type "gboolean")
  (parameters
    '("guint8" "address[16]")
    '("guint16*" "port")
  )
)

(define-method get_address_bytes
  (of-object "GstNetAddress")
  (c-name "gst_netaddress_get_address_bytes")
  (return-type "gint")
  (parameters
    '("guint8" "address[16]")
    '("guint16*" "port")
  )
)

(define-method equal
  (of-object "GstNetAddress")
  (c-name "gst_netaddress_equal")
  (return-type "gboolean")
  (parameters
    '("const-GstNetAddress*" "naddr2")
  )
)

(define-method to_string
  (of-object "GstNetAddress")
  (c-name "gst_netaddress_to_string")
  (return-type "gint")
  (parameters
    '("gchar*" "dest")
    '("gulong" "len")
  )
)



;; From riff-ids.h



;; From riff-media.h

(define-function gst_riff_create_video_caps
  (c-name "gst_riff_create_video_caps")
  (return-type "GstCaps*")
  (parameters
    '("guint32" "codec_fcc")
    '("gst_riff_strh*" "strh")
    '("gst_riff_strf_vids*" "strf")
    '("GstBuffer*" "strf_data")
    '("GstBuffer*" "strd_data")
    '("char**" "codec_name")
  )
)

(define-function gst_riff_create_audio_caps
  (c-name "gst_riff_create_audio_caps")
  (return-type "GstCaps*")
  (parameters
    '("guint16" "codec_id")
    '("gst_riff_strh*" "strh")
    '("gst_riff_strf_auds*" "strf")
    '("GstBuffer*" "strf_data")
    '("GstBuffer*" "strd_data")
    '("char**" "codec_name")
  )
)

(define-function gst_riff_create_iavs_caps
  (c-name "gst_riff_create_iavs_caps")
  (return-type "GstCaps*")
  (parameters
    '("guint32" "codec_fcc")
    '("gst_riff_strh*" "strh")
    '("gst_riff_strf_iavs*" "strf")
    '("GstBuffer*" "strf_data")
    '("GstBuffer*" "strd_data")
    '("char**" "codec_name")
  )
)

(define-function gst_riff_create_video_template_caps
  (c-name "gst_riff_create_video_template_caps")
  (return-type "GstCaps*")
)

(define-function gst_riff_create_audio_template_caps
  (c-name "gst_riff_create_audio_template_caps")
  (return-type "GstCaps*")
)

(define-function gst_riff_create_iavs_template_caps
  (c-name "gst_riff_create_iavs_template_caps")
  (return-type "GstCaps*")
)



;; From riff-read.h

(define-function gst_riff_read_chunk
  (c-name "gst_riff_read_chunk")
  (return-type "GstFlowReturn")
  (parameters
    '("GstElement*" "element")
    '("GstPad*" "pad")
    '("guint64*" "offset")
    '("guint32*" "tag")
    '("GstBuffer**" "chunk_data")
  )
)

(define-function gst_riff_parse_chunk
  (c-name "gst_riff_parse_chunk")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element")
    '("GstBuffer*" "buf")
    '("guint*" "offset")
    '("guint32*" "fourcc")
    '("GstBuffer**" "chunk_data")
  )
)

(define-function gst_riff_parse_file_header
  (c-name "gst_riff_parse_file_header")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element")
    '("GstBuffer*" "buf")
    '("guint32*" "doctype")
  )
)

(define-function gst_riff_parse_strh
  (c-name "gst_riff_parse_strh")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element")
    '("GstBuffer*" "buf")
    '("gst_riff_strh**" "strh")
  )
)

(define-function gst_riff_parse_strf_vids
  (c-name "gst_riff_parse_strf_vids")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element")
    '("GstBuffer*" "buf")
    '("gst_riff_strf_vids**" "strf")
    '("GstBuffer**" "data")
  )
)

(define-function gst_riff_parse_strf_auds
  (c-name "gst_riff_parse_strf_auds")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element")
    '("GstBuffer*" "buf")
    '("gst_riff_strf_auds**" "strf")
    '("GstBuffer**" "data")
  )
)

(define-function gst_riff_parse_strf_iavs
  (c-name "gst_riff_parse_strf_iavs")
  (return-type "gboolean")
  (parameters
    '("GstElement*" "element")
    '("GstBuffer*" "buf")
    '("gst_riff_strf_iavs**" "strf")
    '("GstBuffer**" "data")
  )
)

(define-function gst_riff_parse_info
  (c-name "gst_riff_parse_info")
  (return-type "none")
  (parameters
    '("GstElement*" "element")
    '("GstBuffer*" "buf")
    '("GstTagList**" "taglist")
  )
)

(define-function gst_riff_init
  (c-name "gst_riff_init")
  (return-type "none")
)



;; From gstbasertpaudiopayload.h

(define-function gst_base_rtp_audio_payload_get_type
  (c-name "gst_base_rtp_audio_payload_get_type")
  (return-type "GType")
)

(define-method set_frame_based
  (of-object "GstBaseRTPAudioPayload")
  (c-name "gst_base_rtp_audio_payload_set_frame_based")
  (return-type "none")
)

(define-method set_frame_options
  (of-object "GstBaseRTPAudioPayload")
  (c-name "gst_base_rtp_audio_payload_set_frame_options")
  (return-type "none")
  (parameters
    '("gint" "frame_duration")
    '("gint" "frame_size")
  )
)

(define-method set_sample_based
  (of-object "GstBaseRTPAudioPayload")
  (c-name "gst_base_rtp_audio_payload_set_sample_based")
  (return-type "none")
)

(define-method set_sample_options
  (of-object "GstBaseRTPAudioPayload")
  (c-name "gst_base_rtp_audio_payload_set_sample_options")
  (return-type "none")
  (parameters
    '("gint" "sample_size")
  )
)

(define-method set_samplebits_options
  (of-object "GstBaseRTPAudioPayload")
  (c-name "gst_base_rtp_audio_payload_set_samplebits_options")
  (return-type "none")
  (parameters
    '("gint" "sample_size")
  )
)

(define-method get_adapter
  (of-object "GstBaseRTPAudioPayload")
  (c-name "gst_base_rtp_audio_payload_get_adapter")
  (return-type "GstAdapter*")
)

(define-method push
  (of-object "GstBaseRTPAudioPayload")
  (c-name "gst_base_rtp_audio_payload_push")
  (return-type "GstFlowReturn")
  (parameters
    '("const-guint8*" "data")
    '("guint" "payload_len")
    '("GstClockTime" "timestamp")
  )
)

(define-method flush
  (of-object "GstBaseRTPAudioPayload")
  (c-name "gst_base_rtp_audio_payload_flush")
  (return-type "GstFlowReturn")
  (parameters
    '("guint" "payload_len")
    '("GstClockTime" "timestamp")
  )
)



;; From gstbasertpdepayload.h

(define-function gst_base_rtp_depayload_get_type
  (c-name "gst_base_rtp_depayload_get_type")
  (return-type "GType")
)

(define-method push
  (of-object "GstBaseRTPDepayload")
  (c-name "gst_base_rtp_depayload_push")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBuffer*" "out_buf")
  )
)

(define-method push_ts
  (of-object "GstBaseRTPDepayload")
  (c-name "gst_base_rtp_depayload_push_ts")
  (return-type "GstFlowReturn")
  (parameters
    '("guint32" "timestamp")
    '("GstBuffer*" "out_buf")
  )
)

(define-method push_list
  (of-object "GstBaseRTPDepayload")
  (c-name "gst_base_rtp_depayload_push_list")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBufferList*" "out_list")
  )
)



;; From gstbasertppayload.h

(define-function gst_basertppayload_get_type
  (c-name "gst_basertppayload_get_type")
  (return-type "GType")
)

(define-method set_options
  (of-object "GstBaseRTPPayload")
  (c-name "gst_basertppayload_set_options")
  (return-type "none")
  (parameters
    '("const-gchar*" "media")
    '("gboolean" "dynamic")
    '("const-gchar*" "encoding_name")
    '("guint32" "clock_rate")
  )
)

(define-method set_outcaps
  (of-object "GstBaseRTPPayload")
  (c-name "gst_basertppayload_set_outcaps")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "fieldname")
  )
  (varargs #t)
)

(define-method is_filled
  (of-object "GstBaseRTPPayload")
  (c-name "gst_basertppayload_is_filled")
  (return-type "gboolean")
  (parameters
    '("guint" "size")
    '("GstClockTime" "duration")
  )
)

(define-method push
  (of-object "GstBaseRTPPayload")
  (c-name "gst_basertppayload_push")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-method push_list
  (of-object "GstBaseRTPPayload")
  (c-name "gst_basertppayload_push_list")
  (return-type "GstFlowReturn")
  (parameters
    '("GstBufferList*" "list")
  )
)



;; From gstrtcpbuffer.h

(define-function gst_rtcp_buffer_new_take_data
  (c-name "gst_rtcp_buffer_new_take_data")
  (return-type "GstBuffer*")
  (parameters
    '("gpointer" "data")
    '("guint" "len")
  )
)

(define-function gst_rtcp_buffer_new_copy_data
  (c-name "gst_rtcp_buffer_new_copy_data")
  (return-type "GstBuffer*")
  (parameters
    '("gpointer" "data")
    '("guint" "len")
  )
)

(define-function gst_rtcp_buffer_validate_data
  (c-name "gst_rtcp_buffer_validate_data")
  (return-type "gboolean")
  (parameters
    '("guint8*" "data")
    '("guint" "len")
  )
)

(define-function gst_rtcp_buffer_validate
  (c-name "gst_rtcp_buffer_validate")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtcp_buffer_new
  (c-name "gst_rtcp_buffer_new")
  (is-constructor-of "GstRtcpBuffer")
  (return-type "GstBuffer*")
  (parameters
    '("guint" "mtu")
  )
)

(define-function gst_rtcp_buffer_end
  (c-name "gst_rtcp_buffer_end")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtcp_buffer_get_packet_count
  (c-name "gst_rtcp_buffer_get_packet_count")
  (return-type "guint")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtcp_buffer_get_first_packet
  (c-name "gst_rtcp_buffer_get_first_packet")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
    '("GstRTCPPacket*" "packet")
  )
)

(define-method move_to_next
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_move_to_next")
  (return-type "gboolean")
)

(define-function gst_rtcp_buffer_add_packet
  (c-name "gst_rtcp_buffer_add_packet")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
    '("GstRTCPType" "type")
    '("GstRTCPPacket*" "packet")
  )
)

(define-method remove
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_remove")
  (return-type "gboolean")
)

(define-method get_padding
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_get_padding")
  (return-type "gboolean")
)

(define-method get_count
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_get_count")
  (return-type "guint8")
)

(define-method get_type
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_get_type")
  (return-type "GstRTCPType")
)

(define-method get_length
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_get_length")
  (return-type "guint16")
)

(define-method sr_get_sender_info
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sr_get_sender_info")
  (return-type "none")
  (parameters
    '("guint32*" "ssrc")
    '("guint64*" "ntptime")
    '("guint32*" "rtptime")
    '("guint32*" "packet_count")
    '("guint32*" "octet_count")
  )
)

(define-method sr_set_sender_info
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sr_set_sender_info")
  (return-type "none")
  (parameters
    '("guint32" "ssrc")
    '("guint64" "ntptime")
    '("guint32" "rtptime")
    '("guint32" "packet_count")
    '("guint32" "octet_count")
  )
)

(define-method rr_get_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_rr_get_ssrc")
  (return-type "guint32")
)

(define-method rr_set_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_rr_set_ssrc")
  (return-type "none")
  (parameters
    '("guint32" "ssrc")
  )
)

(define-method get_rb_count
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_get_rb_count")
  (return-type "guint")
)

(define-method get_rb
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_get_rb")
  (return-type "none")
  (parameters
    '("guint" "nth")
    '("guint32*" "ssrc")
    '("guint8*" "fractionlost")
    '("gint32*" "packetslost")
    '("guint32*" "exthighestseq")
    '("guint32*" "jitter")
    '("guint32*" "lsr")
    '("guint32*" "dlsr")
  )
)

(define-method add_rb
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_add_rb")
  (return-type "gboolean")
  (parameters
    '("guint32" "ssrc")
    '("guint8" "fractionlost")
    '("gint32" "packetslost")
    '("guint32" "exthighestseq")
    '("guint32" "jitter")
    '("guint32" "lsr")
    '("guint32" "dlsr")
  )
)

(define-method set_rb
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_set_rb")
  (return-type "none")
  (parameters
    '("guint" "nth")
    '("guint32" "ssrc")
    '("guint8" "fractionlost")
    '("gint32" "packetslost")
    '("guint32" "exthighestseq")
    '("guint32" "jitter")
    '("guint32" "lsr")
    '("guint32" "dlsr")
  )
)

(define-method sdes_get_item_count
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_get_item_count")
  (return-type "guint")
)

(define-method sdes_first_item
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_first_item")
  (return-type "gboolean")
)

(define-method sdes_next_item
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_next_item")
  (return-type "gboolean")
)

(define-method sdes_get_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_get_ssrc")
  (return-type "guint32")
)

(define-method sdes_first_entry
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_first_entry")
  (return-type "gboolean")
)

(define-method sdes_next_entry
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_next_entry")
  (return-type "gboolean")
)

(define-method sdes_get_entry
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_get_entry")
  (return-type "gboolean")
  (parameters
    '("GstRTCPSDESType*" "type")
    '("guint8*" "len")
    '("guint8**" "data")
  )
)

(define-method sdes_copy_entry
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_copy_entry")
  (return-type "gboolean")
  (parameters
    '("GstRTCPSDESType*" "type")
    '("guint8*" "len")
    '("guint8**" "data")
  )
)

(define-method sdes_add_item
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_add_item")
  (return-type "gboolean")
  (parameters
    '("guint32" "ssrc")
  )
)

(define-method sdes_add_entry
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_sdes_add_entry")
  (return-type "gboolean")
  (parameters
    '("GstRTCPSDESType" "type")
    '("guint8" "len")
    '("const-guint8*" "data")
  )
)

(define-method bye_get_ssrc_count
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_bye_get_ssrc_count")
  (return-type "guint")
)

(define-method bye_get_nth_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_bye_get_nth_ssrc")
  (return-type "guint32")
  (parameters
    '("guint" "nth")
  )
)

(define-method bye_add_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_bye_add_ssrc")
  (return-type "gboolean")
  (parameters
    '("guint32" "ssrc")
  )
)

(define-method bye_add_ssrcs
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_bye_add_ssrcs")
  (return-type "gboolean")
  (parameters
    '("guint32*" "ssrc")
    '("guint" "len")
  )
)

(define-method bye_get_reason_len
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_bye_get_reason_len")
  (return-type "guint8")
)

(define-method bye_get_reason
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_bye_get_reason")
  (return-type "gchar*")
)

(define-method bye_set_reason
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_bye_set_reason")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "reason")
  )
)

(define-method fb_get_sender_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_get_sender_ssrc")
  (return-type "guint32")
)

(define-method fb_set_sender_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_set_sender_ssrc")
  (return-type "none")
  (parameters
    '("guint32" "ssrc")
  )
)

(define-method fb_get_media_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_get_media_ssrc")
  (return-type "guint32")
)

(define-method fb_set_media_ssrc
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_set_media_ssrc")
  (return-type "none")
  (parameters
    '("guint32" "ssrc")
  )
)

(define-method fb_get_type
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_get_type")
  (return-type "GstRTCPFBType")
)

(define-method fb_set_type
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_set_type")
  (return-type "none")
  (parameters
    '("GstRTCPFBType" "type")
  )
)

(define-method fb_get_fci_length
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_get_fci_length")
  (return-type "guint16")
)

(define-method fb_set_fci_length
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_set_fci_length")
  (return-type "gboolean")
  (parameters
    '("guint16" "wordlen")
  )
)

(define-method fb_get_fci
  (of-object "GstRTCPPacket")
  (c-name "gst_rtcp_packet_fb_get_fci")
  (return-type "guint8*")
)

(define-function gst_rtcp_ntp_to_unix
  (c-name "gst_rtcp_ntp_to_unix")
  (return-type "guint64")
  (parameters
    '("guint64" "ntptime")
  )
)

(define-function gst_rtcp_unix_to_ntp
  (c-name "gst_rtcp_unix_to_ntp")
  (return-type "guint64")
  (parameters
    '("guint64" "unixtime")
  )
)

(define-method to_name
  (of-object "GstRTCPSDESType")
  (c-name "gst_rtcp_sdes_type_to_name")
  (return-type "const-gchar*")
)

(define-function gst_rtcp_sdes_name_to_type
  (c-name "gst_rtcp_sdes_name_to_type")
  (return-type "GstRTCPSDESType")
  (parameters
    '("const-gchar*" "name")
  )
)



;; From gstrtpbuffer.h

(define-function gst_rtp_buffer_allocate_data
  (c-name "gst_rtp_buffer_allocate_data")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint" "payload_len")
    '("guint8" "pad_len")
    '("guint8" "csrc_count")
  )
)

(define-function gst_rtp_buffer_new_take_data
  (c-name "gst_rtp_buffer_new_take_data")
  (return-type "GstBuffer*")
  (parameters
    '("gpointer" "data")
    '("guint" "len")
  )
)

(define-function gst_rtp_buffer_new_copy_data
  (c-name "gst_rtp_buffer_new_copy_data")
  (return-type "GstBuffer*")
  (parameters
    '("gpointer" "data")
    '("guint" "len")
  )
)

(define-function gst_rtp_buffer_new_allocate
  (c-name "gst_rtp_buffer_new_allocate")
  (return-type "GstBuffer*")
  (parameters
    '("guint" "payload_len")
    '("guint8" "pad_len")
    '("guint8" "csrc_count")
  )
)

(define-function gst_rtp_buffer_new_allocate_len
  (c-name "gst_rtp_buffer_new_allocate_len")
  (return-type "GstBuffer*")
  (parameters
    '("guint" "packet_len")
    '("guint8" "pad_len")
    '("guint8" "csrc_count")
  )
)

(define-function gst_rtp_buffer_list_from_buffer
  (c-name "gst_rtp_buffer_list_from_buffer")
  (return-type "GstBufferList*")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtp_buffer_calc_header_len
  (c-name "gst_rtp_buffer_calc_header_len")
  (return-type "guint")
  (parameters
    '("guint8" "csrc_count")
  )
)

(define-function gst_rtp_buffer_calc_packet_len
  (c-name "gst_rtp_buffer_calc_packet_len")
  (return-type "guint")
  (parameters
    '("guint" "payload_len")
    '("guint8" "pad_len")
    '("guint8" "csrc_count")
  )
)

(define-function gst_rtp_buffer_calc_payload_len
  (c-name "gst_rtp_buffer_calc_payload_len")
  (return-type "guint")
  (parameters
    '("guint" "packet_len")
    '("guint8" "pad_len")
    '("guint8" "csrc_count")
  )
)

(define-function gst_rtp_buffer_validate_data
  (c-name "gst_rtp_buffer_validate_data")
  (return-type "gboolean")
  (parameters
    '("guint8*" "data")
    '("guint" "len")
  )
)

(define-function gst_rtp_buffer_validate
  (c-name "gst_rtp_buffer_validate")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtp_buffer_list_validate
  (c-name "gst_rtp_buffer_list_validate")
  (return-type "gboolean")
  (parameters
    '("GstBufferList*" "list")
  )
)

(define-function gst_rtp_buffer_set_packet_len
  (c-name "gst_rtp_buffer_set_packet_len")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint" "len")
  )
)

(define-function gst_rtp_buffer_get_packet_len
  (c-name "gst_rtp_buffer_get_packet_len")
  (return-type "guint")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtp_buffer_get_header_len
  (c-name "gst_rtp_buffer_get_header_len")
  (return-type "guint")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtp_buffer_get_version
  (c-name "gst_rtp_buffer_get_version")
  (return-type "guint8")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtp_buffer_set_version
  (c-name "gst_rtp_buffer_set_version")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint8" "version")
  )
)

(define-function gst_rtp_buffer_get_padding
  (c-name "gst_rtp_buffer_get_padding")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtp_buffer_set_padding
  (c-name "gst_rtp_buffer_set_padding")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
    '("gboolean" "padding")
  )
)

(define-function gst_rtp_buffer_pad_to
  (c-name "gst_rtp_buffer_pad_to")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint" "len")
  )
)

(define-function gst_rtp_buffer_get_extension
  (c-name "gst_rtp_buffer_get_extension")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtp_buffer_set_extension
  (c-name "gst_rtp_buffer_set_extension")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
    '("gboolean" "extension")
  )
)

(define-function gst_rtp_buffer_get_extension_data
  (c-name "gst_rtp_buffer_get_extension_data")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint16*" "bits")
    '("gpointer*" "data")
    '("guint*" "wordlen")
  )
)

(define-function gst_rtp_buffer_set_extension_data
  (c-name "gst_rtp_buffer_set_extension_data")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint16" "bits")
    '("guint16" "length")
  )
)

(define-function gst_rtp_buffer_get_ssrc
  (c-name "gst_rtp_buffer_get_ssrc")
  (return-type "guint32")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtp_buffer_list_get_ssrc
  (c-name "gst_rtp_buffer_list_get_ssrc")
  (return-type "guint32")
  (parameters
    '("GstBufferList*" "list")
  )
)

(define-function gst_rtp_buffer_set_ssrc
  (c-name "gst_rtp_buffer_set_ssrc")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint32" "ssrc")
  )
)

(define-function gst_rtp_buffer_list_set_ssrc
  (c-name "gst_rtp_buffer_list_set_ssrc")
  (return-type "none")
  (parameters
    '("GstBufferList*" "list")
    '("guint32" "ssrc")
  )
)

(define-function gst_rtp_buffer_get_csrc_count
  (c-name "gst_rtp_buffer_get_csrc_count")
  (return-type "guint8")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtp_buffer_get_csrc
  (c-name "gst_rtp_buffer_get_csrc")
  (return-type "guint32")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint8" "idx")
  )
)

(define-function gst_rtp_buffer_set_csrc
  (c-name "gst_rtp_buffer_set_csrc")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint8" "idx")
    '("guint32" "csrc")
  )
)

(define-function gst_rtp_buffer_get_marker
  (c-name "gst_rtp_buffer_get_marker")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtp_buffer_set_marker
  (c-name "gst_rtp_buffer_set_marker")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
    '("gboolean" "marker")
  )
)

(define-function gst_rtp_buffer_get_payload_type
  (c-name "gst_rtp_buffer_get_payload_type")
  (return-type "guint8")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtp_buffer_list_get_payload_type
  (c-name "gst_rtp_buffer_list_get_payload_type")
  (return-type "guint8")
  (parameters
    '("GstBufferList*" "list")
  )
)

(define-function gst_rtp_buffer_set_payload_type
  (c-name "gst_rtp_buffer_set_payload_type")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint8" "payload_type")
  )
)

(define-function gst_rtp_buffer_list_set_payload_type
  (c-name "gst_rtp_buffer_list_set_payload_type")
  (return-type "none")
  (parameters
    '("GstBufferList*" "list")
    '("guint8" "payload_type")
  )
)

(define-function gst_rtp_buffer_get_seq
  (c-name "gst_rtp_buffer_get_seq")
  (return-type "guint16")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtp_buffer_list_get_seq
  (c-name "gst_rtp_buffer_list_get_seq")
  (return-type "guint16")
  (parameters
    '("GstBufferList*" "list")
  )
)

(define-function gst_rtp_buffer_set_seq
  (c-name "gst_rtp_buffer_set_seq")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint16" "seq")
  )
)

(define-function gst_rtp_buffer_list_set_seq
  (c-name "gst_rtp_buffer_list_set_seq")
  (return-type "guint16")
  (parameters
    '("GstBufferList*" "list")
    '("guint16" "seq")
  )
)

(define-function gst_rtp_buffer_get_timestamp
  (c-name "gst_rtp_buffer_get_timestamp")
  (return-type "guint32")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtp_buffer_list_get_timestamp
  (c-name "gst_rtp_buffer_list_get_timestamp")
  (return-type "guint32")
  (parameters
    '("GstBufferList*" "list")
  )
)

(define-function gst_rtp_buffer_set_timestamp
  (c-name "gst_rtp_buffer_set_timestamp")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint32" "timestamp")
  )
)

(define-function gst_rtp_buffer_list_set_timestamp
  (c-name "gst_rtp_buffer_list_set_timestamp")
  (return-type "none")
  (parameters
    '("GstBufferList*" "list")
    '("guint32" "timestamp")
  )
)

(define-function gst_rtp_buffer_get_payload_buffer
  (c-name "gst_rtp_buffer_get_payload_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtp_buffer_get_payload_subbuffer
  (c-name "gst_rtp_buffer_get_payload_subbuffer")
  (return-type "GstBuffer*")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint" "offset")
    '("guint" "len")
  )
)

(define-function gst_rtp_buffer_get_payload_len
  (c-name "gst_rtp_buffer_get_payload_len")
  (return-type "guint")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtp_buffer_list_get_payload_len
  (c-name "gst_rtp_buffer_list_get_payload_len")
  (return-type "guint")
  (parameters
    '("GstBufferList*" "list")
  )
)

(define-function gst_rtp_buffer_get_payload
  (c-name "gst_rtp_buffer_get_payload")
  (return-type "gpointer")
  (parameters
    '("GstBuffer*" "buffer")
  )
)

(define-function gst_rtp_buffer_default_clock_rate
  (c-name "gst_rtp_buffer_default_clock_rate")
  (return-type "guint32")
  (parameters
    '("guint8" "payload_type")
  )
)

(define-function gst_rtp_buffer_compare_seqnum
  (c-name "gst_rtp_buffer_compare_seqnum")
  (return-type "gint")
  (parameters
    '("guint16" "seqnum1")
    '("guint16" "seqnum2")
  )
)

(define-function gst_rtp_buffer_ext_timestamp
  (c-name "gst_rtp_buffer_ext_timestamp")
  (return-type "guint64")
  (parameters
    '("guint64*" "exttimestamp")
    '("guint32" "timestamp")
  )
)

(define-function gst_rtp_buffer_get_extension_onebyte_header
  (c-name "gst_rtp_buffer_get_extension_onebyte_header")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint8" "id")
    '("guint" "nth")
    '("gpointer*" "data")
    '("guint*" "size")
  )
)

(define-function gst_rtp_buffer_get_extension_twobytes_header
  (c-name "gst_rtp_buffer_get_extension_twobytes_header")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint8*" "appbits")
    '("guint8" "id")
    '("guint" "nth")
    '("gpointer*" "data")
    '("guint*" "size")
  )
)

(define-function gst_rtp_buffer_add_extension_onebyte_header
  (c-name "gst_rtp_buffer_add_extension_onebyte_header")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint8" "id")
    '("gpointer" "data")
    '("guint" "size")
  )
)

(define-function gst_rtp_buffer_add_extension_twobytes_header
  (c-name "gst_rtp_buffer_add_extension_twobytes_header")
  (return-type "gboolean")
  (parameters
    '("GstBuffer*" "buffer")
    '("guint8" "appbits")
    '("guint8" "id")
    '("gpointer" "data")
    '("guint" "size")
  )
)

(define-function gst_rtp_buffer_list_get_extension_onebyte_header
  (c-name "gst_rtp_buffer_list_get_extension_onebyte_header")
  (return-type "gboolean")
  (parameters
    '("GstBufferList*" "bufferlist")
    '("guint" "group_idx")
    '("guint8" "id")
    '("guint" "nth")
    '("gpointer*" "data")
    '("guint*" "size")
  )
)

(define-function gst_rtp_buffer_list_get_extension_twobytes_header
  (c-name "gst_rtp_buffer_list_get_extension_twobytes_header")
  (return-type "gboolean")
  (parameters
    '("GstBufferList*" "bufferlist")
    '("guint" "group_idx")
    '("guint8*" "appbits")
    '("guint8" "id")
    '("guint" "nth")
    '("gpointer*" "data")
    '("guint*" "size")
  )
)

(define-function gst_rtp_buffer_list_add_extension_onebyte_header
  (c-name "gst_rtp_buffer_list_add_extension_onebyte_header")
  (return-type "gboolean")
  (parameters
    '("GstBufferListIterator*" "it")
    '("guint8" "id")
    '("gpointer" "data")
    '("guint" "size")
  )
)

(define-function gst_rtp_buffer_list_add_extension_twobytes_header
  (c-name "gst_rtp_buffer_list_add_extension_twobytes_header")
  (return-type "gboolean")
  (parameters
    '("GstBufferListIterator*" "it")
    '("guint8" "appbits")
    '("guint8" "id")
    '("gpointer" "data")
    '("guint" "size")
  )
)



;; From gstrtppayloads.h

(define-function gst_rtp_payload_info_for_pt
  (c-name "gst_rtp_payload_info_for_pt")
  (return-type "const-GstRTPPayloadInfo*")
  (parameters
    '("guint8" "payload_type")
  )
)

(define-function gst_rtp_payload_info_for_name
  (c-name "gst_rtp_payload_info_for_name")
  (return-type "const-GstRTPPayloadInfo*")
  (parameters
    '("const-gchar*" "media")
    '("const-gchar*" "encoding_name")
  )
)



;; From gstrtspbase64.h

(define-function gst_rtsp_base64_encode
  (c-name "gst_rtsp_base64_encode")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "data")
    '("gsize" "len")
  )
)

(define-function gst_rtsp_base64_decode_ip
  (c-name "gst_rtsp_base64_decode_ip")
  (return-type "none")
  (parameters
    '("gchar*" "data")
    '("gsize*" "len")
  )
)



;; From gstrtspconnection.h

(define-function gst_rtsp_connection_create
  (c-name "gst_rtsp_connection_create")
  (return-type "GstRTSPResult")
  (parameters
    '("const-GstRTSPUrl*" "url")
    '("GstRTSPConnection**" "conn")
  )
)

(define-function gst_rtsp_connection_create_from_fd
  (c-name "gst_rtsp_connection_create_from_fd")
  (return-type "GstRTSPResult")
  (parameters
    '("gint" "fd")
    '("const-gchar*" "ip")
    '("guint16" "port")
    '("const-gchar*" "initial_buffer")
    '("GstRTSPConnection**" "conn")
  )
)

(define-function gst_rtsp_connection_accept
  (c-name "gst_rtsp_connection_accept")
  (return-type "GstRTSPResult")
  (parameters
    '("gint" "sock")
    '("GstRTSPConnection**" "conn")
  )
)

(define-method connect
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_connect")
  (return-type "GstRTSPResult")
  (parameters
    '("GTimeVal*" "timeout")
  )
)

(define-method close
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_close")
  (return-type "GstRTSPResult")
)

(define-method free
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_free")
  (return-type "GstRTSPResult")
)

(define-method read
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_read")
  (return-type "GstRTSPResult")
  (parameters
    '("guint8*" "data")
    '("guint" "size")
    '("GTimeVal*" "timeout")
  )
)

(define-method write
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_write")
  (return-type "GstRTSPResult")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
    '("GTimeVal*" "timeout")
  )
)

(define-method send
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_send")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage*" "message")
    '("GTimeVal*" "timeout")
  )
)

(define-method receive
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_receive")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage*" "message")
    '("GTimeVal*" "timeout")
  )
)

(define-method poll
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_poll")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPEvent" "events")
    '("GstRTSPEvent*" "revents")
    '("GTimeVal*" "timeout")
  )
)

(define-method next_timeout
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_next_timeout")
  (return-type "GstRTSPResult")
  (parameters
    '("GTimeVal*" "timeout")
  )
)

(define-method reset_timeout
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_reset_timeout")
  (return-type "GstRTSPResult")
)

(define-method flush
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_flush")
  (return-type "GstRTSPResult")
  (parameters
    '("gboolean" "flush")
  )
)

(define-method set_proxy
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_proxy")
  (return-type "GstRTSPResult")
  (parameters
    '("const-gchar*" "host")
    '("guint" "port")
  )
)

(define-method set_auth
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_auth")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPAuthMethod" "method")
    '("const-gchar*" "user")
    '("const-gchar*" "pass")
  )
)

(define-method set_auth_param
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_auth_param")
  (return-type "none")
  (parameters
    '("const-gchar*" "param")
    '("const-gchar*" "value")
  )
)

(define-method clear_auth_params
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_clear_auth_params")
  (return-type "none")
)

(define-method set_qos_dscp
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_qos_dscp")
  (return-type "GstRTSPResult")
  (parameters
    '("guint" "qos_dscp")
  )
)

(define-method get_url
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_get_url")
  (return-type "GstRTSPUrl*")
)

(define-method get_ip
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_get_ip")
  (return-type "const-gchar*")
)

(define-method set_ip
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_ip")
  (return-type "none")
  (parameters
    '("const-gchar*" "ip")
  )
)

(define-method get_readfd
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_get_readfd")
  (return-type "gint")
)

(define-method get_writefd
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_get_writefd")
  (return-type "gint")
)

(define-method set_http_mode
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_http_mode")
  (return-type "none")
  (parameters
    '("gboolean" "enable")
  )
)

(define-method set_tunneled
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_set_tunneled")
  (return-type "none")
  (parameters
    '("gboolean" "tunneled")
  )
)

(define-method is_tunneled
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_is_tunneled")
  (return-type "gboolean")
)

(define-method get_tunnelid
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_get_tunnelid")
  (return-type "const-gchar*")
)

(define-method do_tunnel
  (of-object "GstRTSPConnection")
  (c-name "gst_rtsp_connection_do_tunnel")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPConnection*" "conn2")
  )
)

(define-function gst_rtsp_watch_new
  (c-name "gst_rtsp_watch_new")
  (is-constructor-of "GstRtspWatch")
  (return-type "GstRTSPWatch*")
  (parameters
    '("GstRTSPConnection*" "conn")
    '("GstRTSPWatchFuncs*" "funcs")
    '("gpointer" "user_data")
    '("GDestroyNotify" "notify")
  )
)

(define-method reset
  (of-object "GstRTSPWatch")
  (c-name "gst_rtsp_watch_reset")
  (return-type "none")
)

(define-method unref
  (of-object "GstRTSPWatch")
  (c-name "gst_rtsp_watch_unref")
  (return-type "none")
)

(define-method attach
  (of-object "GstRTSPWatch")
  (c-name "gst_rtsp_watch_attach")
  (return-type "guint")
  (parameters
    '("GMainContext*" "context")
  )
)

(define-method write_data
  (of-object "GstRTSPWatch")
  (c-name "gst_rtsp_watch_write_data")
  (return-type "GstRTSPResult")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
    '("guint*" "id")
  )
)

(define-method send_message
  (of-object "GstRTSPWatch")
  (c-name "gst_rtsp_watch_send_message")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage*" "message")
    '("guint*" "id")
  )
)

(define-method queue_data
  (of-object "GstRTSPWatch")
  (c-name "gst_rtsp_watch_queue_data")
  (return-type "guint")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
  )
)

(define-method queue_message
  (of-object "GstRTSPWatch")
  (c-name "gst_rtsp_watch_queue_message")
  (return-type "guint")
  (parameters
    '("GstRTSPMessage*" "message")
  )
)



;; From gstrtspdefs.h

(define-function gst_rtsp_strresult
  (c-name "gst_rtsp_strresult")
  (return-type "gchar*")
  (parameters
    '("GstRTSPResult" "result")
  )
)

(define-method as_text
  (of-object "GstRTSPMethod")
  (c-name "gst_rtsp_method_as_text")
  (return-type "const-gchar*")
)

(define-method as_text
  (of-object "GstRTSPVersion")
  (c-name "gst_rtsp_version_as_text")
  (return-type "const-gchar*")
)

(define-function gst_rtsp_header_as_text
  (c-name "gst_rtsp_header_as_text")
  (return-type "const-gchar*")
  (parameters
    '("GstRTSPHeaderField" "field")
  )
)

(define-function gst_rtsp_status_as_text
  (c-name "gst_rtsp_status_as_text")
  (return-type "const-gchar*")
  (parameters
    '("GstRTSPStatusCode" "code")
  )
)

(define-function gst_rtsp_options_as_text
  (c-name "gst_rtsp_options_as_text")
  (return-type "gchar*")
  (parameters
    '("GstRTSPMethod" "options")
  )
)

(define-function gst_rtsp_find_header_field
  (c-name "gst_rtsp_find_header_field")
  (return-type "GstRTSPHeaderField")
  (parameters
    '("const-gchar*" "header")
  )
)

(define-function gst_rtsp_find_method
  (c-name "gst_rtsp_find_method")
  (return-type "GstRTSPMethod")
  (parameters
    '("const-gchar*" "method")
  )
)

(define-function gst_rtsp_header_allow_multiple
  (c-name "gst_rtsp_header_allow_multiple")
  (return-type "gboolean")
  (parameters
    '("GstRTSPHeaderField" "field")
  )
)



;; From gstrtsp-enumtypes.h

(define-function gst_rtsp_result_get_type
  (c-name "gst_rtsp_result_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_event_get_type
  (c-name "gst_rtsp_event_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_family_get_type
  (c-name "gst_rtsp_family_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_state_get_type
  (c-name "gst_rtsp_state_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_version_get_type
  (c-name "gst_rtsp_version_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_method_get_type
  (c-name "gst_rtsp_method_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_auth_method_get_type
  (c-name "gst_rtsp_auth_method_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_header_field_get_type
  (c-name "gst_rtsp_header_field_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_status_code_get_type
  (c-name "gst_rtsp_status_code_get_type")
  (return-type "GType")
)



;; From gstrtspextension.h

(define-function gst_rtsp_extension_get_type
  (c-name "gst_rtsp_extension_get_type")
  (return-type "GType")
)

(define-method detect_server
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_detect_server")
  (return-type "gboolean")
  (parameters
    '("GstRTSPMessage*" "resp")
  )
)

(define-method before_send
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_before_send")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage*" "req")
  )
)

(define-method after_send
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_after_send")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage*" "req")
    '("GstRTSPMessage*" "resp")
  )
)

(define-method parse_sdp
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_parse_sdp")
  (return-type "GstRTSPResult")
  (parameters
    '("GstSDPMessage*" "sdp")
    '("GstStructure*" "s")
  )
)

(define-method setup_media
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_setup_media")
  (return-type "GstRTSPResult")
  (parameters
    '("GstSDPMedia*" "media")
  )
)

(define-method configure_stream
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_configure_stream")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method get_transports
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_get_transports")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPLowerTrans" "protocols")
    '("gchar**" "transport")
  )
)

(define-method stream_select
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_stream_select")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPUrl*" "url")
  )
)

(define-method receive_request
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_receive_request")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage*" "req")
  )
)

(define-method send
  (of-object "GstRTSPExtension")
  (c-name "gst_rtsp_extension_send")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage*" "req")
    '("GstRTSPMessage*" "resp")
  )
)



;; From gstrtsp.h



;; From gstrtsp-marshal.h



;; From gstrtspmessage.h

(define-function gst_rtsp_message_new
  (c-name "gst_rtsp_message_new")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage**" "msg")
  )
)

(define-method init
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_init")
  (return-type "GstRTSPResult")
)

(define-method unset
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_unset")
  (return-type "GstRTSPResult")
)

(define-method free
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_free")
  (return-type "GstRTSPResult")
)

(define-method get_type
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_get_type")
  (return-type "GstRTSPMsgType")
)

(define-function gst_rtsp_message_new_request
  (c-name "gst_rtsp_message_new_request")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage**" "msg")
    '("GstRTSPMethod" "method")
    '("const-gchar*" "uri")
  )
)

(define-method init_request
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_init_request")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMethod" "method")
    '("const-gchar*" "uri")
  )
)

(define-method parse_request
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_parse_request")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMethod*" "method")
    '("const-gchar**" "uri")
    '("GstRTSPVersion*" "version")
  )
)

(define-function gst_rtsp_message_new_response
  (c-name "gst_rtsp_message_new_response")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage**" "msg")
    '("GstRTSPStatusCode" "code")
    '("const-gchar*" "reason")
    '("const-GstRTSPMessage*" "request")
  )
)

(define-method init_response
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_init_response")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPStatusCode" "code")
    '("const-gchar*" "reason")
    '("const-GstRTSPMessage*" "request")
  )
)

(define-method parse_response
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_parse_response")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPStatusCode*" "code")
    '("const-gchar**" "reason")
    '("GstRTSPVersion*" "version")
  )
)

(define-function gst_rtsp_message_new_data
  (c-name "gst_rtsp_message_new_data")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPMessage**" "msg")
    '("guint8" "channel")
  )
)

(define-method init_data
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_init_data")
  (return-type "GstRTSPResult")
  (parameters
    '("guint8" "channel")
  )
)

(define-method parse_data
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_parse_data")
  (return-type "GstRTSPResult")
  (parameters
    '("guint8*" "channel")
  )
)

(define-method add_header
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_add_header")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPHeaderField" "field")
    '("const-gchar*" "value")
  )
)

(define-method take_header
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_take_header")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPHeaderField" "field")
    '("gchar*" "value")
  )
)

(define-method remove_header
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_remove_header")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPHeaderField" "field")
    '("gint" "indx")
  )
)

(define-method get_header
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_get_header")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPHeaderField" "field")
    '("gchar**" "value")
    '("gint" "indx")
  )
)

(define-method append_headers
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_append_headers")
  (return-type "GstRTSPResult")
  (parameters
    '("GString*" "str")
  )
)

(define-method set_body
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_set_body")
  (return-type "GstRTSPResult")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
  )
)

(define-method take_body
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_take_body")
  (return-type "GstRTSPResult")
  (parameters
    '("guint8*" "data")
    '("guint" "size")
  )
)

(define-method get_body
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_get_body")
  (return-type "GstRTSPResult")
  (parameters
    '("guint8**" "data")
    '("guint*" "size")
  )
)

(define-method steal_body
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_steal_body")
  (return-type "GstRTSPResult")
  (parameters
    '("guint8**" "data")
    '("guint*" "size")
  )
)

(define-method dump
  (of-object "GstRTSPMessage")
  (c-name "gst_rtsp_message_dump")
  (return-type "GstRTSPResult")
)



;; From gstrtsprange.h

(define-function gst_rtsp_range_parse
  (c-name "gst_rtsp_range_parse")
  (return-type "GstRTSPResult")
  (parameters
    '("const-gchar*" "rangestr")
    '("GstRTSPTimeRange**" "range")
  )
)

(define-function gst_rtsp_range_to_string
  (c-name "gst_rtsp_range_to_string")
  (return-type "gchar*")
  (parameters
    '("const-GstRTSPTimeRange*" "range")
  )
)

(define-function gst_rtsp_range_free
  (c-name "gst_rtsp_range_free")
  (return-type "none")
  (parameters
    '("GstRTSPTimeRange*" "range")
  )
)



;; From gstrtsptransport.h

(define-function gst_rtsp_lower_trans_get_type
  (c-name "gst_rtsp_lower_trans_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_transport_new
  (c-name "gst_rtsp_transport_new")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPTransport**" "transport")
  )
)

(define-method init
  (of-object "GstRTSPTransport")
  (c-name "gst_rtsp_transport_init")
  (return-type "GstRTSPResult")
)

(define-function gst_rtsp_transport_parse
  (c-name "gst_rtsp_transport_parse")
  (return-type "GstRTSPResult")
  (parameters
    '("const-gchar*" "str")
    '("GstRTSPTransport*" "transport")
  )
)

(define-method as_text
  (of-object "GstRTSPTransport")
  (c-name "gst_rtsp_transport_as_text")
  (return-type "gchar*")
)

(define-function gst_rtsp_transport_get_mime
  (c-name "gst_rtsp_transport_get_mime")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPTransMode" "trans")
    '("const-gchar**" "mime")
  )
)

(define-function gst_rtsp_transport_get_manager
  (c-name "gst_rtsp_transport_get_manager")
  (return-type "GstRTSPResult")
  (parameters
    '("GstRTSPTransMode" "trans")
    '("const-gchar**" "manager")
    '("guint" "option")
  )
)

(define-method free
  (of-object "GstRTSPTransport")
  (c-name "gst_rtsp_transport_free")
  (return-type "GstRTSPResult")
)



;; From gstrtspurl.h

(define-function gst_rtsp_url_get_type
  (c-name "gst_rtsp_url_get_type")
  (return-type "GType")
)

(define-function gst_rtsp_url_parse
  (c-name "gst_rtsp_url_parse")
  (return-type "GstRTSPResult")
  (parameters
    '("const-gchar*" "urlstr")
    '("GstRTSPUrl**" "url")
  )
)

(define-method copy
  (of-object "GstRTSPUrl")
  (c-name "gst_rtsp_url_copy")
  (return-type "GstRTSPUrl*")
)

(define-method free
  (of-object "GstRTSPUrl")
  (c-name "gst_rtsp_url_free")
  (return-type "none")
)

(define-method get_request_uri
  (of-object "GstRTSPUrl")
  (c-name "gst_rtsp_url_get_request_uri")
  (return-type "gchar*")
)

(define-method decode_path_components
  (of-object "GstRTSPUrl")
  (c-name "gst_rtsp_url_decode_path_components")
  (return-type "gchar**")
)

(define-method set_port
  (of-object "GstRTSPUrl")
  (c-name "gst_rtsp_url_set_port")
  (return-type "GstRTSPResult")
  (parameters
    '("guint16" "port")
  )
)

(define-method get_port
  (of-object "GstRTSPUrl")
  (c-name "gst_rtsp_url_get_port")
  (return-type "GstRTSPResult")
  (parameters
    '("guint16*" "port")
  )
)



;; From gstsdp.h



;; From gstsdpmessage.h

(define-function gst_sdp_message_new
  (c-name "gst_sdp_message_new")
  (return-type "GstSDPResult")
  (parameters
    '("GstSDPMessage**" "msg")
  )
)

(define-method init
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_init")
  (return-type "GstSDPResult")
)

(define-method uninit
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_uninit")
  (return-type "GstSDPResult")
)

(define-method free
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_free")
  (return-type "GstSDPResult")
)

(define-function gst_sdp_message_parse_buffer
  (c-name "gst_sdp_message_parse_buffer")
  (return-type "GstSDPResult")
  (parameters
    '("const-guint8*" "data")
    '("guint" "size")
    '("GstSDPMessage*" "msg")
  )
)

(define-method as_text
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_as_text")
  (return-type "gchar*")
)

(define-function gst_sdp_message_parse_uri
  (c-name "gst_sdp_message_parse_uri")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "uri")
    '("GstSDPMessage*" "msg")
  )
)

(define-function gst_sdp_message_as_uri
  (c-name "gst_sdp_message_as_uri")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "scheme")
    '("const-GstSDPMessage*" "msg")
  )
)

(define-function gst_sdp_address_is_multicast
  (c-name "gst_sdp_address_is_multicast")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "nettype")
    '("const-gchar*" "addrtype")
    '("const-gchar*" "addr")
  )
)

(define-method get_version
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_version")
  (return-type "const-gchar*")
)

(define-method set_version
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_set_version")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "version")
  )
)

(define-method get_origin
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_origin")
  (return-type "const-GstSDPOrigin*")
)

(define-method set_origin
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_set_origin")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "username")
    '("const-gchar*" "sess_id")
    '("const-gchar*" "sess_version")
    '("const-gchar*" "nettype")
    '("const-gchar*" "addrtype")
    '("const-gchar*" "addr")
  )
)

(define-method get_session_name
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_session_name")
  (return-type "const-gchar*")
)

(define-method set_session_name
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_set_session_name")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "session_name")
  )
)

(define-method get_information
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_information")
  (return-type "const-gchar*")
)

(define-method set_information
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_set_information")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "information")
  )
)

(define-method get_uri
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_uri")
  (return-type "const-gchar*")
)

(define-method set_uri
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_set_uri")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "uri")
  )
)

(define-method emails_len
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_emails_len")
  (return-type "guint")
)

(define-method get_email
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_email")
  (return-type "const-gchar*")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_email
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_add_email")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "email")
  )
)

(define-method phones_len
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_phones_len")
  (return-type "guint")
)

(define-method get_phone
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_phone")
  (return-type "const-gchar*")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_phone
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_add_phone")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "phone")
  )
)

(define-method get_connection
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_connection")
  (return-type "const-GstSDPConnection*")
)

(define-method set_connection
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_set_connection")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "nettype")
    '("const-gchar*" "addrtype")
    '("const-gchar*" "address")
    '("guint" "ttl")
    '("guint" "addr_number")
  )
)

(define-method bandwidths_len
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_bandwidths_len")
  (return-type "guint")
)

(define-method get_bandwidth
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_bandwidth")
  (return-type "const-GstSDPBandwidth*")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_bandwidth
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_add_bandwidth")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "bwtype")
    '("guint" "bandwidth")
  )
)

(define-method times_len
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_times_len")
  (return-type "guint")
)

(define-method get_time
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_time")
  (return-type "const-GstSDPTime*")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_time
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_add_time")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "start")
    '("const-gchar*" "stop")
    '("const-gchar**" "repeat")
  )
)

(define-method zones_len
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_zones_len")
  (return-type "guint")
)

(define-method get_zone
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_zone")
  (return-type "const-GstSDPZone*")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_zone
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_add_zone")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "adj_time")
    '("const-gchar*" "typed_time")
  )
)

(define-method get_key
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_key")
  (return-type "const-GstSDPKey*")
)

(define-method set_key
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_set_key")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "type")
    '("const-gchar*" "data")
  )
)

(define-method attributes_len
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_attributes_len")
  (return-type "guint")
)

(define-method get_attribute
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_attribute")
  (return-type "const-GstSDPAttribute*")
  (parameters
    '("guint" "idx")
  )
)

(define-method get_attribute_val
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_attribute_val")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "key")
  )
)

(define-method get_attribute_val_n
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_attribute_val_n")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "key")
    '("guint" "nth")
  )
)

(define-method add_attribute
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_add_attribute")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "key")
    '("const-gchar*" "value")
  )
)

(define-method medias_len
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_medias_len")
  (return-type "guint")
)

(define-method get_media
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_get_media")
  (return-type "const-GstSDPMedia*")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_media
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_add_media")
  (return-type "GstSDPResult")
  (parameters
    '("GstSDPMedia*" "media")
  )
)

(define-method dump
  (of-object "GstSDPMessage")
  (c-name "gst_sdp_message_dump")
  (return-type "GstSDPResult")
)

(define-function gst_sdp_media_new
  (c-name "gst_sdp_media_new")
  (return-type "GstSDPResult")
  (parameters
    '("GstSDPMedia**" "media")
  )
)

(define-method init
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_init")
  (return-type "GstSDPResult")
)

(define-method uninit
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_uninit")
  (return-type "GstSDPResult")
)

(define-method free
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_free")
  (return-type "GstSDPResult")
)

(define-method as_text
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_as_text")
  (return-type "gchar*")
)

(define-method get_media
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_media")
  (return-type "const-gchar*")
)

(define-method set_media
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_set_media")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "med")
  )
)

(define-method get_port
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_port")
  (return-type "guint")
)

(define-method get_num_ports
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_num_ports")
  (return-type "guint")
)

(define-method set_port_info
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_set_port_info")
  (return-type "GstSDPResult")
  (parameters
    '("guint" "port")
    '("guint" "num_ports")
  )
)

(define-method get_proto
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_proto")
  (return-type "const-gchar*")
)

(define-method set_proto
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_set_proto")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "proto")
  )
)

(define-method formats_len
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_formats_len")
  (return-type "guint")
)

(define-method get_format
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_format")
  (return-type "const-gchar*")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_format
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_add_format")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "format")
  )
)

(define-method get_information
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_information")
  (return-type "const-gchar*")
)

(define-method set_information
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_set_information")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "information")
  )
)

(define-method connections_len
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_connections_len")
  (return-type "guint")
)

(define-method get_connection
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_connection")
  (return-type "const-GstSDPConnection*")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_connection
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_add_connection")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "nettype")
    '("const-gchar*" "addrtype")
    '("const-gchar*" "address")
    '("guint" "ttl")
    '("guint" "addr_number")
  )
)

(define-method bandwidths_len
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_bandwidths_len")
  (return-type "guint")
)

(define-method get_bandwidth
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_bandwidth")
  (return-type "const-GstSDPBandwidth*")
  (parameters
    '("guint" "idx")
  )
)

(define-method add_bandwidth
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_add_bandwidth")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "bwtype")
    '("guint" "bandwidth")
  )
)

(define-method get_key
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_key")
  (return-type "const-GstSDPKey*")
)

(define-method set_key
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_set_key")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "type")
    '("const-gchar*" "data")
  )
)

(define-method attributes_len
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_attributes_len")
  (return-type "guint")
)

(define-method get_attribute
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_attribute")
  (return-type "const-GstSDPAttribute*")
  (parameters
    '("guint" "idx")
  )
)

(define-method get_attribute_val
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_attribute_val")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "key")
  )
)

(define-method get_attribute_val_n
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_get_attribute_val_n")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "key")
    '("guint" "nth")
  )
)

(define-method add_attribute
  (of-object "GstSDPMedia")
  (c-name "gst_sdp_media_add_attribute")
  (return-type "GstSDPResult")
  (parameters
    '("const-gchar*" "key")
    '("const-gchar*" "value")
  )
)



;; From gsttagdemux.h

(define-function gst_tag_demux_result_get_type
  (c-name "gst_tag_demux_result_get_type")
  (return-type "GType")
)

(define-function gst_tag_demux_get_type
  (c-name "gst_tag_demux_get_type")
  (return-type "GType")
)



;; From gsttageditingprivate.h

(define-function gst_vorbis_tag_get_type
  (c-name "gst_vorbis_tag_get_type")
  (return-type "GType")
)



;; From tag.h

(define-function gst_tag_image_type_get_type
  (c-name "gst_tag_image_type_get_type")
  (return-type "GType")
)

(define-function gst_tag_from_vorbis_tag
  (c-name "gst_tag_from_vorbis_tag")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "vorbis_tag")
  )
)

(define-function gst_tag_to_vorbis_tag
  (c-name "gst_tag_to_vorbis_tag")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "gst_tag")
  )
)

(define-function gst_vorbis_tag_add
  (c-name "gst_vorbis_tag_add")
  (return-type "none")
  (parameters
    '("GstTagList*" "list")
    '("const-gchar*" "tag")
    '("const-gchar*" "value")
  )
)

(define-function gst_tag_to_vorbis_comments
  (c-name "gst_tag_to_vorbis_comments")
  (return-type "GList*")
  (parameters
    '("const-GstTagList*" "list")
    '("const-gchar*" "tag")
  )
)

(define-function gst_tag_list_from_vorbiscomment_buffer
  (c-name "gst_tag_list_from_vorbiscomment_buffer")
  (return-type "GstTagList*")
  (parameters
    '("const-GstBuffer*" "buffer")
    '("const-guint8*" "id_data")
    '("const-guint" "id_data_length")
    '("gchar**" "vendor_string")
  )
)

(define-method to_vorbiscomment_buffer
  (of-object "GstTagList")
  (c-name "gst_tag_list_to_vorbiscomment_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("const-guint8*" "id_data")
    '("const-guint" "id_data_length")
    '("const-gchar*" "vendor_string")
  )
)

(define-function gst_tag_id3_genre_count
  (c-name "gst_tag_id3_genre_count")
  (return-type "guint")
)

(define-function gst_tag_id3_genre_get
  (c-name "gst_tag_id3_genre_get")
  (return-type "const-gchar*")
  (parameters
    '("const-guint" "id")
  )
)

(define-function gst_tag_list_new_from_id3v1
  (c-name "gst_tag_list_new_from_id3v1")
  (return-type "GstTagList*")
  (parameters
    '("const-guint8*" "data")
  )
)

(define-function gst_tag_from_id3_tag
  (c-name "gst_tag_from_id3_tag")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "id3_tag")
  )
)

(define-function gst_tag_from_id3_user_tag
  (c-name "gst_tag_from_id3_user_tag")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "type")
    '("const-gchar*" "id3_user_tag")
  )
)

(define-function gst_tag_to_id3_tag
  (c-name "gst_tag_to_id3_tag")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "gst_tag")
  )
)

(define-method add_id3_image
  (of-object "GstTagList")
  (c-name "gst_tag_list_add_id3_image")
  (return-type "gboolean")
  (parameters
    '("const-guint8*" "image_data")
    '("guint" "image_data_len")
    '("guint" "id3_picture_type")
  )
)

(define-function gst_tag_list_from_xmp_buffer
  (c-name "gst_tag_list_from_xmp_buffer")
  (return-type "GstTagList*")
  (parameters
    '("const-GstBuffer*" "buffer")
  )
)

(define-method to_xmp_buffer
  (of-object "GstTagList")
  (c-name "gst_tag_list_to_xmp_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("gboolean" "read_only")
  )
)

(define-method to_xmp_buffer_full
  (of-object "GstTagList")
  (c-name "gst_tag_list_to_xmp_buffer_full")
  (return-type "GstBuffer*")
  (parameters
    '("gboolean" "read_only")
    '("const-gchar**" "schemas")
  )
)

(define-function gst_tag_xmp_list_schemas
  (c-name "gst_tag_xmp_list_schemas")
  (return-type "const-gchar**")
)

(define-method to_exif_buffer
  (of-object "GstTagList")
  (c-name "gst_tag_list_to_exif_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("gint" "byte_order")
    '("guint32" "base_offset")
  )
)

(define-method to_exif_buffer_with_tiff_header
  (of-object "GstTagList")
  (c-name "gst_tag_list_to_exif_buffer_with_tiff_header")
  (return-type "GstBuffer*")
)

(define-function gst_tag_list_from_exif_buffer
  (c-name "gst_tag_list_from_exif_buffer")
  (return-type "GstTagList*")
  (parameters
    '("const-GstBuffer*" "buffer")
    '("gint" "byte_order")
    '("guint32" "base_offset")
  )
)

(define-function gst_tag_list_from_exif_buffer_with_tiff_header
  (c-name "gst_tag_list_from_exif_buffer_with_tiff_header")
  (return-type "GstTagList*")
  (parameters
    '("const-GstBuffer*" "buffer")
  )
)

(define-function gst_tag_parse_extended_comment
  (c-name "gst_tag_parse_extended_comment")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "ext_comment")
    '("gchar**" "key")
    '("gchar**" "lang")
    '("gchar**" "value")
    '("gboolean" "fail_if_no_key")
  )
)

(define-function gst_tag_freeform_string_to_utf8
  (c-name "gst_tag_freeform_string_to_utf8")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "data")
    '("gint" "size")
    '("const-gchar**" "env_vars")
  )
)

(define-function gst_tag_image_data_to_image_buffer
  (c-name "gst_tag_image_data_to_image_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("const-guint8*" "image_data")
    '("guint" "image_data_len")
    '("GstTagImageType" "image_type")
  )
)

(define-function gst_tag_register_musicbrainz_tags
  (c-name "gst_tag_register_musicbrainz_tags")
  (return-type "none")
)

(define-function gst_tag_get_language_codes
  (c-name "gst_tag_get_language_codes")
  (return-type "gchar**")
)

(define-function gst_tag_get_language_name
  (c-name "gst_tag_get_language_name")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "language_code")
  )
)

(define-function gst_tag_get_language_code_iso_639_1
  (c-name "gst_tag_get_language_code_iso_639_1")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "lang_code")
  )
)

(define-function gst_tag_get_language_code_iso_639_2B
  (c-name "gst_tag_get_language_code_iso_639_2B")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "lang_code")
  )
)

(define-function gst_tag_get_language_code_iso_639_2T
  (c-name "gst_tag_get_language_code_iso_639_2T")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "lang_code")
  )
)



;; From xmpwriter.h

(define-function gst_tag_xmp_writer_get_type
  (c-name "gst_tag_xmp_writer_get_type")
  (return-type "GType")
)

(define-method add_all_schemas
  (of-object "GstTagXmpWriter")
  (c-name "gst_tag_xmp_writer_add_all_schemas")
  (return-type "none")
)

(define-method add_schema
  (of-object "GstTagXmpWriter")
  (c-name "gst_tag_xmp_writer_add_schema")
  (return-type "none")
  (parameters
    '("const-gchar*" "schema")
  )
)

(define-method has_schema
  (of-object "GstTagXmpWriter")
  (c-name "gst_tag_xmp_writer_has_schema")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "schema")
  )
)

(define-method remove_schema
  (of-object "GstTagXmpWriter")
  (c-name "gst_tag_xmp_writer_remove_schema")
  (return-type "none")
  (parameters
    '("const-gchar*" "schema")
  )
)

(define-method remove_all_schemas
  (of-object "GstTagXmpWriter")
  (c-name "gst_tag_xmp_writer_remove_all_schemas")
  (return-type "none")
)

(define-method tag_list_to_xmp_buffer
  (of-object "GstTagXmpWriter")
  (c-name "gst_tag_xmp_writer_tag_list_to_xmp_buffer")
  (return-type "GstBuffer*")
  (parameters
    '("const-GstTagList*" "taglist")
    '("gboolean" "read_only")
  )
)



;; From codec-utils.h

(define-function gst_codec_utils_aac_get_sample_rate_from_index
  (c-name "gst_codec_utils_aac_get_sample_rate_from_index")
  (return-type "guint")
  (parameters
    '("guint" "sr_idx")
  )
)

(define-function gst_codec_utils_aac_get_profile
  (c-name "gst_codec_utils_aac_get_profile")
  (return-type "const-gchar*")
  (parameters
    '("const-guint8*" "audio_config")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_aac_get_level
  (c-name "gst_codec_utils_aac_get_level")
  (return-type "const-gchar*")
  (parameters
    '("const-guint8*" "audio_config")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_aac_caps_set_level_and_profile
  (c-name "gst_codec_utils_aac_caps_set_level_and_profile")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
    '("const-guint8*" "audio_config")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_h264_get_profile
  (c-name "gst_codec_utils_h264_get_profile")
  (return-type "const-gchar*")
  (parameters
    '("const-guint8*" "sps")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_h264_get_level
  (c-name "gst_codec_utils_h264_get_level")
  (return-type "const-gchar*")
  (parameters
    '("const-guint8*" "sps")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_h264_caps_set_level_and_profile
  (c-name "gst_codec_utils_h264_caps_set_level_and_profile")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
    '("const-guint8*" "sps")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_mpeg4video_get_profile
  (c-name "gst_codec_utils_mpeg4video_get_profile")
  (return-type "const-gchar*")
  (parameters
    '("const-guint8*" "vis_obj_seq")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_mpeg4video_get_level
  (c-name "gst_codec_utils_mpeg4video_get_level")
  (return-type "const-gchar*")
  (parameters
    '("const-guint8*" "vis_obj_seq")
    '("guint" "len")
  )
)

(define-function gst_codec_utils_mpeg4video_caps_set_level_and_profile
  (c-name "gst_codec_utils_mpeg4video_caps_set_level_and_profile")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
    '("const-guint8*" "vis_obj_seq")
    '("guint" "len")
  )
)



;; From descriptions.h

(define-function gst_pb_utils_add_codec_description_to_tag_list
  (c-name "gst_pb_utils_add_codec_description_to_tag_list")
  (return-type "gboolean")
  (parameters
    '("GstTagList*" "taglist")
    '("const-gchar*" "codec_tag")
    '("const-GstCaps*" "caps")
  )
)

(define-function gst_pb_utils_get_codec_description
  (c-name "gst_pb_utils_get_codec_description")
  (return-type "gchar*")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-function gst_pb_utils_get_source_description
  (c-name "gst_pb_utils_get_source_description")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "protocol")
  )
)

(define-function gst_pb_utils_get_sink_description
  (c-name "gst_pb_utils_get_sink_description")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "protocol")
  )
)

(define-function gst_pb_utils_get_decoder_description
  (c-name "gst_pb_utils_get_decoder_description")
  (return-type "gchar*")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-function gst_pb_utils_get_encoder_description
  (c-name "gst_pb_utils_get_encoder_description")
  (return-type "gchar*")
  (parameters
    '("const-GstCaps*" "caps")
  )
)

(define-function gst_pb_utils_get_element_description
  (c-name "gst_pb_utils_get_element_description")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "factory_name")
  )
)



;; From encoding-profile.h

(define-function gst_encoding_profile_get_type
  (c-name "gst_encoding_profile_get_type")
  (return-type "GType")
)

(define-function gst_encoding_container_profile_get_type
  (c-name "gst_encoding_container_profile_get_type")
  (return-type "GType")
)

(define-function gst_encoding_video_profile_get_type
  (c-name "gst_encoding_video_profile_get_type")
  (return-type "GType")
)

(define-function gst_encoding_audio_profile_get_type
  (c-name "gst_encoding_audio_profile_get_type")
  (return-type "GType")
)

(define-method get_name
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_name")
  (return-type "const-gchar*")
)

(define-method get_description
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_description")
  (return-type "const-gchar*")
)

(define-method get_format
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_format")
  (return-type "const-GstCaps*")
)

(define-method get_preset
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_preset")
  (return-type "const-gchar*")
)

(define-method get_presence
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_presence")
  (return-type "guint")
)

(define-method get_restriction
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_restriction")
  (return-type "const-GstCaps*")
)

(define-method set_name
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_set_name")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method set_description
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_set_description")
  (return-type "none")
  (parameters
    '("const-gchar*" "description")
  )
)

(define-method set_format
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_set_format")
  (return-type "none")
  (parameters
    '("GstCaps*" "format")
  )
)

(define-method set_preset
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_set_preset")
  (return-type "none")
  (parameters
    '("const-gchar*" "preset")
  )
)

(define-method set_restriction
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_set_restriction")
  (return-type "none")
  (parameters
    '("GstCaps*" "restriction")
  )
)

(define-method set_presence
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_set_presence")
  (return-type "none")
  (parameters
    '("guint" "presence")
  )
)

(define-method is_equal
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_is_equal")
  (return-type "gboolean")
  (parameters
    '("GstEncodingProfile*" "b")
  )
)

(define-method get_input_caps
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_input_caps")
  (return-type "GstCaps*")
)

(define-method get_type_nick
  (of-object "GstEncodingProfile")
  (c-name "gst_encoding_profile_get_type_nick")
  (return-type "const-gchar*")
)

(define-function gst_encoding_profile_find
  (c-name "gst_encoding_profile_find")
  (return-type "GstEncodingProfile*")
  (parameters
    '("const-gchar*" "targetname")
    '("const-gchar*" "profilename")
    '("const-gchar*" "category")
  )
)

(define-method add_profile
  (of-object "GstEncodingContainerProfile")
  (c-name "gst_encoding_container_profile_add_profile")
  (return-type "gboolean")
  (parameters
    '("GstEncodingProfile*" "profile")
  )
)

(define-method contains_profile
  (of-object "GstEncodingContainerProfile")
  (c-name "gst_encoding_container_profile_contains_profile")
  (return-type "gboolean")
  (parameters
    '("GstEncodingProfile*" "profile")
  )
)

(define-method get_profiles
  (of-object "GstEncodingContainerProfile")
  (c-name "gst_encoding_container_profile_get_profiles")
  (return-type "const-GList*")
)

(define-function gst_encoding_container_profile_new
  (c-name "gst_encoding_container_profile_new")
  (is-constructor-of "GstEncodingContainerProfile")
  (return-type "GstEncodingContainerProfile*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "description")
    '("GstCaps*" "format")
    '("const-gchar*" "preset")
  )
)

(define-function gst_encoding_video_profile_new
  (c-name "gst_encoding_video_profile_new")
  (is-constructor-of "GstEncodingVideoProfile")
  (return-type "GstEncodingVideoProfile*")
  (parameters
    '("GstCaps*" "format")
    '("const-gchar*" "preset")
    '("GstCaps*" "restriction")
    '("guint" "presence")
  )
)

(define-function gst_encoding_audio_profile_new
  (c-name "gst_encoding_audio_profile_new")
  (is-constructor-of "GstEncodingAudioProfile")
  (return-type "GstEncodingAudioProfile*")
  (parameters
    '("GstCaps*" "format")
    '("const-gchar*" "preset")
    '("GstCaps*" "restriction")
    '("guint" "presence")
  )
)

(define-method get_pass
  (of-object "GstEncodingVideoProfile")
  (c-name "gst_encoding_video_profile_get_pass")
  (return-type "guint")
)

(define-method get_variableframerate
  (of-object "GstEncodingVideoProfile")
  (c-name "gst_encoding_video_profile_get_variableframerate")
  (return-type "gboolean")
)

(define-method set_pass
  (of-object "GstEncodingVideoProfile")
  (c-name "gst_encoding_video_profile_set_pass")
  (return-type "none")
  (parameters
    '("guint" "pass")
  )
)

(define-method set_variableframerate
  (of-object "GstEncodingVideoProfile")
  (c-name "gst_encoding_video_profile_set_variableframerate")
  (return-type "none")
  (parameters
    '("gboolean" "variableframerate")
  )
)



;; From encoding-target.h

(define-function gst_encoding_target_get_type
  (c-name "gst_encoding_target_get_type")
  (return-type "GType")
)

(define-function gst_encoding_target_new
  (c-name "gst_encoding_target_new")
  (is-constructor-of "GstEncodingTarget")
  (return-type "GstEncodingTarget*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "category")
    '("const-gchar*" "description")
    '("const-GList*" "profiles")
  )
)

(define-method get_name
  (of-object "GstEncodingTarget")
  (c-name "gst_encoding_target_get_name")
  (return-type "const-gchar*")
)

(define-method get_category
  (of-object "GstEncodingTarget")
  (c-name "gst_encoding_target_get_category")
  (return-type "const-gchar*")
)

(define-method get_description
  (of-object "GstEncodingTarget")
  (c-name "gst_encoding_target_get_description")
  (return-type "const-gchar*")
)

(define-method get_profiles
  (of-object "GstEncodingTarget")
  (c-name "gst_encoding_target_get_profiles")
  (return-type "const-GList*")
)

(define-method get_profile
  (of-object "GstEncodingTarget")
  (c-name "gst_encoding_target_get_profile")
  (return-type "GstEncodingProfile*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method add_profile
  (of-object "GstEncodingTarget")
  (c-name "gst_encoding_target_add_profile")
  (return-type "gboolean")
  (parameters
    '("GstEncodingProfile*" "profile")
  )
)

(define-method save
  (of-object "GstEncodingTarget")
  (c-name "gst_encoding_target_save")
  (return-type "gboolean")
  (parameters
    '("GError**" "error")
  )
)

(define-method save_to_file
  (of-object "GstEncodingTarget")
  (c-name "gst_encoding_target_save_to_file")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "filepath")
    '("GError**" "error")
  )
)

(define-function gst_encoding_target_load
  (c-name "gst_encoding_target_load")
  (return-type "GstEncodingTarget*")
  (parameters
    '("const-gchar*" "name")
    '("const-gchar*" "category")
    '("GError**" "error")
  )
)

(define-function gst_encoding_target_load_from_file
  (c-name "gst_encoding_target_load_from_file")
  (return-type "GstEncodingTarget*")
  (parameters
    '("const-gchar*" "filepath")
    '("GError**" "error")
  )
)

(define-function gst_encoding_list_available_categories
  (c-name "gst_encoding_list_available_categories")
  (return-type "GList*")
)

(define-function gst_encoding_list_all_targets
  (c-name "gst_encoding_list_all_targets")
  (return-type "GList*")
  (parameters
    '("const-gchar*" "categoryname")
  )
)



;; From gstdiscoverer.h

(define-function gst_discoverer_stream_info_get_type
  (c-name "gst_discoverer_stream_info_get_type")
  (return-type "GType")
)

(define-method get_previous
  (of-object "GstDiscovererStreamInfo")
  (c-name "gst_discoverer_stream_info_get_previous")
  (return-type "GstDiscovererStreamInfo*")
)

(define-method get_next
  (of-object "GstDiscovererStreamInfo")
  (c-name "gst_discoverer_stream_info_get_next")
  (return-type "GstDiscovererStreamInfo*")
)

(define-method get_caps
  (of-object "GstDiscovererStreamInfo")
  (c-name "gst_discoverer_stream_info_get_caps")
  (return-type "GstCaps*")
)

(define-method get_tags
  (of-object "GstDiscovererStreamInfo")
  (c-name "gst_discoverer_stream_info_get_tags")
  (return-type "const-GstTagList*")
)

(define-method get_misc
  (of-object "GstDiscovererStreamInfo")
  (c-name "gst_discoverer_stream_info_get_misc")
  (return-type "const-GstStructure*")
)

(define-method get_stream_type_nick
  (of-object "GstDiscovererStreamInfo")
  (c-name "gst_discoverer_stream_info_get_stream_type_nick")
  (return-type "const-gchar*")
)

(define-function gst_discoverer_container_info_get_type
  (c-name "gst_discoverer_container_info_get_type")
  (return-type "GType")
)

(define-method get_streams
  (of-object "GstDiscovererContainerInfo")
  (c-name "gst_discoverer_container_info_get_streams")
  (return-type "GList*")
)

(define-function gst_discoverer_audio_info_get_type
  (c-name "gst_discoverer_audio_info_get_type")
  (return-type "GType")
)

(define-method get_channels
  (of-object "GstDiscovererAudioInfo")
  (c-name "gst_discoverer_audio_info_get_channels")
  (return-type "guint")
)

(define-method get_sample_rate
  (of-object "GstDiscovererAudioInfo")
  (c-name "gst_discoverer_audio_info_get_sample_rate")
  (return-type "guint")
)

(define-method get_depth
  (of-object "GstDiscovererAudioInfo")
  (c-name "gst_discoverer_audio_info_get_depth")
  (return-type "guint")
)

(define-method get_bitrate
  (of-object "GstDiscovererAudioInfo")
  (c-name "gst_discoverer_audio_info_get_bitrate")
  (return-type "guint")
)

(define-method get_max_bitrate
  (of-object "GstDiscovererAudioInfo")
  (c-name "gst_discoverer_audio_info_get_max_bitrate")
  (return-type "guint")
)

(define-function gst_discoverer_video_info_get_type
  (c-name "gst_discoverer_video_info_get_type")
  (return-type "GType")
)

(define-method get_width
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_width")
  (return-type "guint")
)

(define-method get_height
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_height")
  (return-type "guint")
)

(define-method get_depth
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_depth")
  (return-type "guint")
)

(define-method get_framerate_num
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_framerate_num")
  (return-type "guint")
)

(define-method get_framerate_denom
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_framerate_denom")
  (return-type "guint")
)

(define-method get_par_num
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_par_num")
  (return-type "guint")
)

(define-method get_par_denom
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_par_denom")
  (return-type "guint")
)

(define-method is_interlaced
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_is_interlaced")
  (return-type "gboolean")
)

(define-method get_bitrate
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_bitrate")
  (return-type "guint")
)

(define-method get_max_bitrate
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_get_max_bitrate")
  (return-type "guint")
)

(define-method is_image
  (of-object "GstDiscovererVideoInfo")
  (c-name "gst_discoverer_video_info_is_image")
  (return-type "gboolean")
)

(define-function gst_discoverer_info_get_type
  (c-name "gst_discoverer_info_get_type")
  (return-type "GType")
)

(define-method copy
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_copy")
  (return-type "GstDiscovererInfo*")
)

(define-method get_uri
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_uri")
  (return-type "const-gchar*")
)

(define-method get_result
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_result")
  (return-type "GstDiscovererResult")
)

(define-method get_stream_info
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_stream_info")
  (return-type "GstDiscovererStreamInfo*")
)

(define-method get_stream_list
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_stream_list")
  (return-type "GList*")
)

(define-method get_duration
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_duration")
  (return-type "GstClockTime")
)

(define-method get_seekable
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_seekable")
  (return-type "gboolean")
)

(define-method get_misc
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_misc")
  (return-type "const-GstStructure*")
)

(define-method get_tags
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_tags")
  (return-type "const-GstTagList*")
)

(define-method get_streams
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_streams")
  (return-type "GList*")
  (parameters
    '("GType" "streamtype")
  )
)

(define-method get_audio_streams
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_audio_streams")
  (return-type "GList*")
)

(define-method get_video_streams
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_video_streams")
  (return-type "GList*")
)

(define-method get_container_streams
  (of-object "GstDiscovererInfo")
  (c-name "gst_discoverer_info_get_container_streams")
  (return-type "GList*")
)

(define-function gst_discoverer_stream_info_list_free
  (c-name "gst_discoverer_stream_info_list_free")
  (return-type "none")
  (parameters
    '("GList*" "infos")
  )
)

(define-function gst_discoverer_get_type
  (c-name "gst_discoverer_get_type")
  (return-type "GType")
)

(define-function gst_discoverer_new
  (c-name "gst_discoverer_new")
  (is-constructor-of "GstDiscoverer")
  (return-type "GstDiscoverer*")
  (parameters
    '("GstClockTime" "timeout")
    '("GError**" "err")
  )
)

(define-method start
  (of-object "GstDiscoverer")
  (c-name "gst_discoverer_start")
  (return-type "none")
)

(define-method stop
  (of-object "GstDiscoverer")
  (c-name "gst_discoverer_stop")
  (return-type "none")
)

(define-method discover_uri_async
  (of-object "GstDiscoverer")
  (c-name "gst_discoverer_discover_uri_async")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "uri")
  )
)

(define-method discover_uri
  (of-object "GstDiscoverer")
  (c-name "gst_discoverer_discover_uri")
  (return-type "GstDiscovererInfo*")
  (parameters
    '("const-gchar*" "uri")
    '("GError**" "err")
  )
)



;; From gstpluginsbaseversion.h

(define-function gst_plugins_base_version
  (c-name "gst_plugins_base_version")
  (return-type "none")
  (parameters
    '("guint*" "major")
    '("guint*" "minor")
    '("guint*" "micro")
    '("guint*" "nano")
  )
)

(define-function gst_plugins_base_version_string
  (c-name "gst_plugins_base_version_string")
  (return-type "gchar*")
)



;; From install-plugins.h

(define-function gst_install_plugins_context_new
  (c-name "gst_install_plugins_context_new")
  (is-constructor-of "GstInstallPluginsContext")
  (return-type "GstInstallPluginsContext*")
)

(define-method free
  (of-object "GstInstallPluginsContext")
  (c-name "gst_install_plugins_context_free")
  (return-type "none")
)

(define-method set_xid
  (of-object "GstInstallPluginsContext")
  (c-name "gst_install_plugins_context_set_xid")
  (return-type "none")
  (parameters
    '("guint" "xid")
  )
)

(define-function gst_install_plugins_context_get_type
  (c-name "gst_install_plugins_context_get_type")
  (return-type "GType")
)

(define-function gst_install_plugins_async
  (c-name "gst_install_plugins_async")
  (return-type "GstInstallPluginsReturn")
  (parameters
    '("gchar**" "details")
    '("GstInstallPluginsContext*" "ctx")
    '("GstInstallPluginsResultFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-function gst_install_plugins_sync
  (c-name "gst_install_plugins_sync")
  (return-type "GstInstallPluginsReturn")
  (parameters
    '("gchar**" "details")
    '("GstInstallPluginsContext*" "ctx")
  )
)

(define-method get_name
  (of-object "GstInstallPluginsReturn")
  (c-name "gst_install_plugins_return_get_name")
  (return-type "const-gchar*")
)

(define-function gst_install_plugins_installation_in_progress
  (c-name "gst_install_plugins_installation_in_progress")
  (return-type "gboolean")
)

(define-function gst_install_plugins_supported
  (c-name "gst_install_plugins_supported")
  (return-type "gboolean")
)



;; From missing-plugins.h

(define-function gst_missing_uri_source_message_new
  (c-name "gst_missing_uri_source_message_new")
  (is-constructor-of "GstMissingUriSourceMessage")
  (return-type "GstMessage*")
  (parameters
    '("GstElement*" "element")
    '("const-gchar*" "protocol")
  )
)

(define-function gst_missing_uri_sink_message_new
  (c-name "gst_missing_uri_sink_message_new")
  (is-constructor-of "GstMissingUriSinkMessage")
  (return-type "GstMessage*")
  (parameters
    '("GstElement*" "element")
    '("const-gchar*" "protocol")
  )
)

(define-function gst_missing_element_message_new
  (c-name "gst_missing_element_message_new")
  (is-constructor-of "GstMissingElementMessage")
  (return-type "GstMessage*")
  (parameters
    '("GstElement*" "element")
    '("const-gchar*" "factory_name")
  )
)

(define-function gst_missing_decoder_message_new
  (c-name "gst_missing_decoder_message_new")
  (is-constructor-of "GstMissingDecoderMessage")
  (return-type "GstMessage*")
  (parameters
    '("GstElement*" "element")
    '("const-GstCaps*" "decode_caps")
  )
)

(define-function gst_missing_encoder_message_new
  (c-name "gst_missing_encoder_message_new")
  (is-constructor-of "GstMissingEncoderMessage")
  (return-type "GstMessage*")
  (parameters
    '("GstElement*" "element")
    '("const-GstCaps*" "encode_caps")
  )
)

(define-function gst_missing_plugin_message_get_installer_detail
  (c-name "gst_missing_plugin_message_get_installer_detail")
  (return-type "gchar*")
  (parameters
    '("GstMessage*" "msg")
  )
)

(define-function gst_missing_plugin_message_get_description
  (c-name "gst_missing_plugin_message_get_description")
  (return-type "gchar*")
  (parameters
    '("GstMessage*" "msg")
  )
)

(define-function gst_is_missing_plugin_message
  (c-name "gst_is_missing_plugin_message")
  (return-type "gboolean")
  (parameters
    '("GstMessage*" "msg")
  )
)

(define-function gst_missing_uri_source_installer_detail_new
  (c-name "gst_missing_uri_source_installer_detail_new")
  (is-constructor-of "GstMissingUriSourceInstallerDetail")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "protocol")
  )
)

(define-function gst_missing_uri_sink_installer_detail_new
  (c-name "gst_missing_uri_sink_installer_detail_new")
  (is-constructor-of "GstMissingUriSinkInstallerDetail")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "protocol")
  )
)

(define-function gst_missing_element_installer_detail_new
  (c-name "gst_missing_element_installer_detail_new")
  (is-constructor-of "GstMissingElementInstallerDetail")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "factory_name")
  )
)

(define-function gst_missing_decoder_installer_detail_new
  (c-name "gst_missing_decoder_installer_detail_new")
  (is-constructor-of "GstMissingDecoderInstallerDetail")
  (return-type "gchar*")
  (parameters
    '("const-GstCaps*" "decode_caps")
  )
)

(define-function gst_missing_encoder_installer_detail_new
  (c-name "gst_missing_encoder_installer_detail_new")
  (is-constructor-of "GstMissingEncoderInstallerDetail")
  (return-type "gchar*")
  (parameters
    '("const-GstCaps*" "encode_caps")
  )
)



;; From pbutils-enumtypes.h

(define-function gst_install_plugins_return_get_type
  (c-name "gst_install_plugins_return_get_type")
  (return-type "GType")
)

(define-function gst_discoverer_result_get_type
  (c-name "gst_discoverer_result_get_type")
  (return-type "GType")
)



;; From pbutils.h

(define-function gst_pb_utils_init
  (c-name "gst_pb_utils_init")
  (return-type "none")
)



;; From pbutils-marshal.h



;; From pbutils-private.h

(define-function copy_and_clean_caps
  (c-name "copy_and_clean_caps")
  (return-type "GstCaps*")
  (parameters
    '("const-GstCaps*" "caps")
  )
)



;; From gstvideofilter.h

(define-function gst_video_filter_get_type
  (c-name "gst_video_filter_get_type")
  (return-type "GType")
)



;; From gstvideosink.h

(define-function gst_video_sink_get_type
  (c-name "gst_video_sink_get_type")
  (return-type "GType")
)

(define-function gst_video_sink_center_rect
  (c-name "gst_video_sink_center_rect")
  (return-type "none")
  (parameters
    '("GstVideoRectangle" "src")
    '("GstVideoRectangle" "dst")
    '("GstVideoRectangle*" "result")
    '("gboolean" "scaling")
  )
)



;; From video-enumtypes.h

(define-function gst_video_format_get_type
  (c-name "gst_video_format_get_type")
  (return-type "GType")
)



;; From video.h

(define-function gst_video_get_size
  (c-name "gst_video_get_size")
  (return-type "gboolean")
  (parameters
    '("GstPad*" "pad")
    '("gint*" "width")
    '("gint*" "height")
  )
)

(define-function gst_video_calculate_display_ratio
  (c-name "gst_video_calculate_display_ratio")
  (return-type "gboolean")
  (parameters
    '("guint*" "dar_n")
    '("guint*" "dar_d")
    '("guint" "video_width")
    '("guint" "video_height")
    '("guint" "video_par_n")
    '("guint" "video_par_d")
    '("guint" "display_par_n")
    '("guint" "display_par_d")
  )
)

(define-function gst_video_format_parse_caps
  (c-name "gst_video_format_parse_caps")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
    '("GstVideoFormat*" "format")
    '("int*" "width")
    '("int*" "height")
  )
)

(define-function gst_video_format_parse_caps_interlaced
  (c-name "gst_video_format_parse_caps_interlaced")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
    '("gboolean*" "interlaced")
  )
)

(define-function gst_video_parse_caps_framerate
  (c-name "gst_video_parse_caps_framerate")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
    '("int*" "fps_n")
    '("int*" "fps_d")
  )
)

(define-function gst_video_parse_caps_pixel_aspect_ratio
  (c-name "gst_video_parse_caps_pixel_aspect_ratio")
  (return-type "gboolean")
  (parameters
    '("GstCaps*" "caps")
    '("int*" "par_n")
    '("int*" "par_d")
  )
)

(define-function gst_video_parse_caps_color_matrix
  (c-name "gst_video_parse_caps_color_matrix")
  (return-type "const-char*")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-function gst_video_parse_caps_chroma_site
  (c-name "gst_video_parse_caps_chroma_site")
  (return-type "const-char*")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-function gst_video_parse_caps_palette
  (c-name "gst_video_parse_caps_palette")
  (return-type "GstBuffer*")
  (parameters
    '("GstCaps*" "caps")
  )
)

(define-method new_caps
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_new_caps")
  (return-type "GstCaps*")
  (parameters
    '("int" "width")
    '("int" "height")
    '("int" "framerate_n")
    '("int" "framerate_d")
    '("int" "par_n")
    '("int" "par_d")
  )
)

(define-method new_caps_interlaced
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_new_caps_interlaced")
  (return-type "GstCaps*")
  (parameters
    '("int" "width")
    '("int" "height")
    '("int" "framerate_n")
    '("int" "framerate_d")
    '("int" "par_n")
    '("int" "par_d")
    '("gboolean" "interlaced")
  )
)

(define-method new_template_caps
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_new_template_caps")
  (return-type "GstCaps*")
)

(define-function gst_video_format_from_fourcc
  (c-name "gst_video_format_from_fourcc")
  (return-type "GstVideoFormat")
  (parameters
    '("guint32" "fourcc")
  )
)

(define-method to_fourcc
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_to_fourcc")
  (return-type "guint32")
)

(define-method is_rgb
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_is_rgb")
  (return-type "gboolean")
)

(define-method is_yuv
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_is_yuv")
  (return-type "gboolean")
)

(define-method is_gray
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_is_gray")
  (return-type "gboolean")
)

(define-method has_alpha
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_has_alpha")
  (return-type "gboolean")
)

(define-method get_component_depth
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_get_component_depth")
  (return-type "int")
  (parameters
    '("int" "component")
  )
)

(define-method get_row_stride
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_get_row_stride")
  (return-type "int")
  (parameters
    '("int" "component")
    '("int" "width")
  )
)

(define-method get_pixel_stride
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_get_pixel_stride")
  (return-type "int")
  (parameters
    '("int" "component")
  )
)

(define-method get_component_width
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_get_component_width")
  (return-type "int")
  (parameters
    '("int" "component")
    '("int" "width")
  )
)

(define-method get_component_height
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_get_component_height")
  (return-type "int")
  (parameters
    '("int" "component")
    '("int" "height")
  )
)

(define-method get_component_offset
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_get_component_offset")
  (return-type "int")
  (parameters
    '("int" "component")
    '("int" "width")
    '("int" "height")
  )
)

(define-method get_size
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_get_size")
  (return-type "int")
  (parameters
    '("int" "width")
    '("int" "height")
  )
)

(define-method convert
  (of-object "GstVideoFormat")
  (c-name "gst_video_format_convert")
  (return-type "gboolean")
  (parameters
    '("int" "width")
    '("int" "height")
    '("int" "fps_n")
    '("int" "fps_d")
    '("GstFormat" "src_format")
    '("gint64" "src_value")
    '("GstFormat" "dest_format")
    '("gint64*" "dest_value")
  )
)

(define-function gst_video_event_new_still_frame
  (c-name "gst_video_event_new_still_frame")
  (return-type "GstEvent*")
  (parameters
    '("gboolean" "in_still")
  )
)

(define-function gst_video_event_parse_still_frame
  (c-name "gst_video_event_parse_still_frame")
  (return-type "gboolean")
  (parameters
    '("GstEvent*" "event")
    '("gboolean*" "in_still")
  )
)

(define-function gst_video_convert_frame
  (c-name "gst_video_convert_frame")
  (return-type "GstBuffer*")
  (parameters
    '("GstBuffer*" "buf")
    '("const-GstCaps*" "to_caps")
    '("GstClockTime" "timeout")
    '("GError**" "error")
  )
)

(define-function gst_video_convert_frame_async
  (c-name "gst_video_convert_frame_async")
  (return-type "none")
  (parameters
    '("GstBuffer*" "buf")
    '("const-GstCaps*" "to_caps")
    '("GstClockTime" "timeout")
    '("GstVideoConvertFrameCallback" "callback")
    '("gpointer" "user_data")
    '("GDestroyNotify" "destroy_notify")
  )
)


