Add checks for the Gir.tomls

... and fix all the failures.
This commit is contained in:
Sebastian Dröge 2021-12-03 18:14:55 +02:00 committed by Sebastian Dröge
parent 668a9bbf58
commit 8f3ed6d289
59 changed files with 3494 additions and 3300 deletions

View file

@ -27,6 +27,7 @@ once_cell = "1.0"
[dev-dependencies] [dev-dependencies]
futures-util = { version = "0.3", features = ["sink"] } futures-util = { version = "0.3", features = ["sink"] }
futures-executor = "0.3" futures-executor = "0.3"
gir-format-check = "0.1"
[features] [features]
default = [] default = []

View file

@ -22,13 +22,33 @@ generate = [
manual = [ manual = [
"GObject.Object", "GObject.Object",
"Gst.Object",
"Gst.Element", "Gst.Element",
"Gst.URIHandler",
"Gst.Format", "Gst.Format",
"Gst.MiniObject", "Gst.MiniObject",
"Gst.Object",
"Gst.URIHandler",
] ]
[[object]]
name = "Gst.Buffer"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.BufferList"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Caps"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.ClockTime"
status = "manual"
conversion_type = "Option"
[[object]] [[object]]
name = "Gst.FlowReturn" name = "Gst.FlowReturn"
status = "manual" status = "manual"
@ -38,6 +58,16 @@ must_use = true
ok_type = "gst::FlowSuccess" ok_type = "gst::FlowSuccess"
err_type = "gst::FlowError" err_type = "gst::FlowError"
[[object]]
name = "Gst.Sample"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref"
[[object]] [[object]]
name = "GstApp.AppSink" name = "GstApp.AppSink"
status = "generate" status = "generate"
@ -209,33 +239,3 @@ final_type = true
[[object.function.parameter]] [[object.function.parameter]]
name = "caps" name = "caps"
nullable = true nullable = true
[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref"
[[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 = "Option"

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -26,6 +26,7 @@ once_cell = "1.0"
[dev-dependencies] [dev-dependencies]
itertools = "0.10" itertools = "0.10"
gir-format-check = "0.1"
[features] [features]
default = [] default = []

View file

@ -17,17 +17,17 @@ external_libraries = [
] ]
generate = [ generate = [
"GstAudio.AudioBaseSrc",
"GstAudio.AudioChannelPosition",
"GstAudio.AudioDitherMethod", "GstAudio.AudioDitherMethod",
"GstAudio.AudioNoiseShapingMethod",
"GstAudio.AudioResamplerMethod",
"GstAudio.AudioFormatFlags", "GstAudio.AudioFormatFlags",
"GstAudio.AudioLayout", "GstAudio.AudioLayout",
"GstAudio.AudioChannelPosition", "GstAudio.AudioNoiseShapingMethod",
"GstAudio.StreamVolume", "GstAudio.AudioResamplerMethod",
"GstAudio.StreamVolumeFormat",
"GstAudio.AudioSink", "GstAudio.AudioSink",
"GstAudio.AudioSrc", "GstAudio.AudioSrc",
"GstAudio.AudioBaseSrc", "GstAudio.StreamVolume",
"GstAudio.StreamVolumeFormat",
] ]
manual = [ manual = [
@ -39,37 +39,37 @@ manual = [
"Gst.Format", "Gst.Format",
"Gst.TagList", "Gst.TagList",
"Gst.TagMergeMode", "Gst.TagMergeMode",
"GstBase.BaseSink",
"GstBase.BaseSrc",
"GstAudio.AudioClippingMeta", "GstAudio.AudioClippingMeta",
"GstAudio.AudioFormatInfo", "GstAudio.AudioFormatInfo",
"GstAudio.AudioInfo", "GstAudio.AudioInfo",
"GstAudio.AudioLevelMeta", "GstAudio.AudioLevelMeta",
"GstAudio.AudioMeta", "GstAudio.AudioMeta",
"GstAudio.AudioRingBufferSpec", "GstAudio.AudioRingBufferSpec",
"GstBase.BaseSink",
"GstBase.BaseSrc",
] ]
[[object]]
name = "Gst.Object"
# For renaming the trait...
status = "manual"
trait_name = "GstObjectExt"
[[object]]
name = "Gst.Caps"
status = "manual"
ref_mode = "ref"
[[object]] [[object]]
name = "Gst.Buffer" name = "Gst.Buffer"
status = "manual" status = "manual"
ref_mode = "ref" ref_mode = "ref"
[[object]]
name = "Gst.Caps"
status = "manual"
ref_mode = "ref"
[[object]] [[object]]
name = "Gst.ClockTime" name = "Gst.ClockTime"
status = "manual" status = "manual"
conversion_type = "Option" conversion_type = "Option"
[[object]]
name = "Gst.Object"
# For renaming the trait...
status = "manual"
trait_name = "GstObjectExt"
[[object]] [[object]]
name = "GstAudio.AudioBaseSink" name = "GstAudio.AudioBaseSink"
status = "generate" status = "generate"
@ -105,154 +105,6 @@ status = "manual"
# Readable and writable variant dealing with mutability # Readable and writable variant dealing with mutability
rename = "from_buffer_readable" rename = "from_buffer_readable"
[[object]]
name = "GstAudio.AudioFormat"
status = "generate"
[[object.derive]]
name = "Debug, Eq, PartialEq, Hash"
[[object.member]]
name = "s16"
# Platform dependant
manual = true
[[object.member]]
name = "u16"
# Platform dependant
manual = true
[[object.member]]
name = "s24_32"
# Platform dependant
manual = true
[[object.member]]
name = "u24_32"
# Platform dependant
manual = true
[[object.member]]
name = "s32"
# Platform dependant
manual = true
[[object.member]]
name = "u32"
# Platform dependant
manual = true
[[object.member]]
name = "s24"
# Platform dependant
manual = true
[[object.member]]
name = "u24"
# Platform dependant
manual = true
[[object.member]]
name = "s20"
# Platform dependant
manual = true
[[object.member]]
name = "u20"
# Platform dependant
manual = true
[[object.member]]
name = "s18"
# Platform dependant
manual = true
[[object.member]]
name = "u18"
# Platform dependant
manual = true
[[object.member]]
name = "f32"
# Platform dependant
manual = true
[[object.member]]
name = "f64"
# Platform dependant
manual = true
[[object.function]]
name = "to_string"
# This has an Unknown field that may return NULL or "UNKNOWN"
manual = true
[object.function.return]
nullable = false
[[object.function]]
name = "fill_silence"
# Function does not belong in AudioFormat but AudioFormatInfo.
# Manual implementation is available, and glib argument conversion
# is broken.
manual = true
[[object.function]]
name = "get_info"
# Result is not nullable, function does effectively the same
# as AudioFormatInfo::from_format()
ignore = true
[[object.function]]
name = "build_integer"
# Use custom AudioEndianness enum
manual = true
[[object]]
name = "GstAudio.AudioStreamAlign"
status = "generate"
[[object.function]]
name = "process"
# bool does not signal error
manual = true
[[object.function]]
pattern = "get_.*"
[[object.function.parameter]]
name = "align"
const = true
[[object.function]]
name = "new"
[[object.function.parameter]]
name = "alignment_threshold"
mandatory = true
[[object.function.parameter]]
name = "discont_wait"
mandatory = true
[[object.function]]
name = "get_alignment_threshold"
[object.function.return]
mandatory = true
[[object.function]]
name = "get_discont_wait"
[object.function.return]
mandatory = true
[[object.function]]
name = "set_alignment_threshold"
[[object.function.parameter]]
name = "alignment_threshold"
mandatory = true
[[object.function]]
name = "set_discont_wait"
[[object.function.parameter]]
name = "discont_wait"
mandatory = true
[[object]] [[object]]
name = "GstAudio.AudioDecoder" name = "GstAudio.AudioDecoder"
status = "generate" status = "generate"
@ -380,6 +232,122 @@ manual_traits = ["AudioEncoderExtManual"]
[object.function.return] [object.function.return]
nullable_return_is_error = "Failed to allocate output buffer" nullable_return_is_error = "Failed to allocate output buffer"
[[object]]
name = "GstAudio.AudioFlags"
status = "generate"
[[object.member]]
name = "none"
ignore = true
[[object]]
name = "GstAudio.AudioFormat"
status = "generate"
[[object.derive]]
name = "Debug, Eq, PartialEq, Hash"
[[object.member]]
name = "s16"
# Platform dependant
manual = true
[[object.member]]
name = "u16"
# Platform dependant
manual = true
[[object.member]]
name = "s24_32"
# Platform dependant
manual = true
[[object.member]]
name = "u24_32"
# Platform dependant
manual = true
[[object.member]]
name = "s32"
# Platform dependant
manual = true
[[object.member]]
name = "u32"
# Platform dependant
manual = true
[[object.member]]
name = "s24"
# Platform dependant
manual = true
[[object.member]]
name = "u24"
# Platform dependant
manual = true
[[object.member]]
name = "s20"
# Platform dependant
manual = true
[[object.member]]
name = "u20"
# Platform dependant
manual = true
[[object.member]]
name = "s18"
# Platform dependant
manual = true
[[object.member]]
name = "u18"
# Platform dependant
manual = true
[[object.member]]
name = "f32"
# Platform dependant
manual = true
[[object.member]]
name = "f64"
# Platform dependant
manual = true
[[object.function]]
name = "to_string"
# This has an Unknown field that may return NULL or "UNKNOWN"
manual = true
[object.function.return]
nullable = false
[[object.function]]
name = "fill_silence"
# Function does not belong in AudioFormat but AudioFormatInfo.
# Manual implementation is available, and glib argument conversion
# is broken.
manual = true
[[object.function]]
name = "get_info"
# Result is not nullable, function does effectively the same
# as AudioFormatInfo::from_format()
ignore = true
[[object.function]]
name = "build_integer"
# Use custom AudioEndianness enum
manual = true
[[object]]
name = "GstAudio.AudioPackFlags"
status = "generate"
[[object.member]]
name = "none"
ignore = true
[[object]] [[object]]
name = "GstAudio.AudioRingBufferFormatType" name = "GstAudio.AudioRingBufferFormatType"
status = "generate" status = "generate"
@ -397,15 +365,47 @@ status = "generate"
version = "1.12" version = "1.12"
[[object]] [[object]]
name = "GstAudio.AudioFlags" name = "GstAudio.AudioStreamAlign"
status = "generate" status = "generate"
[[object.member]]
name = "none"
ignore = true
[[object]] [[object.function]]
name = "GstAudio.AudioPackFlags" name = "process"
status = "generate" # bool does not signal error
[[object.member]] manual = true
name = "none"
ignore = true [[object.function]]
pattern = "get_.*"
[[object.function.parameter]]
name = "align"
const = true
[[object.function]]
name = "new"
[[object.function.parameter]]
name = "alignment_threshold"
mandatory = true
[[object.function.parameter]]
name = "discont_wait"
mandatory = true
[[object.function]]
name = "get_alignment_threshold"
[object.function.return]
mandatory = true
[[object.function]]
name = "get_discont_wait"
[object.function.return]
mandatory = true
[[object.function]]
name = "set_alignment_threshold"
[[object.function.parameter]]
name = "alignment_threshold"
mandatory = true
[[object.function]]
name = "set_discont_wait"
[[object.function.parameter]]
name = "discont_wait"
mandatory = true

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -21,6 +21,9 @@ ffi = { package = "gstreamer-base-sys", path = "sys", features = ["v1_8"] }
glib = { git = "https://github.com/gtk-rs/gtk-rs-core" } glib = { git = "https://github.com/gtk-rs/gtk-rs-core" }
gst = { package = "gstreamer", path = "../gstreamer" } gst = { package = "gstreamer", path = "../gstreamer" }
[dev-dependencies]
gir-format-check = "0.1"
[features] [features]
default = [] default = []
v1_10 = ["gst/v1_10", "ffi/v1_10"] v1_10 = ["gst/v1_10", "ffi/v1_10"]

View file

@ -17,8 +17,8 @@ external_libraries = [
] ]
generate = [ generate = [
"GstBase.PushSrc",
"GstBase.AggregatorStartTimeSelection", "GstBase.AggregatorStartTimeSelection",
"GstBase.PushSrc",
] ]
manual = [ manual = [
@ -43,6 +43,21 @@ manual = [
"GstBase.BaseParseFrame", "GstBase.BaseParseFrame",
] ]
[[object]]
name = "Gst.Buffer"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.BufferList"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Caps"
status = "manual"
ref_mode = "ref"
[[object]] [[object]]
name = "Gst.ClockReturn" name = "Gst.ClockReturn"
status = "manual" status = "manual"
@ -52,6 +67,11 @@ must_use = true
ok_type = "gst::ClockSuccess" ok_type = "gst::ClockSuccess"
err_type = "gst::ClockError" err_type = "gst::ClockError"
[[object]]
name = "Gst.ClockTime"
status = "manual"
conversion_type = "Option"
[[object]] [[object]]
name = "Gst.FlowReturn" name = "Gst.FlowReturn"
status = "manual" status = "manual"
@ -61,6 +81,59 @@ must_use = true
ok_type = "gst::FlowSuccess" ok_type = "gst::FlowSuccess"
err_type = "gst::FlowError" err_type = "gst::FlowError"
[[object]]
name = "Gst.Sample"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.TagList"
status = "manual"
ref_mode = "ref"
[[object]]
name = "GstBase.*"
status = "generate"
# We'll opt-in for constants at a later time
[[object.constant]]
pattern = ".+"
ignore = true
[[object.function]]
name = "type_find_helper_for_data"
# broken return value
ignore = true
[[object.function]]
name = "type_find_helper_for_data_with_extension"
# broken return value
ignore = true
[[object.function]]
name = "type_find_helper_for_buffer"
# broken return value
ignore = true
[[object.function]]
name = "type_find_helper_for_buffer_with_extension"
# broken return value
ignore = true
[[object.function]]
name = "type_find_helper"
[object.function.return]
nullable_return_is_error = "Could not find type"
[[object.function]]
name = "type_find_helper_for_extension"
[object.function.return]
nullable_return_is_error = "Could not find type"
[[object]] [[object]]
name = "GstBase.Adapter" name = "GstBase.Adapter"
status = "generate" status = "generate"
@ -107,11 +180,106 @@ concurrency = "send-unique"
manual = true manual = true
[[object]] [[object]]
name = "GstBase.FlowCombiner" name = "GstBase.Aggregator"
# Manual because ref/unref functions were added much later status = "generate"
status = "manual" manual_traits = ["AggregatorExtManual"]
final_type = true
concurrency = "none" [[object.function]]
name = "update_segment"
# Takes FormattedValue as argument
manual = true
[[object.function]]
name = "get_allocator"
manual = true
[[object.function]]
name = "finish_buffer"
# Takes ownership
manual = true
[[object.function]]
name = "finish_buffer_list"
# Takes ownership
manual = true
[[object.function]]
name = "selected_samples"
# Info parameter
manual = true
[[object.function]]
name = "set_latency"
[[object.function.parameter]]
name = "min_latency"
mandatory = true
[[object.property]]
name = "latency"
version = "1.14"
[[object.property]]
name = "start-time-selection"
version = "1.18"
[[object.property]]
name = "min-upstream-latency"
# clock time instead of u64
manual = true
[[object.signal]]
name = "samples-selected"
# StructureRef instead of Structure
manual = true
[[object]]
name = "GstBase.AggregatorPad"
status = "generate"
manual_traits = ["AggregatorPadExtManual"]
[[object]]
name = "GstBase.BaseParse"
status = "generate"
manual_traits = ["BaseParseExtManual"]
[[object.function]]
name = "add_index_entry"
[[object.function.parameter]]
name = "ts"
mandatory = true
[[object.function]]
name = "finish_frame"
manual = true
[[object.function]]
name = "set_duration"
manual = true
[[object.function]]
name = "set_latency"
[[object.function.parameter]]
name = "min_latency"
mandatory = true
[[object.function]]
name = "convert_default"
manual = true
[[object.function]]
name = "set_frame_rate"
manual = true
# Didn't bind gst_base_parse_frame_{new,init} so not needed
[[object.function]]
name = "push_frame"
ignore = true
[[object]]
name = "GstBase.BaseParseFrameFlags"
status = "generate"
[[object.member]]
name = "none"
ignore = true
[[object]] [[object]]
name = "GstBase.BaseSink" name = "GstBase.BaseSink"
@ -250,176 +418,8 @@ manual_traits = ["BaseTransformExtManual"]
ignore = true ignore = true
[[object]] [[object]]
name = "GstBase.Aggregator" name = "GstBase.FlowCombiner"
status = "generate" # Manual because ref/unref functions were added much later
manual_traits = ["AggregatorExtManual"]
[[object.function]]
name = "update_segment"
# Takes FormattedValue as argument
manual = true
[[object.function]]
name = "get_allocator"
manual = true
[[object.function]]
name = "finish_buffer"
# Takes ownership
manual = true
[[object.function]]
name = "finish_buffer_list"
# Takes ownership
manual = true
[[object.function]]
name = "selected_samples"
# Info parameter
manual = true
[[object.function]]
name = "set_latency"
[[object.function.parameter]]
name = "min_latency"
mandatory = true
[[object.property]]
name = "latency"
version = "1.14"
[[object.property]]
name = "start-time-selection"
version = "1.18"
[[object.property]]
name = "min-upstream-latency"
# clock time instead of u64
manual = true
[[object.signal]]
name = "samples-selected"
# StructureRef instead of Structure
manual = true
[[object]]
name = "GstBase.AggregatorPad"
status = "generate"
manual_traits = ["AggregatorPadExtManual"]
[[object]]
name = "GstBase.*"
status = "generate"
# We'll opt-in for constants at a later time
[[object.constant]]
pattern = ".+"
ignore = true
[[object.function]]
name = "type_find_helper_for_data"
# broken return value
ignore = true
[[object.function]]
name = "type_find_helper_for_data_with_extension"
# broken return value
ignore = true
[[object.function]]
name = "type_find_helper_for_buffer"
# broken return value
ignore = true
[[object.function]]
name = "type_find_helper_for_buffer_with_extension"
# broken return value
ignore = true
[[object.function]]
name = "type_find_helper"
[object.function.return]
nullable_return_is_error = "Could not find type"
[[object.function]]
name = "type_find_helper_for_extension"
[object.function.return]
nullable_return_is_error = "Could not find type"
[[object]]
name = "Gst.Structure"
status = "manual" status = "manual"
ref_mode = "ref" final_type = true
concurrency = "none"
[[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 = "Option"
[[object]]
name = "Gst.TagList"
status = "manual"
ref_mode = "ref"
[[object]]
name = "GstBase.BaseParse"
status = "generate"
manual_traits = ["BaseParseExtManual"]
[[object.function]]
name = "add_index_entry"
[[object.function.parameter]]
name = "ts"
mandatory = true
[[object.function]]
name = "finish_frame"
manual = true
[[object.function]]
name = "set_duration"
manual = true
[[object.function]]
name = "set_latency"
[[object.function.parameter]]
name = "min_latency"
mandatory = true
[[object.function]]
name = "convert_default"
manual = true
[[object.function]]
name = "set_frame_rate"
manual = true
# Didn't bind gst_base_parse_frame_{new,init} so not needed
[[object.function]]
name = "push_frame"
ignore = true
[[object]]
name = "GstBase.BaseParseFrameFlags"
status = "generate"
[[object.member]]
name = "none"
ignore = true

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -19,6 +19,9 @@ ffi = { package = "gstreamer-check-sys", path = "sys", features = ["v1_8"] }
glib = { git = "https://github.com/gtk-rs/gtk-rs-core" } glib = { git = "https://github.com/gtk-rs/gtk-rs-core" }
gst = { package = "gstreamer", path = "../gstreamer" } gst = { package = "gstreamer", path = "../gstreamer" }
[dev-dependencies]
gir-format-check = "0.1"
[features] [features]
default = [] default = []
v1_10 = ["gst/v1_10", "ffi/v1_10"] v1_10 = ["gst/v1_10", "ffi/v1_10"]

View file

@ -62,6 +62,18 @@ name = "Gst.ClockTime"
status = "manual" status = "manual"
conversion_type = "Option" conversion_type = "Option"
[[object]]
name = "GstCheck.Harness"
status = "manual"
[[object.function]]
name = "new_with_element"
rename = "with_element"
[[object.function]]
name = "new_with_padnames"
rename = "with_padnames"
[[object]] [[object]]
name = "GstCheck.TestClock" name = "GstCheck.TestClock"
status = "generate" status = "generate"
@ -107,15 +119,3 @@ final_type = true
[[object.function]] [[object.function]]
name = "timed_wait_for_multiple_pending_ids" name = "timed_wait_for_multiple_pending_ids"
manual = true manual = true
[[object]]
name = "GstCheck.Harness"
status = "manual"
[[object.function]]
name = "new_with_element"
rename = "with_element"
[[object.function]]
name = "new_with_padnames"
rename = "with_padnames"

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -20,6 +20,9 @@ ffi = { package = "gstreamer-controller-sys", path = "sys", features = ["v1_8"]
glib = { git = "https://github.com/gtk-rs/gtk-rs-core" } glib = { git = "https://github.com/gtk-rs/gtk-rs-core" }
gst = { package = "gstreamer", path = "../gstreamer" } gst = { package = "gstreamer", path = "../gstreamer" }
[dev-dependencies]
gir-format-check = "0.1"
[features] [features]
default = [] default = []
v1_10 = ["gst/v1_10", "ffi/v1_10"] v1_10 = ["gst/v1_10", "ffi/v1_10"]

View file

@ -18,19 +18,19 @@ external_libraries = [
generate = [ generate = [
"GstController.ARGBControlBinding", "GstController.ARGBControlBinding",
"GstController.DirectControlBinding", "GstController.DirectControlBinding",
"GstController.InterpolationControlSource",
"GstController.LFOControlSource",
"GstController.TriggerControlSource",
"GstController.DirectControlBindingConvertValue",
"GstController.DirectControlBindingConvertGValue", "GstController.DirectControlBindingConvertGValue",
"GstController.LFOWaveform", "GstController.DirectControlBindingConvertValue",
"GstController.InterpolationControlSource",
"GstController.InterpolationMode", "GstController.InterpolationMode",
"GstController.LFOControlSource",
"GstController.LFOWaveform",
"GstController.TriggerControlSource",
] ]
manual = [ manual = [
"Gst.Object",
"Gst.ControlBinding", "Gst.ControlBinding",
"Gst.ControlSource", "Gst.ControlSource",
"Gst.Object",
"GstController.ControlPoint", "GstController.ControlPoint",
] ]
@ -39,6 +39,10 @@ name = "Gst.ClockTime"
status = "manual" status = "manual"
conversion_type = "Option" conversion_type = "Option"
[[object]]
name = "GstController.ProxyControlBinding"
status = "generate"
version = "1.12"
[[object]] [[object]]
name = "GstController.TimedValueControlSource" name = "GstController.TimedValueControlSource"
@ -55,8 +59,3 @@ status = "generate"
[[object.function.parameter]] [[object.function.parameter]]
name = "timestamp" name = "timestamp"
mandatory = true mandatory = true
[[object]]
name = "GstController.ProxyControlBinding"
status = "generate"
version = "1.12"

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -23,6 +23,9 @@ gst = { package = "gstreamer", path = "../gstreamer" }
gst-base = { package = "gstreamer-base", path = "../gstreamer-base" } gst-base = { package = "gstreamer-base", path = "../gstreamer-base" }
gst-pbutils = { package = "gstreamer-pbutils", path = "../gstreamer-pbutils" } gst-pbutils = { package = "gstreamer-pbutils", path = "../gstreamer-pbutils" }
[dev-dependencies]
gir-format-check = "0.1"
[features] [features]
v1_10 = ["gst/v1_10", "gst-base/v1_10", "gst-pbutils/v1_10", "ffi/v1_10"] v1_10 = ["gst/v1_10", "gst-base/v1_10", "gst-pbutils/v1_10", "ffi/v1_10"]
v1_12 = ["gst/v1_12", "gst-base/v1_12", "gst-pbutils/v1_12", "ffi/v1_12", "v1_10"] v1_12 = ["gst/v1_12", "gst-base/v1_12", "gst-pbutils/v1_12", "ffi/v1_12", "v1_10"]

View file

@ -9,138 +9,110 @@ single_version_file = true
generate_display_trait = false generate_display_trait = false
external_libraries = [ external_libraries = [
"Gio",
"GLib", "GLib",
"GObject", "GObject",
"Gio",
"Gst", "Gst",
"GstPbutils", "GstPbutils",
] ]
manual = [ manual = [
"Gio.AsyncReadyCallback",
"Gio.Cancellable",
"GLib.Date", "GLib.Date",
"GLib.DateTime", "GLib.DateTime",
"GLib.Error", "GLib.Error",
"GLib.Source", "GLib.Source",
"GLib.Type", "GLib.Type",
"Gio.Cancellable",
"Gio.AsyncReadyCallback",
"GObject.Object", "GObject.Object",
"GObject.Value", "GObject.Value",
"Gst.DateTime", "Gst.Bin",
"Gst.ChildProxy", "Gst.ChildProxy",
"Gst.ControlBinding", "Gst.ControlBinding",
"Gst.ControlSource", "Gst.ControlSource",
"Gst.CoreError", "Gst.CoreError",
"Gst.DateTime",
"Gst.Element", "Gst.Element",
"Gst.ElementFactory", "Gst.ElementFactory",
"Gst.EventType", "Gst.EventType",
"Gst.Bin",
"Gst.Pad", "Gst.Pad",
"Gst.Pipeline", "Gst.Pipeline",
"Gst.Segment", "Gst.Segment",
"Gst.State", "Gst.State",
"Gst.StaticCaps", "Gst.StaticCaps",
"Gst.StaticPadTemplate", "Gst.StaticPadTemplate",
"GstPbutils.EncodingProfile",
"GstPbutils.DiscovererInfo", "GstPbutils.DiscovererInfo",
"GstPbutils.DiscovererStreamInfo", "GstPbutils.DiscovererStreamInfo",
"GstPbutils.EncodingProfile",
] ]
generate = [ generate = [
"GES.PipelineFlags", "GES.AssetLoadingReturn",
"GES.FrameNumber",
"GES.Group",
"GES.UriClipAsset",
"GES.UriSourceAsset",
"GES.OperationClip",
"GES.TransitionClip",
"GES.BaseTransitionClip",
"GES.VideoStandardTransitionType",
"GES.Source",
"GES.AudioSource", "GES.AudioSource",
"GES.AudioTestSource", "GES.AudioTestSource",
"GES.AudioTrack", "GES.AudioTrack",
"GES.AudioTransition", "GES.AudioTransition",
"GES.Operation",
"GES.Transition",
"GES.AudioUriSource", "GES.AudioUriSource",
"GES.BaseEffectClip", "GES.BaseEffectClip",
"GES.Formatter", "GES.BaseTransitionClip",
"GES.BaseXmlFormatter", "GES.BaseXmlFormatter",
"GES.ChildrenControlMode", "GES.ChildrenControlMode",
"GES.ClipAsset", "GES.ClipAsset",
"GES.TrackElementAsset",
"GES.EffectAsset", "GES.EffectAsset",
"GES.EffectClip", "GES.EffectClip",
"GES.Error",
"GES.ExtractableCheckId", "GES.ExtractableCheckId",
"GES.VideoUriSource", "GES.Formatter",
"GES.VideoSource", "GES.FrameNumber",
"GES.Group",
"GES.ImageSource", "GES.ImageSource",
"GES.MultiFileSource", "GES.Marker",
"GES.OverlayClip", "GES.MarkerFlags",
"GES.MarkerList",
"GES.MetaContainer", "GES.MetaContainer",
"GES.MetaFlag", "GES.MetaFlag",
"GES.Marker", "GES.MultiFileSource",
"GES.MarkerList", "GES.Operation",
"GES.MarkerFlags", "GES.OperationClip",
"GES.OverlayClip",
"GES.PipelineFlags",
"GES.Source",
"GES.SourceClip", "GES.SourceClip",
"GES.SourceClipAsset", "GES.SourceClipAsset",
"GES.TestClip", "GES.TestClip",
"GES.TextHAlign",
"GES.TextOverlay",
"GES.TextOverlayClip",
"GES.TextVAlign",
"GES.TitleClip",
"GES.TitleSource",
"GES.TrackElementAsset",
"GES.Transition",
"GES.TransitionClip",
"GES.UriClipAsset",
"GES.UriSourceAsset",
"GES.VideoSource",
"GES.VideoStandardTransitionType",
"GES.VideoTestPattern", "GES.VideoTestPattern",
"GES.VideoTestSource", "GES.VideoTestSource",
"GES.VideoTrack", "GES.VideoTrack",
"GES.VideoTransition", "GES.VideoTransition",
"GES.VideoUriSource",
"GES.XmlFormatter", "GES.XmlFormatter",
"GES.TextHAlign",
"GES.TextVAlign",
"GES.TextOverlay",
"GES.TextOverlayClip",
"GES.TitleClip",
"GES.TitleSource",
"GES.AssetLoadingReturn",
"GES.Error",
] ]
[[object]] [[object]]
name = "Gst.Object" name = "GES.Asset"
# For renaming the trait... status = "generate"
status = "manual" [[object.function]]
trait_name = "GstObjectExt" name = "set_proxy"
[object.function.return]
[[object]] bool_return_is_error = "Failed to set proxy"
name = "Gst.Structure"
status = "manual"
ref_mode = "ref"
[[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.function]] [[object.function]]
name = "get_caps" name = "unproxy"
# Function moved to SampleRef [object.function.return]
ignore = true bool_return_is_error = "Failed to unproxy asset"
[[object]]
name = "Gst.ClockTime"
status = "manual"
conversion_type = "Option"
[[object]] [[object]]
name = "GES.BaseEffect" name = "GES.BaseEffect"
@ -151,20 +123,37 @@ status = "generate"
ignore = true ignore = true
[[object]] [[object]]
name = "GES.Effect" name = "GES.Clip"
status = "generate" status = "generate"
[[object.function]] [[object.function]]
name = "new" name = "get_duration_limit"
[object.function.return] [object.function.return]
nullable_return_is_error = "Failed to create effect from description" mandatory = true
[[object]]
name = "GES.UriClip"
status = "generate"
[[object.function]] [[object.function]]
name = "new" name = "move_to_layer"
[object.function.return] [object.function.return]
nullable_return_is_error = "Failed to create Uri clip from Uri" bool_return_is_error = "Failed to move clip to specified layer"
[[object.function]]
name = "set_top_effect_index"
[object.function.return]
bool_return_is_error = "Failed to move effect"
[[object.function]]
name = "set_top_effect_priority"
[object.function.return]
bool_return_is_error = "Failed to the set top effect priority"
[[object.function]]
name = "add_asset"
[object.function.return]
nullable_return_is_error = "Failed to add asset"
[[object.function]]
name = "split"
[object.function.return]
nullable_return_is_error = "Failed to split clip"
[[object]] [[object]]
name = "GES.CommandLineFormatter" name = "GES.CommandLineFormatter"
@ -178,6 +167,117 @@ status = "generate"
[object.function.return] [object.function.return]
nullable = false nullable = false
[[object]]
name = "GES.Container"
status = "generate"
trait_name = "GESContainerExt"
[[object.function]]
name = "add"
[object.function.return]
bool_return_is_error = "Failed to add element"
[[object.function]]
name = "remove"
[object.function.return]
bool_return_is_error = "Failed to remove element"
[[object.function]]
name = "edit"
[object.function.return]
bool_return_is_error = "Failed to edit container"
[[object]]
name = "GES.Edge"
status = "generate"
[[object.function]]
name = "name"
[object.function.return]
nullable = false
[[object]]
name = "GES.EditMode"
status = "generate"
[[object.function]]
name = "name"
[object.function.return]
nullable = false
[[object]]
name = "GES.Effect"
status = "generate"
[[object.function]]
name = "new"
[object.function.return]
nullable_return_is_error = "Failed to create effect from description"
[[object]]
name = "GES.Extractable"
status = "generate"
[[object.function]]
name = "set_asset"
[object.function.return]
bool_return_is_error = "Failed to set asset"
[[object]]
name = "GES.Layer"
status = "generate"
[[object.function]]
name = "add_clip"
[object.function.return]
bool_return_is_error = "Failed to add clip"
[[object.function]]
name = "get_duration"
[object.function.return]
mandatory = true
[[object.function]]
name = "remove_clip"
[object.function.return]
bool_return_is_error = "Failed to remove clip"
[[object.function]]
name = "add_asset"
[object.function.return]
nullable_return_is_error = "Failed to add asset"
[[object]]
name = "GES.Pipeline"
status = "generate"
trait_name = "GESPipelineExt"
[[object.function]]
name = "set_render_settings"
[object.function.return]
bool_return_is_error = "Failed to set render settings"
[[object.function]]
name = "set_mode"
[object.function.return]
bool_return_is_error = "Failed to set mode"
[[object.function]]
name = "save_thumbnail"
[object.function.return]
bool_return_is_error = "Failed to save thumbnail"
[[object.function]]
name = "set_timeline"
[object.function.return]
bool_return_is_error = "Failed to set timeline"
[[object]]
name = "GES.Project"
status = "generate"
[[object.function]]
name = "add_encoding_profile"
[object.function.return]
bool_return_is_error = "Failed to add profile"
[[object.function]]
name = "remove_asset"
[object.function.return]
bool_return_is_error = "Failed to remove asset"
[[object]] [[object]]
name = "GES.Timeline" name = "GES.Timeline"
status = "generate" status = "generate"
@ -239,169 +339,6 @@ status = "generate"
name = "snapping_distance" name = "snapping_distance"
mandatory = true mandatory = true
[[object]]
name = "GES.Container"
status = "generate"
trait_name = "GESContainerExt"
[[object.function]]
name = "add"
[object.function.return]
bool_return_is_error = "Failed to add element"
[[object.function]]
name = "remove"
[object.function.return]
bool_return_is_error = "Failed to remove element"
[[object.function]]
name = "edit"
[object.function.return]
bool_return_is_error = "Failed to edit container"
[[object]]
name = "GES.Pipeline"
status = "generate"
trait_name = "GESPipelineExt"
[[object.function]]
name = "set_render_settings"
[object.function.return]
bool_return_is_error = "Failed to set render settings"
[[object.function]]
name = "set_mode"
[object.function.return]
bool_return_is_error = "Failed to set mode"
[[object.function]]
name = "save_thumbnail"
[object.function.return]
bool_return_is_error = "Failed to save thumbnail"
[[object.function]]
name = "set_timeline"
[object.function.return]
bool_return_is_error = "Failed to set timeline"
[[object]]
name = "GES.Track"
status = "generate"
trait_name = "GESTrackExt"
[[object.function]]
name = "add_element"
[object.function.return]
bool_return_is_error = "Failed to add element"
[[object.function]]
name = "remove_element"
[object.function.return]
bool_return_is_error = "Failed to remove element"
[[object]]
name = "GES.Asset"
status = "generate"
[[object.function]]
name = "set_proxy"
[object.function.return]
bool_return_is_error = "Failed to set proxy"
[[object.function]]
name = "unproxy"
[object.function.return]
bool_return_is_error = "Failed to unproxy asset"
[[object]]
name = "GES.Clip"
status = "generate"
[[object.function]]
name = "get_duration_limit"
[object.function.return]
mandatory = true
[[object.function]]
name = "move_to_layer"
[object.function.return]
bool_return_is_error = "Failed to move clip to specified layer"
[[object.function]]
name = "set_top_effect_index"
[object.function.return]
bool_return_is_error = "Failed to move effect"
[[object.function]]
name = "set_top_effect_priority"
[object.function.return]
bool_return_is_error = "Failed to the set top effect priority"
[[object.function]]
name = "add_asset"
[object.function.return]
nullable_return_is_error = "Failed to add asset"
[[object.function]]
name = "split"
[object.function.return]
nullable_return_is_error = "Failed to split clip"
[[object]]
name = "GES.Extractable"
status = "generate"
[[object.function]]
name = "set_asset"
[object.function.return]
bool_return_is_error = "Failed to set asset"
[[object]]
name = "GES.Edge"
status = "generate"
[[object.function]]
name = "name"
[object.function.return]
nullable = false
[[object]]
name = "GES.EditMode"
status = "generate"
[[object.function]]
name = "name"
[object.function.return]
nullable = false
[[object]]
name = "GES.Layer"
status = "generate"
[[object.function]]
name = "add_clip"
[object.function.return]
bool_return_is_error = "Failed to add clip"
[[object.function]]
name = "get_duration"
[object.function.return]
mandatory = true
[[object.function]]
name = "remove_clip"
[object.function.return]
bool_return_is_error = "Failed to remove clip"
[[object.function]]
name = "add_asset"
[object.function.return]
nullable_return_is_error = "Failed to add asset"
[[object]]
name = "GES.Project"
status = "generate"
[[object.function]]
name = "add_encoding_profile"
[object.function.return]
bool_return_is_error = "Failed to add profile"
[[object.function]]
name = "remove_asset"
[object.function.return]
bool_return_is_error = "Failed to remove asset"
[[object]] [[object]]
name = "GES.TimelineElement" name = "GES.TimelineElement"
status = "generate" status = "generate"
@ -506,6 +443,20 @@ manual_traits = ["TimelineElementExtManual"]
[object.function.return] [object.function.return]
nullable_return_is_error = "Failed to copy timeline element" nullable_return_is_error = "Failed to copy timeline element"
[[object]]
name = "GES.Track"
status = "generate"
trait_name = "GESTrackExt"
[[object.function]]
name = "add_element"
[object.function.return]
bool_return_is_error = "Failed to add element"
[[object.function]]
name = "remove_element"
[object.function.return]
bool_return_is_error = "Failed to remove element"
[[object]] [[object]]
name = "GES.TrackElement" name = "GES.TrackElement"
status = "generate" status = "generate"
@ -526,3 +477,52 @@ status = "generate"
name = "name" name = "name"
[object.function.return] [object.function.return]
nullable = false nullable = false
[[object]]
name = "GES.UriClip"
status = "generate"
[[object.function]]
name = "new"
[object.function.return]
nullable_return_is_error = "Failed to create Uri clip from Uri"
[[object]]
name = "Gst.Buffer"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.BufferList"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Caps"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.ClockTime"
status = "manual"
conversion_type = "Option"
[[object]]
name = "Gst.Object"
# For renaming the trait...
status = "manual"
trait_name = "GstObjectExt"
[[object]]
name = "Gst.Sample"
status = "manual"
ref_mode = "ref"
[[object.function]]
name = "get_caps"
# Function moved to SampleRef
ignore = true
[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref"

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -28,6 +28,9 @@ gst = { package = "gstreamer", path = "../gstreamer", features = ["v1_14"] }
gst-base = { package = "gstreamer-base", path = "../gstreamer-base", features = ["v1_14"] } gst-base = { package = "gstreamer-base", path = "../gstreamer-base", features = ["v1_14"] }
gst-video = { package = "gstreamer-video", path = "../gstreamer-video", features = ["v1_14"] } gst-video = { package = "gstreamer-video", path = "../gstreamer-video", features = ["v1_14"] }
[dev-dependencies]
gir-format-check = "0.1"
[features] [features]
default = [] default = []
dox = ["v1_20", "ffi/dox", "glib/dox", "gst/dox", "gst-base/dox", "gst-video/dox"] dox = ["v1_20", "ffi/dox", "glib/dox", "gst/dox", "gst-base/dox", "gst-video/dox"]

View file

@ -18,31 +18,21 @@ external_libraries = [
] ]
generate = [ generate = [
# Enums "GstGL.GLBaseFilter",
"GstGL.GLBaseMemoryAllocator",
"GstGL.GLBaseSrc",
"GstGL.GLConfigCaveat", "GstGL.GLConfigCaveat",
"GstGL.GLConfigSurfaceType",
"GstGL.GLContextError",
"GstGL.GLFormat", "GstGL.GLFormat",
"GstGL.GLMemoryAllocator",
"GstGL.GLQueryType", "GstGL.GLQueryType",
"GstGL.GLSLError",
"GstGL.GLSLVersion", "GstGL.GLSLVersion",
"GstGL.GLStereoDownmix", "GstGL.GLStereoDownmix",
"GstGL.GLTextureTarget", "GstGL.GLTextureTarget",
"GstGL.GLUploadReturn", "GstGL.GLUploadReturn",
# Flags
"GstGL.GLConfigSurfaceType",
# Enums Errors
#"GstGL.GLBaseMemoryError",
"GstGL.GLContextError",
"GstGL.GLSLError",
"GstGL.GLWindowError", "GstGL.GLWindowError",
# Records
#"GstGL.GLRenderbufferAllocationParams",
# Objects
#"GstGL.GLBufferPool",
"GstGL.GLBaseFilter",
"GstGL.GLBaseMemoryAllocator",
"GstGL.GLBaseSrc",
"GstGL.GLMemoryAllocator",
#"GstGL.GLMemoryPBOAllocator",
#"GstGL.GLRenderbufferAllocator",
] ]
manual = [ manual = [
@ -71,11 +61,6 @@ manual = [
"GstVideo.VideoOverlay", "GstVideo.VideoOverlay",
] ]
[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref"
[[object]] [[object]]
name = "Gst.Buffer" name = "Gst.Buffer"
status = "manual" status = "manual"
@ -91,15 +76,70 @@ name = "Gst.Query"
status = "manual" status = "manual"
ref_mode = "ref" ref_mode = "ref"
[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref"
[[object]]
name = "GstGL.GLAllocationParams"
status = "generate"
[[object.function]]
name = "free_data"
# Function should only be called by subclasses from
# an overridden `free` vfunc.
ignore = true
[[object.function]]
name = "copy_data"
[[object.function.parameter]]
name = "src"
const = true
[[object]]
name = "GstGL.GLAPI"
status = "generate"
[[object.member]]
name = "none"
ignore = true
[[object.member]]
name = "any"
ignore = true
[[object.function]]
name = "to_string"
[object.function.return]
nullable = false
[[object]] [[object]]
name = "GstGL.GLBuffer" name = "GstGL.GLBuffer"
status = "manual" status = "manual"
ref_mode = "ref" ref_mode = "ref"
[[object]] [[object]]
name = "GstGL.GLQuery" name = "GstGL.GLColorConvert"
status = "manual" status = "generate"
ref_mode = "ref" final_type = true
[[object.function]]
name = "set_caps"
[object.function.return]
bool_return_is_error = "Failed to set caps"
[[object.function]]
name = "decide_allocation"
# correct mutability
ignore = true
[[object.function]]
name = "fixate_caps"
# correct reference ownership
ignore = true
[[object.function]]
name = "perform"
# transfer gst::Buffer not reference
ignore = true
[[object]] [[object]]
name = "GstGL.GLContext" name = "GstGL.GLContext"
@ -203,82 +243,49 @@ status = "generate"
nullable_return_is_error = "Failed to create window" nullable_return_is_error = "Failed to create window"
[[object]] [[object]]
name = "GstGL.GLWindow" name = "GstGL.GLDisplayType"
status = "generate" status = "generate"
[[object.member]]
[[object.function]] name = "none"
name = "get_window_handle"
# return native handle
ignore = true ignore = true
[[object.member]]
[[object.function]] name = "any"
name = "send_message"
# callback
ignore = true
[[object.function]]
name = "send_message_async"
# callback
ignore = true
[[object.function]]
name = "set_close_callback"
# callback
ignore = true
[[object.function]]
name = "set_draw_callback"
# callback
ignore = true
[[object.function]]
name = "set_render_rectangle"
[object.function.return]
bool_return_is_error = "Failed to set the specified region"
[[object.function]]
name = "set_resize_callback"
# callback
ignore = true
[[object.function]]
name = "set_window_handle"
# handle
ignore = true
[[object.function]]
name = "get_display"
# handle
ignore = true
[[object.function]]
name = "error_quark"
# bad error domian definition in gir
ignore = true ignore = true
[[object]] [[object]]
name = "GstGL.GLColorConvert" name = "GstGL.GLFilter"
status = "generate" status = "generate"
final_type = true
[[object.function]] [[object.function]]
name = "set_caps" name = "add_rgba_pad_templates"
# Automatically called if
# GLFilterImpl::ADD_RGBA_PAD_TEMPLATES is true
ignore = true
[[object.function]]
pattern = "render_to_target\\w*"
[[object.function.parameter]]
pattern = "input|output"
const = true
[[object.function]]
name = "render_to_target"
[object.function.return] [object.function.return]
bool_return_is_error = "Failed to set caps" bool_return_is_error = "`func` returned `false`"
[[object.function]] [[object.function]]
name = "decide_allocation" name = "filter_texture"
# correct mutability [object.function.return]
ignore = true bool_return_is_error = "Failed to transform texture"
[[object]]
name = "GstGL.GLFramebuffer"
status = "generate"
[[object.function]] [[object.function]]
name = "fixate_caps" name = "attach"
# correct reference ownership # attachment_point parameter unchecked
ignore = true unsafe = true
[[object.function]]
name = "perform"
# transfer gst::Buffer not reference
ignore = true
[[object]] [[object]]
name = "GstGL.GLOverlayCompositor" name = "GstGL.GLOverlayCompositor"
@ -295,14 +302,24 @@ final_type = true
version = "1.16" version = "1.16"
[[object]] [[object]]
name = "GstGL.GLSLStage" name = "GstGL.GLPlatform"
status = "generate" status = "generate"
final_type = true [[object.member]]
name = "none"
ignore = true
[[object.member]]
name = "any"
ignore = true
[[object.function]] [[object.function]]
name = "set_strings" name = "to_string"
[object.function.return] [object.function.return]
bool_return_is_error = "Failed to attach stage to set strings" nullable = false
[[object]]
name = "GstGL.GLQuery"
status = "manual"
ref_mode = "ref"
[[object]] [[object]]
name = "GstGL.GLShader" name = "GstGL.GLShader"
@ -364,6 +381,26 @@ final_type = true
# array with size # array with size
ignore = true ignore = true
[[object]]
name = "GstGL.GLSLProfile"
status = "generate"
[[object.member]]
name = "none"
ignore = true
[[object.member]]
name = "any"
ignore = true
[[object]]
name = "GstGL.GLSLStage"
status = "generate"
final_type = true
[[object.function]]
name = "set_strings"
[object.function.return]
bool_return_is_error = "Failed to attach stage to set strings"
[[object]] [[object]]
name = "GstGL.GLUpload" name = "GstGL.GLUpload"
status = "generate" status = "generate"
@ -389,6 +426,22 @@ final_type = true
[object.function.return] [object.function.return]
nullable = false nullable = false
[[object]]
name = "GstGL.GLVideoAllocationParams"
status = "generate"
[[object.function]]
name = "free_data"
# Function should only be called by subclasses from
# an overridden `free` vfunc.
ignore = true
[[object.function]]
name = "copy_data"
[[object.function.parameter]]
name = "src_vid"
const = true
[[object]] [[object]]
name = "GstGL.GLViewConvert" name = "GstGL.GLViewConvert"
status = "generate" status = "generate"
@ -420,119 +473,55 @@ final_type = true
ignore = true ignore = true
[[object]] [[object]]
name = "GstGL.GLDisplayType" name = "GstGL.GLWindow"
status = "generate" status = "generate"
[[object.member]]
name = "none"
ignore = true
[[object.member]]
name = "any"
ignore = true
[[object]] [[object.function]]
name = "GstGL.GLAPI" name = "get_window_handle"
status = "generate" # return native handle
[[object.member]]
name = "none"
ignore = true
[[object.member]]
name = "any"
ignore = true ignore = true
[[object.function]] [[object.function]]
name = "to_string" name = "send_message"
# callback
ignore = true
[[object.function]]
name = "send_message_async"
# callback
ignore = true
[[object.function]]
name = "set_close_callback"
# callback
ignore = true
[[object.function]]
name = "set_draw_callback"
# callback
ignore = true
[[object.function]]
name = "set_render_rectangle"
[object.function.return] [object.function.return]
nullable = false bool_return_is_error = "Failed to set the specified region"
[[object]] [[object.function]]
name = "GstGL.GLPlatform" name = "set_resize_callback"
status = "generate" # callback
[[object.member]]
name = "none"
ignore = true
[[object.member]]
name = "any"
ignore = true ignore = true
[[object.function]] [[object.function]]
name = "to_string" name = "set_window_handle"
[object.function.return] # handle
nullable = false
[[object]]
name = "GstGL.GLSLProfile"
status = "generate"
[[object.member]]
name = "none"
ignore = true
[[object.member]]
name = "any"
ignore = true
[[object]]
name = "GstGL.GLAllocationParams"
status = "generate"
[[object.function]]
name = "free_data"
# Function should only be called by subclasses from
# an overridden `free` vfunc.
ignore = true ignore = true
[[object.function]] [[object.function]]
name = "copy_data" name = "get_display"
[[object.function.parameter]] # handle
name = "src"
const = true
[[object]]
name = "GstGL.GLVideoAllocationParams"
status = "generate"
[[object.function]]
name = "free_data"
# Function should only be called by subclasses from
# an overridden `free` vfunc.
ignore = true ignore = true
[[object.function]] [[object.function]]
name = "copy_data" name = "error_quark"
[[object.function.parameter]] # bad error domian definition in gir
name = "src_vid"
const = true
[[object]]
name = "GstGL.GLFramebuffer"
status = "generate"
[[object.function]]
name = "attach"
# attachment_point parameter unchecked
unsafe = true
[[object]]
name = "GstGL.GLFilter"
status = "generate"
[[object.function]]
name = "add_rgba_pad_templates"
# Automatically called if
# GLFilterImpl::ADD_RGBA_PAD_TEMPLATES is true
ignore = true ignore = true
[[object.function]]
pattern = "render_to_target\\w*"
[[object.function.parameter]]
pattern = "input|output"
const = true
[[object.function]]
name = "render_to_target"
[object.function.return]
bool_return_is_error = "`func` returned `false`"
[[object.function]]
name = "filter_texture"
[object.function.return]
bool_return_is_error = "Failed to transform texture"

View file

@ -24,6 +24,9 @@ glib = { git = "https://github.com/gtk-rs/gtk-rs-core" }
gst = { package = "gstreamer", path = "../../gstreamer", features = ["v1_14"] } gst = { package = "gstreamer", path = "../../gstreamer", features = ["v1_14"] }
gst-gl = { package = "gstreamer-gl", path = "../" } gst-gl = { package = "gstreamer-gl", path = "../" }
[dev-dependencies]
gir-format-check = "0.1"
[features] [features]
default = [] default = []
dox = ["v1_18", "ffi/dox", "glib/dox", "gst/dox", "gst-gl/dox"] dox = ["v1_18", "ffi/dox", "glib/dox", "gst/dox", "gst-gl/dox"]

View file

@ -14,8 +14,8 @@ external_libraries = [
"GObject", "GObject",
"Gst", "Gst",
"GstBase", "GstBase",
"GstVideo",
"GstGL", "GstGL",
"GstVideo",
] ]
generate = [ generate = [
@ -26,17 +26,12 @@ manual = [
"GLib.Error", "GLib.Error",
"GLib.Thread", "GLib.Thread",
"GObject.Object", "GObject.Object",
"Gst.Object",
"Gst.FlowReturn", "Gst.FlowReturn",
"Gst.Object",
"Gst.PadDirection", "Gst.PadDirection",
"GstGL.GLDisplay", "GstGL.GLDisplay",
] ]
[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref"
[[object]] [[object]]
name = "Gst.Buffer" name = "Gst.Buffer"
status = "manual" status = "manual"
@ -51,3 +46,9 @@ ref_mode = "ref"
name = "Gst.Query" name = "Gst.Query"
status = "manual" status = "manual"
ref_mode = "ref" ref_mode = "ref"
[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref"

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -24,6 +24,9 @@ glib = { git = "https://github.com/gtk-rs/gtk-rs-core" }
gst = { package = "gstreamer", path = "../../gstreamer", features = ["v1_14"] } gst = { package = "gstreamer", path = "../../gstreamer", features = ["v1_14"] }
gst-gl = { package = "gstreamer-gl", path = "../" } gst-gl = { package = "gstreamer-gl", path = "../" }
[dev-dependencies]
gir-format-check = "0.1"
[features] [features]
default = [] default = []
dox = ["v1_18", "ffi/dox", "glib/dox", "gst/dox", "gst-gl/dox"] dox = ["v1_18", "ffi/dox", "glib/dox", "gst/dox", "gst-gl/dox"]

View file

@ -14,8 +14,8 @@ external_libraries = [
"GObject", "GObject",
"Gst", "Gst",
"GstBase", "GstBase",
"GstVideo",
"GstGL", "GstGL",
"GstVideo",
] ]
generate = [ generate = [
@ -26,17 +26,12 @@ manual = [
"GLib.Error", "GLib.Error",
"GLib.Thread", "GLib.Thread",
"GObject.Object", "GObject.Object",
"Gst.Object",
"Gst.FlowReturn", "Gst.FlowReturn",
"Gst.Object",
"Gst.PadDirection", "Gst.PadDirection",
"GstGL.GLDisplay", "GstGL.GLDisplay",
] ]
[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref"
[[object]] [[object]]
name = "Gst.Buffer" name = "Gst.Buffer"
status = "manual" status = "manual"
@ -51,3 +46,8 @@ ref_mode = "ref"
name = "Gst.Query" name = "Gst.Query"
status = "manual" status = "manual"
ref_mode = "ref" ref_mode = "ref"
[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref"

View file

@ -24,6 +24,9 @@ glib = { git = "https://github.com/gtk-rs/gtk-rs-core" }
gst = { package = "gstreamer", path = "../../gstreamer", features = ["v1_14"] } gst = { package = "gstreamer", path = "../../gstreamer", features = ["v1_14"] }
gst-gl = { package = "gstreamer-gl", path = "../" } gst-gl = { package = "gstreamer-gl", path = "../" }
[dev-dependencies]
gir-format-check = "0.1"
[features] [features]
default = [] default = []
dox = ["v1_18", "ffi/dox", "glib/dox", "gst/dox", "gst-gl/dox"] dox = ["v1_18", "ffi/dox", "glib/dox", "gst/dox", "gst-gl/dox"]

View file

@ -14,8 +14,8 @@ external_libraries = [
"GObject", "GObject",
"Gst", "Gst",
"GstBase", "GstBase",
"GstVideo",
"GstGL", "GstGL",
"GstVideo",
] ]
generate = [ generate = [
@ -26,17 +26,12 @@ manual = [
"GLib.Error", "GLib.Error",
"GLib.Thread", "GLib.Thread",
"GObject.Object", "GObject.Object",
"Gst.Object",
"Gst.FlowReturn", "Gst.FlowReturn",
"Gst.Object",
"Gst.PadDirection", "Gst.PadDirection",
"GstGL.GLDisplay", "GstGL.GLDisplay",
] ]
[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref"
[[object]] [[object]]
name = "Gst.Buffer" name = "Gst.Buffer"
status = "manual" status = "manual"
@ -51,3 +46,8 @@ ref_mode = "ref"
name = "Gst.Query" name = "Gst.Query"
status = "manual" status = "manual"
ref_mode = "ref" ref_mode = "ref"
[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref"

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -19,6 +19,9 @@ glib = { git = "https://github.com/gtk-rs/gtk-rs-core" }
gst = { package = "gstreamer", path = "../gstreamer" } gst = { package = "gstreamer", path = "../gstreamer" }
gio = { git = "https://github.com/gtk-rs/gtk-rs-core" } gio = { git = "https://github.com/gtk-rs/gtk-rs-core" }
[dev-dependencies]
gir-format-check = "0.1"
[features] [features]
default = [] default = []
v1_10 = ["gst/v1_10", "ffi/v1_10"] v1_10 = ["gst/v1_10", "ffi/v1_10"]

View file

@ -11,10 +11,10 @@ generate_display_trait = false
trust_return_value_nullability = true trust_return_value_nullability = true
external_libraries = [ external_libraries = [
"Gio",
"GLib", "GLib",
"GObject", "GObject",
"Gst", "Gst",
"Gio",
] ]
generate = [ generate = [
@ -34,26 +34,6 @@ name = "Gst.ClockTime"
status = "manual" status = "manual"
conversion_type = "Option" conversion_type = "Option"
[[object]]
name = "GstNet.NtpClock"
status = "generate"
final_type = true
[[object.function]]
name = "new"
# Floating reference handling
manual = true
[[object]]
name = "GstNet.PtpClock"
status = "generate"
final_type = true
[[object.function]]
name = "new"
# Floating reference handling
manual = true
[[object]] [[object]]
name = "GstNet.NetClientClock" name = "GstNet.NetClientClock"
status = "generate" status = "generate"
@ -73,3 +53,23 @@ final_type = true
name = "new" name = "new"
# Floating reference handling # Floating reference handling
manual = true manual = true
[[object]]
name = "GstNet.NtpClock"
status = "generate"
final_type = true
[[object.function]]
name = "new"
# Floating reference handling
manual = true
[[object]]
name = "GstNet.PtpClock"
status = "generate"
final_type = true
[[object.function]]
name = "new"
# Floating reference handling
manual = true

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -21,6 +21,9 @@ glib = { git = "https://github.com/gtk-rs/gtk-rs-core" }
gst = { package = "gstreamer", path = "../gstreamer" } gst = { package = "gstreamer", path = "../gstreamer" }
thiserror = "1.0" thiserror = "1.0"
[dev-dependencies]
gir-format-check = "0.1"
[features] [features]
default = [] default = []
v1_10 = ["gst/v1_10", "ffi/v1_10"] v1_10 = ["gst/v1_10", "ffi/v1_10"]

View file

@ -35,7 +35,7 @@ manual = [
] ]
[[object]] [[object]]
name = "Gst.Toc" name = "Gst.Buffer"
status = "manual" status = "manual"
ref_mode = "ref" ref_mode = "ref"
@ -45,14 +45,9 @@ status = "manual"
ref_mode = "ref" ref_mode = "ref"
[[object]] [[object]]
name = "Gst.Message" name = "Gst.ClockTime"
status = "manual" status = "manual"
ref_mode = "ref" conversion_type = "Option"
[[object]]
name = "Gst.Buffer"
status = "manual"
ref_mode = "ref"
[[object]] [[object]]
name = "Gst.Event" name = "Gst.Event"
@ -60,7 +55,7 @@ status = "manual"
ref_mode = "ref" ref_mode = "ref"
[[object]] [[object]]
name = "Gst.TagList" name = "Gst.Message"
status = "manual" status = "manual"
ref_mode = "ref" ref_mode = "ref"
@ -70,203 +65,15 @@ status = "manual"
ref_mode = "ref" ref_mode = "ref"
[[object]] [[object]]
name = "Gst.ClockTime" name = "Gst.TagList"
status = "manual" status = "manual"
conversion_type = "Option" ref_mode = "ref"
[[object]] [[object]]
name = "GstPbutils.Discoverer" name = "Gst.Toc"
status = "generate" status = "manual"
final_type = true ref_mode = "ref"
[[object.function]]
name = "discover_uri_async"
[object.function.return]
bool_return_is_error = "Failed to add URI to list of discovers"
[[object.function]]
name = "new"
[[object.function.parameter]]
name = "timeout"
mandatory = true
# Manually implemented to use ClockTime
[[object.property]]
name = "timeout"
manual = true
[[object.property]]
name = "use-cache"
version = "1.16"
[[object]]
name = "GstPbutils.DiscovererInfo"
status = "generate"
[[object.function]]
name = "copy"
[object.function.return]
nullable = false
[[object.function]]
name = "to_variant"
[object.function.return]
nullable_return_is_error = "Failed to serialize DiscovererInfo to Variant"
[[object.function]]
name = "from_variant"
[object.function.return]
nullable_return_is_error = "Failed to deserialize DiscovererInfo from Variant"
[[object]]
name = "GstPbutils.DiscovererStreamInfo"
status = "generate"
final_type = false
# Not useful
[[object.function]]
name = "list_free"
ignore = true
[[object.function]]
name = "get_stream_type_nick"
[object.function.return]
nullable = false
[[object]]
name = "GstPbutils.DiscovererAudioInfo"
status = "generate"
final_type = true
[[object]]
name = "GstPbutils.DiscovererVideoInfo"
status = "generate"
final_type = true
# Implement manually to expose as gst::Fraction
[[object.function]]
name = "get_framerate_num"
manual = true
[[object.function]]
name = "get_framerate_denom"
manual = true
[[object.function]]
name = "get_par_num"
manual = true
[[object.function]]
name = "get_par_denom"
manual = true
[[object]]
name = "GstPbutils.DiscovererSubtitleInfo"
status = "generate"
final_type = true
[[object]]
name = "GstPbutils.DiscovererContainerInfo"
status = "generate"
final_type = true
[[object]]
name = "GstPbutils.EncodingProfile"
status = "generate"
# Ignore all setters, making it immutable. A builder will be provided.
[[object.function]]
name = "new"
manual = true
[[object.function]]
pattern = "set_.*"
manual = true
[[object.function]]
pattern = "get_restriction"
manual = true
[[object.function]]
name = "copy"
[object.function.return]
nullable = false
[[object.function]]
name = "get_input_caps"
[object.function.return]
nullable = false
[[object.function]]
name = "get_format"
[object.function.return]
nullable = false
[[object.property]]
name = "restriction-caps"
# encodingprofile is immutable after constructed
ignore = true
[[object.function]]
name = "from_discoverer"
[object.function.return]
nullable_return_is_error = "Failed to create EncodingProfile from DiscovererInfo"
[[object]]
name = "GstPbutils.EncodingContainerProfile"
status = "generate"
# Make it immutable, only able to be constructed for a builder
[[object.function]]
name = "new"
manual = true
[[object.function]]
name = "add_profile"
manual = true
[[object]]
name = "GstPbutils.EncodingTarget"
status = "generate"
[[object.function]]
name = "add_profile"
# can be provided on constructor and we better
# consider this immutable
ignore = true
[[object.function]]
name = "get_category"
[object.function.return]
nullable = false
[[object.function]]
name = "get_description"
[object.function.return]
nullable = false
[[object.function]]
name = "get_name"
[object.function.return]
nullable = false
[[object]]
name = "GstPbutils.EncodingAudioProfile"
status = "generate"
final_type = true
# Ignore all setters, making it immutable. A builder will be provided.
[[object.function]]
name = "new"
manual = true
[[object.function]]
pattern = "set_.*"
manual = true
[[object]]
name = "GstPbutils.EncodingVideoProfile"
status = "generate"
final_type = true
# Ignore all setters, making it immutable. A builder will be provided.
[[object.function]]
name = "new"
manual = true
[[object.function]]
pattern = "set_.*"
manual = true
[[object]] [[object]]
name = "GstPbutils.*" name = "GstPbutils.*"
@ -346,6 +153,60 @@ status = "generate"
name = "plugins_base_version" name = "plugins_base_version"
assertion = "skip" assertion = "skip"
[[object]]
name = "GstPbutils.Discoverer"
status = "generate"
final_type = true
[[object.function]]
name = "discover_uri_async"
[object.function.return]
bool_return_is_error = "Failed to add URI to list of discovers"
[[object.function]]
name = "new"
[[object.function.parameter]]
name = "timeout"
mandatory = true
# Manually implemented to use ClockTime
[[object.property]]
name = "timeout"
manual = true
[[object.property]]
name = "use-cache"
version = "1.16"
[[object]]
name = "GstPbutils.DiscovererAudioInfo"
status = "generate"
final_type = true
[[object]]
name = "GstPbutils.DiscovererContainerInfo"
status = "generate"
final_type = true
[[object]]
name = "GstPbutils.DiscovererInfo"
status = "generate"
[[object.function]]
name = "copy"
[object.function.return]
nullable = false
[[object.function]]
name = "to_variant"
[object.function.return]
nullable_return_is_error = "Failed to serialize DiscovererInfo to Variant"
[[object.function]]
name = "from_variant"
[object.function.return]
nullable_return_is_error = "Failed to deserialize DiscovererInfo from Variant"
[[object]] [[object]]
name = "GstPbutils.DiscovererSerializeFlags" name = "GstPbutils.DiscovererSerializeFlags"
status = "generate" status = "generate"
@ -355,3 +216,143 @@ status = "generate"
[[object.member]] [[object.member]]
name = "all" name = "all"
ignore = true ignore = true
[[object]]
name = "GstPbutils.DiscovererStreamInfo"
status = "generate"
final_type = false
# Not useful
[[object.function]]
name = "list_free"
ignore = true
[[object.function]]
name = "get_stream_type_nick"
[object.function.return]
nullable = false
[[object]]
name = "GstPbutils.DiscovererSubtitleInfo"
status = "generate"
final_type = true
[[object]]
name = "GstPbutils.DiscovererVideoInfo"
status = "generate"
final_type = true
# Implement manually to expose as gst::Fraction
[[object.function]]
name = "get_framerate_num"
manual = true
[[object.function]]
name = "get_framerate_denom"
manual = true
[[object.function]]
name = "get_par_num"
manual = true
[[object.function]]
name = "get_par_denom"
manual = true
[[object]]
name = "GstPbutils.EncodingAudioProfile"
status = "generate"
final_type = true
# Ignore all setters, making it immutable. A builder will be provided.
[[object.function]]
name = "new"
manual = true
[[object.function]]
pattern = "set_.*"
manual = true
[[object]]
name = "GstPbutils.EncodingContainerProfile"
status = "generate"
# Make it immutable, only able to be constructed for a builder
[[object.function]]
name = "new"
manual = true
[[object.function]]
name = "add_profile"
manual = true
[[object]]
name = "GstPbutils.EncodingProfile"
status = "generate"
# Ignore all setters, making it immutable. A builder will be provided.
[[object.function]]
name = "new"
manual = true
[[object.function]]
pattern = "set_.*"
manual = true
[[object.function]]
pattern = "get_restriction"
manual = true
[[object.function]]
name = "copy"
[object.function.return]
nullable = false
[[object.function]]
name = "get_input_caps"
[object.function.return]
nullable = false
[[object.function]]
name = "get_format"
[object.function.return]
nullable = false
[[object.property]]
name = "restriction-caps"
# encodingprofile is immutable after constructed
ignore = true
[[object.function]]
name = "from_discoverer"
[object.function.return]
nullable_return_is_error = "Failed to create EncodingProfile from DiscovererInfo"
[[object]]
name = "GstPbutils.EncodingTarget"
status = "generate"
[[object.function]]
name = "add_profile"
# can be provided on constructor and we better
# consider this immutable
ignore = true
[[object.function]]
name = "get_category"
[object.function.return]
nullable = false
[[object.function]]
name = "get_description"
[object.function.return]
nullable = false
[[object.function]]
name = "get_name"
[object.function.return]
nullable = false
[[object]]
name = "GstPbutils.EncodingVideoProfile"
status = "generate"
final_type = true
# Ignore all setters, making it immutable. A builder will be provided.
[[object.function]]
name = "new"
manual = true
[[object.function]]
pattern = "set_.*"
manual = true

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -22,6 +22,9 @@ gst = { package = "gstreamer", path = "../gstreamer", features = ["v1_12"] }
gst-video = { package = "gstreamer-video", path = "../gstreamer-video", features = ["v1_12"] } gst-video = { package = "gstreamer-video", path = "../gstreamer-video", features = ["v1_12"] }
once_cell = "1.0" once_cell = "1.0"
[dev-dependencies]
gir-format-check = "0.1"
[features] [features]
default = [] default = []
v1_14 = ["gst/v1_14", "gst-video/v1_14", "ffi/v1_14"] v1_14 = ["gst/v1_14", "gst-video/v1_14", "ffi/v1_14"]

View file

@ -32,8 +32,8 @@ manual = [
"GLib.Error", "GLib.Error",
"GLib.MainContext", "GLib.MainContext",
"GObject.Object", "GObject.Object",
"Gst.Object",
"Gst.Element", "Gst.Element",
"Gst.Object",
"GstVideo.VideoMultiviewFlags", "GstVideo.VideoMultiviewFlags",
"GstVideo.VideoMultiviewFramePacking", "GstVideo.VideoMultiviewFramePacking",
] ]
@ -44,21 +44,25 @@ status = "manual"
ref_mode = "ref" ref_mode = "ref"
[[object]] [[object]]
name = "Gst.TagList" name = "Gst.ClockTime"
status = "manual" status = "manual"
ref_mode = "ref" conversion_type = "Option"
[[object]] [[object]]
name = "Gst.Sample" name = "Gst.Sample"
status = "manual" status = "manual"
ref_mode = "ref" ref_mode = "ref"
[[object]] [[object]]
name = "Gst.Structure" name = "Gst.Structure"
status = "manual" status = "manual"
ref_mode = "ref" ref_mode = "ref"
[[object]]
name = "Gst.TagList"
status = "manual"
ref_mode = "ref"
[[object]] [[object]]
name = "GstPlayer.Player" name = "GstPlayer.Player"
status = "generate" status = "generate"
@ -181,6 +185,21 @@ name = "GstPlayer.PlayerAudioInfo"
status = "generate" status = "generate"
final_type = true final_type = true
[[object]]
name = "GstPlayer.PlayerGMainContextSignalDispatcher"
status = "generate"
final_type = true
[[object.function]]
name = "new"
# Wrong return value
ignore = true
[[object]]
name = "GstPlayer.PlayerSubtitleInfo"
status = "generate"
final_type = true
[[object]] [[object]]
name = "GstPlayer.PlayerVideoInfo" name = "GstPlayer.PlayerVideoInfo"
status = "generate" status = "generate"
@ -196,11 +215,6 @@ final_type = true
# Fraction # Fraction
manual = true manual = true
[[object]]
name = "GstPlayer.PlayerSubtitleInfo"
status = "generate"
final_type = true
[[object]] [[object]]
name = "GstPlayer.PlayerVideoOverlayVideoRenderer" name = "GstPlayer.PlayerVideoOverlayVideoRenderer"
status = "generate" status = "generate"
@ -223,18 +237,3 @@ final_type = true
[[object.function]] [[object.function]]
name = "set_window_handle" name = "set_window_handle"
manual = true manual = true
[[object]]
name = "GstPlayer.PlayerGMainContextSignalDispatcher"
status = "generate"
final_type = true
[[object.function]]
name = "new"
# Wrong return value
ignore = true
[[object]]
name = "Gst.ClockTime"
status = "manual"
conversion_type = "Option"

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -20,6 +20,9 @@ ffi = { package = "gstreamer-rtp-sys", path = "sys", features = ["v1_8"] }
glib = { git = "https://github.com/gtk-rs/gtk-rs-core" } glib = { git = "https://github.com/gtk-rs/gtk-rs-core" }
gst = { package = "gstreamer", path = "../gstreamer" } gst = { package = "gstreamer", path = "../gstreamer" }
[dev-dependencies]
gir-format-check = "0.1"
[features] [features]
default = [] default = []
v1_10 = ["gst/v1_10", "ffi/v1_10"] v1_10 = ["gst/v1_10", "ffi/v1_10"]

View file

@ -63,6 +63,20 @@ status = "manual"
# Readable and writable variant dealing with mutability # Readable and writable variant dealing with mutability
rename = "from_buffer_readable" 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]] [[object]]
name = "GstRtp.RTPHeaderExtension" name = "GstRtp.RTPHeaderExtension"
status = "generate" status = "generate"
@ -91,17 +105,3 @@ manual_traits = ["RTPHeaderExtensionExtManual"]
name = "get_sdp_caps_field_name" name = "get_sdp_caps_field_name"
[object.function.return] [object.function.return]
nullable = false nullable = false
[[object]]
name = "GstRtp.RTPBufferFlags"
status = "generate"
[[object.member]]
name = "last"
ignore = true
[[object]]
name = "GstRtp.RTPBufferMapFlags"
status = "generate"
[[object.member]]
name = "last"
ignore = true

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -25,6 +25,9 @@ gst-sdp = { package = "gstreamer-sdp", path = "../gstreamer-sdp" }
gst-rtsp = { package = "gstreamer-rtsp", path = "../gstreamer-rtsp" } gst-rtsp = { package = "gstreamer-rtsp", path = "../gstreamer-rtsp" }
gst-net = { package = "gstreamer-net", path = "../gstreamer-net" } gst-net = { package = "gstreamer-net", path = "../gstreamer-net" }
[dev-dependencies]
gir-format-check = "0.1"
[features] [features]
default = [] default = []
v1_10 = ["gst/v1_10", "gst-sdp/v1_10", "gst-rtsp/v1_10", "gst-net/v1_10", "ffi/v1_10"] v1_10 = ["gst/v1_10", "gst-sdp/v1_10", "gst-rtsp/v1_10", "gst-net/v1_10", "ffi/v1_10"]

View file

@ -10,9 +10,9 @@ single_version_file = true
generate_display_trait = false generate_display_trait = false
external_libraries = [ external_libraries = [
"Gio",
"GLib", "GLib",
"GObject", "GObject",
"Gio",
"Gst", "Gst",
"GstNet", "GstNet",
"GstRtsp", "GstRtsp",
@ -21,6 +21,7 @@ external_libraries = [
generate = [ generate = [
"GstRtspServer.RTSPAddressPoolResult", "GstRtspServer.RTSPAddressPoolResult",
"GstRtspServer.RTSPFilterResult",
"GstRtspServer.RTSPMediaFactoryURI", "GstRtspServer.RTSPMediaFactoryURI",
"GstRtspServer.RTSPMediaStatus", "GstRtspServer.RTSPMediaStatus",
"GstRtspServer.RTSPPublishClockMode", "GstRtspServer.RTSPPublishClockMode",
@ -28,10 +29,17 @@ generate = [
"GstRtspServer.RTSPThreadPool", "GstRtspServer.RTSPThreadPool",
"GstRtspServer.RTSPThreadType", "GstRtspServer.RTSPThreadType",
"GstRtspServer.RTSPTransportMode", "GstRtspServer.RTSPTransportMode",
"GstRtspServer.RTSPFilterResult"
] ]
manual = [ manual = [
"Gio.Cancellable",
"Gio.Socket",
"Gio.SocketFamily",
"Gio.TlsAuthenticationMode",
"Gio.TlsCertificate",
"Gio.TlsCertificateFlags",
"Gio.TlsConnection",
"Gio.TlsDatabase",
"GLib.Error", "GLib.Error",
"GLib.IOCondition", "GLib.IOCondition",
"GLib.MainContext", "GLib.MainContext",
@ -39,20 +47,12 @@ manual = [
"GLib.Source", "GLib.Source",
"GLib.ThreadPool", "GLib.ThreadPool",
"GObject.Object", "GObject.Object",
"Gio.TlsCertificateFlags",
"Gio.TlsCertificate",
"Gio.TlsDatabase",
"Gio.TlsConnection",
"Gio.TlsAuthenticationMode",
"Gio.Socket",
"Gio.Cancellable",
"Gio.SocketFamily",
"Gst.Element",
"Gst.State",
"Gst.Clock",
"Gst.Pipeline",
"Gst.Pad",
"Gst.Bin", "Gst.Bin",
"Gst.Clock",
"Gst.Element",
"Gst.Pad",
"Gst.Pipeline",
"Gst.State",
"GstNet.NetTimeProvider", "GstNet.NetTimeProvider",
"GstRtsp.RTSPAuthMethod", "GstRtsp.RTSPAuthMethod",
"GstRtsp.RTSPLowerTrans", "GstRtsp.RTSPLowerTrans",
@ -63,31 +63,6 @@ manual = [
"GstRtsp.RTSPUrl", "GstRtsp.RTSPUrl",
] ]
[[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.Object"
# For renaming the trait...
status = "manual"
trait_name = "GstObjectExt"
[[object]]
name = "Gst.Message"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref"
[[object]] [[object]]
name = "Gst.Buffer" name = "Gst.Buffer"
status = "manual" status = "manual"
@ -98,110 +73,35 @@ name = "Gst.Caps"
status = "manual" status = "manual"
ref_mode = "ref" ref_mode = "ref"
[[object]]
name = "GstRtspServer.RTSPContext"
status = "manual"
ref_mode = "ref"
[[object]]
name = "GstRtspServer.RTSPToken"
status = "manual"
ref_mode = "ref"
[[object]]
name = "GstRtspServer.RTSPThread"
status = "manual"
ref_mode = "ref"
[[object.function]]
name = "stop"
# Moved to RTSPThreadRef
ignore = true
[[object]] [[object]]
name = "Gst.ClockTime" name = "Gst.ClockTime"
status = "manual" status = "manual"
conversion_type = "Option" conversion_type = "Option"
[[object]] [[object]]
name = "GstRtspServer.RTSPServer" name = "Gst.FlowReturn"
status = "generate" status = "manual"
manual_traits = ["RTSPServerExtManual"] must_use = true
[object.conversion_type]
[[object.function]] variant = "Result"
name = "attach" ok_type = "gst::FlowSuccess"
manual = true err_type = "gst::FlowError"
[[object.function]]
name = "io_func"
[object.function.return]
bool_return_is_error = "Failed to connect the source"
[[object.function]]
name = "transfer_connection"
[object.function.return]
bool_return_is_error = "Failed to transfer to the connection"
[[object]] [[object]]
name = "GstRtspServer.RTSPClient" name = "Gst.Message"
status = "generate" status = "manual"
manual_traits = ["RTSPClientExtManual"] ref_mode = "ref"
[[object.function]]
name = "attach"
manual = true
[[object.function]]
name = "set_send_func"
# user_data takes raw pointer
ignore = true
[[object]] [[object]]
name = "GstRtspServer.RTSPStream" name = "Gst.Object"
status = "generate" # For renaming the trait...
status = "manual"
trait_name = "GstObjectExt"
[[object.function]] [[object]]
name = "query_position" name = "Gst.Structure"
ignore = true status = "manual"
ref_mode = "ref"
[[object.function]]
name = "query_stop"
ignore = true
[[object.function]]
name = "add_transport"
[object.function.return]
bool_return_is_error = "Failed to add transport"
[[object.function]]
name = "remove_transport"
[object.function.return]
bool_return_is_error = "Failed to remove transport"
[[object.function]]
name = "join_bin"
[object.function.return]
bool_return_is_error = "Failed to join bin"
[[object.function]]
name = "leave_bin"
[object.function.return]
bool_return_is_error = "Failed to leave bin"
[[object.function]]
name = "set_blocked"
[object.function.return]
bool_return_is_error = "Failed to block/unblock the dataflow"
[[object.function]]
name = "unblock_linked"
[object.function.return]
bool_return_is_error = "Failed to unblock the dataflow"
[[object.function]]
name = "update_crypto"
[object.function.return]
bool_return_is_error = "Failed to update crypto"
[[object]] [[object]]
name = "GstRtspServer.RTSPAddress" name = "GstRtspServer.RTSPAddress"
@ -209,24 +109,11 @@ status = "generate"
concurrency = "send" concurrency = "send"
[[object]] [[object]]
name = "GstRtspServer.RTSPStreamTransport" name = "GstRtspServer.RTSPAddressFlags"
status = "generate" status = "generate"
concurrency = "none" [[object.member]]
name = "none"
[[object.function]] ignore = true
name = "send_rtcp"
[object.function.return]
bool_return_is_error = "Failed to send rtcp"
[[object.function]]
name = "send_rtp"
[object.function.return]
bool_return_is_error = "Failed to send rtp"
[[object.function]]
name = "set_active"
[object.function.return]
bool_return_is_error = "Failed to set active"
[[object]] [[object]]
name = "GstRtspServer.RTSPAddressPool" name = "GstRtspServer.RTSPAddressPool"
@ -247,6 +134,50 @@ manual_traits = ["RTSPAddressPoolExtManual"]
name = "reserve_address" name = "reserve_address"
manual = true manual = true
[[object]]
name="GstRtspServer.RTSPAuth"
status="generate"
manual_traits = ["RTSPAuthExtManual"]
[[object.function]]
name = "check"
[object.function.return]
bool_return_is_error = "Check failed"
[[object.function]]
name = "connect_accept_certificate"
# Use Result<(), LoggableError>
manual = true
[[object.function]]
name = "make_basic"
[object.function.return]
nullable = false
[[object.function]]
name = "set_default_token"
# gir forgets mut
manual = true
[[object]]
name = "GstRtspServer.RTSPClient"
status = "generate"
manual_traits = ["RTSPClientExtManual"]
[[object.function]]
name = "attach"
manual = true
[[object.function]]
name = "set_send_func"
# user_data takes raw pointer
ignore = true
[[object]]
name = "GstRtspServer.RTSPContext"
status = "manual"
ref_mode = "ref"
[[object]] [[object]]
name = "GstRtspServer.RTSPMedia" name = "GstRtspServer.RTSPMedia"
status = "generate" status = "generate"
@ -296,6 +227,43 @@ manual_traits = ["RTSPMediaFactoryExtManual"]
[object.function.return] [object.function.return]
nullable_return_is_error = "Failed to create media element" nullable_return_is_error = "Failed to create media element"
[[object]]
name="GstRtspServer.RTSPMountPoints"
status="generate"
[[object.function]]
name = "make_path"
[object.function.return]
nullable_return_is_error = "Failed to make path"
[[object]]
name = "GstRtspServer.RTSPServer"
status = "generate"
manual_traits = ["RTSPServerExtManual"]
[[object.function]]
name = "attach"
manual = true
[[object.function]]
name = "io_func"
[object.function.return]
bool_return_is_error = "Failed to connect the source"
[[object.function]]
name = "transfer_connection"
[object.function.return]
bool_return_is_error = "Failed to transfer to the connection"
[[object]]
name="GstRtspServer.RTSPSession"
status="generate"
[[object.function]]
name = "manage_media"
[object.function.return]
nullable_return_is_error = "Failed to manage media"
[[object]] [[object]]
name = "GstRtspServer.RTSPSessionMedia" name = "GstRtspServer.RTSPSessionMedia"
status = "generate" status = "generate"
@ -326,49 +294,83 @@ manual_traits = ["RTSPSessionPoolExtManual"]
nullable_return_is_error = "Failed to create session pool" nullable_return_is_error = "Failed to create session pool"
[[object]] [[object]]
name="GstRtspServer.RTSPAuth" name = "GstRtspServer.RTSPStream"
status = "generate" status = "generate"
manual_traits = ["RTSPAuthExtManual"]
[[object.function]] [[object.function]]
name = "check" name = "query_position"
[object.function.return]
bool_return_is_error = "Check failed"
[[object.function]]
name = "connect_accept_certificate"
# Use Result<(), LoggableError>
manual = true
[[object.function]]
name = "make_basic"
[object.function.return]
nullable = false
[[object.function]]
name = "set_default_token"
# gir forgets mut
manual = true
[[object]]
name="GstRtspServer.RTSPMountPoints"
status="generate"
[[object.function]]
name = "make_path"
[object.function.return]
nullable_return_is_error = "Failed to make path"
[[object]]
name="GstRtspServer.RTSPSession"
status="generate"
[[object.function]]
name = "manage_media"
[object.function.return]
nullable_return_is_error = "Failed to manage media"
[[object]]
name = "GstRtspServer.RTSPAddressFlags"
status = "generate"
[[object.member]]
name = "none"
ignore = true ignore = true
[[object.function]]
name = "query_stop"
ignore = true
[[object.function]]
name = "add_transport"
[object.function.return]
bool_return_is_error = "Failed to add transport"
[[object.function]]
name = "remove_transport"
[object.function.return]
bool_return_is_error = "Failed to remove transport"
[[object.function]]
name = "join_bin"
[object.function.return]
bool_return_is_error = "Failed to join bin"
[[object.function]]
name = "leave_bin"
[object.function.return]
bool_return_is_error = "Failed to leave bin"
[[object.function]]
name = "set_blocked"
[object.function.return]
bool_return_is_error = "Failed to block/unblock the dataflow"
[[object.function]]
name = "unblock_linked"
[object.function.return]
bool_return_is_error = "Failed to unblock the dataflow"
[[object.function]]
name = "update_crypto"
[object.function.return]
bool_return_is_error = "Failed to update crypto"
[[object]]
name = "GstRtspServer.RTSPStreamTransport"
status = "generate"
concurrency = "none"
[[object.function]]
name = "send_rtcp"
[object.function.return]
bool_return_is_error = "Failed to send rtcp"
[[object.function]]
name = "send_rtp"
[object.function.return]
bool_return_is_error = "Failed to send rtp"
[[object.function]]
name = "set_active"
[object.function.return]
bool_return_is_error = "Failed to set active"
[[object]]
name = "GstRtspServer.RTSPThread"
status = "manual"
ref_mode = "ref"
[[object.function]]
name = "stop"
# Moved to RTSPThreadRef
ignore = true
[[object]]
name = "GstRtspServer.RTSPToken"
status = "manual"
ref_mode = "ref"

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -21,6 +21,9 @@ glib = { git = "https://github.com/gtk-rs/gtk-rs-core" }
gst = { package = "gstreamer", path = "../gstreamer" } gst = { package = "gstreamer", path = "../gstreamer" }
gst-sdp = { package = "gstreamer-sdp", path = "../gstreamer-sdp" } gst-sdp = { package = "gstreamer-sdp", path = "../gstreamer-sdp" }
[dev-dependencies]
gir-format-check = "0.1"
[features] [features]
default = [] default = []
v1_10 = ["gst/v1_10", "gst-sdp/v1_10", "ffi/v1_10"] v1_10 = ["gst/v1_10", "gst-sdp/v1_10", "ffi/v1_10"]

View file

@ -10,9 +10,9 @@ single_version_file = true
generate_display_trait = false generate_display_trait = false
external_libraries = [ external_libraries = [
"Gio",
"GLib", "GLib",
"GObject", "GObject",
"Gio",
"GstSdp" "GstSdp"
] ]
@ -34,18 +34,9 @@ manual = [
] ]
[[object]] [[object]]
name = "GstRtsp.RTSPUrl" name = "Gst.Caps"
status = "generate" status = "manual"
concurrency = "send" ref_mode = "ref"
[[object.function]]
name = "get_port"
ignore = true
[[object]]
name = "GstRtsp.RTSPAuthParam"
status = "generate"
concurrency = "send"
[[object]] [[object]]
name = "Gst.ClockTime" name = "Gst.ClockTime"
@ -53,14 +44,14 @@ status = "manual"
conversion_type = "Option" conversion_type = "Option"
[[object]] [[object]]
name = "Gst.Caps" name = "Gst.Structure"
status = "manual" status = "manual"
ref_mode = "ref" ref_mode = "ref"
[[object]] [[object]]
name = "Gst.Structure" name = "GstRtsp.RTSPAuthParam"
status = "manual" status = "generate"
ref_mode = "ref" concurrency = "send"
[[object]] [[object]]
name = "GstRtsp.RTSPLowerTrans" name = "GstRtsp.RTSPLowerTrans"
@ -89,3 +80,12 @@ status = "generate"
[[object.member]] [[object.member]]
name = "unknown" name = "unknown"
ignore = true ignore = true
[[object]]
name = "GstRtsp.RTSPUrl"
status = "generate"
concurrency = "send"
[[object.function]]
name = "get_port"
ignore = true

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -18,6 +18,9 @@ ffi = { package = "gstreamer-sdp-sys", path = "sys", features = ["v1_8"] }
glib = { git = "https://github.com/gtk-rs/gtk-rs-core" } glib = { git = "https://github.com/gtk-rs/gtk-rs-core" }
gst = { package = "gstreamer", path = "../gstreamer" } gst = { package = "gstreamer", path = "../gstreamer" }
[dev-dependencies]
gir-format-check = "0.1"
[features] [features]
default = [] default = []
v1_8_1 = ["ffi/v1_8_1"] v1_8_1 = ["ffi/v1_8_1"]

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -27,6 +27,7 @@ fragile = "1"
[dev-dependencies] [dev-dependencies]
itertools = "0.10" itertools = "0.10"
gir-format-check = "0.1"
[features] [features]
default = [] default = []

View file

@ -65,8 +65,8 @@ manual = [
"GstBase.BaseTransform", "GstBase.BaseTransform",
"GstVideo.VideoCodecFrame", "GstVideo.VideoCodecFrame",
"GstVideo.VideoCodecState", "GstVideo.VideoCodecState",
"GstVideo.VideoColorRange",
"GstVideo.VideoColorimetry", "GstVideo.VideoColorimetry",
"GstVideo.VideoColorRange",
"GstVideo.VideoFormatInfo", "GstVideo.VideoFormatInfo",
"GstVideo.VideoInfo", "GstVideo.VideoInfo",
"GstVideo.VideoMeta", "GstVideo.VideoMeta",
@ -74,64 +74,78 @@ manual = [
"GstVideo.VideoTimeCodeInterval", "GstVideo.VideoTimeCodeInterval",
] ]
[[object]]
name = "Gst.ClockTime"
status = "manual"
conversion_type = "Option"
[[object]] [[object]]
name = "Gst.Caps" name = "Gst.Caps"
status = "manual" status = "manual"
ref_mode = "ref" ref_mode = "ref"
[[object]] [[object]]
name = "GstVideo.VideoFrame" name = "Gst.ClockTime"
status = "manual" status = "manual"
conversion_type = "Option"
[[object.function]]
name = "map"
# Readable and writable variant dealing with mutability
rename = "from_buffer_readable"
[[object]] [[object]]
name = "GstVideo.VideoOrientation" name = "GstVideo.VideoBufferFlags"
status = "generate" status = "generate"
[[object.function]] [[object.member]]
name = "set_hcenter" name = "top_field"
[object.function.return] version = "1.16"
bool_return_is_error = "Failed to set horizontal centering" [[object.member]]
[[object.function]] name = "bottom_field"
name = "set_hflip" version = "1.16"
[object.function.return] [[object.member]]
bool_return_is_error = "Failed to set horizontal flipping" name = "marker"
[[object.function]] version = "1.18"
name = "set_vcenter" [[object.member]]
[object.function.return] name = "last"
bool_return_is_error = "Failed to set vertical centering" ignore = true
[[object.function]]
name = "set_vflip"
[object.function.return]
bool_return_is_error = "Failed to set vertical flipping"
[[object]] [[object]]
name = "GstVideo.VideoOverlay" name = "GstVideo.VideoChromaSite"
status = "generate" status = "generate"
manual_traits = ["VideoOverlayExtManual"] [[object.member]]
name = "unknown"
[[object.function]]
name = "set_property"
# Only for implementors of GstVideoOverlay
ignore = true ignore = true
[[object.function]] [[object.function]]
name = "set_window_handle" name = "to_string"
# Pointer argument # Manual function for < v1_20:
manual = true manual = true
# Always generate the trait, without version constraint:
[[object.function]] version = "1.8"
name = "set_render_rectangle"
[object.function.return] [object.function.return]
bool_return_is_error = "Failed to set render rectangle" nullable = false
[[object]]
name = "GstVideo.VideoCodecFrameFlags"
status = "generate"
[[object.function]]
name = "get_type"
version = "1.20"
[[object]]
name = "GstVideo.VideoColorMatrix"
status = "generate"
[[object.function]]
name = "get_Kr_Kb"
# Function and parameter name capitalization is wrong
ignore = true
[[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"
[[object]] [[object]]
name = "GstVideo.VideoDecoder" name = "GstVideo.VideoDecoder"
@ -295,6 +309,24 @@ manual_traits = ["VideoEncoderExtManual"]
[object.function.return] [object.function.return]
nullable_return_is_error = "Failed to allocate output buffer" nullable_return_is_error = "Failed to allocate output buffer"
[[object]]
name = "GstVideo.VideoFieldOrder"
status = "generate"
[[object.function]]
name = "to_string"
# This has an Unknown field that may return NULL or "UNKNOWN"
manual = true
[object.function.return]
nullable = false
[[object]]
name = "GstVideo.VideoFlags"
status = "generate"
[[object.member]]
name = "none"
ignore = true
[[object]] [[object]]
name = "GstVideo.VideoFormat" name = "GstVideo.VideoFormat"
status = "generate" status = "generate"
@ -465,33 +497,13 @@ status = "generate"
manual = true manual = true
[[object]] [[object]]
name = "GstVideo.VideoSink" name = "GstVideo.VideoFrame"
status = "generate" status = "manual"
[[object.function]] [[object.function]]
name = "center_rect" name = "map"
# Implemented in video_rectangle # Readable and writable variant dealing with mutability
manual = true rename = "from_buffer_readable"
[[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]] [[object]]
name = "GstVideo.VideoFrameFlags" name = "GstVideo.VideoFrameFlags"
@ -502,28 +514,8 @@ status = "generate"
[[object.member]] [[object.member]]
name = "bottom_field" name = "bottom_field"
version = "1.16" version = "1.16"
[[object]]
name = "GstVideo.VideoCodecFrameFlags"
status = "generate"
[[object.function]]
name = "get_type"
version = "1.20"
[[object]]
name = "GstVideo.VideoBufferFlags"
status = "generate"
[[object.member]] [[object.member]]
name = "top_field" name = "none"
version = "1.16"
[[object.member]]
name = "bottom_field"
version = "1.16"
[[object.member]]
name = "marker"
version = "1.18"
[[object.member]]
name = "last"
ignore = true ignore = true
[[object]] [[object]]
@ -538,36 +530,6 @@ status = "generate"
[object.function.return] [object.function.return]
nullable = false nullable = false
[[object]]
name = "GstVideo.VideoChromaSite"
status = "generate"
[[object.member]]
name = "unknown"
ignore = true
[[object.function]]
name = "to_string"
# Manual function for < v1_20:
manual = true
# Always generate the trait, without version constraint:
version = "1.8"
[object.function.return]
nullable = false
[[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]] [[object]]
name = "GstVideo.VideoMultiviewFlags" name = "GstVideo.VideoMultiviewFlags"
status = "generate" status = "generate"
@ -575,6 +537,56 @@ status = "generate"
name = "none" name = "none"
ignore = true ignore = true
[[object]]
name = "GstVideo.VideoOrientation"
status = "generate"
[[object.function]]
name = "set_hcenter"
[object.function.return]
bool_return_is_error = "Failed to set horizontal centering"
[[object.function]]
name = "set_hflip"
[object.function.return]
bool_return_is_error = "Failed to set horizontal flipping"
[[object.function]]
name = "set_vcenter"
[object.function.return]
bool_return_is_error = "Failed to set vertical centering"
[[object.function]]
name = "set_vflip"
[object.function.return]
bool_return_is_error = "Failed to set vertical flipping"
[[object]]
name = "GstVideo.VideoOverlay"
status = "generate"
manual_traits = ["VideoOverlayExtManual"]
[[object.function]]
name = "set_property"
# Only for implementors of GstVideoOverlay
ignore = true
[[object.function]]
name = "set_window_handle"
# Pointer argument
manual = true
[[object.function]]
name = "set_render_rectangle"
[object.function.return]
bool_return_is_error = "Failed to set render rectangle"
[[object]]
name = "GstVideo.VideoOverlayFormatFlags"
status = "generate"
[[object.function]]
name = "get_type"
version = "1.16"
[[object.member]]
name = "none"
ignore = true
[[object]] [[object]]
name = "GstVideo.VideoPackFlags" name = "GstVideo.VideoPackFlags"
status = "generate" status = "generate"
@ -582,6 +594,25 @@ status = "generate"
name = "none" name = "none"
ignore = true ignore = true
[[object]]
name = "GstVideo.VideoSink"
status = "generate"
[[object.function]]
name = "center_rect"
# Implemented in video_rectangle
manual = true
[[object]]
name = "GstVideo.VideoTimeCodeFlags"
status = "generate"
[[object.function]]
name = "get_type"
version = "1.18"
[[object.member]]
name = "none"
ignore = true
[[object]] [[object]]
name = "GstVideo.VideoTransferFunction" name = "GstVideo.VideoTransferFunction"
status = "generate" status = "generate"
@ -594,38 +625,3 @@ status = "generate"
[[object.member]] [[object.member]]
name = "arib_std_b67" name = "arib_std_b67"
version = "1.18" 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"
[[object]]
name = "GstVideo.VideoFieldOrder"
status = "generate"
[[object.function]]
name = "to_string"
# This has an Unknown field that may return NULL or "UNKNOWN"
manual = true
[object.function.return]
nullable = false
[[object]]
name = "GstVideo.VideoColorMatrix"
status = "generate"
[[object.function]]
name = "get_Kr_Kb"
# Function and parameter name capitalization is wrong
ignore = true

View file

@ -479,8 +479,12 @@ bitflags! {
const MULTIPLE_VIEW = ffi::GST_VIDEO_FRAME_FLAG_MULTIPLE_VIEW as u32; const MULTIPLE_VIEW = ffi::GST_VIDEO_FRAME_FLAG_MULTIPLE_VIEW as u32;
#[doc(alias = "GST_VIDEO_FRAME_FLAG_FIRST_IN_BUNDLE")] #[doc(alias = "GST_VIDEO_FRAME_FLAG_FIRST_IN_BUNDLE")]
const FIRST_IN_BUNDLE = ffi::GST_VIDEO_FRAME_FLAG_FIRST_IN_BUNDLE as u32; const FIRST_IN_BUNDLE = ffi::GST_VIDEO_FRAME_FLAG_FIRST_IN_BUNDLE as u32;
#[cfg(any(feature = "v1_16", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_16")))]
#[doc(alias = "GST_VIDEO_FRAME_FLAG_TOP_FIELD")] #[doc(alias = "GST_VIDEO_FRAME_FLAG_TOP_FIELD")]
const TOP_FIELD = ffi::GST_VIDEO_FRAME_FLAG_TOP_FIELD as u32; const TOP_FIELD = ffi::GST_VIDEO_FRAME_FLAG_TOP_FIELD as u32;
#[cfg(any(feature = "v1_16", feature = "dox"))]
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_16")))]
#[doc(alias = "GST_VIDEO_FRAME_FLAG_BOTTOM_FIELD")] #[doc(alias = "GST_VIDEO_FRAME_FLAG_BOTTOM_FIELD")]
const BOTTOM_FIELD = ffi::GST_VIDEO_FRAME_FLAG_BOTTOM_FIELD as u32; const BOTTOM_FIELD = ffi::GST_VIDEO_FRAME_FLAG_BOTTOM_FIELD as u32;
} }

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -20,6 +20,9 @@ glib = { git = "https://github.com/gtk-rs/gtk-rs-core" }
gst = { package = "gstreamer", path = "../gstreamer", features = ["v1_14"] } gst = { package = "gstreamer", path = "../gstreamer", features = ["v1_14"] }
gst-sdp = { package = "gstreamer-sdp", path = "../gstreamer-sdp", features = ["v1_14"] } gst-sdp = { package = "gstreamer-sdp", path = "../gstreamer-sdp", features = ["v1_14"] }
[dev-dependencies]
gir-format-check = "0.1"
[features] [features]
default = [] default = []
dox = ["v1_20", "ffi/dox", "glib/dox", "gst/dox", "gst-sdp/dox"] dox = ["v1_20", "ffi/dox", "glib/dox", "gst/dox", "gst-sdp/dox"]

View file

@ -45,6 +45,16 @@ manual = [
"GstSdp.SDPMessage", "GstSdp.SDPMessage",
] ]
[[object]]
name = "GstWebRTC.WebRTCDataChannel"
status = "generate"
final_type = true
[[object.function]]
name = "on_error"
# takes ownership of SDP message
manual = true
[[object]] [[object]]
name = "GstWebRTC.WebRTCDTLSTransport" name = "GstWebRTC.WebRTCDTLSTransport"
status = "generate" status = "generate"
@ -71,24 +81,9 @@ status = "generate"
final_type = true final_type = true
[[object]] [[object]]
name = "GstWebRTC.WebRTCSessionDescription" name = "GstWebRTC.WebRTCSCTPTransport"
status = "generate" status = "generate"
final_type = true version = "1.20"
[[object.function]]
name = "new"
# takes ownership of SDP message
ignore = true
[[object]]
name = "GstWebRTC.WebRTCDataChannel"
status = "generate"
final_type = true
[[object.function]]
name = "on_error"
# takes ownership of SDP message
manual = true
[[object]] [[object]]
name = "GstWebRTC.WebRTCSDPType" name = "GstWebRTC.WebRTCSDPType"
@ -100,6 +95,11 @@ status = "generate"
nullable = false nullable = false
[[object]] [[object]]
name = "GstWebRTC.WebRTCSCTPTransport" name = "GstWebRTC.WebRTCSessionDescription"
status = "generate" status = "generate"
version = "1.20" final_type = true
[[object.function]]
name = "new"
# takes ownership of SDP message
ignore = true

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}

View file

@ -38,6 +38,7 @@ fragile = "1"
ron = "0.7" ron = "0.7"
serde_json = "1.0" serde_json = "1.0"
futures-executor = "0.3.1" futures-executor = "0.3.1"
gir-format-check = "0.1"
[features] [features]
default = [] default = []

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,8 @@
// Take a look at the license at the top of the repository in the LICENSE file.
#[test]
fn check_gir_file() {
let res = gir_format_check::check_gir_file("Gir.toml");
println!("{}", res);
assert_eq!(res.nb_errors, 0);
}