Projects
Multimedia
obs-vkcapture
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 5
View file
obs-vkcapture.changes
Changed
@@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Thu May 28 12:04:54 UTC 2026 - Sqx. Flann <fl4nn@opensuse.org> + +- Update to version 1.5.6 + * Fix crash when used together with low latency layer + * Added `OBS_VKCAPTURE_NAME` env variable to change game name + +------------------------------------------------------------------- Wed Feb 25 12:35:48 UTC 2026 - Sqx. Flann <fl4nn@opensuse.org> - Update to version 1.5.5
View file
obs-vkcapture.spec
Changed
@@ -1,5 +1,5 @@ Name: obs-vkcapture -Version: 1.5.5 +Version: 1.5.6 Release: 0 Summary: OBS plugin for Vulkan/OpenGL game capture on Linux License: GPL-2.0-only
View file
obs-vkcapture-1.5.5.tar.gz/CMakeLists.txt -> obs-vkcapture-1.5.6.tar.gz/CMakeLists.txt
Changed
@@ -2,7 +2,7 @@ project(obs-vkcapture LANGUAGES C - VERSION 1.5.5) + VERSION 1.5.6) include(GNUInstallDirs) find_package(Vulkan REQUIRED)
View file
obs-vkcapture-1.5.5.tar.gz/README.md -> obs-vkcapture-1.5.6.tar.gz/README.md
Changed
@@ -38,6 +38,8 @@ 2. Start the game with capture enabled `obs-gamecapture %command%`. 3. (Recommended) Start the game with only Vulkan capture enabled `env OBS_VKCAPTURE=1 %command%`. +To change the game name that is displayed in OBS Source properties, set `OBS_VKCAPTURE_NAME=custom_name_here`. + ## Troubleshooting **NVIDIA**
View file
obs-vkcapture-1.5.5.tar.gz/src/capture.c -> obs-vkcapture-1.5.6.tar.gz/src/capture.c
Changed
@@ -57,6 +57,11 @@ static bool get_exe(char *buf, size_t bufsize) { + char *custom_name = getenv("OBS_VKCAPTURE_NAME"); + if (custom_name) { + strncpy(buf, custom_name, bufsize); + return true; + } char exePATH_MAX; ssize_t n = readlink("/proc/self/exe", exe, PATH_MAX); if (n <= 0) {
View file
obs-vkcapture-1.5.5.tar.gz/src/vkcapture.c -> obs-vkcapture-1.5.6.tar.gz/src/vkcapture.c
Changed
@@ -111,6 +111,7 @@ } vkcapture_source_t; static bool server_wakeup(); +static void vkcapture_get_hooked(void *data, calldata_t *cd); static const char *import_attempt_str(enum vkcapture_import_attempt attempt) { @@ -353,6 +354,12 @@ cursor_create(ctx); + proc_handler_t *ph = obs_source_get_proc_handler(source); + proc_handler_add( + ph, + "void get_hooked(out bool hooked, out string executable)", + vkcapture_get_hooked, ctx); + UNUSED_PARAMETER(settings); return ctx; } @@ -388,6 +395,25 @@ return client; } +static void vkcapture_get_hooked(void *data, calldata_t *cd) +{ + vkcapture_source_t *ctx = data; + + if(ctx && ctx->client_id) { + pthread_mutex_lock(&server.mutex); + vkcapture_client_t *client = find_client_by_id(ctx->client_id); + + calldata_set_bool(cd, "hooked", !!client); + calldata_set_string(cd, "executable", client ? client->cdata.exe: ""); + + pthread_mutex_unlock(&server.mutex); + return; + } + + calldata_set_bool(cd, "hooked", false); + calldata_set_string(cd, "executable", ""); +} + static void fill_capture_control_data(struct capture_control_data *msg, vkcapture_client_t *client) { if (!p_glGetUnsignedBytei_vEXT) {
View file
obs-vkcapture-1.5.5.tar.gz/src/vklayer.c -> obs-vkcapture-1.5.6.tar.gz/src/vklayer.c
Changed
@@ -1289,9 +1289,10 @@ for (uint32_t i = 0; i < req_extensions_count; ++i) { extsinfo->enabledExtensionCount + i = req_extensionsi; } - VkInstanceCreateInfo *i = (VkInstanceCreateInfo*)info; - i->enabledExtensionCount = new_count; - i->ppEnabledExtensionNames = exts; + + VkInstanceCreateInfo create_info = *info; + create_info.enabledExtensionCount = new_count; + create_info.ppEnabledExtensionNames = exts; /* -------------------------------------------------------- */ /* step through chain until we get to the link info */ @@ -1302,6 +1303,7 @@ } if (lici == NULL) { + free(exts); return VK_ERROR_INITIALIZATION_FAILED; } @@ -1317,15 +1319,18 @@ /* allocate data node */ struct vk_inst_data *idata = alloc_inst_data(ac); - if (!idata) + if (!idata) { + free(exts); return VK_ERROR_OUT_OF_HOST_MEMORY; + } /* -------------------------------------------------------- */ /* create instance */ PFN_vkCreateInstance create = (PFN_vkCreateInstance)gpa(NULL, "vkCreateInstance"); - VkResult res = create(info, ac, p_inst); + VkResult res = create(&create_info, ac, p_inst); + free(exts); #ifndef NDEBUG hlog("CreateInstance %s", result_to_str(res)); #endif @@ -1448,9 +1453,10 @@ for (uint32_t i = 0; i < req_extensions_count; ++i) { extsinfo->enabledExtensionCount + i = req_extensionsi; } - VkDeviceCreateInfo *i = (VkDeviceCreateInfo*)info; - i->enabledExtensionCount = new_count; - i->ppEnabledExtensionNames = exts; + + VkDeviceCreateInfo create_info = *info; + create_info.enabledExtensionCount = new_count; + create_info.ppEnabledExtensionNames = exts; VkResult ret = VK_ERROR_INITIALIZATION_FAILED; @@ -1464,6 +1470,7 @@ } if (!ldci) { + free(exts); return ret; } @@ -1482,8 +1489,10 @@ /* allocate data node */ data = alloc_device_data(ac); - if (!data) + if (!data) { + free(exts); return VK_ERROR_OUT_OF_HOST_MEMORY; + } init_obj_list(&data->queues); data->graphics_queue = VK_NULL_HANDLE; @@ -1494,7 +1503,8 @@ PFN_vkCreateDevice createFunc = (PFN_vkCreateDevice)gipa(idata->instance, "vkCreateDevice"); - ret = createFunc(phy_device, info, ac, p_device); + ret = createFunc(phy_device, &create_info, ac, p_device); + free(exts); #ifndef NDEBUG hlog("CreateDevice %s", result_to_str(ret)); #endif
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.