-INTERN tdm_private_capture *
-tdm_capture_find_stamp(tdm_private_display *private_display, double stamp)
+static void
+_tdm_capture_cb_done(tdm_capture *capture_module, tbm_surface_h buffer, void *user_data)
+{
+ tdm_private_capture *private_capture = user_data;
+ tdm_thread_cb_capture_done capture_done;
+ tdm_error ret;
+
+ TDM_RETURN_IF_FAIL(TDM_MUTEX_IS_LOCKED());
+
+ memset(&capture_done, 0, sizeof capture_done);
+ capture_done.base.type = TDM_THREAD_CB_CAPTURE_DONE;
+ capture_done.base.length = sizeof capture_done;
+ capture_done.base.object_stamp = private_capture->stamp;
+ capture_done.base.data = NULL;
+ capture_done.base.sync = 0;
+ capture_done.buffer = buffer;
+
+ ret = tdm_thread_cb_call(private_capture, &capture_done.base, 1);
+ TDM_WARNING_IF_FAIL(ret == TDM_ERROR_NONE);
+}
+
+static void *
+_tdm_capture_find_object(tdm_private_display *private_display, double stamp)