[mutter/gbsneto/scanout-screencast] screen-cast/monitor-stream: Immediately record scanout frames

commit fad2cacb9ede2e98b8762c80751d21e8c7208f02
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Mon Dec 27 15:32:27 2021 -0300

    screen-cast/monitor-stream: Immediately record scanout frames
    When the before-paint function is executed, it's only purpose
    is to check if there's any scanout queue, and immediately
    record it if any.
    However, since [1], we regressed in this specific case with the
    introduction of an idle callback in the before-paint function.
    Revert before-paint - and only that - back to immediately capturing
    any available scanout. Only record these frames when the target
    buffer is a DMA-BUF handle.
    [1] https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1914

 src/backends/meta-screen-cast-monitor-stream-src.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/backends/meta-screen-cast-monitor-stream-src.c 
index 82d3862c9a..3075009017 100644
--- a/src/backends/meta-screen-cast-monitor-stream-src.c
+++ b/src/backends/meta-screen-cast-monitor-stream-src.c
@@ -162,6 +162,7 @@ before_stage_painted (MetaStage           *stage,
   MetaScreenCastMonitorStreamSrc *monitor_src =
   MetaScreenCastStreamSrc *src = META_SCREEN_CAST_STREAM_SRC (monitor_src);
+  MetaScreenCastRecordFlag flags;
   if (monitor_src->maybe_record_idle_id)
@@ -169,10 +170,8 @@ before_stage_painted (MetaStage           *stage,
   if (!clutter_stage_view_peek_scanout (view))
-  monitor_src->maybe_record_idle_id = g_idle_add (maybe_record_frame_on_idle,
-                                                  src);
-  g_source_set_name_by_id (monitor_src->maybe_record_idle_id,
-                           "[mutter] maybe_record_frame_on_idle [monitor-src]");
+  meta_screen_cast_stream_src_maybe_record_frame (src, flags);
 static MetaBackend *

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]