gstcompat: add gst_buffer_copy_deep() if gst < 1.5
authorVíctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
Wed, 23 Sep 2015 14:02:46 +0000 (16:02 +0200)
committerVíctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
Wed, 23 Sep 2015 15:11:21 +0000 (17:11 +0200)
gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should
add an implementation if gstreamer-vaapi is linked to previous versions.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
gst/vaapi/gstcompat.h

index c953783..17bd3e6 100644 (file)
 
 #include "gst/vaapi/sysdeps.h"
 
+#if !GST_CHECK_VERSION (1,5,0)
+static inline GstBuffer *
+gst_buffer_copy_deep (const GstBuffer * buffer)
+{
+  GstBuffer *copy;
+
+  g_return_val_if_fail (buffer != NULL, NULL);
+
+  copy = gst_buffer_new ();
+
+  if (!gst_buffer_copy_into (copy, (GstBuffer *) buffer,
+      GST_BUFFER_COPY_ALL | GST_BUFFER_COPY_DEEP, 0, -1))
+    gst_buffer_replace (&copy, NULL);
+
+#if GST_CHECK_VERSION (1,4,0)
+  if (copy)
+    GST_BUFFER_FLAG_UNSET (copy, GST_BUFFER_FLAG_TAG_MEMORY);
+#endif
+
+  return copy;
+}
+#endif
+
 #endif /* GST_COMPAT_H */