diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2009-10-03 09:12:01 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2009-10-03 09:12:01 +0200 |
commit | 28e879b517866e9c657643ce1b9e4494c1ae6515 (patch) | |
tree | 0227d35cc363771af752fc079505a724797d1223 | |
parent | 2453ddfe11f64c74881c89f28c7e9e90d1292057 (diff) |
Make sure that the Bit/BitReader buffer is not GC'd before we stop using it
Also add a property to get the used buffer.
-rw-r--r-- | gstreamer-sharp/BitReader.custom | 15 | ||||
-rw-r--r-- | gstreamer-sharp/ByteReader.custom | 16 | ||||
-rw-r--r-- | gstreamer-sharp/Gstreamer.metadata | 2 | ||||
-rw-r--r-- | gstreamer-sharp/Makefile.am | 1 |
4 files changed, 34 insertions, 0 deletions
diff --git a/gstreamer-sharp/BitReader.custom b/gstreamer-sharp/BitReader.custom new file mode 100644 index 0000000..f62ef4e --- /dev/null +++ b/gstreamer-sharp/BitReader.custom @@ -0,0 +1,15 @@ +Gst.Buffer buffer = null; +public Gst.Buffer Buffer { + get { + return buffer; + } +} + +[DllImport ("libgstbase-0.10.dll", CallingConvention = CallingConvention.Cdecl) ] +static extern IntPtr gst_bit_reader_new_from_buffer (IntPtr buffer); + +public BitReader (Gst.Buffer buffer) { + Raw = gst_bit_reader_new_from_buffer (buffer == null ? IntPtr.Zero : buffer.Handle); + this.buffer = buffer; +} + diff --git a/gstreamer-sharp/ByteReader.custom b/gstreamer-sharp/ByteReader.custom index 71bce84..2033fae 100644 --- a/gstreamer-sharp/ByteReader.custom +++ b/gstreamer-sharp/ByteReader.custom @@ -1,3 +1,19 @@ +Gst.Buffer buffer = null; +public Gst.Buffer Buffer { + get { + return buffer; + } +} + +[DllImport("libgstbase-0.10.dll", CallingConvention = CallingConvention.Cdecl)] +static extern IntPtr gst_byte_reader_new_from_buffer(IntPtr buffer); + +public ByteReader (Gst.Buffer buffer) +{ + Raw = gst_byte_reader_new_from_buffer(buffer == null ? IntPtr.Zero : buffer.Handle); + this.buffer = buffer; +} + [DllImport ("libgstbase-0.10.dll", CallingConvention = CallingConvention.Cdecl) ] static extern bool gst_byte_reader_peek_data (IntPtr raw, uint size, out IntPtr val); diff --git a/gstreamer-sharp/Gstreamer.metadata b/gstreamer-sharp/Gstreamer.metadata index 70b3e00..fba0c44 100644 --- a/gstreamer-sharp/Gstreamer.metadata +++ b/gstreamer-sharp/Gstreamer.metadata @@ -1068,6 +1068,7 @@ <attr path="/api/namespace/struct[@cname='GstBitReader']/method[@cname='gst_bit_reader_init']" name="hidden">1</attr> <attr path="/api/namespace/struct[@cname='GstBitReader']/method[@cname='gst_bit_reader_init_from_buffer']" name="hidden">1</attr> <attr path="/api/namespace/struct[@cname='GstBitReader']/constructor[@cname='gst_bit_reader_new']" name="hidden">1</attr> + <attr path="/api/namespace/struct[@cname='GstBitReader']/constructor[@cname='gst_bit_reader_new_from_buffer']" name="hidden">1</attr> <attr path="/api/namespace/struct[@cname='GstBitReader']/method[@cname='gst_bit_reader_get_bits_uint8']" name="name">Get</attr> <attr path="/api/namespace/struct[@cname='GstBitReader']/method[@cname='gst_bit_reader_get_bits_uint16']" name="name">Get</attr> <attr path="/api/namespace/struct[@cname='GstBitReader']/method[@cname='gst_bit_reader_get_bits_uint32']" name="name">Get</attr> @@ -1080,6 +1081,7 @@ <attr path="/api/namespace/struct[@cname='GstByteReader']/method[@cname='gst_byte_reader_init']" name="hidden">1</attr> <attr path="/api/namespace/struct[@cname='GstByteReader']/method[@cname='gst_byte_reader_init_from_buffer']" name="hidden">1</attr> <attr path="/api/namespace/struct[@cname='GstByteReader']/constructor[@cname='gst_byte_reader_new']" name="hidden">1</attr> + <attr path="/api/namespace/struct[@cname='GstByteReader']/constructor[@cname='gst_byte_reader_new_from_buffer']" name="hidden">1</attr> <attr path="/api/namespace/struct[@cname='GstByteReader']/method[@cname='gst_byte_reader_peek_uint8']" name="name">PeekUInt8</attr> <attr path="/api/namespace/struct[@cname='GstByteReader']/method[@cname='gst_byte_reader_peek_uint16_le']" name="name">PeekUInt16Le</attr> <attr path="/api/namespace/struct[@cname='GstByteReader']/method[@cname='gst_byte_reader_peek_uint16_be']" name="name">PeekUInt16Be</attr> diff --git a/gstreamer-sharp/Makefile.am b/gstreamer-sharp/Makefile.am index d4d2786..7c5caa0 100644 --- a/gstreamer-sharp/Makefile.am +++ b/gstreamer-sharp/Makefile.am @@ -115,6 +115,7 @@ customs = \ Controller.custom \ ControlSource.custom \ VideoUtil.custom \ + BitReader.custom \ ByteReader.custom plugin_csfiles = $(builddir)/coreplugins/generated/*.cs \ |