sig
  exception Null_pointer
  exception Error of string
  exception Failure
  val init : ?argv:string array -> unit -> unit
  val version : unit -> int * int * int * int
  val version_string : unit -> string
  type state =
      State_void_pending
    | State_null
    | State_ready
    | State_paused
    | State_playing
  module Element :
    sig
      type t
      val set_property_string :
        Gstreamer.Element.t -> string -> string -> unit
      val set_property_bool : Gstreamer.Element.t -> string -> bool -> unit
      val set_property_int : Gstreamer.Element.t -> string -> int -> unit
      val link : Gstreamer.Element.t -> Gstreamer.Element.t -> unit
      val link_many : Gstreamer.Element.t list -> unit
      val set_state : Gstreamer.Element.t -> Gstreamer.state -> unit
    end
  module Element_factory :
    sig val make : string -> string -> Gstreamer.Element.t end
  module Pipeline :
    sig
      type t = Gstreamer.Element.t
      val create : string -> Gstreamer.Pipeline.t
      val parse_launch : string -> Gstreamer.Pipeline.t
    end
  module Bin :
    sig
      type t
      val of_element : Gstreamer.Element.t -> Gstreamer.Bin.t
      val add : Gstreamer.Bin.t -> Gstreamer.Element.t -> unit
      val add_many : Gstreamer.Bin.t -> Gstreamer.Element.t list -> unit
      val get_by_name : Gstreamer.Bin.t -> string -> Gstreamer.Element.t
    end
  module Caps :
    sig
      type t
      val to_string : Gstreamer.Caps.t -> string
      val of_string : string -> Gstreamer.Caps.t
    end
  module App_src :
    sig
      type t
      val of_element : Gstreamer.Element.t -> Gstreamer.App_src.t
      val push_buffer_string : Gstreamer.App_src.t -> string -> unit
    end
  module App_sink :
    sig
      type t
      val of_element : Gstreamer.Element.t -> Gstreamer.App_sink.t
      val pull_buffer :
        Gstreamer.App_sink.t ->
        (int, Bigarray.int8_unsigned_elt, Bigarray.c_layout)
        Bigarray.Array1.t
      val pull_buffer_string : Gstreamer.App_sink.t -> string
    end
end