]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
gstreamer-audio-1.0: Adjustments for Gst.Audio.Sink class extension
authorRico Tzschichholz <ricotz@ubuntu.com>
Tue, 9 Jun 2020 11:56:25 +0000 (13:56 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Tue, 9 Jun 2020 12:13:03 +0000 (14:13 +0200)
vapi/Makefile.am
vapi/gstreamer-audio-1.0.vapi
vapi/metadata/GstAudio-1.0-custom.vala [new file with mode: 0644]
vapi/metadata/GstAudio-1.0.metadata

index f70554d499454d86b82717a872e6e0577ca68d3f..3def1647b63b8f907c75567791cf72d62b7a8f88 100644 (file)
@@ -524,7 +524,7 @@ gstreamer-app-1.0:
        $(GENVAPI) --library $(srcdir)/gstreamer-app-1.0 --pkg gstreamer-base-1.0 --metadatadir $(METADATADIR) $(GIRDIR)/GstApp-1.0.gir
 
 gstreamer-audio-1.0:
-       $(GENVAPI) --library $(srcdir)/gstreamer-audio-1.0 --pkg gstreamer-base-1.0 --metadatadir $(METADATADIR) $(GIRDIR)/GstAudio-1.0.gir
+       $(GENVAPI) --library $(srcdir)/gstreamer-audio-1.0 --pkg gstreamer-base-1.0 --metadatadir $(METADATADIR) $(METADATADIR)/GstAudio-1.0-custom.vala $(GIRDIR)/GstAudio-1.0.gir
 
 gstreamer-bad-allocators-1.0:
        $(GENVAPI) --library $(srcdir)/gstreamer-bad-allocators-1.0 --pkg gstreamer-1.0 --metadatadir $(METADATADIR) $(GIRDIR)/GstBadAllocators-1.0.gir
index 689d6f152a799ffc85134c887b349cba2df18c5a..db83a23dbc208f21021ea3a0b147905a59e83215 100644 (file)
@@ -441,8 +441,10 @@ namespace Gst {
                [CCode (cheader_filename = "gst/audio/audio.h", type_id = "gst_audio_sink_get_type ()")]
                [GIR (name = "AudioSink")]
                public class Sink : Gst.Audio.BaseSink {
+                       public class Gst.Audio.SinkClassExtension? extension;
                        [CCode (has_construct_function = false)]
                        protected Sink ();
+                       [CCode (vfunc_name = "extension->clear_all")]
                        [NoWrapper]
                        public virtual void clear_all ();
                        [NoWrapper]
@@ -596,6 +598,11 @@ namespace Gst {
                        public int segtotal;
                        public int seglatency;
                }
+               [CCode (cheader_filename = "gst/audio/audio.h", has_type_id = false)]
+               [GIR (name = "AudioSinkClassExtension")]
+               public struct SinkClassExtension {
+                       public GLib.Callback clear_all;
+               }
                [CCode (cheader_filename = "gst/audio/audio.h", cprefix = "GST_AUDIO_BASE_SINK_DISCONT_REASON_", type_id = "gst_audio_base_sink_discont_reason_get_type ()")]
                [GIR (name = "AudioBaseSinkDiscontReason")]
                [Version (since = "1.6")]
diff --git a/vapi/metadata/GstAudio-1.0-custom.vala b/vapi/metadata/GstAudio-1.0-custom.vala
new file mode 100644 (file)
index 0000000..26bbcc0
--- /dev/null
@@ -0,0 +1,8 @@
+namespace Gst.Audio {
+       public class Sink : Gst.Audio.BaseSink {
+               public class SinkClassExtension? extension;
+               [CCode (vfunc_name = "extension->clear_all")]
+               [NoWrapper]
+               public virtual void clear_all ();
+       }
+}
index df642711f9a4fcfc05c40970af7f97a6ed0688e5..5d9aaa171a46fabf69a4a4cd1cdda48bf21e3830 100644 (file)
@@ -15,3 +15,8 @@ buffer_add_audio_downmix_meta skip=false
 // No way to annotate virtual methods without invokers
 AudioSink.write.data type="uint8[]" array_length_idx=1
 AudioSrc.read.data type="uint8[]" array_length_idx=1
+
+// Keep track of new function pointers
+// https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/716
+AudioSinkClassExtension
+  .clear_all type="GLib.Callback"