[options]
girs_directories = ["../gir-files", "../gst-gir-files"]
library = "GstRtp"
version = "1.0"
min_cfg_version = "1.14"
work_mode = "normal"
concurrency = "send+sync"
generate_safety_asserts = true
single_version_file = true
generate_display_trait = false
trust_return_value_nullability = true

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

generate = [
    "GstRtp.RTCPFBType",
    "GstRtp.RTCPSDESType",
    "GstRtp.RTCPType",
    "GstRtp.RTCPXRType",
    "GstRtp.RTPBaseDepayload",
    "GstRtp.RTPHeaderExtensionDirection",
    "GstRtp.RTPHeaderExtensionFlags",
    "GstRtp.RTPPayload",
    "GstRtp.RTPProfile",
]

manual = [
    "Gst.Caps",
    "Gst.Element",
    "Gst.ElementFactory",
]

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

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

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

[[object]]
name = "Gst.FlowReturn"
status = "manual"
must_use = true
    [object.conversion_type]
    variant = "Result"
    ok_type = "gst::FlowSuccess"
    err_type = "gst::FlowError"

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

[[object]]
name = "GstRtp.*"
status = "generate"
    # expected enum `std::ffi::c_void`, found u8
    [[object.function]]
    name = "rtp_hdrext_get_ntp_56"
    ignore = true

    # expected enum `std::ffi::c_void`, found u8
    [[object.function]]
    name = "rtp_hdrext_get_ntp_64"
    ignore = true

    # manual bindings are needed for GstMeta
    [[object.function]]
    name = "rtp_source_meta_api_get_type"
    ignore = true

[[object]]
name = "GstRtp.RTPBasePayload"
status = "generate"
manual_traits = ["RTPHeaderExtensionExtManual"]

    [[object.function]]
    name = "set_outcaps"
    # varargs function
    ignore = true

    [[object.function]]
    name = "set_outcaps_structure"
    # StructureRef instead of Structure
    manual = true
    rename = "set_outcaps"

[[object]]
name = "GstRtp.RTPBuffer"
status = "manual"
    [[object.function]]
    name = "map"
    # Readable and writable variant dealing with mutability
    rename = "from_buffer_readable"

[[object]]
name = "GstRtp.RTPBufferFlags"
status = "generate"
    [[object.member]]
    name = "last"
    ignore = true

[[object]]
name = "GstRtp.RTPBufferMapFlags"
status = "generate"
    [[object.member]]
    name = "last"
    ignore = true

[[object]]
name = "GstRtp.RTPHeaderExtension"
status = "generate"
manual_traits = ["RTPHeaderExtensionExtManual"]
    [[object.function]]
    pattern = "read|write"
    # Mutability of BufferRef
    manual = true

    [[object.function]]
    name = "set_caps_from_attributes"
    # Mutability of CapsRef
    manual = true

    [[object.function]]
    name = "set_caps_from_attributes_helper"
    # Mutability of CapsRef
    manual = true

    [[object.function]]
    name = "update_non_rtp_src_caps"
    # Mutability of CapsRef
    manual = true
