summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2020-01-28 16:50:57 +0200
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>2020-09-29 16:47:12 +0000
commita542bc599c8b6cf15c15de5b0080a2085b3dcabd (patch)
tree0cf2b928f325305f88834769c435a881d18c9ce1
parent2651dc3c4d715b1d99fdebc0ee7c72c141831d65 (diff)
Declare GstVideoOverlayComposition/Rectangle as opaque type and subclasses of Gst.MiniObject1.16
This changes the API. Without this change all usage will cause memory corruption and simply does not work. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-sharp/-/merge_requests/20>
-rw-r--r--sources/generated/Gst.Video/Global.cs6
-rw-r--r--sources/generated/Gst.Video/VideoOverlayComposition.cs109
-rw-r--r--sources/generated/Gst.Video/VideoOverlayCompositionMeta.cs14
-rw-r--r--sources/generated/Gst.Video/VideoOverlayRectangle.cs7
-rw-r--r--sources/generated/gstreamer-sharp-api.xml4
-rw-r--r--sources/gstreamer-sharp.metadata6
6 files changed, 56 insertions, 90 deletions
diff --git a/sources/generated/Gst.Video/Global.cs b/sources/generated/Gst.Video/Global.cs
index 6fff02e..82a2eac 100644
--- a/sources/generated/Gst.Video/Global.cs
+++ b/sources/generated/Gst.Video/Global.cs
@@ -52,15 +52,13 @@ namespace Gst.Video {
static extern IntPtr gst_buffer_add_video_overlay_composition_meta(IntPtr buf, IntPtr comp);
public static Gst.Video.VideoOverlayCompositionMeta BufferAddVideoOverlayCompositionMeta(Gst.Buffer buf, Gst.Video.VideoOverlayComposition comp) {
- IntPtr native_comp = GLib.Marshaller.StructureToPtrAlloc (comp);
- IntPtr raw_ret = gst_buffer_add_video_overlay_composition_meta(buf == null ? IntPtr.Zero : buf.Handle, native_comp);
+ IntPtr raw_ret = gst_buffer_add_video_overlay_composition_meta(buf == null ? IntPtr.Zero : buf.Handle, comp == null ? IntPtr.Zero : comp.Handle);
Gst.Video.VideoOverlayCompositionMeta ret = Gst.Video.VideoOverlayCompositionMeta.New (raw_ret);
- Marshal.FreeHGlobal (native_comp);
return ret;
}
public static Gst.Video.VideoOverlayCompositionMeta BufferAddVideoOverlayCompositionMeta(Gst.Buffer buf) {
- return BufferAddVideoOverlayCompositionMeta (buf, Gst.Video.VideoOverlayComposition.Zero);
+ return BufferAddVideoOverlayCompositionMeta (buf, null);
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
diff --git a/sources/generated/Gst.Video/VideoOverlayComposition.cs b/sources/generated/Gst.Video/VideoOverlayComposition.cs
index 66b2638..0c59ec0 100644
--- a/sources/generated/Gst.Video/VideoOverlayComposition.cs
+++ b/sources/generated/Gst.Video/VideoOverlayComposition.cs
@@ -9,26 +9,7 @@ namespace Gst.Video {
using System.Runtime.InteropServices;
#region Autogenerated code
- [StructLayout(LayoutKind.Sequential)]
- public partial struct VideoOverlayComposition : IEquatable<VideoOverlayComposition> {
-
-
- public static Gst.Video.VideoOverlayComposition Zero = new Gst.Video.VideoOverlayComposition ();
-
- public static Gst.Video.VideoOverlayComposition New(IntPtr raw) {
- if (raw == IntPtr.Zero)
- return Gst.Video.VideoOverlayComposition.Zero;
- return (Gst.Video.VideoOverlayComposition) Marshal.PtrToStructure (raw, typeof (Gst.Video.VideoOverlayComposition));
- }
-
- [DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
- static extern IntPtr gst_video_overlay_composition_new(IntPtr rectangle);
-
- public static VideoOverlayComposition New(Gst.Video.VideoOverlayRectangle rectangle)
- {
- VideoOverlayComposition result = VideoOverlayComposition.New (gst_video_overlay_composition_new(rectangle == null ? IntPtr.Zero : rectangle.Handle));
- return result;
- }
+ public partial class VideoOverlayComposition : Gst.MiniObject {
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_overlay_composition_get_type();
@@ -45,38 +26,35 @@ namespace Gst.Video {
static extern void gst_video_overlay_composition_add_rectangle(IntPtr raw, IntPtr rectangle);
public void AddRectangle(Gst.Video.VideoOverlayRectangle rectangle) {
- IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
- System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
- gst_video_overlay_composition_add_rectangle(this_as_native, rectangle == null ? IntPtr.Zero : rectangle.Handle);
- ReadNative (this_as_native, ref this);
- System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
+ gst_video_overlay_composition_add_rectangle(Handle, rectangle == null ? IntPtr.Zero : rectangle.Handle);
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gst_video_overlay_composition_blend(IntPtr raw, IntPtr video_buf);
public bool Blend(Gst.Video.VideoFrame video_buf) {
- IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
- System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
IntPtr native_video_buf = GLib.Marshaller.StructureToPtrAlloc (video_buf);
- bool raw_ret = gst_video_overlay_composition_blend(this_as_native, native_video_buf);
+ bool raw_ret = gst_video_overlay_composition_blend(Handle, native_video_buf);
bool ret = raw_ret;
- ReadNative (this_as_native, ref this);
- System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
Marshal.FreeHGlobal (native_video_buf);
return ret;
}
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+ static extern IntPtr gst_video_overlay_composition_copy(IntPtr raw);
+
+ public Gst.Video.VideoOverlayComposition Copy() {
+ IntPtr raw_ret = gst_video_overlay_composition_copy(Handle);
+ Gst.Video.VideoOverlayComposition ret = raw_ret == IntPtr.Zero ? null : (Gst.Video.VideoOverlayComposition) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Video.VideoOverlayComposition), true);
+ return ret;
+ }
+
+ [DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_overlay_composition_get_rectangle(IntPtr raw, uint n);
public Gst.Video.VideoOverlayRectangle GetRectangle(uint n) {
- IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
- System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
- IntPtr raw_ret = gst_video_overlay_composition_get_rectangle(this_as_native, n);
+ IntPtr raw_ret = gst_video_overlay_composition_get_rectangle(Handle, n);
Gst.Video.VideoOverlayRectangle ret = raw_ret == IntPtr.Zero ? null : (Gst.Video.VideoOverlayRectangle) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Video.VideoOverlayRectangle), false);
- ReadNative (this_as_native, ref this);
- System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
@@ -85,12 +63,8 @@ namespace Gst.Video {
public uint Seqnum {
get {
- IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
- System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
- uint raw_ret = gst_video_overlay_composition_get_seqnum(this_as_native);
+ uint raw_ret = gst_video_overlay_composition_get_seqnum(Handle);
uint ret = raw_ret;
- ReadNative (this_as_native, ref this);
- System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
}
@@ -99,12 +73,8 @@ namespace Gst.Video {
static extern IntPtr gst_video_overlay_composition_make_writable(IntPtr raw);
public Gst.Video.VideoOverlayComposition MakeWritable() {
- IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
- System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
- IntPtr raw_ret = gst_video_overlay_composition_make_writable(this_as_native);
- Gst.Video.VideoOverlayComposition ret = Gst.Video.VideoOverlayComposition.New (raw_ret);
- ReadNative (this_as_native, ref this);
- System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
+ IntPtr raw_ret = gst_video_overlay_composition_make_writable(Handle);
+ Gst.Video.VideoOverlayComposition ret = raw_ret == IntPtr.Zero ? null : (Gst.Video.VideoOverlayComposition) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Video.VideoOverlayComposition), true);
return ret;
}
@@ -112,47 +82,36 @@ namespace Gst.Video {
static extern uint gst_video_overlay_composition_n_rectangles(IntPtr raw);
public uint NRectangles() {
- IntPtr this_as_native = System.Runtime.InteropServices.Marshal.AllocHGlobal (System.Runtime.InteropServices.Marshal.SizeOf (this));
- System.Runtime.InteropServices.Marshal.StructureToPtr (this, this_as_native, false);
- uint raw_ret = gst_video_overlay_composition_n_rectangles(this_as_native);
+ uint raw_ret = gst_video_overlay_composition_n_rectangles(Handle);
uint ret = raw_ret;
- ReadNative (this_as_native, ref this);
- System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native);
return ret;
}
- static void ReadNative (IntPtr native, ref Gst.Video.VideoOverlayComposition target)
- {
- target = New (native);
- }
+ public VideoOverlayComposition(IntPtr raw) : base(raw) {}
- public bool Equals (VideoOverlayComposition other)
- {
- return true;
- }
+ [DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+ static extern IntPtr gst_video_overlay_composition_new(IntPtr rectangle);
- public override bool Equals (object other)
+ public VideoOverlayComposition (Gst.Video.VideoOverlayRectangle rectangle)
{
- return other is VideoOverlayComposition && Equals ((VideoOverlayComposition) other);
+ Raw = gst_video_overlay_composition_new(rectangle == null ? IntPtr.Zero : rectangle.Handle);
}
- public override int GetHashCode ()
- {
- return this.GetType ().FullName.GetHashCode ();
- }
- public static explicit operator GLib.Value (Gst.Video.VideoOverlayComposition boxed)
- {
- GLib.Value val = GLib.Value.Empty;
- val.Init (Gst.Video.VideoOverlayComposition.GType);
- val.Val = boxed;
- return val;
- }
+ // Internal representation of the wrapped structure ABI.
+ static GLib.AbiStruct _abi_info = null;
+ static public new GLib.AbiStruct abi_info {
+ get {
+ if (_abi_info == null)
+ _abi_info = new GLib.AbiStruct (Gst.MiniObject.abi_info.Fields);
- public static explicit operator Gst.Video.VideoOverlayComposition (GLib.Value val)
- {
- return (Gst.Video.VideoOverlayComposition) val.Val;
+ return _abi_info;
+ }
}
+
+
+ // End of the ABI representation.
+
#endregion
}
}
diff --git a/sources/generated/Gst.Video/VideoOverlayCompositionMeta.cs b/sources/generated/Gst.Video/VideoOverlayCompositionMeta.cs
index a84948f..afe6558 100644
--- a/sources/generated/Gst.Video/VideoOverlayCompositionMeta.cs
+++ b/sources/generated/Gst.Video/VideoOverlayCompositionMeta.cs
@@ -14,9 +14,13 @@ namespace Gst.Video {
public Gst.Meta Meta;
private IntPtr _overlay;
-
- public Gst.Video.VideoOverlayComposition overlay {
- get { return Gst.Video.VideoOverlayComposition.New (_overlay); }
+ public Gst.Video.VideoOverlayComposition Overlay {
+ get {
+ return _overlay == IntPtr.Zero ? null : (Gst.Video.VideoOverlayComposition) GLib.Opaque.GetOpaque (_overlay, typeof (Gst.Video.VideoOverlayComposition), false);
+ }
+ set {
+ _overlay = value == null ? IntPtr.Zero : value.Handle;
+ }
}
public static Gst.Video.VideoOverlayCompositionMeta Zero = new Gst.Video.VideoOverlayCompositionMeta ();
@@ -40,7 +44,7 @@ namespace Gst.Video {
public bool Equals (VideoOverlayCompositionMeta other)
{
- return true && Meta.Equals (other.Meta) && overlay.Equals (other.overlay);
+ return true && Meta.Equals (other.Meta) && Overlay.Equals (other.Overlay);
}
public override bool Equals (object other)
@@ -50,7 +54,7 @@ namespace Gst.Video {
public override int GetHashCode ()
{
- return this.GetType ().FullName.GetHashCode () ^ Meta.GetHashCode () ^ overlay.GetHashCode ();
+ return this.GetType ().FullName.GetHashCode () ^ Meta.GetHashCode () ^ Overlay.GetHashCode ();
}
private static GLib.GType GType {
diff --git a/sources/generated/Gst.Video/VideoOverlayRectangle.cs b/sources/generated/Gst.Video/VideoOverlayRectangle.cs
index 95b32ed..13eacc5 100644
--- a/sources/generated/Gst.Video/VideoOverlayRectangle.cs
+++ b/sources/generated/Gst.Video/VideoOverlayRectangle.cs
@@ -9,7 +9,7 @@ namespace Gst.Video {
using System.Runtime.InteropServices;
#region Autogenerated code
- public partial class VideoOverlayRectangle : GLib.Opaque {
+ public partial class VideoOverlayRectangle : Gst.MiniObject {
[DllImport("libgstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_video_overlay_rectangle_get_type();
@@ -153,11 +153,10 @@ namespace Gst.Video {
// Internal representation of the wrapped structure ABI.
static GLib.AbiStruct _abi_info = null;
- static public GLib.AbiStruct abi_info {
+ static public new GLib.AbiStruct abi_info {
get {
if (_abi_info == null)
- _abi_info = new GLib.AbiStruct (new List<GLib.AbiField>{
- });
+ _abi_info = new GLib.AbiStruct (Gst.MiniObject.abi_info.Fields);
return _abi_info;
}
diff --git a/sources/generated/gstreamer-sharp-api.xml b/sources/generated/gstreamer-sharp-api.xml
index e150cfe..f43841f 100644
--- a/sources/generated/gstreamer-sharp-api.xml
+++ b/sources/generated/gstreamer-sharp-api.xml
@@ -28472,7 +28472,7 @@
<return-type type="guint32" />
</method>
</struct>
- <boxed name="VideoOverlayComposition" cname="GstVideoOverlayComposition" opaque="false" hidden="false">
+ <boxed name="VideoOverlayComposition" cname="GstVideoOverlayComposition" opaque="true" hidden="false" parent="GstMiniObject">
<method name="GetType" cname="gst_video_overlay_composition_get_type" shared="true">
<return-type type="GType" />
</method>
@@ -28541,7 +28541,7 @@
</return-type>
</method>
</struct>
- <boxed name="VideoOverlayRectangle" cname="GstVideoOverlayRectangle" opaque="true" hidden="false">
+ <boxed name="VideoOverlayRectangle" cname="GstVideoOverlayRectangle" opaque="true" hidden="false" parent="GstMiniObject">
<method name="GetType" cname="gst_video_overlay_rectangle_get_type" shared="true">
<return-type type="GType" />
</method>
diff --git a/sources/gstreamer-sharp.metadata b/sources/gstreamer-sharp.metadata
index 6b36566..4dade48 100644
--- a/sources/gstreamer-sharp.metadata
+++ b/sources/gstreamer-sharp.metadata
@@ -68,6 +68,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
<attr path="/api/namespace/boxed[@cname='GstSample']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@cname='GstSample']" name="parent">GstMiniObject</attr>
+ <!-- GstVideoOverlayComposition fixes -->
+ <attr path="/api/namespace/boxed[@cname='GstVideoOverlayComposition']" name="opaque">true</attr>
+ <attr path="/api/namespace/boxed[@cname='GstVideoOverlayComposition']" name="parent">GstMiniObject</attr>
+ <attr path="/api/namespace/boxed[@cname='GstVideoOverlayRectangle']" name="opaque">true</attr>
+ <attr path="/api/namespace/boxed[@cname='GstVideoOverlayRectangle']" name="parent">GstMiniObject</attr>
+
<attr path="/api/namespace/boxed[@cname='GstAudioInfo']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@cname='GstVideoInfo']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@cname='GstAtomicQueue']" name="opaque">true</attr>