diff --git a/gstreamer-sharp/ByteReader.custom b/gstreamer-sharp/ByteReader.custom
new file mode 100644
index 0000000000..71bce84564
--- /dev/null
+++ b/gstreamer-sharp/ByteReader.custom
@@ -0,0 +1,35 @@
+[DllImport ("libgstbase-0.10.dll", CallingConvention = CallingConvention.Cdecl) ]
+static extern bool gst_byte_reader_peek_data (IntPtr raw, uint size, out IntPtr val);
+
+public bool PeekData (uint size, out byte[] val) {
+ IntPtr raw_ret;
+
+ bool ret = gst_byte_reader_peek_data (Handle, size, out raw_ret);
+
+ if (!ret || raw_ret == IntPtr.Zero) {
+ val = null;
+ } else {
+ val = new byte[size];
+ Marshal.Copy (raw_ret, val, 0, (int) size);
+ }
+
+ return ret;
+}
+
+[DllImport ("libgstbase-0.10.dll", CallingConvention = CallingConvention.Cdecl) ]
+static extern bool gst_byte_reader_get_data (IntPtr raw, uint size, out IntPtr val);
+
+public bool GetData (uint size, out byte[] val) {
+ IntPtr raw_ret;
+
+ bool ret = gst_byte_reader_get_data (Handle, size, out raw_ret);
+
+ if (!ret || raw_ret == IntPtr.Zero) {
+ val = null;
+ } else {
+ val = new byte[size];
+ Marshal.Copy (raw_ret, val, 0, (int) size);
+ }
+
+ return ret;
+}
diff --git a/gstreamer-sharp/Gstreamer.metadata b/gstreamer-sharp/Gstreamer.metadata
index 8c96c30395..70b3e00621 100644
--- a/gstreamer-sharp/Gstreamer.metadata
+++ b/gstreamer-sharp/Gstreamer.metadata
@@ -1080,6 +1080,39 @@
1
1
1
+ PeekUInt8
+ PeekUInt16Le
+ PeekUInt16Be
+ PeekUInt24Le
+ PeekUInt24Be
+ PeekUInt32Le
+ PeekUInt32Be
+ PeekUint64Le
+ PeekUInt64Be
+ GetUInt8
+ GetUInt16Le
+ GetUInt16Be
+ GetUInt24Le
+ GetUInt24Be
+ GetUInt32Le
+ GetUInt32Be
+ GetUint64Le
+ GetUInt64Be
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+
+ SkipString
+ GetString
+ out
+ PeekString
+ out
+
diff --git a/gstreamer-sharp/Makefile.am b/gstreamer-sharp/Makefile.am
index b0e1dc6fe7..d4d2786e96 100644
--- a/gstreamer-sharp/Makefile.am
+++ b/gstreamer-sharp/Makefile.am
@@ -114,7 +114,8 @@ customs = \
Adapter.custom \
Controller.custom \
ControlSource.custom \
- VideoUtil.custom
+ VideoUtil.custom \
+ ByteReader.custom
plugin_csfiles = $(builddir)/coreplugins/generated/*.cs \
$(builddir)/baseplugins/generated/*.cs