nvfbc: fix scaled monitor capture not working correctly

This commit is contained in:
dec05eba
2025-12-08 02:53:29 +01:00
parent 2c53638bb0
commit 5906a0c06f
2 changed files with 2 additions and 1 deletions

View File

@@ -288,7 +288,7 @@ static int gsr_capture_nvfbc_start(gsr_capture *cap, gsr_capture_metadata *captu
capture_metadata->video_height = self->tracking_height; capture_metadata->video_height = self->tracking_height;
if(self->params.output_resolution.x > 0 && self->params.output_resolution.y > 0) { if(self->params.output_resolution.x > 0 && self->params.output_resolution.y > 0) {
self->params.output_resolution = scale_keep_aspect_ratio((vec2i){capture_metadata->recording_width, capture_metadata->recording_height}, self->params.output_resolution); self->params.output_resolution = scale_keep_aspect_ratio((vec2i){capture_metadata->video_width, capture_metadata->video_height}, self->params.output_resolution);
capture_metadata->video_width = self->params.output_resolution.x; capture_metadata->video_width = self->params.output_resolution.x;
capture_metadata->video_height = self->params.output_resolution.y; capture_metadata->video_height = self->params.output_resolution.y;
} else if(self->params.region_size.x > 0 && self->params.region_size.y > 0) { } else if(self->params.region_size.x > 0 && self->params.region_size.y > 0) {

View File

@@ -3661,6 +3661,7 @@ int main(int argc, char **argv) {
audio_device.frame->pts += audio_track.codec_context->frame_size; audio_device.frame->pts += audio_track.codec_context->frame_size;
num_received_frames++; num_received_frames++;
} else { } else {
// TODO: Maybe sleep for time_to_sleep_until_next_frame/4? for better latency
const double time_after_read_seconds = clock_get_monotonic_seconds(); const double time_after_read_seconds = clock_get_monotonic_seconds();
const double time_to_read_seconds = time_after_read_seconds - time_before_read_seconds; const double time_to_read_seconds = time_after_read_seconds - time_before_read_seconds;
const double time_to_sleep_until_next_frame = timeout_sec - time_to_read_seconds; const double time_to_sleep_until_next_frame = timeout_sec - time_to_read_seconds;