[mutter] tests/screen-cast-client: Set an explicit size
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] tests/screen-cast-client: Set an explicit size
- Date: Fri, 4 Mar 2022 19:04:53 +0000 (UTC)
commit c49037469afd1979004d534f41d511e0e74ae18c
Author: Jonas Ã…dahl <jadahl gmail com>
Date: Thu Feb 3 12:16:20 2022 +0100
tests/screen-cast-client: Set an explicit size
Don't set a range, take control of the size. This is fine, since we're
only recording virtual monitors, which get their size from the PipeWire
negotiation.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2270>
src/tests/screen-cast-client.c | 28 +++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)
---
diff --git a/src/tests/screen-cast-client.c b/src/tests/screen-cast-client.c
index cc118f7aef..a25c768ebc 100644
--- a/src/tests/screen-cast-client.c
+++ b/src/tests/screen-cast-client.c
@@ -39,6 +39,9 @@ typedef struct _Stream
struct spa_hook pipewire_stream_listener;
enum pw_stream_state state;
int buffer_count;
+
+ int target_width;
+ int target_height;
} Stream;
typedef struct _Session
@@ -305,8 +308,7 @@ stream_connect (Stream *stream)
struct pw_stream *pipewire_stream;
uint8_t params_buffer[1024];
struct spa_pod_builder pod_builder;
- struct spa_rectangle min_rect;
- struct spa_rectangle max_rect;
+ struct spa_rectangle rect;
struct spa_fraction min_framerate;
struct spa_fraction max_framerate;
const struct spa_pod *params[2];
@@ -316,8 +318,7 @@ stream_connect (Stream *stream)
"mutter-test-pipewire-stream",
NULL);
- min_rect = SPA_RECTANGLE (1, 1);
- max_rect = SPA_RECTANGLE (50 , 50);
+ rect = SPA_RECTANGLE (stream->target_width, stream->target_height);
min_framerate = SPA_FRACTION (1, 1);
max_framerate = SPA_FRACTION (30, 1);
@@ -328,9 +329,7 @@ stream_connect (Stream *stream)
SPA_FORMAT_mediaType, SPA_POD_Id (SPA_MEDIA_TYPE_video),
SPA_FORMAT_mediaSubtype, SPA_POD_Id (SPA_MEDIA_SUBTYPE_raw),
SPA_FORMAT_VIDEO_format, SPA_POD_Id (SPA_VIDEO_FORMAT_BGRx),
- SPA_FORMAT_VIDEO_size, SPA_POD_CHOICE_RANGE_Rectangle (&min_rect,
- &min_rect,
- &max_rect),
+ SPA_FORMAT_VIDEO_size, SPA_POD_Rectangle (&rect),
SPA_FORMAT_VIDEO_framerate, SPA_POD_Fraction (&SPA_FRACTION(0, 1)),
SPA_FORMAT_VIDEO_maxFramerate, SPA_POD_CHOICE_RANGE_Fraction (&min_framerate,
&min_framerate,
@@ -384,12 +383,17 @@ on_pipewire_stream_added (MetaDBusScreenCastStream *proxy,
}
static Stream *
-stream_new (const char *path)
+stream_new (const char *path,
+ int width,
+ int height)
{
Stream *stream;
GError *error = NULL;
stream = g_new0 (Stream, 1);
+ stream->target_width = width;
+ stream->target_height = height;
+
stream->proxy = meta_dbus_screen_cast_stream_proxy_new_for_bus_sync (
G_BUS_TYPE_SESSION,
G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
@@ -438,7 +442,9 @@ session_stop (Session *session)
}
static Stream *
-session_record_virtual (Session *session)
+session_record_virtual (Session *session,
+ int width,
+ int height)
{
GVariantBuilder properties_builder;
GVariant *properties_variant;
@@ -457,7 +463,7 @@ session_record_virtual (Session *session)
&error))
g_error ("Failed to create session: %s", error->message);
- stream = stream_new (stream_path);
+ stream = stream_new (stream_path, width, height);
g_assert_nonnull (stream);
return stream;
}
@@ -552,7 +558,7 @@ main (int argc,
screen_cast = screen_cast_new ();
session = screen_cast_create_session (screen_cast);
- stream = session_record_virtual (session);
+ stream = session_record_virtual (session, 50, 50);
session_start (session);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]