Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The plugin displays a single application for several outputs #178

Open
ogmkp opened this issue Nov 5, 2023 · 3 comments
Open

The plugin displays a single application for several outputs #178

ogmkp opened this issue Nov 5, 2023 · 3 comments

Comments

@ogmkp
Copy link

ogmkp commented Nov 5, 2023

Describe the bug
If there are several outputs on a program, the plugin displays only one program name.

Screenshots or video
In practice, I tested on OBS with 3 outputs (preview, program and a projector).
The plugin menu only displays one program, "obs", and I have to switch between "capture any window except obs" and "obs" to get the right capture randomly.
For example, to get the projector, I have to switch a dozen times because it will display the preview, the program or the projector randomly.

System (please complete the following information):

  • OS: Linux Debian 12
  • GPU: AMD R9 380
  • Mesa version: 22.3.6
  • obs-vkcapture version: build from master today, (CMakeLists say 1.4.4)

OBS log:

16:08:34.923: Using EGL/X11
16:08:34.923: CPU Name: Intel(R) Pentium(R) CPU G4560 @ 3.50GHz
16:08:34.923: CPU Speed: 3499.998MHz
16:08:34.923: Physical Cores: 2, Logical Cores: 4
16:08:34.923: Physical Memory: 15955MB Total, 6387MB Free
16:08:34.923: Kernel Version: Linux 6.1.0-13-amd64
16:08:34.923: Distribution: "Debian GNU/Linux" "12"
16:08:34.923: Desktop Environment: MATE (lightdm-xsession)
16:08:34.923: Session Type: x11
16:08:34.923: Window System: X11.0, Vendor: The X.Org Foundation, Version: 1.21.1
16:08:34.924: Qt Version: 6.4.2 (runtime), 6.4.2 (compiled)
16:08:34.924: Portable mode: false
16:08:34.955: OBS 29.1.3 (linux)
16:08:34.955: ---------------------------------
16:08:34.964: ---------------------------------
16:08:34.964: audio settings reset:
16:08:34.964: 	samples per sec: 48000
16:08:34.964: 	speakers:        2
16:08:34.964: 	max buffering:   21 milliseconds
16:08:34.964: 	buffering type:  fixed
16:08:34.973: ---------------------------------
16:08:34.973: Initializing OpenGL...
16:08:34.986: Enabling fixed audio buffering, total audio buffering is now 21 milliseconds
16:08:35.052: Loading up OpenGL on adapter AMD AMD Radeon R9 380 Series (tonga, LLVM 15.0.6, DRM 3.49, 6.1.0-13-amd64)
16:08:35.052: OpenGL loaded successfully, version 4.6 (Core Profile) Mesa 22.3.6, shading language 4.60
16:08:35.109: ---------------------------------
16:08:35.109: video settings reset:
16:08:35.109: 	base resolution:   1920x1080
16:08:35.109: 	output resolution: 1920x1080
16:08:35.109: 	downscale filter:  Bicubic
16:08:35.109: 	fps:               60/1
16:08:35.109: 	format:            NV12
16:08:35.109: 	YUV mode:          Rec. 709/Partial
16:08:35.110: NV12 texture support not available
16:08:35.110: P010 texture support not available
16:08:35.112: Audio monitoring device:
16:08:35.112: 	name: Par défaut
16:08:35.112: 	id: default
16:08:35.112: ---------------------------------
16:08:35.128: Failed to load 'en-US' text for module: 'decklink-captions.so'
16:08:35.139: Failed to load 'en-US' text for module: 'decklink-output-ui.so'
16:08:35.149: A DeckLink iterator could not be created.  The DeckLink drivers may not be installed
16:08:35.149: Failed to initialize module 'decklink.so'
16:08:35.408: [pipewire] No captures available
16:08:35.455: [obs-browser]: Version 2.21.1
16:08:35.455: [obs-browser]: CEF Version 103.0.5060.134 (runtime), 103.0.0-5060-shared-textures_143.2591+g4204d54+chromium-103.0.5060.134 (compiled)
16:08:35.737: VAAPI: API version 1.17
16:08:35.742: FFmpeg VAAPI H264 encoding supported
16:08:35.758: FFmpeg VAAPI HEVC encoding not supported
16:08:35.842: [obs-websocket] [obs_module_load] you can haz websockets (Version: 5.2.3 | RPC Version: 1)
16:08:35.842: [obs-websocket] [obs_module_load] Qt version (compile-time): 6.4.2 | Qt version (run-time): 6.4.2
16:08:35.842: [obs-websocket] [obs_module_load] Linked ASIO Version: 102201
16:08:35.848: [obs-websocket] [obs_module_load] Module loaded.
16:08:35.899: [vlc-video]: VLC 3.0.18 Vetinari found, VLC video source enabled
16:08:35.952: [linux-vkcapture] plugin loaded successfully (version 1.4.4)
16:08:36.014: [obs-ndi] obs_module_load: hello ! (version 4.11.1)
16:08:36.014: [obs-ndi] load_ndilib: Trying '/usr/lib/libndi.so.5'
16:08:36.014: [obs-ndi] load_ndilib: Found NDI library at '/usr/lib/libndi.so.5'
16:08:36.015: [obs-ndi] load_ndilib: NDI runtime loaded successfully
16:08:36.015: [obs-ndi] load_ndilib: NDIlib_v5_load found
16:08:36.015: [obs-ndi] obs_module_load: NDI library initialized successfully (NDI SDK LINUX 12:45:43 Apr 10 2023 5.5.4)
16:08:36.119: ---------------------------------
16:08:36.119:   Loaded Modules:
16:08:36.120:     obs-ndi.so
16:08:36.120:     linux-vkcapture.so
16:08:36.120:     vlc-video.so
16:08:36.120:     text-freetype2.so
16:08:36.120:     rtmp-services.so
16:08:36.120:     obs-x264.so
16:08:36.120:     obs-websocket.so
16:08:36.120:     obs-vst.so
16:08:36.120:     obs-transitions.so
16:08:36.120:     obs-outputs.so
16:08:36.120:     obs-libfdk.so
16:08:36.120:     obs-filters.so
16:08:36.120:     obs-ffmpeg.so
16:08:36.120:     obs-browser.so
16:08:36.120:     linux-v4l2.so
16:08:36.120:     linux-pulseaudio.so
16:08:36.120:     linux-pipewire.so
16:08:36.120:     linux-capture.so
16:08:36.120:     image-source.so
16:08:36.120:     frontend-tools.so
16:08:36.120:     decklink-output-ui.so
16:08:36.120:     decklink-captions.so
16:08:36.120: ---------------------------------
16:08:36.120: ==== Startup complete ===============================================
16:08:36.142: Switched to Preview/Program mode
16:08:36.142: ------------------------------------------------
16:08:36.181: All scene data cleared
16:08:36.181: ------------------------------------------------
16:08:36.186: pulse-input: Server name: 'PulseAudio (on PipeWire 0.3.65) 15.0.0'
16:08:36.186: pulse-input: Audio format: s32le, 48000 Hz, 2 channels
16:08:36.186: pulse-input: Started recording from 'alsa_output.pci-0000_01_00.1.hdmi-stereo-extra3.monitor'
16:08:36.186: [Loaded global audio device]: 'Audio du Bureau'
16:08:36.207: started A/V threads for source ''
16:08:36.207: A/V thread for 'Source NDI™' started
16:08:36.208: [window-capture: 'Capture de la fenêtre (Xcomposite)'] update settings:
16:08:36.208: 	title: unknown
16:08:36.208: 	class: unknown
16:08:36.208: 
16:08:36.209: [Media Source 'Source média']: settings:
16:08:36.209: 	input:                   /home/ogar/Téléchargements/met.webm
16:08:36.209: 	input_format:            (null)
16:08:36.209: 	speed:                   100
16:08:36.209: 	is_looping:              yes
16:08:36.209: 	is_linear_alpha:         no
16:08:36.209: 	is_hw_decoding:          yes
16:08:36.209: 	is_clear_on_media_end:   yes
16:08:36.209: 	restart_on_activate:     yes
16:08:36.209: 	close_when_inactive:     no
16:08:36.209: 	full_decode:             no
16:08:36.209: 	ffmpeg_options:          
16:08:36.210: Switched to scene 'Scène 5'
16:08:36.212: save_or_load_event_callback 0, 973836068
16:08:36.248: unknown mute when setting: ''
16:08:36.257: dock: 260 260 fs: 10
16:08:36.257: target: 234 0
16:08:36.259: ------------------------------------------------
16:08:36.259: Loaded scenes:
16:08:36.260: - scene 'Scène 2 2':
16:08:36.260:     - source: 'Source média' (ffmpeg_source)
16:08:36.260: - scene 'Scène 5':
16:08:36.260:     - source: 'Source NDI™' (ndi_source)
16:08:36.260:     - source: 'Texte (FreeType 2)' (text_ft2_source_v2)
16:08:36.260: - scene 'Scène 7':
16:08:36.260:     - source: 'Capture de la fenêtre (Xcomposite)' (xcomposite_input)
16:08:36.260:     - source: 'Capture du jeu' (vkcapture-source)
16:08:36.260: ------------------------------------------------
16:08:41.121: User switched to scene 'Scène 7'
16:08:42.145: User switched to scene 'Scène 5'
16:08:49.156: [linux-vkcapture] Client 1 connected (pid=34174)
16:08:54.793: User switched to scene 'Scène 2 2'
16:08:55.868: User switched to scene 'Scène 7'
16:08:57.269: User switched to scene 'Scène 2 2'
16:08:58.089: User switched to scene 'Scène 7'
16:09:04.793: save_or_load_event_callback 1, 973836068
16:09:04.794: obs save event
16:09:10.246: [linux-vkcapture] Creating texture from dmabuf 859x566 modifier:72057594037927935
16:09:10.246: [linux-vkcapture]  [0] fd:71 stride:4096 offset:0
16:09:13.279: [linux-vkcapture] Creating texture from dmabuf 859x566 modifier:72057594037927935
16:09:13.279: [linux-vkcapture]  [0] fd:71 stride:4096 offset:0
16:09:16.296: [linux-vkcapture] Creating texture from dmabuf 859x566 modifier:72057594037927935
16:09:16.296: [linux-vkcapture]  [0] fd:71 stride:4096 offset:0
16:09:19.995: save_or_load_event_callback 1, 973836068
16:09:19.995: obs save event

Game log:

[obs-vkcapture] Texture GL_RGBA 859x566
[obs-vkcapture] ------------------ opengl capture started ------------------
[obs-vkcapture] ------------------- opengl capture freed -------------------
[obs-vkcapture] Texture GL_RGBA 859x566
[obs-vkcapture] ------------------ opengl capture started ------------------
[obs-vkcapture] ------------------- opengl capture freed -------------------
[obs-vkcapture] Texture GL_RGBA 859x566
[obs-vkcapture] ------------------ opengl capture started ------------------

Thanks for this project !

@nowrep
Copy link
Owner

nowrep commented Nov 5, 2023

Yes, multiple windows from one application aren't really supported. Games usually only have one window.

What exactly is your usecase?

@ogmkp
Copy link
Author

ogmkp commented Nov 5, 2023

I'm using a second OBS as a playout and I wanted to get away from using the less efficient xcomposite window capture.

@Maksym-L
Copy link

@nowrep I am having the same issue with Godot.

When I run Godot as:

env OBS_VKCAPTURE=1 godot

Then I run my game from Godot. I got two "godot" entries for it, and it is not possible to select the game output
Screenshot from 2024-07-23 11-32-18

My use case is to record games in progress for the dev log/streams or to share.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants