mirror of
https://github.com/brl/mutter.git
synced 2024-11-21 15:40:41 -05:00
screen-cast/src: Add flag to maybe_record()
Will later be used to make recording avoid recording actual pixel content if e.g. only the cursor moved. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1351
This commit is contained in:
parent
b1d45820ef
commit
92db8902d9
@ -121,8 +121,10 @@ stage_painted (MetaStage *stage,
|
|||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
MetaScreenCastStreamSrc *src = META_SCREEN_CAST_STREAM_SRC (user_data);
|
MetaScreenCastStreamSrc *src = META_SCREEN_CAST_STREAM_SRC (user_data);
|
||||||
|
MetaScreenCastRecordFlag flags;
|
||||||
|
|
||||||
meta_screen_cast_stream_src_maybe_record_frame (src);
|
flags = META_SCREEN_CAST_RECORD_FLAG_NONE;
|
||||||
|
meta_screen_cast_stream_src_maybe_record_frame (src, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
static MetaBackend *
|
static MetaBackend *
|
||||||
@ -181,6 +183,7 @@ sync_cursor_state (MetaScreenCastMonitorStreamSrc *monitor_src)
|
|||||||
{
|
{
|
||||||
MetaScreenCastStreamSrc *src = META_SCREEN_CAST_STREAM_SRC (monitor_src);
|
MetaScreenCastStreamSrc *src = META_SCREEN_CAST_STREAM_SRC (monitor_src);
|
||||||
ClutterStage *stage = get_stage (monitor_src);
|
ClutterStage *stage = get_stage (monitor_src);
|
||||||
|
MetaScreenCastRecordFlag flags;
|
||||||
|
|
||||||
if (!is_cursor_in_stream (monitor_src))
|
if (!is_cursor_in_stream (monitor_src))
|
||||||
return;
|
return;
|
||||||
@ -188,7 +191,8 @@ sync_cursor_state (MetaScreenCastMonitorStreamSrc *monitor_src)
|
|||||||
if (clutter_stage_is_redraw_queued (stage))
|
if (clutter_stage_is_redraw_queued (stage))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
meta_screen_cast_stream_src_maybe_record_frame (src);
|
flags = META_SCREEN_CAST_RECORD_FLAG_NONE;
|
||||||
|
meta_screen_cast_stream_src_maybe_record_frame (src, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -437,7 +437,8 @@ do_record_frame (MetaScreenCastStreamSrc *src,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_screen_cast_stream_src_maybe_record_frame (MetaScreenCastStreamSrc *src)
|
meta_screen_cast_stream_src_maybe_record_frame (MetaScreenCastStreamSrc *src,
|
||||||
|
MetaScreenCastRecordFlag flags)
|
||||||
{
|
{
|
||||||
MetaScreenCastStreamSrcPrivate *priv =
|
MetaScreenCastStreamSrcPrivate *priv =
|
||||||
meta_screen_cast_stream_src_get_instance_private (src);
|
meta_screen_cast_stream_src_get_instance_private (src);
|
||||||
|
@ -37,6 +37,11 @@
|
|||||||
|
|
||||||
typedef struct _MetaScreenCastStream MetaScreenCastStream;
|
typedef struct _MetaScreenCastStream MetaScreenCastStream;
|
||||||
|
|
||||||
|
typedef enum _MetaScreenCastRecordFlag
|
||||||
|
{
|
||||||
|
META_SCREEN_CAST_RECORD_FLAG_NONE = 0,
|
||||||
|
} MetaScreenCastRecordFlag;
|
||||||
|
|
||||||
#define META_TYPE_SCREEN_CAST_STREAM_SRC (meta_screen_cast_stream_src_get_type ())
|
#define META_TYPE_SCREEN_CAST_STREAM_SRC (meta_screen_cast_stream_src_get_type ())
|
||||||
G_DECLARE_DERIVABLE_TYPE (MetaScreenCastStreamSrc,
|
G_DECLARE_DERIVABLE_TYPE (MetaScreenCastStreamSrc,
|
||||||
meta_screen_cast_stream_src,
|
meta_screen_cast_stream_src,
|
||||||
@ -63,7 +68,8 @@ struct _MetaScreenCastStreamSrcClass
|
|||||||
struct spa_meta_cursor *spa_meta_cursor);
|
struct spa_meta_cursor *spa_meta_cursor);
|
||||||
};
|
};
|
||||||
|
|
||||||
void meta_screen_cast_stream_src_maybe_record_frame (MetaScreenCastStreamSrc *src);
|
void meta_screen_cast_stream_src_maybe_record_frame (MetaScreenCastStreamSrc *src,
|
||||||
|
MetaScreenCastRecordFlag flags);
|
||||||
|
|
||||||
MetaScreenCastStream * meta_screen_cast_stream_src_get_stream (MetaScreenCastStreamSrc *src);
|
MetaScreenCastStream * meta_screen_cast_stream_src_get_stream (MetaScreenCastStreamSrc *src);
|
||||||
|
|
||||||
|
@ -327,8 +327,10 @@ screen_cast_window_damaged (MetaWindowActor *actor,
|
|||||||
MetaScreenCastWindowStreamSrc *window_src)
|
MetaScreenCastWindowStreamSrc *window_src)
|
||||||
{
|
{
|
||||||
MetaScreenCastStreamSrc *src = META_SCREEN_CAST_STREAM_SRC (window_src);
|
MetaScreenCastStreamSrc *src = META_SCREEN_CAST_STREAM_SRC (window_src);
|
||||||
|
MetaScreenCastRecordFlag flags;
|
||||||
|
|
||||||
meta_screen_cast_stream_src_maybe_record_frame (src);
|
flags = META_SCREEN_CAST_RECORD_FLAG_NONE;
|
||||||
|
meta_screen_cast_stream_src_maybe_record_frame (src, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -365,6 +367,7 @@ static void
|
|||||||
sync_cursor_state (MetaScreenCastWindowStreamSrc *window_src)
|
sync_cursor_state (MetaScreenCastWindowStreamSrc *window_src)
|
||||||
{
|
{
|
||||||
MetaScreenCastStreamSrc *src = META_SCREEN_CAST_STREAM_SRC (window_src);
|
MetaScreenCastStreamSrc *src = META_SCREEN_CAST_STREAM_SRC (window_src);
|
||||||
|
MetaScreenCastRecordFlag flags;
|
||||||
|
|
||||||
if (!is_cursor_in_stream (window_src))
|
if (!is_cursor_in_stream (window_src))
|
||||||
return;
|
return;
|
||||||
@ -372,7 +375,8 @@ sync_cursor_state (MetaScreenCastWindowStreamSrc *window_src)
|
|||||||
if (meta_screen_cast_window_has_damage (window_src->screen_cast_window))
|
if (meta_screen_cast_window_has_damage (window_src->screen_cast_window))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
meta_screen_cast_stream_src_maybe_record_frame (src);
|
flags = META_SCREEN_CAST_RECORD_FLAG_NONE;
|
||||||
|
meta_screen_cast_stream_src_maybe_record_frame (src, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -401,6 +405,7 @@ meta_screen_cast_window_stream_src_enable (MetaScreenCastStreamSrc *src)
|
|||||||
MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend);
|
MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend);
|
||||||
MetaWindowActor *window_actor;
|
MetaWindowActor *window_actor;
|
||||||
MetaScreenCastStream *stream;
|
MetaScreenCastStream *stream;
|
||||||
|
MetaScreenCastRecordFlag flags;
|
||||||
|
|
||||||
window_actor = meta_window_actor_from_window (get_window (window_src));
|
window_actor = meta_window_actor_from_window (get_window (window_src));
|
||||||
if (!window_actor)
|
if (!window_actor)
|
||||||
@ -438,7 +443,8 @@ meta_screen_cast_window_stream_src_enable (MetaScreenCastStreamSrc *src)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
meta_screen_cast_stream_src_maybe_record_frame (src);
|
flags = META_SCREEN_CAST_RECORD_FLAG_NONE;
|
||||||
|
meta_screen_cast_stream_src_maybe_record_frame (src, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
Reference in New Issue
Block a user