From e2b5208a432638a68d78ab87eeae94d0db5d1d69 Mon Sep 17 00:00:00 2001 From: RSWilli Date: Tue, 16 Sep 2025 22:36:08 +0200 Subject: [PATCH] rename virtual methods to prevent collisions --- generator.go | 42 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/generator.go b/generator.go index be35fdf..bfbc070 100644 --- a/generator.go +++ b/generator.go @@ -202,12 +202,44 @@ var Data = genmain.Overlay( typesystem.MarkAsManuallyExtended("Gst-1", "Bus"), typesystem.MarkAsManuallyExtended("Gst-1", "ChildProxy"), typesystem.MarkAsManuallyExtended("Gst-1", "TagSetter"), - func(r *typesystem.Registry) error { - // this is needed to fix gstreamer <= 1.24.10. Remove once upgraded in the flake - webrtc := r.FindNamespaceByName("GstWebRTC-1") + // func(r *typesystem.Registry) error { + // // this is needed to fix gstreamer <= 1.24.10. Remove once upgraded in the flake + // webrtc := r.FindNamespaceByName("GstWebRTC-1") - webrtc.Packages = append(webrtc.Packages, "gstreamer-sdp-1.0") - webrtc.CIncludes = append(webrtc.CIncludes, "gst/webrtc/sctptransport.h") + // webrtc.Packages = append(webrtc.Packages, "gstreamer-sdp-1.0") + // webrtc.CIncludes = append(webrtc.CIncludes, "gst/webrtc/sctptransport.h") + + // return nil + // }, + // Virtual methods of BaseTransform collide with Element + func(r *typesystem.Registry) error { + base := r.FindNamespaceByName("GstBase-1") + + bt := base.FindLocalTypeByGIRName("BaseTransform").(*typesystem.Class) + + bt.FindVirtualMethod("query").ParentName = "ParentQueryBaseTransform" + + return nil + }, + // Virtual methods of PushSrc collide with BaseSrc + func(r *typesystem.Registry) error { + base := r.FindNamespaceByName("GstBase-1") + + pushsrc := base.FindLocalTypeByGIRName("PushSrc").(*typesystem.Class) + + pushsrc.FindVirtualMethod("alloc").ParentName = "ParentAllocPushSrc" + pushsrc.FindVirtualMethod("fill").ParentName = "ParentFillPushSrc" + + return nil + }, + // Virtual methods of AudioSink collide with BaseSink + func(r *typesystem.Registry) error { + audio := r.FindNamespaceByName("GstAudio-1") + + audioSink := audio.FindLocalTypeByGIRName("AudioSink").(*typesystem.Class) + + audioSink.FindVirtualMethod("prepare").ParentName = "ParentPrepareAudioSink" + audioSink.FindVirtualMethod("stop").ParentName = "ParentStopAudioSink" return nil },