diff options
Diffstat (limited to 'include/capture/kms.h')
-rw-r--r-- | include/capture/kms.h | 53 |
1 files changed, 11 insertions, 42 deletions
diff --git a/include/capture/kms.h b/include/capture/kms.h index 674813a..ce09817 100644 --- a/include/capture/kms.h +++ b/include/capture/kms.h @@ -2,49 +2,18 @@ #define GSR_CAPTURE_KMS_H #include "capture.h" -#include "../../kms/client/kms_client.h" -#include "../color_conversion.h" -#include "../vec2.h" -#include "../defs.h" -#include <stdbool.h> - -typedef struct AVCodecContext AVCodecContext; -typedef struct AVMasteringDisplayMetadata AVMasteringDisplayMetadata; -typedef struct AVContentLightMetadata AVContentLightMetadata; -typedef struct gsr_capture_kms gsr_capture_kms; -typedef struct gsr_egl gsr_egl; -typedef struct AVFrame AVFrame; - -#define MAX_CONNECTOR_IDS 32 typedef struct { - uint32_t connector_ids[MAX_CONNECTOR_IDS]; - int num_connector_ids; -} MonitorId; - -struct gsr_capture_kms { - gsr_capture_base base; - - bool should_stop; - bool stop_is_error; - - gsr_kms_client kms_client; - gsr_kms_response kms_response; - - vec2i capture_pos; - vec2i capture_size; - MonitorId monitor_id; - - AVMasteringDisplayMetadata *mastering_display_metadata; - AVContentLightMetadata *light_metadata; - - gsr_monitor_rotation monitor_rotation; -}; - -/* Returns 0 on success */ -int gsr_capture_kms_start(gsr_capture_kms *self, const char *display_to_capture, gsr_egl *egl, AVCodecContext *video_codec_context, AVFrame *frame); -void gsr_capture_kms_stop(gsr_capture_kms *self); -bool gsr_capture_kms_capture(gsr_capture_kms *self, AVFrame *frame, bool hdr, bool screen_plane_use_modifiers, bool cursor_texture_is_external, bool record_cursor); -void gsr_capture_kms_cleanup_kms_fds(gsr_capture_kms *self); + gsr_egl *egl; + const char *display_to_capture; /* A copy is made of this */ + bool hdr; + bool record_cursor; + int fps; + vec2i output_resolution; + vec2i region_size; + vec2i region_position; +} gsr_capture_kms_params; + +gsr_capture* gsr_capture_kms_create(const gsr_capture_kms_params *params); #endif /* GSR_CAPTURE_KMS_H */ |