aboutsummaryrefslogtreecommitdiff
path: root/src/capture
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2023-09-27 00:52:28 +0200
committerdec05eba <dec05eba@protonmail.com>2023-09-27 00:52:28 +0200
commitb6ea32330edeb9d5ac52aba86d7b6798cb91529f (patch)
treee7bcd6bec14aeb17a9c40d1ca031cb10f7d1e86f /src/capture
parent6024beca4e37112a23f18d74500b3aeae235d48d (diff)
Use correct offset for kms_vaapi monitor
Diffstat (limited to 'src/capture')
-rw-r--r--src/capture/kms_cuda.c3
-rw-r--r--src/capture/kms_vaapi.c9
2 files changed, 8 insertions, 4 deletions
diff --git a/src/capture/kms_cuda.c b/src/capture/kms_cuda.c
index 434b452..13636aa 100644
--- a/src/capture/kms_cuda.c
+++ b/src/capture/kms_cuda.c
@@ -372,6 +372,9 @@ static int gsr_capture_kms_cuda_capture(gsr_capture *cap, AVFrame *frame) {
}
}
+ // TODO: Use capture pos and capture size. Right now they are not used here and doesn't really need to be used on wayland
+ // and kms_cuda is only used on wayland right now so maybe it can be ignored.
+
if(!drm_fd)
return -1;
diff --git a/src/capture/kms_vaapi.c b/src/capture/kms_vaapi.c
index 8e1a693..0efe5c1 100644
--- a/src/capture/kms_vaapi.c
+++ b/src/capture/kms_vaapi.c
@@ -448,6 +448,7 @@ static int gsr_capture_kms_vaapi_capture(gsr_capture *cap, AVFrame *frame) {
break;
}
+ // Will never happen on wayland unless the target monitor has been disconnected
if(!drm_fd) {
drm_fd = find_first_combined_drm(&cap_kms->kms_response);
if(!drm_fd)
@@ -502,16 +503,16 @@ static int gsr_capture_kms_vaapi_capture(gsr_capture *cap, AVFrame *frame) {
cap_kms->params.egl->glBindTexture(GL_TEXTURE_2D, 0);
vec2i capture_pos = cap_kms->capture_pos;
- if(capture_is_combined_plane) {
- capture_pos = (vec2i){ 0, 0 };
- }
if(cap_kms->using_wayland_capture) {
gsr_color_conversion_draw(&cap_kms->color_conversion, cap_kms->input_texture,
(vec2i){0, 0}, cap_kms->capture_size,
- capture_pos, cap_kms->capture_size,
+ (vec2i){0, 0}, cap_kms->capture_size,
0.0f);
} else {
+ if(!capture_is_combined_plane)
+ capture_pos = (vec2i){drm_fd->x, drm_fd->y};
+
float texture_rotation = 0.0f;
gsr_color_conversion_draw(&cap_kms->color_conversion, cap_kms->input_texture,