Fix Gst.Buffer bindings

This commit is contained in:
Sebastian Dröge 2009-04-13 13:27:26 +02:00
parent 5eef87e58a
commit 4b72aea9d5
8 changed files with 317 additions and 154 deletions

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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;
}
}
}

View file

@ -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>

View file

@ -4,7 +4,6 @@ libgstreamersharpglue_0_10_la_SOURCES = \
buffer.c \
clock.c \
message.c \
miniobject.c \
bin.c \
gerror.c \
gobject.c

View file

@ -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);
}

View file

@ -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);
}