Add support for camera (yuyv, mjpeg) and multiple capture sources

This commit is contained in:
dec05eba
2025-12-23 18:05:48 +01:00
parent 390f2708f4
commit 62e180903e
30 changed files with 2228 additions and 632 deletions

View File

@@ -10,6 +10,15 @@ typedef struct gsr_egl gsr_egl;
#define NUM_ARGS 32
typedef enum {
GSR_CAPTURE_SOURCE_TYPE_WINDOW,
GSR_CAPTURE_SOURCE_TYPE_FOCUSED_WINDOW,
GSR_CAPTURE_SOURCE_TYPE_MONITOR,
GSR_CAPTURE_SOURCE_TYPE_REGION,
GSR_CAPTURE_SOURCE_TYPE_PORTAL,
GSR_CAPTURE_SOURCE_TYPE_V4L2
} CaptureSourceType;
typedef enum {
ARG_TYPE_STRING,
ARG_TYPE_BOOLEAN,
@@ -52,6 +61,7 @@ typedef struct {
void (*info)(void *userdata);
void (*list_audio_devices)(void *userdata);
void (*list_application_audio)(void *userdata);
void (*list_v4l2_devices)(void *userdata);
void (*list_capture_options)(const char *card_path, void *userdata);
} args_handlers;
@@ -68,7 +78,8 @@ typedef struct {
gsr_bitrate_mode bitrate_mode;
gsr_video_quality video_quality;
gsr_replay_storage replay_storage;
char window[64];
const char *capture_source;
const char *container_format;
const char *filename;
const char *replay_recording_directory;