[options]
girs_dir = "gir-files"
library = "GstApp"
version = "1.0"
min_cfg_version = "1.8"
target_path = "gstreamer-app"
work_mode = "normal"
concurrency = "send+sync"
generate_safety_asserts = true
single_version_file = true
generate_display_trait = false

external_libraries = [
    "GLib",
    "GObject",
    "Gst",
    "GstBase",
]

generate = [
    "GstApp.AppStreamType",
]

manual = [
    "GObject.Object",
    "Gst.Object",
    "Gst.Element",
    "Gst.URIHandler",
    "Gst.FlowReturn",
    "Gst.Format",
    "GstBase.BaseSrc",
    "GstBase.BaseSink",
]

[[object]]
name = "GstApp.AppSink"
status = "generate"
final_type = true

    [[object.signal]]
    name = "pull-sample"
    # Action signal
    ignore = true

    [[object.signal]]
    name = "pull-preroll"
    # Action signal
    ignore = true

    [[object.signal]]
    name = "try-pull-sample"
    # Action signal
    ignore = true

    [[object.signal]]
    name = "try-pull-preroll"
    # Action signal
    ignore = true

    [[object.signal]]
    name = "new-sample"
    # Use Result<FlowSuccess, FlowError>
    ignore = true

    [[object.signal]]
    name = "new-preroll"
    # Use Result<FlowSuccess, FlowError>
    ignore = true

    [[object.signal]]
    name = "eos"
    concurrency = "send"

    [[object.function]]
    name = "set_caps"
        [[object.function.parameter]]
        name = "caps"
        nullable = true

    [[object.function]]
    name = "pull_preroll"
        [object.function.return]
        nullable_return_is_error = "Failed to pull preroll sample"

    [[object.function]]
    name = "pull_sample"
        [object.function.return]
        nullable_return_is_error = "Failed to pull sample"

[[object]]
name = "GstApp.AppSrc"
status = "generate"
final_type = true

    [[object.function]]
    name = "push_buffer"
    # Pass by value
    ignore = true

    [[object.function]]
    name = "push_buffer_list"
    # Pass by value
    ignore = true

    [[object.signal]]
    name = "end-of-stream"
    # Action signal
    ignore = true

    [[object.signal]]
    name = "push-buffer"
    # Action signal
    ignore = true

    [[object.signal]]
    name = "push-buffer-list"
    # Action signal
    ignore = true

    [[object.signal]]
    name = "push-sample"
    # Action signal
    ignore = true

    [[object.function]]
    name = "end_of_stream"
    # Use Result<FlowSuccess, FlowError>
    ignore = true

    [[object.function]]
    name = "push_sample"
    # Use Result<FlowSuccess, FlowError>
    ignore = true

    [[object.function]]
    name = "set_latency"
    # ClockTime
    ignore = true

    [[object.function]]
    name = "get_latency"
    # ClockTime
    ignore = true

    [[object.function]]
    name = "set_caps"
        [[object.function.parameter]]
            name = "caps"
            nullable = true

[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref-mut"

[[object]]
name = "Gst.Caps"
status = "manual"
ref_mode = "ref"

[[object]]
name = "Gst.Buffer"
status = "manual"
ref_mode = "ref"

[[object]]
name = "Gst.BufferList"
status = "manual"
ref_mode = "ref"

[[object]]
name = "Gst.Sample"
status = "manual"
ref_mode = "ref"

[[object]]
name = "Gst.ClockTime"
status = "manual"
conversion_type = "scalar"
