// This file was generated by the Gtk# code generator. // Any changes made will be lost if regenerated. namespace Gst.Video { using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; #region Autogenerated code [StructLayout(LayoutKind.Sequential)] public partial struct VideoFrame : IEquatable { private IntPtr _info; public Gst.Video.VideoInfo Info { get { return _info == IntPtr.Zero ? null : (Gst.Video.VideoInfo) GLib.Opaque.GetOpaque (_info, typeof (Gst.Video.VideoInfo), false); } set { _info = value == null ? IntPtr.Zero : value.Handle; } } public Gst.Video.VideoFrameFlags Flags; private IntPtr _buffer; public Gst.Buffer Buffer { get { return _buffer == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (_buffer, typeof (Gst.Buffer), false); } set { _buffer = value == null ? IntPtr.Zero : value.Handle; } } private IntPtr _meta; public int Id; [MarshalAs (UnmanagedType.ByValArray, SizeConst=4)] public IntPtr[] Data; [MarshalAs (UnmanagedType.ByValArray, SizeConst=4)] public Gst.MapInfo[] MapInfo; [MarshalAs (UnmanagedType.ByValArray, SizeConst=4)] private IntPtr[] _gstGstReserved; public static Gst.Video.VideoFrame Zero = new Gst.Video.VideoFrame (); public static Gst.Video.VideoFrame New(IntPtr raw) { if (raw == IntPtr.Zero) return Gst.Video.VideoFrame.Zero; return (Gst.Video.VideoFrame) Marshal.PtrToStructure (raw, typeof (Gst.Video.VideoFrame)); } [DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)] static extern bool gst_video_frame_copy(IntPtr raw, IntPtr src); public bool Copy(Gst.Video.VideoFrame src) { 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_src = GLib.Marshaller.StructureToPtrAlloc (src); bool raw_ret = gst_video_frame_copy(this_as_native, native_src); bool ret = raw_ret; ReadNative (this_as_native, ref this); System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native); Marshal.FreeHGlobal (native_src); return ret; } [DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)] static extern bool gst_video_frame_copy_plane(IntPtr raw, IntPtr src, uint plane); public bool CopyPlane(Gst.Video.VideoFrame src, uint plane) { 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_src = GLib.Marshaller.StructureToPtrAlloc (src); bool raw_ret = gst_video_frame_copy_plane(this_as_native, native_src, plane); bool ret = raw_ret; ReadNative (this_as_native, ref this); System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native); Marshal.FreeHGlobal (native_src); return ret; } [DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)] static extern void gst_video_frame_unmap(IntPtr raw); public void Unmap() { 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_frame_unmap(this_as_native); ReadNative (this_as_native, ref this); System.Runtime.InteropServices.Marshal.FreeHGlobal (this_as_native); } [DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)] static extern bool gst_video_frame_map(IntPtr frame, IntPtr info, IntPtr buffer, int flags); public static bool Map(out Gst.Video.VideoFrame frame, Gst.Video.VideoInfo info, Gst.Buffer buffer, Gst.MapFlags flags) { IntPtr native_frame = Marshal.AllocHGlobal (Marshal.SizeOf (typeof (Gst.Video.VideoFrame))); bool raw_ret = gst_video_frame_map(native_frame, info == null ? IntPtr.Zero : info.Handle, buffer == null ? IntPtr.Zero : buffer.Handle, (int) flags); bool ret = raw_ret; frame = Gst.Video.VideoFrame.New (native_frame); Marshal.FreeHGlobal (native_frame); return ret; } [DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)] static extern bool gst_video_frame_map_id(IntPtr frame, IntPtr info, IntPtr buffer, int id, int flags); public static bool MapId(out Gst.Video.VideoFrame frame, Gst.Video.VideoInfo info, Gst.Buffer buffer, int id, Gst.MapFlags flags) { IntPtr native_frame = Marshal.AllocHGlobal (Marshal.SizeOf (typeof (Gst.Video.VideoFrame))); bool raw_ret = gst_video_frame_map_id(native_frame, info == null ? IntPtr.Zero : info.Handle, buffer == null ? IntPtr.Zero : buffer.Handle, id, (int) flags); bool ret = raw_ret; frame = Gst.Video.VideoFrame.New (native_frame); Marshal.FreeHGlobal (native_frame); return ret; } static void ReadNative (IntPtr native, ref Gst.Video.VideoFrame target) { target = New (native); } public bool Equals (VideoFrame other) { return true && Info.Equals (other.Info) && Flags.Equals (other.Flags) && Buffer.Equals (other.Buffer) && _meta.Equals (other._meta) && Id.Equals (other.Id) && Data.Equals (other.Data) && MapInfo.Equals (other.MapInfo); } public override bool Equals (object other) { return other is VideoFrame && Equals ((VideoFrame) other); } public override int GetHashCode () { return this.GetType ().FullName.GetHashCode () ^ Info.GetHashCode () ^ Flags.GetHashCode () ^ Buffer.GetHashCode () ^ _meta.GetHashCode () ^ Id.GetHashCode () ^ Data.GetHashCode () ^ MapInfo.GetHashCode (); } private static GLib.GType GType { get { return GLib.GType.Pointer; } } #endregion } }