aboutsummaryrefslogtreecommitdiff
path: root/kms
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2024-03-03 03:47:30 +0100
committerdec05eba <dec05eba@protonmail.com>2024-03-08 11:34:36 +0100
commitd0c221a233e0bc07e22cffb06ec3ae77a5f96010 (patch)
tree154ad68ce13a71541bf6667f933194e313237dc1 /kms
parent4d8a9e2e1d7d257aeff0497b6550df82f60bc0e8 (diff)
Refactor kms_vaapi and kms_cuda
Also fixes color metadata, color range and hdr on nvidia wayland.
Diffstat (limited to 'kms')
-rw-r--r--kms/client/kms_client.h6
-rw-r--r--kms/kms_shared.h11
2 files changed, 11 insertions, 6 deletions
diff --git a/kms/client/kms_client.h b/kms/client/kms_client.h
index 02f2dd1..2d18848 100644
--- a/kms/client/kms_client.h
+++ b/kms/client/kms_client.h
@@ -5,13 +5,15 @@
#include <sys/types.h>
#include <limits.h>
-typedef struct {
+typedef struct gsr_kms_client gsr_kms_client;
+
+struct gsr_kms_client {
pid_t kms_server_pid;
int initial_socket_fd;
int initial_client_fd;
char initial_socket_path[PATH_MAX];
int socket_pair[2];
-} gsr_kms_client;
+};
/* |card_path| should be a path to card, for example /dev/dri/card0 */
int gsr_kms_client_init(gsr_kms_client *self, const char *card_path);
diff --git a/kms/kms_shared.h b/kms/kms_shared.h
index f146441..4fa9c38 100644
--- a/kms/kms_shared.h
+++ b/kms/kms_shared.h
@@ -8,6 +8,9 @@
#define GSR_KMS_PROTOCOL_VERSION 2
#define GSR_KMS_MAX_PLANES 10
+typedef struct gsr_kms_response_fd gsr_kms_response_fd;
+typedef struct gsr_kms_response gsr_kms_response;
+
typedef enum {
KMS_REQUEST_TYPE_REPLACE_CONNECTION,
KMS_REQUEST_TYPE_GET_KMS
@@ -27,7 +30,7 @@ typedef struct {
int new_connection_fd;
} gsr_kms_request;
-typedef struct {
+struct gsr_kms_response_fd {
int fd;
uint32_t width;
uint32_t height;
@@ -44,14 +47,14 @@ typedef struct {
int src_w;
int src_h;
struct hdr_output_metadata hdr_metadata;
-} gsr_kms_response_fd;
+};
-typedef struct {
+struct gsr_kms_response {
uint32_t version; /* GSR_KMS_PROTOCOL_VERSION */
int result; /* gsr_kms_result */
char err_msg[128];
gsr_kms_response_fd fds[GSR_KMS_MAX_PLANES];
int num_fds;
-} gsr_kms_response;
+};
#endif /* #define GSR_KMS_SHARED_H */