Giter Club home page Giter Club logo

ghub-obs-plugin's People

Contributors

adrsanchez avatar anilkumarambati avatar jgarnand avatar logitechg-antonpup avatar paulbombarde avatar vasyl-baran avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ghub-obs-plugin's Issues

OBS hangs for several seconds after every single action inside of OBS

After installing ghub, OBS started lagging for 5 to 10 seconds after every single action that I perform inside of obs (things as simple as clicking on a different scene!). I have a 5950x with 128 gigs of ram, so this should really not be happening. I was able to reduce the problem down to this plugin (which, notably, seems to secretly install itself and there is no option in ghub to turn it off). Deleting the plugin fixes the issue so that there is absolutely no hang after any action, however ghub keeps silently reinstalling the plugin every time i delete it.

The performance issue seems to be caused by logi::applets::obs_plugin::helper_populate_collections. This is executed after most actions in OBS, and inside of the function it is redundantly accessing a nested std::map for every single source in every scene. Also, for each of those redundant lookups, multiple new and redundant std::strings are created.

There are a few easy ways to fix this without changing the structure of the plugin too much at a high level:

  1. Don't perform redundant lookups into the maps. Each operator[] call has to do a lookup through the entire map. If you need to index, it's best to do it exactly once per element and hold onto a reference to that element.

  2. Use a container other than std::map. If using a different standard container, std::unordered_map will be the easiest drop-in replacement and has better complexity for the operations being used.

  3. Don't create redundant std::string objects. Modern c++ standards allow for heterogeneous lookup into associative containers. This means that you do not have to create even a single std::string just indexing into an associative container.

I cannot be the only person to have been impacted by this, but I'm sure those who are impacted just assume that it is OBS itself that is the culprit and have not looked into it more deeply. The problem also gets more pronounced as the amount of sources increases. I have a [relatively] large number of sources in OBS, but nothing too extreme and I am sure that there are people with more. Anyone who has a moderate amount of sources and has ghub installed will experience this issue.

OBS crashing when loading logi_obs_plugin.so (macOS Ventura)

This morning my Logitech G Hub was showing me some sort of update. I can't quite find out what the update was, or how the version numbers changed, because I can't quite find anything like a changelog in the application.

However, ever since the update, my OBS no longer works, even on a completely clean user/profile. The verbose log states the following as the last line:

14:37:55.107: Loading module: logi_obs_plugin.so

Apparently some update is causing an issue. I've already turned off OBS integration in the Logitech G Hub app, but it's still happening.

Would you have any idea what might be causing this?

Cannot install OBS plugin

Whenever I try to install the OBS plugin, I receive a "failed" error banner.

I tried both manual and automatic install. Also tried running GHub as Administrator.
Tried with OBS running, with OBS closed.

I arrived to the conclusion that something is wrong with the plugin installer.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.