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

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

generate = [
    "GstAllocators.FdMemoryFlags",
    "GstAllocators.PhysMemoryAllocator",
]

manual = [
  "Gst.Allocator",
  "Gst.Memory",
]

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

[[object]]
name = "GstAllocators.*"
status = "generate"
    [[object.function]]
    name = "dmabuf_memory_get_fd"
    manual = true
    [[object.function]]
    name = "fd_memory_get_fd"
    manual = true
    [[object.function]]
    name = "is_dmabuf_memory"
    manual = true
    [[object.function]]
    name = "is_fd_memory"
    manual = true
    [[object.function]]
    name = "is_phys_memory"
    manual = true
    [[object.function]]
    name = "phys_memory_get_phys_addr"
    manual = true
    [[object.function]]
    name = "is_drm_dumb_memory"
    manual = true
    [[object.function]]
    name = "drm_dumb_memory_get_handle"
    manual = true
    [[object.function]]
    name = "drm_dumb_memory_export_dmabuf"
    manual = true

[[object]]
name = "GstAllocators.DmaBufAllocator"
status = "generate"
cfg_condition = "target_os = \"linux\""
    [[object.function]]
    name = "alloc"
    manual = true
    [[object.function]]
    name = "alloc_with_flags"
    manual = true

[[object]]
name = "GstAllocators.DRMDumbAllocator"
status = "generate"
cfg_condition = "target_os = \"linux\""
    [[object.function]]
    name = "alloc"
    manual = true
    [[object.function]]
    name = "new_with_fd"
    manual = true
    [[object.function]]
    name = "new_with_device_path"
        [object.function.return]
        nullable_return_is_error = "Failed to create allocator"

[[object]]
name = "GstAllocators.FdAllocator"
status = "generate"
    [[object.function]]
    name = "alloc"
    manual = true

[[object]]
name = "GstAllocators.ShmAllocator"
status = "generate"
cfg_condition = "unix"
    [[object.function]]
    name = "get"
    manual = true
    [[object.function]]
    name = "init_once"
    manual = true

