mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-27 19:43:00 +00:00
Fix Gst.Buffer bindings
This commit is contained in:
parent
5eef87e58a
commit
4b72aea9d5
8 changed files with 317 additions and 154 deletions
|
@ -35,7 +35,7 @@
|
|||
|
||||
|
||||
|
||||
<Member MemberName=".ctor"><MemberSignature Language="C#" Value="public Buffer ();" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><Parameters /><Docs><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName=".ctor">
|
||||
<Member MemberName=".ctor"><MemberSignature Language="C#" Value="public Buffer ();" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><Parameters /><Docs><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public Buffer (byte[] data);" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><Parameters><Parameter Name="data" Type="System.Byte[]" /></Parameters><Docs><param name="data">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName=".ctor">
|
||||
<MemberSignature Language="C#" Value="public Buffer (IntPtr raw);" />
|
||||
<MemberType>Constructor</MemberType>
|
||||
<Parameters><Parameter Name="raw" Type="System.IntPtr" /></Parameters>
|
||||
|
@ -57,12 +57,12 @@
|
|||
<Parameters><Parameter Name="offset" Type="System.UInt32" /><Parameter Name="size" Type="System.UInt32" /></Parameters>
|
||||
<Docs><param name="offset">To be added.</param><param name="size">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs>
|
||||
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Data">
|
||||
<MemberSignature Language="C#" Value="public byte Data { get; }" />
|
||||
<MemberSignature Language="C#" Value="public byte[] Data { set; get; }" />
|
||||
<MemberType>Property</MemberType>
|
||||
<ReturnValue><ReturnType>System.Byte</ReturnType></ReturnValue>
|
||||
<ReturnValue><ReturnType>System.Byte[]</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs>
|
||||
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Duration">
|
||||
<MemberSignature Language="C#" Value="public ulong Duration { get; }" />
|
||||
<MemberSignature Language="C#" Value="public ulong Duration { set; get; }" />
|
||||
<MemberType>Property</MemberType>
|
||||
<ReturnValue><ReturnType>System.UInt64</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs>
|
||||
|
@ -82,36 +82,19 @@
|
|||
<ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue>
|
||||
<Parameters><Parameter Name="buf2" Type="Gst.Buffer" /></Parameters>
|
||||
<Docs><param name="buf2">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs>
|
||||
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Join">
|
||||
<MemberSignature Language="C#" Value="public Gst.Buffer Join (Gst.Buffer buf2);" />
|
||||
<MemberType>Method</MemberType>
|
||||
<ReturnValue><ReturnType>Gst.Buffer</ReturnType></ReturnValue>
|
||||
<Parameters><Parameter Name="buf2" Type="Gst.Buffer" /></Parameters>
|
||||
<Docs><param name="buf2">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs>
|
||||
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="MakeMetadataWritable">
|
||||
<MemberSignature Language="C#" Value="public Gst.Buffer MakeMetadataWritable ();" />
|
||||
<MemberType>Method</MemberType>
|
||||
<ReturnValue><ReturnType>Gst.Buffer</ReturnType></ReturnValue>
|
||||
<Parameters />
|
||||
<Docs><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs>
|
||||
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="MallocData">
|
||||
<MemberSignature Language="C#" Value="public byte MallocData { get; }" />
|
||||
<MemberType>Property</MemberType>
|
||||
<ReturnValue><ReturnType>System.Byte</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs>
|
||||
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Merge">
|
||||
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Item"><MemberSignature Language="C#" Value="public byte this[uint index] { set; get; }" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Byte</ReturnType></ReturnValue><Parameters><Parameter Name="index" Type="System.UInt32" /></Parameters><Docs><param name="index">To be added.</param><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs></Member><Member MemberName="MakeMetadataWritable"><MemberSignature Language="C#" Value="public void MakeMetadataWritable ();" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName="Merge">
|
||||
<MemberSignature Language="C#" Value="public Gst.Buffer Merge (Gst.Buffer buf2);" />
|
||||
<MemberType>Method</MemberType>
|
||||
<ReturnValue><ReturnType>Gst.Buffer</ReturnType></ReturnValue>
|
||||
<Parameters><Parameter Name="buf2" Type="Gst.Buffer" /></Parameters>
|
||||
<Docs><param name="buf2">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs>
|
||||
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Offset">
|
||||
<MemberSignature Language="C#" Value="public ulong Offset { get; }" />
|
||||
<MemberSignature Language="C#" Value="public ulong Offset { set; get; }" />
|
||||
<MemberType>Property</MemberType>
|
||||
<ReturnValue><ReturnType>System.UInt64</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs>
|
||||
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="OffsetEnd">
|
||||
<MemberSignature Language="C#" Value="public ulong OffsetEnd { get; }" />
|
||||
<MemberSignature Language="C#" Value="public ulong OffsetEnd { set; get; }" />
|
||||
<MemberType>Property</MemberType>
|
||||
<ReturnValue><ReturnType>System.UInt64</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs>
|
||||
|
@ -126,16 +109,15 @@
|
|||
<ReturnValue><ReturnType>Gst.Buffer</ReturnType></ReturnValue>
|
||||
<Parameters><Parameter Name="offset" Type="System.UInt32" /><Parameter Name="buf2" Type="Gst.Buffer" /><Parameter Name="len" Type="System.UInt32" /></Parameters>
|
||||
<Docs><param name="offset">To be added.</param><param name="buf2">To be added.</param><param name="len">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs>
|
||||
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Stamp">
|
||||
<MemberSignature Language="C#" Value="public void Stamp (Gst.Buffer src);" />
|
||||
<MemberType>Method</MemberType>
|
||||
<ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue>
|
||||
<Parameters><Parameter Name="src" Type="Gst.Buffer" /></Parameters>
|
||||
<Docs><param name="src">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs>
|
||||
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Timestamp">
|
||||
<MemberSignature Language="C#" Value="public ulong Timestamp { get; }" />
|
||||
<MemberSignature Language="C#" Value="public ulong Timestamp { set; get; }" />
|
||||
<MemberType>Property</MemberType>
|
||||
<ReturnValue><ReturnType>System.UInt64</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs>
|
||||
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="TryNewAndAlloc"><MemberSignature Language="C#" Value="public static Gst.Buffer TryNewAndAlloc (uint size);" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>Gst.Buffer</ReturnType></ReturnValue><Parameters><Parameter Name="size" Type="System.UInt32" /></Parameters><Docs><param name="size">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs></Member></Members>
|
||||
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member></Members>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<AttributeName>System.Reflection.DefaultMember("Item")</AttributeName>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Type>
|
||||
|
|
|
@ -17,96 +17,68 @@
|
|||
<remarks>To be added.</remarks>
|
||||
</Docs>
|
||||
<Members>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<Member MemberName="DeltaUnit">
|
||||
<MemberSignature Language="C#" Value="DeltaUnit" />
|
||||
<MemberType>Field</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>0.9.5.99</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Gst.BufferFlags</ReturnType>
|
||||
</ReturnValue>
|
||||
<Docs>
|
||||
<summary>To be added.</summary>
|
||||
</Docs>
|
||||
</Member>
|
||||
<Member MemberName="Discont">
|
||||
<ReturnValue><ReturnType>Gst.BufferFlags</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary></Docs>
|
||||
</Member><Member MemberName="Discont">
|
||||
<MemberSignature Language="C#" Value="Discont" />
|
||||
<MemberType>Field</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>0.9.5.99</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Gst.BufferFlags</ReturnType>
|
||||
</ReturnValue>
|
||||
<Docs>
|
||||
<summary>To be added.</summary>
|
||||
</Docs>
|
||||
</Member>
|
||||
<Member MemberName="Gap">
|
||||
<ReturnValue><ReturnType>Gst.BufferFlags</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary></Docs>
|
||||
</Member><Member MemberName="Gap">
|
||||
<MemberSignature Language="C#" Value="Gap" />
|
||||
<MemberType>Field</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>0.9.5.99</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Gst.BufferFlags</ReturnType>
|
||||
</ReturnValue>
|
||||
<Docs>
|
||||
<summary>To be added.</summary>
|
||||
</Docs>
|
||||
</Member>
|
||||
<Member MemberName="InCaps">
|
||||
<ReturnValue><ReturnType>Gst.BufferFlags</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary></Docs>
|
||||
</Member><Member MemberName="InCaps">
|
||||
<MemberSignature Language="C#" Value="InCaps" />
|
||||
<MemberType>Field</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>0.9.5.99</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Gst.BufferFlags</ReturnType>
|
||||
</ReturnValue>
|
||||
<Docs>
|
||||
<summary>To be added.</summary>
|
||||
</Docs>
|
||||
</Member>
|
||||
<Member MemberName="Last">
|
||||
<ReturnValue><ReturnType>Gst.BufferFlags</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary></Docs>
|
||||
</Member><Member MemberName="Last">
|
||||
<MemberSignature Language="C#" Value="Last" />
|
||||
<MemberType>Field</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>0.9.5.99</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Gst.BufferFlags</ReturnType>
|
||||
</ReturnValue>
|
||||
<Docs>
|
||||
<summary>To be added.</summary>
|
||||
</Docs>
|
||||
</Member>
|
||||
<Member MemberName="Preroll">
|
||||
<ReturnValue><ReturnType>Gst.BufferFlags</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary></Docs>
|
||||
</Member><Member MemberName="Preroll">
|
||||
<MemberSignature Language="C#" Value="Preroll" />
|
||||
<MemberType>Field</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>0.9.5.99</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Gst.BufferFlags</ReturnType>
|
||||
</ReturnValue>
|
||||
<Docs>
|
||||
<summary>To be added.</summary>
|
||||
</Docs>
|
||||
</Member>
|
||||
<Member MemberName="Readonly">
|
||||
<ReturnValue><ReturnType>Gst.BufferFlags</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary></Docs>
|
||||
</Member><Member MemberName="Readonly">
|
||||
<MemberSignature Language="C#" Value="Readonly" />
|
||||
<MemberType>Field</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>0.9.5.99</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Gst.BufferFlags</ReturnType>
|
||||
</ReturnValue>
|
||||
<Docs>
|
||||
<summary>To be added.</summary>
|
||||
</Docs>
|
||||
<ReturnValue><ReturnType>Gst.BufferFlags</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary></Docs>
|
||||
</Member>
|
||||
</Members>
|
||||
</Type>
|
||||
|
|
|
@ -12,70 +12,50 @@
|
|||
<remarks>To be added.</remarks>
|
||||
</Docs>
|
||||
<Members>
|
||||
|
||||
|
||||
|
||||
|
||||
<Member MemberName="Count">
|
||||
<MemberSignature Language="C#" Value="Count" />
|
||||
<MemberType>Field</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>0.9.5.99</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Gst.TagFlags</ReturnType>
|
||||
</ReturnValue>
|
||||
<Docs>
|
||||
<summary>To be added.</summary>
|
||||
</Docs>
|
||||
</Member>
|
||||
<Member MemberName="Decoded">
|
||||
<ReturnValue><ReturnType>Gst.TagFlags</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary></Docs>
|
||||
</Member><Member MemberName="Decoded">
|
||||
<MemberSignature Language="C#" Value="Decoded" />
|
||||
<MemberType>Field</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>0.9.5.99</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Gst.TagFlags</ReturnType>
|
||||
</ReturnValue>
|
||||
<Docs>
|
||||
<summary>To be added.</summary>
|
||||
</Docs>
|
||||
</Member>
|
||||
<Member MemberName="Encoded">
|
||||
<ReturnValue><ReturnType>Gst.TagFlags</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary></Docs>
|
||||
</Member><Member MemberName="Encoded">
|
||||
<MemberSignature Language="C#" Value="Encoded" />
|
||||
<MemberType>Field</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>0.9.5.99</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Gst.TagFlags</ReturnType>
|
||||
</ReturnValue>
|
||||
<Docs>
|
||||
<summary>To be added.</summary>
|
||||
</Docs>
|
||||
</Member>
|
||||
<Member MemberName="Meta">
|
||||
<ReturnValue><ReturnType>Gst.TagFlags</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary></Docs>
|
||||
</Member><Member MemberName="Meta">
|
||||
<MemberSignature Language="C#" Value="Meta" />
|
||||
<MemberType>Field</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>0.9.5.99</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Gst.TagFlags</ReturnType>
|
||||
</ReturnValue>
|
||||
<Docs>
|
||||
<summary>To be added.</summary>
|
||||
</Docs>
|
||||
</Member>
|
||||
<Member MemberName="Undefined">
|
||||
<ReturnValue><ReturnType>Gst.TagFlags</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary></Docs>
|
||||
</Member><Member MemberName="Undefined">
|
||||
<MemberSignature Language="C#" Value="Undefined" />
|
||||
<MemberType>Field</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>0.9.5.99</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Gst.TagFlags</ReturnType>
|
||||
</ReturnValue>
|
||||
<Docs>
|
||||
<summary>To be added.</summary>
|
||||
</Docs>
|
||||
<ReturnValue><ReturnType>Gst.TagFlags</ReturnType></ReturnValue>
|
||||
<Docs><summary>To be added.</summary></Docs>
|
||||
</Member>
|
||||
</Members>
|
||||
</Type>
|
||||
|
|
|
@ -0,0 +1,197 @@
|
|||
[DllImport ("gstreamer-0.10.dll") ]
|
||||
static extern IntPtr gst_buffer_try_new_and_alloc (uint size);
|
||||
|
||||
public Buffer (uint size) {
|
||||
IntPtr raw = gst_buffer_try_new_and_alloc (size);
|
||||
if (raw == IntPtr.Zero)
|
||||
throw new OutOfMemoryException ();
|
||||
Raw = raw;
|
||||
}
|
||||
|
||||
public Buffer (byte[] data) : this () {
|
||||
Data = data;
|
||||
}
|
||||
|
||||
[DllImport ("gstreamersharpglue-0.10") ]
|
||||
extern static uint gstsharp_gst_buffer_get_data_offset ();
|
||||
[DllImport ("gstreamersharpglue-0.10") ]
|
||||
extern static void gstsharp_gst_buffer_set_data (IntPtr handle, IntPtr data, uint size);
|
||||
[DllImport ("libglib-2.0-0.dll") ]
|
||||
extern static IntPtr g_try_malloc (int size);
|
||||
|
||||
static uint data_offset = gstsharp_gst_buffer_get_data_offset ();
|
||||
public byte[] Data {
|
||||
get {
|
||||
IntPtr raw_ptr;
|
||||
unsafe {
|
||||
raw_ptr = * ( (IntPtr *) ( ( (byte*) Handle) + data_offset));
|
||||
}
|
||||
|
||||
byte[] data = new byte[Size];
|
||||
Marshal.Copy (raw_ptr, data, 0, (int) Size);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
set {
|
||||
if (!IsWritable)
|
||||
throw new ApplicationException ();
|
||||
|
||||
IntPtr raw_ptr = g_try_malloc (value.Length);
|
||||
if (raw_ptr == IntPtr.Zero)
|
||||
throw new OutOfMemoryException ();
|
||||
|
||||
Marshal.Copy (value, 0, raw_ptr, value.Length);
|
||||
gstsharp_gst_buffer_set_data (Handle, raw_ptr, (uint) value.Length);
|
||||
}
|
||||
}
|
||||
|
||||
public byte this [uint index] {
|
||||
get {
|
||||
if (index >= Size)
|
||||
throw new ArgumentOutOfRangeException ();
|
||||
|
||||
unsafe {
|
||||
byte **raw_ptr = (byte **) ( ( (byte*) Handle) + data_offset);
|
||||
return * ( (*raw_ptr) + index);
|
||||
}
|
||||
}
|
||||
set {
|
||||
if (index >= Size)
|
||||
throw new ArgumentOutOfRangeException ();
|
||||
if (!IsWritable)
|
||||
throw new ApplicationException ();
|
||||
|
||||
unsafe {
|
||||
byte **raw_ptr = (byte **) ( ( (byte*) Handle) + data_offset);
|
||||
* ( (*raw_ptr) + index) = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[DllImport ("gstreamer-0.10.dll") ]
|
||||
static extern IntPtr gst_buffer_make_metadata_writable (IntPtr raw);
|
||||
|
||||
/* FIXME: This is not optimal */
|
||||
public void MakeMetadataWritable() {
|
||||
if (IsMetadataWritable)
|
||||
return;
|
||||
|
||||
IntPtr sub = gst_buffer_create_sub (Raw, 0, Size);
|
||||
Raw = sub;
|
||||
/* ^--- Takes a second ref, not good */
|
||||
Unref (Raw);
|
||||
/* ^--- Sets Owned = false, wrong! */
|
||||
Owned = true;
|
||||
}
|
||||
|
||||
[DllImport ("gstreamer-0.10.dll") ]
|
||||
static extern IntPtr gst_buffer_get_caps (IntPtr raw);
|
||||
[DllImport ("gstreamer-0.10.dll") ]
|
||||
static extern void gst_buffer_set_caps (IntPtr raw, IntPtr caps);
|
||||
|
||||
public Gst.Caps Caps {
|
||||
get {
|
||||
IntPtr raw_ret = gst_buffer_get_caps (Handle);
|
||||
Gst.Caps ret = raw_ret == IntPtr.Zero ? null : (Gst.Caps) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Caps), true);
|
||||
return ret;
|
||||
}
|
||||
set {
|
||||
if (!IsMetadataWritable)
|
||||
throw new ApplicationException ();
|
||||
gst_buffer_set_caps (Handle, value == null ? IntPtr.Zero : value.Handle);
|
||||
}
|
||||
}
|
||||
|
||||
[DllImport ("gstreamersharpglue-0.10") ]
|
||||
extern static uint gstsharp_gst_buffer_get_timestamp_offset ();
|
||||
static uint timestamp_offset = gstsharp_gst_buffer_get_timestamp_offset ();
|
||||
|
||||
public ulong Timestamp {
|
||||
get {
|
||||
unsafe {
|
||||
ulong *raw_ptr = ( (ulong*) ( ( (byte*) Handle) + timestamp_offset));
|
||||
return *raw_ptr;
|
||||
}
|
||||
}
|
||||
|
||||
set {
|
||||
if (!IsMetadataWritable)
|
||||
throw new ApplicationException ();
|
||||
|
||||
unsafe {
|
||||
ulong *raw_ptr = ( (ulong*) ( ( (byte*) Handle) + timestamp_offset));
|
||||
*raw_ptr = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[DllImport ("gstreamersharpglue-0.10") ]
|
||||
extern static uint gstsharp_gst_buffer_get_duration_offset ();
|
||||
static uint duration_offset = gstsharp_gst_buffer_get_duration_offset ();
|
||||
|
||||
public ulong Duration {
|
||||
get {
|
||||
unsafe {
|
||||
ulong *raw_ptr = ( (ulong*) ( ( (byte*) Handle) + duration_offset));
|
||||
return *raw_ptr;
|
||||
}
|
||||
}
|
||||
|
||||
set {
|
||||
if (!IsMetadataWritable)
|
||||
throw new ApplicationException ();
|
||||
|
||||
unsafe {
|
||||
ulong *raw_ptr = ( (ulong*) ( ( (byte*) Handle) + duration_offset));
|
||||
*raw_ptr = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[DllImport ("gstreamersharpglue-0.10") ]
|
||||
extern static uint gstsharp_gst_buffer_get_offset_offset ();
|
||||
static uint offset_offset = gstsharp_gst_buffer_get_offset_offset ();
|
||||
|
||||
public ulong Offset {
|
||||
get {
|
||||
unsafe {
|
||||
ulong *raw_ptr = ( (ulong*) ( ( (byte*) Handle) + offset_offset));
|
||||
return *raw_ptr;
|
||||
}
|
||||
}
|
||||
|
||||
set {
|
||||
if (!IsMetadataWritable)
|
||||
throw new ApplicationException ();
|
||||
|
||||
unsafe {
|
||||
ulong *raw_ptr = ( (ulong*) ( ( (byte*) Handle) + offset_offset));
|
||||
*raw_ptr = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[DllImport ("gstreamersharpglue-0.10") ]
|
||||
extern static uint gstsharp_gst_buffer_get_offset_end_offset ();
|
||||
static uint offset_end_offset = gstsharp_gst_buffer_get_offset_end_offset ();
|
||||
|
||||
public ulong OffsetEnd {
|
||||
get {
|
||||
unsafe {
|
||||
ulong *raw_ptr = ( (ulong*) ( ( (byte*) Handle) + offset_end_offset));
|
||||
return *raw_ptr;
|
||||
}
|
||||
}
|
||||
|
||||
set {
|
||||
if (!IsMetadataWritable)
|
||||
throw new ApplicationException ();
|
||||
|
||||
unsafe {
|
||||
ulong *raw_ptr = ( (ulong*) ( ( (byte*) Handle) + offset_end_offset));
|
||||
*raw_ptr = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -23,7 +23,26 @@
|
|||
|
||||
<change-node-type path="/api/namespace/object[@name='Buffer']">boxed</change-node-type>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']" name="opaque">true</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/method[@name='GetCaps']/return-type" name="owned">true</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/method[@cname='gst_buffer_get_type']" name="new_flag">1</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/method[@cname='gst_buffer_get_caps']/return-type" name="owned">true</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/field[@name='Data']" name="hidden">1</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/field[@name='Duration']" name="hidden">1</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/field[@name='MallocData']" name="hidden">1</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/field[@name='Offset']" name="hidden">1</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/field[@name='OffsetEnd']" name="hidden">1</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/field[@name='Timestamp']" name="hidden">1</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/field[@name='Caps']" name="hidden">1</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/field[@name='FreeFunc']" name="hidden">1</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/method[@cname='gst_buffer_get_caps']" name="hidden">1</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/method[@cname='gst_buffer_set_caps']" name="hidden">1</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/method[@cname='gst_buffer_stamp']" name="hidden">1</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/method[@cname='gst_buffer_join']" name="hidden">1</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/method[@cname='gst_buffer_make_metadata_writable']" name="hidden">1</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/constructor[@cname='gst_buffer_new_and_alloc']" name="hidden">1</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/method[@cname='gst_buffer_try_new_and_alloc']" name="hidden">1</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/method[@cname='gst_buffer_create_sub']/return-type" name="owned">true</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/method[@cname='gst_buffer_merge']/return-type" name="owned">true</attr>
|
||||
<attr path="/api/namespace/boxed[@name='Buffer']/method[@cname='gst_buffer_span']/return-type" name="owned">true</attr>
|
||||
|
||||
<attr path="/api/namespace/enum[@name='BufferFlag']" name="name">BufferFlags</attr>
|
||||
<attr path="/api/namespace/enum[@name='BufferFlags']/member[@cname='GST_BUFFER_FLAG_READONLY']" name="value">MiniObjectFlags.Readonly</attr>
|
||||
|
|
|
@ -4,7 +4,6 @@ libgstreamersharpglue_0_10_la_SOURCES = \
|
|||
buffer.c \
|
||||
clock.c \
|
||||
message.c \
|
||||
miniobject.c \
|
||||
bin.c \
|
||||
gerror.c \
|
||||
gobject.c
|
||||
|
|
|
@ -1,7 +1,46 @@
|
|||
#include <gst/gst.h>
|
||||
|
||||
guint
|
||||
gstsharp_gst_buffer_refcount (GstBuffer * buf)
|
||||
void
|
||||
gstsharp_gst_buffer_set_data (GstBuffer * buffer, guint8 * new_data, guint size)
|
||||
{
|
||||
return GST_MINI_OBJECT_REFCOUNT_VALUE (buf);
|
||||
g_return_if_fail (gst_buffer_is_writable (buffer));
|
||||
|
||||
if (buffer->malloc_data && buffer->free_func)
|
||||
buffer->free_func (buffer->malloc_data);
|
||||
else if (buffer->malloc_data)
|
||||
g_free (buffer->malloc_data);
|
||||
|
||||
buffer->malloc_data = buffer->data = new_data;
|
||||
buffer->size = size;
|
||||
buffer->free_func = NULL;
|
||||
}
|
||||
|
||||
guint
|
||||
gstsharp_gst_buffer_get_data_offset (void)
|
||||
{
|
||||
return (guint) G_STRUCT_OFFSET (GstBuffer, data);
|
||||
}
|
||||
|
||||
guint
|
||||
gstsharp_gst_buffer_get_timestamp_offset (void)
|
||||
{
|
||||
return (guint) G_STRUCT_OFFSET (GstBuffer, timestamp);
|
||||
}
|
||||
|
||||
guint
|
||||
gstsharp_gst_buffer_get_duration_offset (void)
|
||||
{
|
||||
return (guint) G_STRUCT_OFFSET (GstBuffer, duration);
|
||||
}
|
||||
|
||||
guint
|
||||
gstsharp_gst_buffer_get_offset_offset (void)
|
||||
{
|
||||
return (guint) G_STRUCT_OFFSET (GstBuffer, offset);
|
||||
}
|
||||
|
||||
guint
|
||||
gstsharp_gst_buffer_get_offset_end_offset (void)
|
||||
{
|
||||
return (guint) G_STRUCT_OFFSET (GstBuffer, offset_end);
|
||||
}
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
// Thie file is mostly bits and pieces snipped from the gtk-sharp/glib/glue/object.c code
|
||||
// By Mike Kestner
|
||||
|
||||
#include <glib-object.h>
|
||||
#include <gst/gstminiobject.h>
|
||||
|
||||
GType
|
||||
gstsharp_get_type_id (GObject * obj)
|
||||
{
|
||||
return G_TYPE_FROM_INSTANCE (obj);
|
||||
}
|
||||
|
||||
GType
|
||||
gstsharp_register_type (gchar * name, GType parent)
|
||||
{
|
||||
GTypeQuery query;
|
||||
GTypeInfo info = { 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL };
|
||||
|
||||
g_type_query (parent, &query);
|
||||
|
||||
info.class_size = query.class_size;
|
||||
info.instance_size = query.instance_size;
|
||||
|
||||
return g_type_register_static (parent, name, &info, 0);
|
||||
}
|
Loading…
Reference in a new issue