Add gst_vaapi_surface_sync().
authorgb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
Mon, 15 Mar 2010 16:13:51 +0000 (16:13 +0000)
committergb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
Mon, 15 Mar 2010 16:13:51 +0000 (16:13 +0000)
gst-libs/gst/vaapi/gstvaapisurface.c
gst-libs/gst/vaapi/gstvaapisurface.h

index 76f431f..0858c17 100644 (file)
@@ -396,3 +396,20 @@ gst_vaapi_surface_put_image(GstVaapiSurface *surface, GstVaapiImage *image)
 
     return TRUE;
 }
+
+gboolean
+gst_vaapi_surface_sync(GstVaapiSurface *surface)
+{
+    VAStatus status;
+
+    g_return_val_if_fail(GST_VAAPI_IS_SURFACE(surface), FALSE);
+
+    status = vaSyncSurface(
+        GST_VAAPI_DISPLAY_VADISPLAY(surface->priv->display),
+        surface->priv->surface_id
+    );
+    if (!vaapi_check_status(status, "vaSyncSurface()"))
+        return FALSE;
+
+    return TRUE;
+}
index 445ca8f..1d6d4f7 100644 (file)
@@ -113,6 +113,9 @@ gst_vaapi_surface_get_image(GstVaapiSurface *surface, GstVaapiImage *image);
 gboolean
 gst_vaapi_surface_put_image(GstVaapiSurface *surface, GstVaapiImage *image);
 
+gboolean
+gst_vaapi_surface_sync(GstVaapiSurface *surface);
+
 G_END_DECLS
 
 #endif /* GST_VAAPI_SURFACE_H */