Fix missing color range set in color conversion for nvidia window capture

This commit is contained in:
dec05eba
2024-03-21 15:11:13 +01:00
parent c2af57a978
commit b19f88d769
5 changed files with 3 additions and 16 deletions

View File

@@ -204,14 +204,11 @@ static unsigned int gl_create_texture(gsr_egl *egl, int width, int height, int i
static bool cuda_register_opengl_texture(gsr_cuda *cuda, CUgraphicsResource *cuda_graphics_resource, CUarray *mapped_array, unsigned int texture_id) {
CUresult res;
CUcontext old_ctx;
res = cuda->cuCtxPushCurrent_v2(cuda->cu_ctx);
res = cuda->cuGraphicsGLRegisterImage(cuda_graphics_resource, texture_id, GL_TEXTURE_2D, CU_GRAPHICS_REGISTER_FLAGS_NONE);
if (res != CUDA_SUCCESS) {
const char *err_str = "unknown";
cuda->cuGetErrorString(res, &err_str);
fprintf(stderr, "gsr error: cuda_register_opengl_texture: cuGraphicsGLRegisterImage failed, error: %s, texture " "id: %u\n", err_str, texture_id);
res = cuda->cuCtxPopCurrent_v2(&old_ctx);
return false;
}
@@ -219,7 +216,6 @@ static bool cuda_register_opengl_texture(gsr_cuda *cuda, CUgraphicsResource *cud
res = cuda->cuGraphicsMapResources(1, cuda_graphics_resource, 0);
res = cuda->cuGraphicsSubResourceGetMappedArray(mapped_array, *cuda_graphics_resource, 0, 0);
res = cuda->cuCtxPopCurrent_v2(&old_ctx);
return true;
}

View File

@@ -72,9 +72,6 @@ static bool gsr_capture_kms_cuda_should_stop(gsr_capture *cap, bool *err) {
static void gsr_capture_kms_unload_cuda_graphics(gsr_capture_kms_cuda *cap_kms) {
if(cap_kms->cuda.cu_ctx) {
CUcontext old_ctx;
cap_kms->cuda.cuCtxPushCurrent_v2(cap_kms->cuda.cu_ctx);
for(int i = 0; i < 2; ++i) {
if(cap_kms->cuda_graphics_resources[i]) {
cap_kms->cuda.cuGraphicsUnmapResources(1, &cap_kms->cuda_graphics_resources[i], 0);
@@ -82,8 +79,6 @@ static void gsr_capture_kms_unload_cuda_graphics(gsr_capture_kms_cuda *cap_kms)
cap_kms->cuda_graphics_resources[i] = 0;
}
}
cap_kms->cuda.cuCtxPopCurrent_v2(&old_ctx);
}
}

View File

@@ -53,9 +53,6 @@ static int gsr_capture_xcomposite_cuda_start(gsr_capture *cap, AVCodecContext *v
static void gsr_capture_xcomposite_unload_cuda_graphics(gsr_capture_xcomposite_cuda *cap_xcomp) {
if(cap_xcomp->cuda.cu_ctx) {
CUcontext old_ctx;
cap_xcomp->cuda.cuCtxPushCurrent_v2(cap_xcomp->cuda.cu_ctx);
for(int i = 0; i < 2; ++i) {
if(cap_xcomp->cuda_graphics_resources[i]) {
cap_xcomp->cuda.cuGraphicsUnmapResources(1, &cap_xcomp->cuda_graphics_resources[i], 0);
@@ -63,8 +60,6 @@ static void gsr_capture_xcomposite_unload_cuda_graphics(gsr_capture_xcomposite_c
cap_xcomp->cuda_graphics_resources[i] = 0;
}
}
cap_xcomp->cuda.cuCtxPopCurrent_v2(&old_ctx);
}
}