content_kind:Frame.content_kind ->
output_kind:string ->
name:string ->
infallible:bool ->
on_start:(unit -> unit) ->
on_stop:(unit -> unit) ->
autostart:bool ->
Lang.value ->
object
  val memo : Frame.t
  val mutable ns_kind : string
  val mutable request_start : bool
  val mutable request_stop : bool
  method abort_track : unit
  method private add_metadata : Request.metadata -> unit
  method advance : unit
  method after_output : unit
  method clock : Source.clock_variable
  method private create_request :
    ?metadata:(string * string) list ->
    ?persistent:bool ->
    ?indicators:Request.indicator list -> string -> Request.t
  method private virtual encode : Frame.t -> int -> int -> string
  method get : Frame.t -> unit
  method private get_frame : Frame.t -> unit
  method get_ready : ?dynamic:bool -> Source.source list -> unit
  method id : string
  method private virtual insert_metadata :
    Encoder.Meta.export_metadata -> unit
  method is_active : bool
  method is_output : bool
  method is_ready : bool
  method kind : Frame.content_kind
  method leave : ?dynamic:bool -> Source.source -> unit
  method private log : Dtools.Log.t
  method private metadata_queue : Request.metadata Queue.t
  method on_shutdown : (unit -> unit) -> unit
  method output : unit
  method output_get_ready : unit
  method virtual output_reset : unit
  method private output_send : Frame.t -> unit
  method private virtual output_start : unit
  method private virtual output_stop : unit
  method register_command :
    descr:string -> ?usage:string -> string -> (string -> string) -> unit
  method remaining : int
  method seek : int -> int
  method private virtual send : string -> unit
  method private set_clock : unit
  method set_id : ?definitive:bool -> string -> unit
  method private sleep : unit
  method stype : Source.source_t
  method private wake_up : Source.source list -> unit
end