image: allow updates from GstVaapiImageRaw.
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>
Mon, 12 Dec 2011 15:34:07 +0000 (16:34 +0100)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Mon, 12 Dec 2011 17:32:29 +0000 (18:32 +0100)
gst-libs/gst/vaapi/gstvaapiimage.c
gst-libs/gst/vaapi/gstvaapiimage.h

index 584d415..4b503cf 100644 (file)
@@ -1175,3 +1175,40 @@ gst_vaapi_image_update_from_buffer(
 
     return success;
 }
+
+/**
+ * gst_vaapi_image_update_from_raw:
+ * @image: a #GstVaapiImage
+ * @src_image: a #GstVaapiImageRaw
+ * @buffer: a #GstBuffer
+ * @rect: a #GstVaapiRectangle expressing a region, or %NULL for the
+ *   whole image
+ *
+ * Transfers pixels data contained in the #GstVaapiImageRaw into the
+ * @image. Both image structures shall have the same format.
+ *
+ * Return value: %TRUE on success
+ */
+gboolean
+gst_vaapi_image_update_from_raw(
+    GstVaapiImage     *image,
+    GstVaapiImageRaw  *src_image,
+    GstVaapiRectangle *rect
+)
+{
+    GstVaapiImageRaw dst_image;
+    gboolean success;
+
+    g_return_val_if_fail(GST_VAAPI_IS_IMAGE(image), FALSE);
+    g_return_val_if_fail(image->priv->is_constructed, FALSE);
+
+    if (!_gst_vaapi_image_map(image, &dst_image))
+        return FALSE;
+
+    success = copy_image(&dst_image, src_image, rect);
+
+    if (!_gst_vaapi_image_unmap(image))
+        return FALSE;
+
+    return success;
+}
index 5710077..5b6557f 100644 (file)
@@ -182,6 +182,13 @@ gst_vaapi_image_update_from_buffer(
     GstVaapiRectangle *rect
 );
 
+gboolean
+gst_vaapi_image_update_from_raw(
+    GstVaapiImage     *image,
+    GstVaapiImageRaw  *src_image,
+    GstVaapiRectangle *rect
+);
+
 G_END_DECLS
 
 #endif /* GST_VAAPI_IMAGE_H */