guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#45707] [PATCH v2] gnu: Add obs-v4l2sink.


From: Alexey Abramov
Subject: [bug#45707] [PATCH v2] gnu: Add obs-v4l2sink.
Date: Thu, 07 Jan 2021 09:19:16 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)

Hi Evan,

You can make it work. 

In order to provide plugins for obs via $XDG_CONFIG_HOME (~/.config) you need 
to provide the following structure:

"$XDG_CONFIG_HOME/obs-studio/plugins/<module-name>/bin/<arch>/"

As it implemented in obs-studio (~/obs-studio/UI/window-basic-main.cpp)

--8<---------------cut here---------------start------------->8---
  static void AddExtraModulePaths()
  {
          char base_module_dir[512];
  #if defined(_WIN32) || defined(__APPLE__)
          int ret = GetProgramDataPath(base_module_dir, sizeof(base_module_dir),
                                       "obs-studio/plugins/%module%");
  #else
          int ret = GetConfigPath(base_module_dir, sizeof(base_module_dir),
                                  "obs-studio/plugins/%module%");
  #endif

          if (ret <= 0)
                  return;

          string path = base_module_dir;
  #if defined(__APPLE__)
          obs_add_module_path((path + "/bin").c_str(), (path + 
"/data").c_str());

          BPtr<char> config_bin =
                  os_get_config_path_ptr("obs-studio/plugins/%module%/bin");
          BPtr<char> config_data =
                  os_get_config_path_ptr("obs-studio/plugins/%module%/data");
          obs_add_module_path(config_bin, config_data);

  #elif ARCH_BITS == 64
          obs_add_module_path((path + "/bin/64bit").c_str(),
                              (path + "/data").c_str());
  #else
          obs_add_module_path((path + "/bin/32bit").c_str(),
                              (path + "/data").c_str());
  #endif
  }
--8<---------------cut here---------------end--------------->8---


So what I am currently have is this:

--8<---------------cut here---------------start------------->8---
  λ find ~/.config/obs-studio/plugins 
  /home/levenson/.config/obs-studio/plugins
  /home/levenson/.config/obs-studio/plugins/v4l2sink
  /home/levenson/.config/obs-studio/plugins/v4l2sink/bin
  /home/levenson/.config/obs-studio/plugins/v4l2sink/bin/64bit
  /home/levenson/.config/obs-studio/plugins/v4l2sink/bin/64bit/v4l2sink.so
--8<---------------cut here---------------end--------------->8---

where the library is a symlink

v4l2sink.so -> /home/levenson/.guix-profile/lib/obs-plugins/v4l2sink.so

-- 
Alexey





reply via email to

[Prev in Thread] Current Thread [Next in Thread]