[options]
girs_dir = "gir-files"
library = "GstVideo"
version = "1.0"
min_cfg_version = "1.8"
target_path = "gstreamer-video"
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 = [
    "GstVideo.VideoCodecFrameFlags",
    "GstVideo.VideoFormatFlags",
    "GstVideo.VideoTileMode",
    "GstVideo.VideoColorMatrix",
    "GstVideo.VideoMultiviewMode",
    "GstVideo.VideoFieldOrder",
    "GstVideo.VideoMultiviewFramePacking",
    "GstVideo.VideoFilter",
    "GstVideo.VideoCaptionType",
    "GstVideo.VideoBufferPool",
    "GstVideo.VideoAlphaMode",
    "GstVideo.VideoChromaMode",
    "GstVideo.VideoMatrixMode",
    "GstVideo.VideoGammaMode",
    "GstVideo.VideoPrimariesMode",
    "GstVideo.VideoResamplerMethod",
    "GstVideo.VideoDitherMethod",
    "GstVideo.VideoAFDValue",
    "GstVideo.VideoAFDSpec",
]

manual = [
    "GLib.DateTime",
    "GObject.Object",
    "Gst.Object",
    "Gst.Element",
    "Gst.Buffer",
    "Gst.BufferPool",
    "Gst.BufferPoolAcquireParams",
    "Gst.Allocator",
    "Gst.AllocationParams",
    "Gst.ClockTimeDiff",
    "Gst.FlowReturn",
    "Gst.TagList",
    "Gst.TagMergeMode",
    "GstBase.BaseSink",
    "GstBase.BaseTransform",
    "GstVideo.VideoCodecState",
    "GstVideo.VideoCodecFrame",
    "GstVideo.VideoInfo",
    "GstVideo.VideoFormatInfo",
    "GstVideo.VideoColorimetry",
    "GstVideo.VideoColorRange",
    "GstVideo.VideoFrame",
    "GstVideo.VideoTimeCode",
    "GstVideo.VideoTimeCodeInterval",
]

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

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

[[object]]
name = "GstVideo.VideoOverlay"
status = "generate"
manual_traits = ["VideoOverlayExtManual"]

    [[object.function]]
    name = "set_render_rectangle"
        [object.function.return]
        bool_return_is_error = "Failed to set render rectangle"

[[object]]
name = "GstVideo.VideoDecoder"
status = "generate"
manual_traits = ["VideoDecoderExtManual"]

    [[object.function]]
    name = "allocate_output_frame"
    ignore = true

    [[object.function]]
    name = "allocate_output_frame_with_params"
    ignore = true

    [[object.function]]
    name = "finish_frame"
    ignore = true

    [[object.function]]
    name = "release_frame"
    ignore = true

    [[object.function]]
    name = "drop_frame"
    ignore = true

    [[object.function]]
    name = "have_frame"
    ignore = true

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

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

    [[object.function]]
    name = "get_frame"
    ignore = true

    [[object.function]]
    name = "get_frames"
    ignore = true

    [[object.function]]
    name = "get_oldest_frame"
    ignore = true

    [[object.function]]
    name = "get_output_state"
    ignore = true

    [[object.function]]
    name = "set_output_state"
    ignore = true

    [[object.function]]
    name = "set_interlaced_output_state"
    ignore = true

    [[object.function]]
    name = "negotiate"
    ignore = true

    [[object.function]]
    name = "get_allocator"
    ignore = true

    [[object.function]]
    name = "proxy_getcaps"
        [object.function.return]
        nullable = false

    [[object.function]]
    name = "allocate_output_buffer"
        [object.function.return]
        nullable_return_is_error = "Failed to allocate output buffer"

[[object]]
name = "GstVideo.VideoEncoder"
status = "generate"
manual_traits = ["VideoEncoderExtManual"]

    [[object.function]]
    name = "allocate_output_frame"
    ignore = true

    [[object.function]]
    name = "allocate_output_frame_with_params"
    ignore = true

    [[object.function]]
    name = "finish_frame"
    ignore = true

    [[object.function]]
    name = "finish_subframe"
    ignore = true

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

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

    [[object.function]]
    name = "get_frame"
    ignore = true

    [[object.function]]
    name = "get_frames"
    ignore = true

    [[object.function]]
    name = "get_oldest_frame"
    ignore = true

    [[object.function]]
    name = "get_output_state"
    ignore = true

    [[object.function]]
    name = "set_output_state"
    ignore = true

    [[object.function]]
    name = "negotiate"
    ignore = true

    [[object.function]]
    name = "get_allocator"
    ignore = true

    [[object.function]]
    name = "proxy_getcaps"
        [object.function.return]
        nullable = false

    [[object.function]]
    name = "allocate_output_buffer"
        [object.function.return]
        nullable_return_is_error = "Failed to allocate output buffer"

[[object]]
name = "GstVideo.VideoFormat"
status = "generate"

    [[object.derive]]
    name = "Debug, Eq, PartialEq, Hash"

    [[object.member]]
    name = "p010_10be"
    version = "1.10"

    [[object.member]]
    name = "p010_10le"
    version = "1.10"

    [[object.member]]
    name = "iyu2"
    version = "1.10"

    [[object.member]]
    name = "vyuy"
    version = "1.12"

    [[object.member]]
    name = "gbra"
    version = "1.12"

    [[object.member]]
    name = "gbra_10be"
    version = "1.12"

    [[object.member]]
    name = "gbra_10le"
    version = "1.12"

    [[object.member]]
    name = "gbr_12be"
    version = "1.12"

    [[object.member]]
    name = "gbr_12le"
    version = "1.12"

    [[object.member]]
    name = "gbra_12be"
    version = "1.12"

    [[object.member]]
    name = "gbra_12le"
    version = "1.12"

    [[object.member]]
    name = "i420_12be"
    version = "1.12"

    [[object.member]]
    name = "i420_12le"
    version = "1.12"

    [[object.member]]
    name = "i422_12be"
    version = "1.12"

    [[object.member]]
    name = "i422_12le"
    version = "1.12"

    [[object.member]]
    name = "y444_12be"
    version = "1.12"

    [[object.member]]
    name = "y444_12le"
    version = "1.12"

    [[object.member]]
    name = "gray10_le32"
    version = "1.14"

    [[object.member]]
    name = "nv12_10le32"
    version = "1.14"

    [[object.member]]
    name = "nv16_10le32"
    version = "1.14"

    [[object.member]]
    name = "nv12_10le40"
    version = "1.16"

    [[object.member]]
    name = "y210"
    version = "1.16"

    [[object.member]]
    name = "y410"
    version = "1.16"

    [[object.member]]
    name = "vuya"
    version = "1.16"

    [[object.member]]
    name = "bgr10a2_le"
    version = "1.16"

    [[object.member]]
    name = "rgb10a2_le"
    version = "1.18"

    [[object.member]]
    name = "y444_16be"
    version = "1.18"

    [[object.member]]
    name = "y444_16le"
    version = "1.18"

    [[object.member]]
    name = "p016_be"
    version = "1.18"

    [[object.member]]
    name = "p016_le"
    version = "1.18"

    [[object.member]]
    name = "p012_be"
    version = "1.18"

    [[object.member]]
    name = "p012_le"
    version = "1.18"

    [[object.member]]
    name = "y212_be"
    version = "1.18"

    [[object.member]]
    name = "y212_le"
    version = "1.18"

    [[object.member]]
    name = "y412_be"
    version = "1.18"

    [[object.member]]
    name = "y412_le"
    version = "1.18"

[[object]]
name = "GstVideo.VideoSink"
status = "generate"

    [[object.function]]
    name = "center_rect"
    # Implemented in video_rectangle
    ignore = true

[[object]]
name = "GstVideo.VideoOverlayFormatFlags"
status = "generate"
    [[object.function]]
    name = "get_type"
    version = "1.16"
    [[object.member]]
    name = "none"
    ignore = true

[[object]]
name = "GstVideo.VideoTimeCodeFlags"
status = "generate"
    [[object.function]]
    name = "get_type"
    version = "1.18"
    [[object.member]]
    name = "none"
    ignore = true

[[object]]
name = "GstVideo.VideoFrameFlags"
status = "generate"
    [[object.member]]
    name = "top_field"
    version = "1.16"
    [[object.member]]
    name = "bottom_field"
    version = "1.16"

[[object]]
name = "GstVideo.VideoBufferFlags"
status = "generate"
    [[object.member]]
    name = "top_field"
    version = "1.16"
    [[object.member]]
    name = "bottom_field"
    version = "1.16"
    [[object.member]]
    name = "marker"
    version = "1.18"
    [[object.member]]
    name = "last"
    ignore = true

[[object]]
name = "GstVideo.VideoInterlaceMode"
status = "generate"
    [[object.member]]
    name = "alternate"
    version = "1.16"

[[object]]
name = "GstVideo.VideoChromaSite"
status = "generate"
    [[object.member]]
    name = "unknown"
    ignore = true

[[object]]
name = "GstVideo.VideoFlags"
status = "generate"
    [[object.member]]
    name = "none"
    ignore = true

[[object]]
name = "GstVideo.VideoFrameFlags"
status = "generate"
    [[object.member]]
    name = "none"
    ignore = true

[[object]]
name = "GstVideo.VideoMultiviewFlags"
status = "generate"
    [[object.member]]
    name = "none"
    ignore = true

[[object]]
name = "GstVideo.VideoPackFlags"
status = "generate"
    [[object.member]]
    name = "none"
    ignore = true

[[object]]
name = "GstVideo.VideoTransferFunction"
status = "generate"
    [[object.member]]
    name = "bt2020_10"
    version = "1.18"
    [[object.member]]
    name = "smpte2084"
    version = "1.18"
    [[object.member]]
    name = "arib_std_b67"
    version = "1.18"

[[object]]
name = "GstVideo.VideoColorPrimaries"
status = "generate"
    [[object.member]]
    name = "smptest428"
    version = "1.16"
    [[object.member]]
    name = "smpterp431"
    version = "1.16"
    [[object.member]]
    name = "smpteeg432"
    version = "1.16"
    [[object.member]]
    name = "ebu3213"
    version = "1.16"
