Refactor kms_vaapi and kms_cuda

Also fixes color metadata, color range and hdr on nvidia wayland.
This commit is contained in:
dec05eba
2024-03-03 03:47:30 +01:00
parent 4d8a9e2e1d
commit d0c221a233
24 changed files with 894 additions and 1350 deletions

View File

@@ -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 */