[Pkg-gstreamer-commits] [gstreamer-vaapi] 21/176: libs: add more GstBuffer compat glue for GStreamer 0.10.

Vincent Cheng vcheng at moszumanska.debian.org
Tue Jun 3 08:09:24 UTC 2014


This is an automated email from the git hooks/post-receive script.

vcheng pushed a commit to branch upstream
in repository gstreamer-vaapi.

commit e9e988fc71afd0add1da46270ce49dc824176838
Author: Gwenole Beauchesne <gwenole.beauchesne at intel.com>
Date:   Wed Nov 27 16:25:59 2013 +0100

    libs: add more GstBuffer compat glue for GStreamer 0.10.
    
    Add gst_buffer_new_allocate() and gst_buffer_fill() implementations.
    Fix gst_buffer_new_wrapped_full() implementation to handle the destroy
    notify function.
---
 gst-libs/gst/vaapi/gstcompat.h | 36 ++++++++++++++++++++++++++++++++++--
 1 file changed, 34 insertions(+), 2 deletions(-)

diff --git a/gst-libs/gst/vaapi/gstcompat.h b/gst-libs/gst/vaapi/gstcompat.h
index f139739..efb5c56 100644
--- a/gst-libs/gst/vaapi/gstcompat.h
+++ b/gst-libs/gst/vaapi/gstcompat.h
@@ -107,6 +107,9 @@ typedef struct {
 #undef  gst_buffer_new_wrapped_full
 #define gst_buffer_new_wrapped_full(flags, data, maxsize, ofs, size, ud, udd) \
     gst_compat_buffer_new_wrapped_full(flags, data, maxsize, ofs, size, ud, udd)
+#undef  gst_buffer_new_allocate
+#define gst_buffer_new_allocate(allocator, size, params) \
+    gst_compat_buffer_new_allocate((allocator), (size), (params))
 #undef  gst_buffer_get_size
 #define gst_buffer_get_size(buffer)     gst_compat_buffer_get_size(buffer)
 #undef  gst_buffer_map
@@ -116,6 +119,9 @@ typedef struct {
 #undef  gst_buffer_extract
 #define gst_buffer_extract(buffer, offset, dest, size) \
     gst_compat_buffer_extract(buffer, offset, dest, size)
+#undef  gst_buffer_fill
+#define gst_buffer_fill(buffer, offset, src, size) \
+    gst_compat_buffer_fill((buffer), (offset), (src), (size))
 #undef  gst_buffer_copy_into
 #define gst_buffer_copy_into(dest, src, flags, offset, size) \
     gst_compat_buffer_copy_into(dest, src, flags, offset, size)
@@ -128,8 +134,6 @@ gst_compat_buffer_new_wrapped_full(GstMemoryFlags flags, gpointer data,
     GstBuffer *buffer;
 
     /* XXX: unsupported */
-    g_return_val_if_fail(user_data == NULL, NULL);
-    g_return_val_if_fail(notify == NULL, NULL);
     g_return_val_if_fail(maxsize >= size, NULL);
 
     buffer = gst_buffer_new();
@@ -138,9 +142,23 @@ gst_compat_buffer_new_wrapped_full(GstMemoryFlags flags, gpointer data,
 
     GST_BUFFER_DATA(buffer) = data + offset;
     GST_BUFFER_SIZE(buffer) = size;
+
+    if (notify)
+        gst_mini_object_weak_ref(GST_MINI_OBJECT_CAST(buffer),
+            (GstMiniObjectWeakNotify)notify, user_data);
     return buffer;
 }
 
+static inline GstBuffer *
+gst_compat_buffer_new_allocate(gpointer allocator, gsize size, gpointer params)
+{
+    /* XXX: unsupported */
+    g_return_val_if_fail(allocator == NULL, NULL);
+    g_return_val_if_fail(params == NULL, NULL);
+
+    return gst_buffer_new_and_alloc(size);
+}
+
 static inline gsize
 gst_compat_buffer_get_size(GstBuffer *buffer)
 {
@@ -175,6 +193,20 @@ gst_compat_buffer_extract(GstBuffer *buffer, gsize offset, gpointer dest,
     return esize;
 }
 
+static inline gsize
+gst_compat_buffer_fill(GstBuffer *buffer, gsize offset, gconstpointer src,
+    gsize size)
+{
+    gsize fsize;
+
+    if (!buffer || !src || offset >= GST_BUFFER_SIZE(buffer))
+        return 0;
+
+    fsize = MIN(size, GST_BUFFER_SIZE(buffer) - offset);
+    memcpy(GST_BUFFER_DATA(buffer) + offset, src, fsize);
+    return fsize;
+}
+
 static inline void
 gst_compat_buffer_copy_into(GstBuffer *dest, GstBuffer *src,
     GstBufferCopyFlags flags, gsize offset, gsize size)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gstreamer/gstreamer-vaapi.git



More information about the Pkg-gstreamer-commits mailing list