1[options]
2girs_directories = ["../gir-files", "../gst-gir-files"]
3library = "Gst"
4version = "1.0"
5min_cfg_version = "1.8"
6work_mode = "normal"
7concurrency = "send+sync"
8generate_safety_asserts = true
9single_version_file = true
10generate_display_trait = false
11trust_return_value_nullability = true
12
13external_libraries = [
14    "GLib",
15    "GObject",
16]
17
18generate = [
19    "Gst.BufferingMode",
20    "Gst.BusSyncReply",
21    "Gst.CapsIntersectMode",
22    "Gst.ClockEntryType",
23    "Gst.ClockTimeDiff",
24    "Gst.CoreError",
25    "Gst.DebugColorFlags",
26    "Gst.DebugGraphDetails",
27    "Gst.DebugLevel",
28    "Gst.EventTypeFlags",
29    "Gst.GapFlags",
30    "Gst.LibraryError",
31    "Gst.PadMode",
32    "Gst.PadProbeReturn",
33    "Gst.ParseError",
34    "Gst.PluginAPIFlags",
35    "Gst.PluginError",
36    "Gst.PluginFlags",
37    "Gst.ProgressType",
38    "Gst.PromiseResult",
39    "Gst.QOSType",
40    "Gst.ResourceError",
41    "Gst.SchedulingFlags",
42    "Gst.SeekType",
43    "Gst.SerializeFlags",
44    "Gst.StreamError",
45    "Gst.StreamStatusType",
46    "Gst.StreamType",
47    "Gst.StructureChangeType",
48    "Gst.SystemClock",
49    "Gst.TagFlag",
50    "Gst.TagMergeMode",
51    "Gst.TaskState",
52    "Gst.TocSetter",
53    "Gst.URIError",
54    "Gst.URIHandler",
55]
56
57manual = [
58    "GLib.DateTime",
59    "GLib.Error",
60    "GLib.MainContext",
61    "GLib.Quark",
62    "GLib.Source",
63    "GLib.Type",
64    "GObject.Object",
65    "GObject.Value",
66    "Gst.AllocationParams",
67    "Gst.CapsFeatures",
68    "Gst.Segment",
69    "Gst.StaticCaps",
70    "Gst.StaticPadTemplate",
71    "Gst.TypeFind",
72]
73
74[[object]]
75name = "Gst.Allocator"
76status = "generate"
77
78    [[object.function]]
79    name = "alloc"
80        [object.function.return]
81        nullable_return_is_error = "Failed to allocate memory"
82        [[object.function.parameter]]
83        name = "params"
84        const = true
85
86[[object]]
87name = "Gst.Bin"
88status = "generate"
89trait_name = "GstBinExt"
90    [[object.signal]]
91    name = "do-latency"
92    # Use Result<(), glib::BoolError>
93    manual = true
94
95    [[object.function]]
96    name = "add_many"
97    # Implemented by repeatedly calling add()
98    manual = true
99    [[object.function]]
100    name = "remove_many"
101    # Implemented by repeatedly calling remove()
102    manual = true
103
104    [[object.function]]
105    name = "iterate_all_by_element_factory_name"
106    manual = true
107    [[object.function]]
108    name = "iterate_all_by_interface"
109    manual = true
110    [[object.function]]
111    name = "iterate_elements"
112    manual = true
113    [[object.function]]
114    name = "iterate_recurse"
115    manual = true
116    [[object.function]]
117    name = "iterate_sinks"
118    manual = true
119    [[object.function]]
120    name = "iterate_sorted"
121    manual = true
122    [[object.function]]
123    name = "iterate_sources"
124    manual = true
125
126    [[object.function]]
127    name = "add"
128        [object.function.return]
129        bool_return_is_error = "Failed to add element"
130
131    [[object.function]]
132    name = "remove"
133        [object.function.return]
134        bool_return_is_error = "Failed to remove element"
135
136    [[object.function]]
137    name = "recalculate_latency"
138        [object.function.return]
139        bool_return_is_error = "Failed to recalculate latency"
140
141    [[object.function]]
142    name = "sync_children_states"
143        [object.function.return]
144        bool_return_is_error = "Failed to sync children states"
145
146[[object]]
147name = "Gst.BinFlags"
148status = "generate"
149    [[object.member]]
150    name = "last"
151    ignore = true
152
153[[object]]
154name = "Gst.Bus"
155status = "generate"
156final_type = true
157    [[object.function]]
158    name = "set_sync_handler"
159    # Into<Option<_>> makes this hard to use
160    manual = true
161
162    [[object.function]]
163    name = "add_signal_watch_full"
164    # Priority
165    manual = true
166
167    [[object.function]]
168    name = "timed_pop_filtered"
169    # Uses enum as flags
170    manual = true
171    [[object.function]]
172    name = "pop_filtered"
173    # Uses enum as flags
174    manual = true
175    [[object.function]]
176    name = "poll"
177    # Uses enum as flags
178    manual = true
179
180    [[object.function]]
181    name = "create_watch"
182    # More convenient manual implementation
183    manual = true
184
185    [[object.function]]
186    name = "add_watch"
187    # More specific trait bounds possible for the closure
188    manual = true
189
190    [[object.function]]
191    name = "add_watch_full"
192    # More specific trait bounds possible for the closure
193    manual = true
194
195    [[object.function]]
196    name = "remove_watch"
197        [object.function.return]
198        bool_return_is_error = "Bus has no event source"
199
200    [[object.signal]]
201    name = "message"
202    concurrency = "send"
203
204    [[object.function]]
205    name = "post"
206        [object.function.return]
207        bool_return_is_error = "Failed to post message"
208
209[[object]]
210name = "Gst.BufferFlags"
211status = "generate"
212    [[object.derive]]
213    name = "serde::Serialize, serde::Deserialize"
214    cfg_condition = "feature = \"ser_de\""
215
216    [[object.member]]
217    name = "last"
218    ignore = true
219
220[[object]]
221name = "Gst.BufferCopyFlags"
222status = "generate"
223    [[object.member]]
224    name = "none"
225    ignore = true
226
227[[object]]
228name = "Gst.BufferPoolAcquireFlags"
229status = "generate"
230    [[object.member]]
231    name = "none"
232    ignore = true
233    [[object.member]]
234    name = "last"
235    ignore = true
236
237[[object]]
238name = "Gst.ChildProxy"
239status = "generate"
240manual_traits = ["ChildProxyExtManual"]
241    [[object.function]]
242    name = "get_property"
243    rename = "child_property"
244    manual = true
245    [[object.function]]
246    name = "set_property"
247    rename = "set_child_property"
248    manual = true
249
250[[object]]
251name = "Gst.ClockTime"
252status = "manual"
253conversion_type = "Option"
254
255[[object]]
256name = "Gst.ClockFlags"
257status = "generate"
258    [[object.member]]
259    name = "last"
260    ignore = true
261
262[[object]]
263name = "Gst.ElementFactoryListType"
264status = "manual"
265conversion_type = "scalar"
266
267[[object]]
268name = "Gst.Format"
269status = "generate"
270    [[object.derive]]
271    name = "serde::Serialize, serde::Deserialize"
272    cfg_condition = "feature = \"ser_de\""
273    [[object.derive]]
274    name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
275    [[object.function]]
276    name = "register"
277    # Needs manual work
278    ignore = true
279
280[[object]]
281name = "Gst.Memory"
282status = "manual"
283
284    [[object.function]]
285    name = "map"
286    # Readable and writable variant dealing with mutability
287    # Non-into variants available under MemoryRef
288    rename = "into_mapped_memory_readable"
289
290    [[object.function]]
291    name = "unmap"
292    ignore = true
293
294[[object]]
295name = "Gst.PadDirection"
296status = "generate"
297    [[object.derive]]
298    name = "serde::Serialize, serde::Deserialize"
299    cfg_condition = "feature = \"ser_de\""
300    [[object.derive]]
301    name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
302
303[[object]]
304name = "Gst.PadPresence"
305status = "generate"
306    [[object.derive]]
307    name = "serde::Serialize, serde::Deserialize"
308    cfg_condition = "feature = \"ser_de\""
309    [[object.derive]]
310    name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
311
312[[object]]
313name = "Gst.SeekFlags"
314status = "generate"
315    [[object.member]]
316    name = "trickmode_forward_predicted"
317    version = "1.18"
318    [[object.member]]
319    name = "instant_rate_change"
320    version = "1.18"
321    [[object.member]]
322    name = "none"
323    ignore = true
324
325[[object]]
326name = "Gst.SegmentFlags"
327status = "generate"
328    [[object.derive]]
329    name = "serde::Serialize, serde::Deserialize"
330    cfg_condition = "feature = \"ser_de\""
331    [[object.member]]
332    name = "trickmode_forward_predicted"
333    version = "1.18"
334    [[object.member]]
335    name = "none"
336    ignore = true
337
338[[object]]
339name = "Gst.StackTraceFlags"
340status = "generate"
341    [[object.member]]
342    name = "none"
343    ignore = true
344
345[[object]]
346name = "Gst.StreamFlags"
347status = "generate"
348    [[object.member]]
349    name = "none"
350    ignore = true
351
352[[object]]
353name = "Gst.TagSetter"
354status = "generate"
355manual_traits = ["TagSetterExtManual"]
356    [[object.function]]
357    name = "add_tag_value"
358    manual = true
359
360    [[object.function]]
361    name = "add_tags"
362    # Takes a raw pointer
363    ignore = true
364
365[[object]]
366name = "Gst.TocScope"
367status = "generate"
368    [[object.derive]]
369    name = "serde::Serialize, serde::Deserialize"
370    cfg_condition = "feature = \"ser_de\""
371    [[object.derive]]
372    name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
373
374[[object]]
375name = "Gst.TocEntryType"
376status = "generate"
377    [[object.derive]]
378    name = "serde::Serialize, serde::Deserialize"
379    cfg_condition = "feature = \"ser_de\""
380    [[object.derive]]
381    name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
382
383[[object]]
384name = "Gst.TocLoopType"
385status = "generate"
386    [[object.derive]]
387    name = "serde::Serialize, serde::Deserialize"
388    cfg_condition = "feature = \"ser_de\""
389    [[object.derive]]
390    name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
391
392[[object]]
393name = "Gst.Rank"
394status = "generate"
395    [[object.derive]]
396    name = "serde::Serialize, serde::Deserialize"
397    cfg_condition = "feature = \"ser_de\""
398    [[object.derive]]
399    name = "Debug"
400
401[[object]]
402name = "Gst.TypeFindProbability"
403status = "generate"
404    [[object.derive]]
405    name = "Debug"
406
407[[object]]
408name = "Gst.EventType"
409status = "generate"
410    [[object.derive]]
411    name = "Debug, PartialEq, Eq, Hash"
412    [[object.member]]
413    name = "select_streams"
414    version = "1.10"
415    [[object.member]]
416    name = "stream_selection"
417    version = "1.10"
418    [[object.member]]
419    name = "stream_group_done"
420    version = "1.10"
421    [[object.member]]
422    name = "instant_rate_change"
423    version = "1.18"
424    [[object.member]]
425    name = "instant_rate_sync_time"
426    version = "1.18"
427
428[[object]]
429name = "Gst.Structure"
430status = "manual"
431ref_mode = "ref"
432    # Functions moved to `StructureRef`
433    [[object.function]]
434    name = "set"
435    ignore = true
436    [[object.function]]
437    name = "set_value"
438    ignore = true
439    [[object.function]]
440    name = "get_value"
441    ignore = true
442
443    [[object.function]]
444    name = "id_get_value"
445    rename = "value_by_quark"
446    ignore = true
447    [[object.function]]
448    name = "take_value"
449    rename = "set_value"
450    ignore = true
451    [[object.function]]
452    name = "id_take_value"
453    rename = "set_value_by_quark"
454    ignore = true
455    [[object.function]]
456    name = "get_name"
457    rename = "name"
458    ignore = true
459    [[object.function]]
460    name = "get_name_id"
461    rename = "name_quark"
462    ignore = true
463    [[object.function]]
464    name = "set_name"
465    ignore = true
466
467    [[object.function]]
468    name = "has_field"
469    ignore = true
470    [[object.function]]
471    name = "has_field_with_typed"
472    rename = "has_field_with_type"
473    ignore = true
474    [[object.function]]
475    name = "id_has_field"
476    rename = "has_field_by_quark"
477    ignore = true
478    [[object.function]]
479    name = "id_has_field_typed"
480    rename = "has_field_with_type_by_quark"
481    ignore = true
482    [[object.function]]
483    name = "remove_field"
484    ignore = true
485    [[object.function]]
486    name = "remove_fields"
487    # Repeatedly call remove_field()
488    ignore = true
489    [[object.function]]
490    name = "remove_all_fields"
491    ignore = true
492    [[object.function]]
493    name = "get_nth_field_name"
494    ignore = true
495    [[object.function]]
496    name = "n_fields"
497    ignore = true
498    [[object.function]]
499    name = "can_intersect"
500    ignore = true
501    [[object.function]]
502    name = "intersect"
503    ignore = true
504    [[object.function]]
505    name = "is_subset"
506    ignore = true
507
508    [[object.function]]
509    name = "fixate"
510    ignore=true
511    [[object.function]]
512    name = "fixate_field"
513    ignore=true
514    [[object.function]]
515    name = "fixate_field_boolean"
516    ignore=true
517    [[object.function]]
518    name = "fixate_field_string"
519    ignore=true
520    [[object.function]]
521    name = "fixate_field_nearest_double"
522    ignore=true
523    [[object.function]]
524    name = "fixate_field_nearest_fraction"
525    ignore=true
526    [[object.function]]
527    name = "fixate_field_nearest_int"
528    ignore=true
529
530    # Not implemented
531    [[object.function]]
532    name = "set_parent_refcount"
533    ignore = true
534
535[[object]]
536name = "Gst.ParseContext"
537status = "manual"
538ref_mode = "ref-mut"
539
540[[object]]
541name = "Gst.ParseFlags"
542status = "generate"
543    [[object.member]]
544    name = "place_in_bin"
545    version = "1.10"
546    [[object.member]]
547    name = "none"
548    ignore = true
549
550[[object]]
551name = "Gst.PipelineFlags"
552status = "generate"
553    [[object.member]]
554    name = "last"
555    ignore = true
556
557[[object]]
558name = "Gst.PluginDependencyFlags"
559status = "generate"
560    [[object.member]]
561    name = "none"
562    ignore = true
563
564[[object]]
565name = "Gst.Caps"
566status = "manual"
567ref_mode = "ref"
568
569[[object]]
570name = "Gst.Buffer"
571status = "manual"
572ref_mode = "ref"
573
574    [[object.function]]
575    name = "map"
576    # Readable and writable variant dealing with mutability
577    # Non-into variants available under BufferRef
578    rename = "into_mapped_buffer_readable"
579
580    [[object.function]]
581    name = "unmap"
582    ignore = true
583
584[[object]]
585name = "Gst.BufferList"
586status = "manual"
587ref_mode = "ref"
588
589[[object]]
590name = "Gst.Sample"
591status = "manual"
592ref_mode = "ref"
593
594[[object]]
595name = "Gst.Message"
596status = "manual"
597ref_mode = "ref"
598
599[[object]]
600name = "Gst.Event"
601status = "manual"
602ref_mode = "ref"
603
604    [[object.function]]
605    name = "new_caps"
606    # Moved to CapsBuilder::new()
607    ignore = true
608
609    [[object.function]]
610    name = "new_qos"
611    # Moved to QosBuilder::new()
612    ignore = true
613
614    [[object.function]]
615    name = "new_seek"
616    # Moved to SeekBuilder::new()
617    ignore = true
618
619    [[object.function]]
620    name = "parse_stream"
621    # Moved to StreamStart::stream()
622    ignore = true
623
624    [[object.function]]
625    name = "parse_stream_start"
626    # Moved to StreamStart::stream_id()
627    ignore = true
628
629[[object]]
630name = "Gst.TagList"
631status = "manual"
632ref_mode = "ref"
633
634[[object]]
635name = "Gst.TagScope"
636status = "generate"
637    [[object.derive]]
638    name = "serde::Serialize, serde::Deserialize"
639    cfg_condition = "feature = \"ser_de\""
640    [[object.derive]]
641    name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
642
643[[object]]
644name = "Gst.Query"
645status = "manual"
646ref_mode = "ref"
647
648[[object]]
649name = "Gst.Context"
650status = "manual"
651ref_mode = "ref"
652
653[[object]]
654name = "Gst.Toc"
655status = "manual"
656ref_mode = "ref"
657
658[[object]]
659name = "Gst.TocEntry"
660status = "manual"
661ref_mode = "ref"
662
663[[object]]
664name = "Gst.Pipeline"
665status = "generate"
666    [[object.function]]
667    name = "get_delay"
668        [object.function.return]
669        mandatory = true
670
671    [[object.function]]
672    name = "set_delay"
673        [[object.function.parameter]]
674        name = "delay"
675        mandatory = true
676
677[[object]]
678name = "Gst.Promise"
679status = "manual"
680ref_mode = "ref"
681
682[[object]]
683name = "Gst.ClockID"
684status = "manual"
685
686    [[object.function]]
687    name = "compare_func"
688    rename = "compare_by_time"
689
690[[object]]
691name = "Gst.Clock"
692status = "generate"
693manual_traits = ["ClockExtManual"]
694    [[object.function]]
695    name = "adjust_with_calibration"
696    # Associated function
697    manual = true
698    [[object.function]]
699    name = "unadjust_with_calibration"
700    # Associated function
701    manual = true
702
703    [[object.function]]
704    name = "new_periodic_id"
705    manual = true
706    [[object.function]]
707    name = "periodic_id_reinit"
708    manual = true
709    [[object.function]]
710    name = "new_single_shot_id"
711    manual = true
712    [[object.function]]
713    name = "single_shot_id_reinit"
714    manual = true
715
716    [[object.function]]
717    name = "add_observation"
718        [[object.function.parameter]]
719        name = "slave"
720        mandatory = true
721        [[object.function.parameter]]
722        name = "master"
723        mandatory = true
724
725    [[object.function]]
726    name = "add_observation_unapplied"
727        [[object.function.parameter]]
728        name = "slave"
729        mandatory = true
730        [[object.function.parameter]]
731        name = "master"
732        mandatory = true
733        [[object.function.parameter]]
734        name = "internal"
735        mandatory = true
736        [[object.function.parameter]]
737        name = "external"
738        mandatory = true
739        [[object.function.parameter]]
740        name = "rate_num"
741        mandatory = true
742        [[object.function.parameter]]
743        name = "rate_denom"
744        mandatory = true
745
746    [[object.function]]
747    name = "adjust_unlocked"
748        [[object.function.parameter]]
749        name = "internal"
750        mandatory = true
751
752    [[object.function]]
753    name = "get_calibration"
754        [[object.function.parameter]]
755        name = "internal"
756        mandatory = true
757        [[object.function.parameter]]
758        name = "external"
759        mandatory = true
760        [[object.function.parameter]]
761        name = "rate_num"
762        mandatory = true
763        [[object.function.parameter]]
764        name = "rate_denom"
765        mandatory = true
766
767    [[object.function]]
768    name = "get_internal_time"
769        [object.function.return]
770        mandatory = true
771
772    [[object.function]]
773    name = "get_resolution"
774        [object.function.return]
775        mandatory = true
776
777    [[object.function]]
778    name = "set_calibration"
779        [[object.function.parameter]]
780        name = "internal"
781        mandatory = true
782        [[object.function.parameter]]
783        name = "external"
784        mandatory = true
785        [[object.function.parameter]]
786        name = "rate_num"
787        mandatory = true
788        [[object.function.parameter]]
789        name = "rate_denom"
790        mandatory = true
791
792    [[object.function]]
793    name = "set_master"
794        [object.function.return]
795        bool_return_is_error = "Failed to set master clock"
796
797    [[object.function]]
798    name = "set_resolution"
799        [[object.function.parameter]]
800        name = "resolution"
801        mandatory = true
802        [object.function.return]
803        mandatory = true
804
805    [[object.function]]
806    name = "unadjust_unlocked"
807        [[object.function.parameter]]
808        name = "external"
809        mandatory = true
810
811    [[object.function]]
812    name = "wait_for_sync"
813        [object.function.return]
814        bool_return_is_error = "Timed out waiting for sync"
815
816[[object]]
817name = "Gst.ClockType"
818status = "generate"
819    [[object.member]]
820    name = "tai"
821    version = "1.18"
822
823[[object]]
824name = "Gst.ElementFlags"
825status = "generate"
826    [[object.member]]
827    name = "last"
828    ignore = true
829
830[[object]]
831name = "Gst.MemoryFlags"
832status = "generate"
833    [[object.member]]
834    name = "last"
835    ignore = true
836
837[[object]]
838name = "Gst.Element"
839status = "generate"
840manual_traits = ["ElementExtManual"]
841
842    # Manual implementation provides associated functions on `Element`,
843    # but gir considers these methods on `ElementExtManual` in the docs.
844    [[object.function]]
845    name = "link_many"
846    ignore = true
847    [[object.function]]
848    name = "unlink_many"
849    ignore = true
850    [[object.function]]
851    name = "register"
852    ignore = true
853
854    [[object.function]]
855    name = "call_async"
856    # more specific closure type possible
857    manual = true
858
859    [[object.function]]
860    name = "set_base_time"
861        [[object.function.parameter]]
862        name = "time"
863        mandatory = true
864
865    [[object.function]]
866    name = "get_current_running_time"
867    # manual implementation also works for earlier versions
868    manual = true
869
870    [[object.function]]
871    name = "get_current_clock_time"
872    # manual implementation also works for earlier versions
873    manual = true
874
875    [[object.function]]
876    name = "get_request_pad"
877    # rename to more explicit name and avoid conflict with `request_pad`
878    # TODO: request_pad_simple is now _also_ in the 1.20 bindings!
879    rename = "request_pad_simple"
880    # Renamed version only available in not(1.20)
881    manual = true
882
883    [[object.function]]
884    name = "post_message"
885    # takes ownership of message
886    manual = true
887
888    [[object.function]]
889    name = "add_pad"
890        [object.function.return]
891        bool_return_is_error = "Failed to add pad"
892
893    [[object.function]]
894    name = "remove_pad"
895        [object.function.return]
896        bool_return_is_error = "Failed to remove pad"
897
898    [[object.function]]
899    name = "link"
900        [object.function.return]
901        bool_return_is_error = "Failed to link elements"
902
903    [[object.function]]
904    name = "link_filtered"
905        [[object.function.parameter]]
906        name = "filter"
907        # Can use `link` instead
908        nullable = false
909        [object.function.return]
910        bool_return_is_error = "Failed to link elements"
911
912    [[object.function]]
913    name = "link_pads"
914        [object.function.return]
915        bool_return_is_error = "Failed to link pads"
916
917    [[object.function]]
918    name = "link_pads_filtered"
919        [[object.function.parameter]]
920        name = "filter"
921        # Can use `link` instead
922        nullable = false
923        [object.function.return]
924        bool_return_is_error = "Failed to link pads"
925
926    [[object.function]]
927    name = "link_pads_full"
928        [object.function.return]
929        bool_return_is_error = "Failed to link pads"
930
931    [[object.function]]
932    name = "set_clock"
933        [object.function.return]
934        bool_return_is_error = "Failed to set clock"
935
936    [[object.function]]
937    name = "sync_state_with_parent"
938        [object.function.return]
939        bool_return_is_error = "Failed to sync state with parent"
940
941    [[object.function]]
942    name = "query"
943    # correct mutability
944    manual = true
945
946    [[object.function]]
947    name = "send_event"
948    # Pass by value
949    manual = true
950
951    [[object.function]]
952    name = "get_context_unlocked"
953    # Unsafe
954    ignore = true
955
956    [[object.function]]
957    name = "add_property_deep_notify_watch"
958    # ulong
959    manual = true
960
961    [[object.function]]
962    name = "add_property_notify_watch"
963    # ulong
964    manual = true
965
966    [[object.function]]
967    name = "remove_property_notify_watch"
968    # ulong
969    manual = true
970
971    [[object.function]]
972    name = "query_duration"
973    # formatted value
974    manual = true
975
976    [[object.function]]
977    name = "query_position"
978    # formatted value
979    manual = true
980
981    [[object.function]]
982    name = "query_convert"
983    # formatted value
984    manual = true
985
986    [[object.function]]
987    name = "seek"
988    # formatted value
989    manual = true
990
991    [[object.function]]
992    name = "seek_simple"
993    # formatted value
994    manual = true
995
996    [[object.function]]
997    name = "state_change_return_get_name"
998    # Wrong place
999    ignore = true
1000
1001    [[object.function]]
1002    name = "state_get_name"
1003    # Wrong place
1004    ignore = true
1005
1006    [[object.function]]
1007    name = "get_metadata"
1008    # better manual function
1009    manual = true
1010
1011    [[object.function]]
1012    name = "get_pad_template"
1013    # better manual function
1014    manual = true
1015
1016    [[object.function]]
1017    name = "get_pad_template_list"
1018    # better manual function
1019    manual = true
1020
1021    # Limited subset of `MessageType`,
1022    # see `ElementMessageType`.
1023    [[object.function]]
1024    name = "message_full"
1025    manual = true
1026    [[object.function]]
1027    name = "message_full_with_details"
1028    manual = true
1029
1030    # Return iterators
1031    [[object.function]]
1032    name = "iterate_pads"
1033    manual = true
1034    [[object.function]]
1035    name = "iterate_sink_pads"
1036    manual = true
1037    [[object.function]]
1038    name = "iterate_src_pads"
1039    manual = true
1040
1041[[object]]
1042name = "Gst.ElementFactory"
1043status = "generate"
1044final_type = true
1045    [[object.function]]
1046    name = "create"
1047        [object.function.return]
1048        nullable_return_is_error = "Failed to create element from factory"
1049
1050    [[object.function]]
1051    name = "make"
1052        [object.function.return]
1053        nullable_return_is_error = "Failed to create element from factory name"
1054
1055[[object]]
1056name = "Gst.TypeFindFactory"
1057status = "generate"
1058final_type = true
1059
1060    [[object.function]]
1061    name = "call_function"
1062    # Set up native functions in `TypeFind`, calling into trait argument
1063    manual = true
1064
1065[[object]]
1066name = "Gst.DeviceProviderFactory"
1067status = "generate"
1068final_type = true
1069
1070[[object]]
1071name = "Gst.DeviceProvider"
1072status = "generate"
1073manual_traits = ["DeviceProviderExtManual"]
1074    [[object.function]]
1075    name = "start"
1076        [object.function.return]
1077        bool_return_is_error = "Failed to start"
1078
1079    [[object.function]]
1080    name = "register"
1081    manual = true
1082
1083    [[object.function]]
1084    name = "get_metadata"
1085    # better manual function
1086    manual = true
1087
1088[[object]]
1089name = "Gst.DeviceMonitor"
1090status = "generate"
1091manual_traits = ["DeviceMonitorExtManual"]
1092    [[object.function]]
1093    name = "new"
1094    # Work-around for 1.14 switch from transfer-floating to transfer-full
1095    manual = true
1096
1097    [[object.function]]
1098    name = "add_filter"
1099    # Return Option<DeviceMonitorFilterId>
1100    manual = true
1101
1102    [[object.function]]
1103    name = "start"
1104        [object.function.return]
1105        bool_return_is_error = "Failed to start"
1106
1107    [[object.function]]
1108    name = "remove_filter"
1109    # Use DeviceMonitorFilterId and return Result<(), glib::BoolError>
1110    manual = true
1111
1112[[object]]
1113name = "Gst.Device"
1114status = "generate"
1115    [[object.function]]
1116    name = "reconfigure_element"
1117        [object.function.return]
1118        bool_return_is_error = "Failed to reconfigure the element to use this device"
1119
1120    [[object.function]]
1121    name = "create_element"
1122        [object.function.return]
1123        nullable_return_is_error = "Failed to create element for device"
1124
1125[[object]]
1126name = "Gst.Object"
1127# For renaming the trait...
1128status = "generate"
1129trait_name = "GstObjectExt"
1130    [[object.function]]
1131    name = "set_name"
1132    # Don't allow changing the name at random times
1133    ignore = true
1134
1135    [[object.property]]
1136    name = "name"
1137    # There are accessor functions for this
1138    ignore = true
1139
1140    [[object.function]]
1141    name = "ref_sink"
1142    # Takes a raw pointer
1143    ignore = true
1144
1145    [[object.function]]
1146    name = "get_name"
1147        [object.function.return]
1148        # Nullable state only occurs during instance init and finalize
1149        # which cannot be observed from Rust
1150        nullable = false
1151
1152    [[object.function]]
1153    name = "set_parent"
1154        [object.function.return]
1155        bool_return_is_error = "Failed to set parent object"
1156
1157    [[object.function]]
1158    name = "sync_values"
1159        [[object.function.parameter]]
1160        name = "timestamp"
1161        mandatory = true
1162        [object.function.return]
1163        bool_return_is_error = "Failed to sync values"
1164
1165    [[object.function]]
1166    name = "value"
1167        [[object.function.parameter]]
1168        name = "timestamp"
1169        mandatory = true
1170
1171    [[object.function]]
1172    name = "get_g_value_array"
1173    ignore = true
1174
1175    [[object.function]]
1176    name = "add_control_binding"
1177    [object.function.return]
1178    bool_return_is_error = "Failed to add control binding"
1179
1180[[object]]
1181name = "Gst.ObjectFlags"
1182status = "generate"
1183    [[object.member]]
1184    name = "may_be_leaked"
1185    version = "1.10"
1186    [[object.member]]
1187    name = "last"
1188    ignore = true
1189
1190[[object]]
1191name = "Gst.PadFlags"
1192status = "generate"
1193    [[object.member]]
1194    name = "last"
1195    ignore = true
1196
1197[[object]]
1198name = "Gst.PadLinkCheck"
1199status = "generate"
1200    [[object.member]]
1201    name = "nothing"
1202    ignore = true
1203
1204[[object]]
1205name = "Gst.PadProbeType"
1206status = "generate"
1207    [[object.member]]
1208    name = "invalid"
1209    ignore = true
1210
1211[[object]]
1212name = "Gst.Pad"
1213status = "generate"
1214manual_traits = ["PadExtManual"]
1215    [[object.function]]
1216    name = "link_maybe_ghosting"
1217        [object.function.return]
1218        bool_return_is_error = "Failed to link pads, possibly ghosting"
1219
1220    [[object.function]]
1221    name = "link_maybe_ghosting_full"
1222        [object.function.return]
1223        bool_return_is_error = "Failed to link pads, possibly ghosting"
1224
1225    [[object.function]]
1226    name = "unlink"
1227        [object.function.return]
1228        bool_return_is_error = "Failed to unlink pad"
1229
1230    [[object.function]]
1231    name = "pause_task"
1232        [object.function.return]
1233        bool_return_is_error = "Failed to pause pad task"
1234
1235    [[object.function]]
1236    name = "stop_task"
1237        [object.function.return]
1238        bool_return_is_error = "Failed to stop pad task"
1239
1240    [[object.function]]
1241    name = "set_active"
1242        [object.function.return]
1243        bool_return_is_error = "Failed to activate pad"
1244
1245    [[object.function]]
1246    name = "activate_mode"
1247        [object.function.return]
1248        bool_return_is_error = "Failed to activate mode pad"
1249
1250    [[object.function]]
1251    name = "remove_probe"
1252    # Don't use a ulong
1253    manual = true
1254
1255    [[object.function]]
1256    name = "chain"
1257    # Move buffer
1258    manual = true
1259
1260    [[object.function]]
1261    name = "push"
1262    # Move buffer
1263    manual = true
1264
1265    [[object.function]]
1266    name = "chain_list"
1267    # Move buffer
1268    manual = true
1269
1270    [[object.function]]
1271    name = "push_list"
1272    # Move buffer
1273    manual = true
1274
1275    [[object.function]]
1276    name = "pull_range"
1277    # Buffer can be NULL
1278    manual = true
1279
1280    [[object.function]]
1281    name = "get_range"
1282    # Buffer can be NULL
1283    manual = true
1284
1285    [[object.function]]
1286    name = "get_last_flow_return"
1287    # Use Result<FlowSuccess, FlowError>
1288    rename = "last_flow_result"
1289
1290    [[object.function]]
1291    name = "query"
1292    # Correct mutability
1293    manual = true
1294
1295    [[object.function]]
1296    name = "peer_query"
1297    # Correct mutability
1298    manual = true
1299
1300    [[object.function]]
1301    name = "query_default"
1302    # Correct mutability
1303    manual = true
1304
1305    [[object.function]]
1306    name = "proxy_query_caps"
1307    # Correct mutability
1308    manual = true
1309
1310    [[object.function]]
1311    name = "proxy_query_accept_caps"
1312    # Correct mutability
1313    manual = true
1314
1315    [[object.function]]
1316    name = "event_default"
1317    # Pass by value
1318    manual = true
1319
1320    [[object.function]]
1321    name = "push_event"
1322    # Pass by value
1323    manual = true
1324
1325    [[object.function]]
1326    name = "send_event"
1327    # Pass by value
1328    manual = true
1329
1330    [[object.function]]
1331    name = "new"
1332    # Also has builder()
1333    manual = true
1334
1335    [[object.function]]
1336    name = "new_from_template"
1337    # Also has builder_with_template()
1338    rename = "from_template"
1339    manual = true
1340
1341    [[object.function]]
1342    name = "new_from_static_template"
1343    # Also has builder_with_static_template()
1344    rename = "from_static_template"
1345    manual = true
1346
1347    [[object.function]]
1348    name = "query_duration"
1349    # formatted value
1350    manual = true
1351
1352    [[object.function]]
1353    name = "query_position"
1354    # formatted value
1355    manual = true
1356
1357    [[object.function]]
1358    name = "query_convert"
1359    # formatted value
1360    manual = true
1361
1362    [[object.function]]
1363    name = "peer_query_duration"
1364    # formatted value
1365    manual = true
1366
1367    [[object.function]]
1368    name = "peer_query_position"
1369    # formatted value
1370    manual = true
1371
1372    [[object.function]]
1373    name = "peer_query_convert"
1374    # formatted value
1375    manual = true
1376
1377    [[object.function]]
1378    name = "link_get_name"
1379    # Wrong place
1380    manual = true
1381
1382    [[object.function]]
1383    pattern = "set_.*_function_full"
1384    # More specific closure trait bounds possible
1385    manual = true
1386
1387    [[object.function]]
1388    name = "start_task"
1389    # More specific closure trait bounds possible
1390    manual = true
1391
1392    [[object.function]]
1393    name = "sticky_events_foreach"
1394    # Complex closure argument handling
1395    manual = true
1396
1397    [[object.function]]
1398    name = "add_probe"
1399    # Complex closure argument handling
1400    manual = true
1401
1402    [[object.property]]
1403    name = "template"
1404    # Has a proper getter
1405    ignore = true
1406
1407[[object]]
1408name = "Gst.PadTemplate"
1409status = "generate"
1410final_type = true
1411    [[object.function]]
1412    name = "new"
1413        [object.function.return]
1414        nullable_return_is_error = "Failed to create pad template"
1415
1416    [[object.function]]
1417    name = "new_with_gtype"
1418        [object.function.return]
1419        nullable_return_is_error = "Failed to create pad template"
1420
1421    [[object.function]]
1422    name = "new_from_static_pad_template_with_gtype"
1423    # static pad template manual
1424    manual = true
1425
1426[[object]]
1427name = "Gst.GhostPad"
1428status = "generate"
1429    [[object.function]]
1430    name = "set_target"
1431        [object.function.return]
1432        bool_return_is_error = "Failed to set target"
1433
1434    [[object.function]]
1435    name = "new"
1436    rename = "with_target"
1437    manual = true
1438
1439    [[object.function]]
1440    name = "new_no_target"
1441    rename = "new"
1442    manual = true
1443
1444    [[object.function]]
1445    name = "new_from_template"
1446    rename = "from_template_with_target"
1447    manual = true
1448
1449    [[object.function]]
1450    name = "new_no_target_from_template"
1451    rename = "from_template"
1452    manual = true
1453
1454    [[object.function]]
1455    name = "construct"
1456    ignore = true
1457
1458    [[object.function]]
1459    name = "activate_mode_default"
1460    # wrong instance type
1461    manual = true
1462
1463    [[object.function]]
1464    name = "internal_activate_mode_default"
1465    # wrong instance type
1466    manual = true
1467
1468[[object]]
1469name = "Gst.ProxyPad"
1470status = "generate"
1471manual_traits = ["ProxyPadExtManual"]
1472
1473    [[object.function]]
1474    name = "chain_default"
1475    # Buffer move
1476    manual = true
1477
1478    [[object.function]]
1479    name = "chain_list_default"
1480    # Buffer move
1481    manual = true
1482
1483    [[object.function]]
1484    name = "getrange_default"
1485    # Buffer move
1486    manual = true
1487
1488[[object]]
1489name = "Gst.Stream"
1490status = "generate"
1491final_type = true
1492    [[object.function]]
1493    name = "new"
1494    # Work-around for 1.14 switch from transfer-floating to transfer-full
1495    manual = true
1496
1497    [[object.property]]
1498    name = "caps"
1499    version = "1.10"
1500
1501    [[object.property]]
1502    name = "stream-flags"
1503    version = "1.10"
1504
1505    [[object.property]]
1506    name = "stream-id"
1507    version = "1.10"
1508
1509    [[object.property]]
1510    name = "stream-type"
1511    version = "1.10"
1512
1513    [[object.property]]
1514    name = "tags"
1515    version = "1.10"
1516
1517[[object]]
1518name = "Gst.StreamCollection"
1519status = "generate"
1520final_type = true
1521    [[object.function]]
1522    name = "new"
1523    # Work-around for 1.14 switch from transfer-floating to transfer-full
1524    manual = true
1525
1526    [[object.function]]
1527    name = "add_stream"
1528    # Ignore return value which is always `true`
1529    manual = true
1530
1531    [[object.property]]
1532    name = "upstream-id"
1533    version = "1.10"
1534    generate = ["get"]
1535
1536[[object]]
1537name = "Gst.Plugin"
1538status = "generate"
1539final_type = true
1540
1541    [[object.function]]
1542    pattern = "register_static.*"
1543    # Needs manual implementation
1544    ignore = true
1545
1546    [[object.function]]
1547    name = "list_free"
1548    # useless and unsafe
1549    ignore = true
1550
1551    [[object.function]]
1552    name = "set_cache_data"
1553    # pass by value
1554    manual = true
1555
1556    [[object.function]]
1557    name = "get_cache_data"
1558    # structure ref
1559    manual = true
1560
1561    [[object.function]]
1562    name = "load"
1563        [object.function.return]
1564        nullable_return_is_error = "Failed to load plugin"
1565
1566    [[object.function]]
1567    name = "load_by_name"
1568        [object.function.return]
1569        nullable_return_is_error = "Failed to load plugin"
1570
1571[[object]]
1572name = "Gst.PluginFeature"
1573status = "generate"
1574manual_traits = ["PluginFeatureExtManual"]
1575    [[object.function]]
1576    pattern = "list_.*"
1577    ignore = true
1578
1579    [[object.function]]
1580    name = "rank_compare_func"
1581    ignore = true
1582
1583    [[object.function]]
1584    name = "get_rank"
1585    manual = true
1586
1587    [[object.function]]
1588    name = "set_rank"
1589    manual = true
1590
1591    [[object.function]]
1592    name = "load"
1593    manual = true
1594
1595[[object]]
1596name = "Gst.Registry"
1597status = "generate"
1598final_type = true
1599
1600    [[object.function]]
1601    pattern = "fork_.*"
1602    ignore = true
1603
1604    [[object.function]]
1605    name = "add_feature"
1606        [object.function.return]
1607        bool_return_is_error = "Failed to add feature"
1608
1609    [[object.function]]
1610    name = "add_plugin"
1611        [object.function.return]
1612        bool_return_is_error = "Failed to add plugin"
1613
1614[[object]]
1615name = "Gst.BufferPool"
1616status = "generate"
1617manual_traits = ["BufferPoolExtManual"]
1618    [[object.function]]
1619    pattern = "config_.*"
1620    # A different type
1621    ignore = true
1622
1623    [[object.function]]
1624    name = "get_config"
1625    # A different type
1626    manual = true
1627
1628    [[object.function]]
1629    name = "set_config"
1630    # Takes ownership
1631    manual = true
1632
1633    [[object.function]]
1634    name = "acquire_buffer"
1635    # Params and return value
1636    manual = true
1637
1638    [[object.function]]
1639    name = "release_buffer"
1640    # Takes ownership
1641    manual = true
1642
1643    [[object.function]]
1644    name = "new"
1645    # Work-around for 1.14 switch from transfer-floating to transfer-full
1646    manual = true
1647
1648    [[object.function]]
1649    name = "set_active"
1650        [object.function.return]
1651        bool_return_is_error = "Failed to activate buffer pool"
1652
1653[[object]]
1654name = "Gst.Preset"
1655status = "generate"
1656
1657    [[object.function]]
1658    name = "set_app_dir"
1659        [object.function.return]
1660        bool_return_is_error = "Failed to set app preset directory"
1661
1662    [[object.function]]
1663    name = "delete_preset"
1664        [object.function.return]
1665        bool_return_is_error = "Failed to delete preset"
1666
1667    [[object.function]]
1668    name = "load_preset"
1669        [object.function.return]
1670        bool_return_is_error = "Failed to load preset"
1671
1672    [[object.function]]
1673    name = "save_preset"
1674        [object.function.return]
1675        bool_return_is_error = "Failed to save preset"
1676
1677    [[object.function]]
1678    name = "rename_preset"
1679        [object.function.return]
1680        bool_return_is_error = "Failed to rename preset"
1681
1682    [[object.function]]
1683    name = "set_meta"
1684        [object.function.return]
1685        bool_return_is_error = "Failed to set preset meta"
1686
1687[[object]]
1688name = "Gst.*"
1689status = "generate"
1690    # We'll opt-in for constants at a later time
1691    [[object.constant]]
1692    pattern = ".+"
1693    ignore = true
1694
1695    [[object.function]]
1696    name = "util_dump_mem"
1697    ignore = true
1698
1699    [[object.function]]
1700    name = "util_dump_buffer"
1701    # We have our Debug impl on buffers
1702    ignore = true
1703
1704    [[object.function]]
1705    name = "protection_select_system"
1706    # unsupported array type
1707    ignore = true
1708
1709    [[object.function]]
1710    name = "calculate_linear_regression"
1711    ignore = true
1712
1713    [[object.function]]
1714    pattern = "value_.*"
1715    ignore = true
1716
1717    [[object.function]]
1718    pattern = ".*_get_type"
1719    ignore = true
1720
1721    [[object.function]]
1722    pattern = "tag_.*"
1723    ignore = true
1724
1725    [[object.function]]
1726    pattern = "segtrap_.*"
1727    ignore = true
1728
1729    [[object.function]]
1730    pattern = "util_[g]?double_.*"
1731    ignore = true
1732
1733    [[object.function]]
1734    pattern = "util_fraction_.*"
1735    ignore = true
1736
1737    [[object.function]]
1738    pattern = "util_greatest_.*"
1739    ignore = true
1740
1741    [[object.function]]
1742    pattern = "util_[g]?uint64.*"
1743    ignore = true
1744
1745    [[object.function]]
1746    name = "deinit"
1747    ignore = true
1748
1749    [[object.function]]
1750    name = "util_set_object_arg"
1751    ignore = true
1752
1753    [[object.function]]
1754    name = "util_seqnum_compare"
1755    ignore = true
1756
1757    [[object.function]]
1758    name = "dynamic_type_register"
1759    ignore = true
1760
1761    [[object.function]]
1762    name = "flow_get_name"
1763    ignore = true
1764
1765    [[object.function]]
1766    name = "filename_to_uri"
1767    ignore = true
1768
1769    [[object.function]]
1770    name = "is_initialized"
1771    ignore = true
1772
1773    [[object.function]]
1774    name = "debug_add_log_function"
1775    ignore = true
1776
1777    [[object.function]]
1778    name = "debug_remove_log_function"
1779    ignore = true
1780
1781    [[object.function]]
1782    name = "debug_remove_log_function_by_data"
1783    ignore = true
1784
1785    [[object.function]]
1786    name = "debug_construct_term_color"
1787    ignore = true
1788
1789    [[object.function]]
1790    name = "debug_construct_win_color"
1791    ignore = true
1792
1793    [[object.function]]
1794    name = "debug_get_all_categories"
1795    ignore = true
1796
1797    [[object.function]]
1798    name = "debug_get_color_mode"
1799    ignore = true
1800
1801    [[object.function]]
1802    pattern = "debug_log.*"
1803    ignore = true
1804
1805    [[object.function]]
1806    name = "debug_set_color_mode"
1807    ignore = true
1808
1809    [[object.function]]
1810    name = "debug_set_color_mode_from_string"
1811    ignore = true
1812
1813    [[object.function]]
1814    name = "error_get_message"
1815    ignore = true
1816
1817    [[object.function]]
1818    name = "flow_to_quark"
1819    ignore = true
1820
1821    [[object.function]]
1822    name = "formats_contains"
1823    ignore = true
1824
1825    [[object.function]]
1826    pattern = "info_.*"
1827    ignore = true
1828
1829    [[object.function]]
1830    pattern = "print.*"
1831    ignore = true
1832
1833    [[object.function]]
1834    pattern = "init.*"
1835    ignore = true
1836
1837    [[object.function]]
1838    pattern = "param_spec_.*"
1839    ignore = true
1840
1841    [[object.function]]
1842    name = "is_caps_features"
1843    ignore = true
1844
1845    [[object.function]]
1846    name = "make_element_message_details"
1847    ignore = true
1848
1849    [[object.function]]
1850    name = "util_array_binary_search"
1851    ignore = true
1852
1853    [[object.function]]
1854    name = "util_get_object_array"
1855    ignore = true
1856
1857    [[object.function]]
1858    name = "util_set_object_array"
1859    ignore = true
1860
1861    [[object.function]]
1862    name = "util_set_value_from_string"
1863    ignore = true
1864
1865    [[object.function]]
1866    pattern = "parse.*full"
1867    # wrong mutable for context parameter
1868    ignore = true
1869
1870    [[object.function]]
1871    name = "update_registry"
1872        [object.function.return]
1873        bool_return_is_error = "Failed to update the registry"
1874
1875    [[object.function]]
1876    name = "util_group_id_next"
1877    # newtype wrapper
1878    ignore = true
1879
1880    [[object.function]]
1881    name = "util_seqnum_next"
1882    # newtype wrapper
1883    ignore = true
1884
1885    [[object.function]]
1886    name = "protection_filter_systems_by_available_decryptors"
1887    # wrong array annotations
1888    ignore = true
1889
1890    [[object.function]]
1891    pattern = "clear_.*"
1892    # C memory management
1893    ignore = true
1894
1895    [[object.function]]
1896    name = "debug_get_stack_trace"
1897    # can be called before gst_init()
1898    assertion = "skip"
1899        [object.function.return]
1900        nullable_return_is_error = "Failed to get stack trace"
1901
1902    [[object.function]]
1903    name = "get_main_executable_path"
1904        [object.function.return]
1905        nullable_return_is_error = "Failed to get main executable path"
1906
1907    [[object.function]]
1908    name = "debug_set_default_threshold"
1909    # can be called before gst_init()
1910    assertion = "skip"
1911
1912    [[object.function]]
1913    name = "debug_get_default_threshold"
1914    # can be called before gst_init()
1915    assertion = "skip"
1916
1917    [[object.function]]
1918    name = "debug_set_threshold_for_name"
1919    # can be called before gst_init()
1920    assertion = "skip"
1921
1922    [[object.function]]
1923    name = "debug_set_threshold_from_string"
1924    # can be called before gst_init()
1925    assertion = "skip"
1926
1927    [[object.function]]
1928    name = "debug_unset_threshold_for_name"
1929    # can be called before gst_init()
1930    assertion = "skip"
1931
1932    [[object.function]]
1933    name = "debug_print_stack_trace"
1934    # can be called before gst_init()
1935    assertion = "skip"
1936
1937    [[object.function]]
1938    name = "debug_is_active"
1939    # can be called before gst_init()
1940    assertion = "skip"
1941
1942    [[object.function]]
1943    name = "debug_is_colored"
1944    # can be called before gst_init()
1945    assertion = "skip"
1946
1947    [[object.function]]
1948    name = "debug_set_active"
1949    # can be called before gst_init()
1950    assertion = "skip"
1951
1952    [[object.function]]
1953    name = "debug_set_colored"
1954    # can be called before gst_init()
1955    assertion = "skip"
1956
1957    [[object.function]]
1958    name = "debug_add_ring_buffer_logger"
1959    # can be called before gst_init()
1960    assertion = "skip"
1961
1962    [[object.function]]
1963    name = "debug_remove_ring_buffer_logger"
1964    # can be called before gst_init()
1965    assertion = "skip"
1966
1967    [[object.function]]
1968    name = "debug_ring_buffer_logger_get_logs"
1969    # can be called before gst_init()
1970    assertion = "skip"
1971
1972    [[object.function]]
1973    name = "util_get_timestamp"
1974    # can be called before gst_init()
1975    assertion = "skip"
1976        [object.function.return]
1977        # always returns a value
1978        mandatory = true
1979
1980    [[object.function]]
1981    name = "version"
1982    # can be called before gst_init()
1983    assertion = "skip"
1984
1985    [[object.function]]
1986    name = "version_string"
1987    # can be called before gst_init()
1988    assertion = "skip"
1989
1990    [[object.function]]
1991    name = "type_is_plugin_api"
1992    # confusing return type
1993    ignore = true
1994
1995    [[object.function]]
1996    name = "tracing_register_hook"
1997    # implemented as part of Tracer subclassing
1998    manual = true
1999
2000[[object]]
2001name = "Gst.State"
2002status = "generate"
2003    [[object.derive]]
2004    name = "serde::Serialize, serde::Deserialize"
2005    cfg_condition = "feature = \"ser_de\""
2006    [[object.derive]]
2007    name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
2008
2009[[object]]
2010name = "Gst.StateChange"
2011status = "generate"
2012    [[object.function]]
2013    name = "get_name"
2014    # Manual function for < v1_14:
2015    manual = true
2016    # Always generate the trait, without version constraint:
2017    version = "1.8"
2018
2019[[object]]
2020name = "Gst.StateChangeReturn"
2021status = "generate"
2022must_use = true
2023    [object.conversion_type]
2024    variant = "Result"
2025    ok_type = "StateChangeSuccess"
2026    err_type = "StateChangeError"
2027
2028[[object]]
2029name = "Gst.FlowReturn"
2030status = "generate"
2031must_use = true
2032    [object.conversion_type]
2033    variant = "Result"
2034    ok_type = "FlowSuccess"
2035    err_type = "FlowError"
2036
2037[[object]]
2038name = "Gst.PadLinkReturn"
2039status = "generate"
2040must_use = true
2041    [object.conversion_type]
2042    variant = "Result"
2043    ok_type = "PadLinkSuccess"
2044    err_type = "PadLinkError"
2045
2046[[object]]
2047name = "Gst.ClockReturn"
2048status = "generate"
2049must_use = true
2050    [object.conversion_type]
2051    variant = "Result"
2052    ok_type = "ClockSuccess"
2053    err_type = "ClockError"
2054
2055[[object]]
2056name = "Gst.DateTime"
2057status = "generate"
2058    [[object.derive]]
2059    # Don't auto-implement traits
2060    name = ""
2061
2062    [[object.function]]
2063    name = "new"
2064    # Needs manual checking of invariants
2065    manual = true
2066
2067    [[object.function]]
2068    name = "new_local_time"
2069    # Needs manual checking of invariants
2070    manual = true
2071
2072    [[object.function]]
2073    name = "new_y"
2074    # Needs manual checking of invariants
2075    manual = true
2076        [object.function.return]
2077        nullable = true
2078
2079    [[object.function]]
2080    name = "new_ym"
2081    # Needs manual checking of invariants
2082    manual = true
2083        [object.function.return]
2084        nullable = true
2085
2086    [[object.function]]
2087    name = "new_ymd"
2088    # Needs manual checking of invariants
2089    manual = true
2090        [object.function.return]
2091        nullable = true
2092
2093    [[object.function]]
2094    name = "get_month"
2095    # Needs manual checking of invariants
2096    manual = true
2097
2098    [[object.function]]
2099    name = "get_day"
2100    # Needs manual checking of invariants
2101    manual = true
2102
2103    [[object.function]]
2104    name = "get_hour"
2105    # Needs manual checking of invariants
2106    manual = true
2107
2108    [[object.function]]
2109    name = "get_minute"
2110    # Needs manual checking of invariants
2111    manual = true
2112
2113    [[object.function]]
2114    name = "get_second"
2115    # Needs manual checking of invariants
2116    manual = true
2117
2118    [[object.function]]
2119    name = "get_microsecond"
2120    # Needs manual checking of invariants
2121    manual = true
2122
2123    [[object.function]]
2124    name = "get_time_zone_offset"
2125    # Needs manual checking of invariants
2126    manual = true
2127
2128    [[object.function]]
2129    name = "new_from_g_date_time"
2130        # Function only ever returns NULL if the argument is NULL
2131        [[object.function.parameter]]
2132        name = "dt"
2133        nullable = false
2134        [object.function.return]
2135        nullable = false
2136
2137    [[object.function]]
2138    name = "to_g_date_time"
2139        [object.function.return]
2140        nullable_return_is_error = "Can't create glib::DateTime from DateTime"
2141
2142    [[object.function]]
2143    name = "new_from_iso8601_string"
2144        [object.function.return]
2145        nullable_return_is_error = "Failed to create DateTime from ISO-8601 string"
2146
2147    [[object.function]]
2148    name = "to_iso8601_string"
2149        [object.function.return]
2150        nullable_return_is_error = "Failed to create ISO-8601 string from DateTime"
2151
2152    [[object.function]]
2153    name = "new_from_unix_epoch_local_time"
2154        [object.function.return]
2155        nullable_return_is_error = "Can't create DateTime from UNIX epoch"
2156
2157    [[object.function]]
2158    name = "new_from_unix_epoch_local_time_usecs"
2159        [object.function.return]
2160        nullable_return_is_error = "Can't create DateTime from UNIX epoch"
2161
2162    [[object.function]]
2163    name = "new_from_unix_epoch_utc"
2164        [object.function.return]
2165        nullable_return_is_error = "Can't create DateTime from UNIX epoch"
2166
2167    [[object.function]]
2168    name = "new_from_unix_epoch_utc_usecs"
2169        [object.function.return]
2170        nullable_return_is_error = "Can't create DateTime from UNIX epoch"
2171
2172[[object]]
2173name = "Gst.ControlSource"
2174status = "generate"
2175manual_traits = ["ControlSourceExtManual"]
2176generate_builder = true
2177    [[object.function]]
2178    name = "control_source_get_value"
2179    rename = "value"
2180        [[object.function.parameter]]
2181        name = "timestamp"
2182        mandatory = true
2183
2184    [[object.function]]
2185    name = "control_source_get_value_array"
2186    manual = true
2187
2188[[object]]
2189name = "Gst.ControlBinding"
2190status = "generate"
2191manual_traits = ["ControlBindingExtManual"]
2192generate_builder = true
2193    [[object.function]]
2194    name = "get_g_value_array"
2195    manual = true
2196
2197    [[object.function]]
2198    name = "get_value"
2199        [[object.function.parameter]]
2200        name = "timestamp"
2201        mandatory = true
2202
2203    [[object.function]]
2204    name = "sync_values"
2205        [[object.function.parameter]]
2206        name = "timestamp"
2207        mandatory = true
2208
2209[[object]]
2210name = "Gst.Tracer"
2211status = "generate"
2212    [[object.function]]
2213    name = "register"
2214    # Manual implementation as inherent to the type.
2215    ignore = true
2216
2217[[object]]
2218name = "Gst.TracerFactory"
2219status = "generate"
2220
2221[[object]]
2222name = "Gst.URIType"
2223status = "generate"
2224    [[object.derive]]
2225    name = "serde::Serialize, serde::Deserialize"
2226    cfg_condition = "feature = \"ser_de\""
2227    [[object.derive]]
2228    name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
2229
2230