static gboolean byzanz_encoder_byzanz_close (ByzanzEncoder * encoder, GOutputStream * stream, guint64 msecs, GCancellable * cancellable, GError ** error) { return byzanz_serialize (stream, msecs, NULL, NULL, cancellable, error); }
static gboolean byzanz_encoder_byzanz_process (ByzanzEncoder * encoder, GOutputStream * stream, guint64 msecs, cairo_surface_t * surface, const cairo_region_t * region, GCancellable * cancellable, GError ** error) { return byzanz_serialize (stream, msecs, surface, region, cancellable, error); }
static void byzanz_session_recorder_image_cb (ByzanzRecorder * recorder, cairo_surface_t * surface, const cairo_region_t * region, const GTimeVal * tv, ByzanzSession * session) { GOutputStream *stream; GError *error = NULL; stream = byzanz_queue_get_output_stream (session->queue); if (!byzanz_serialize (stream, byzanz_session_elapsed (session, tv), surface, region, session->cancellable, &error)) { byzanz_session_set_error (session, error); g_error_free (error); } }
void byzanz_session_stop (ByzanzSession *session) { GOutputStream *stream; GError *error = NULL; GTimeVal tv; g_return_if_fail (BYZANZ_IS_SESSION (session)); stream = byzanz_queue_get_output_stream (session->queue); g_get_current_time (&tv); if (!byzanz_serialize (stream, byzanz_session_elapsed (session, &tv), NULL, NULL, session->cancellable, &error) || !g_output_stream_close (stream, session->cancellable, &error)) { byzanz_session_set_error (session, error); g_error_free (error); } byzanz_recorder_set_recording (session->recorder, FALSE); }