[edit] dodgepong has pointed out below that this is not a bug. However, my issue with game capture and its transparent padding is not explained (post #3).
Hello, OBS devs. Thank you for this excellent software! It has worked well for me for many months. I am having some trouble capturing some game windows, however.
Some windows, when added to the sources list, will either capture a single image and then stop, or will capture only a flat color yet continue to update. My most recent trouble has been with the emulator XEBRA, which is used in the recording below, and the game Cave Story+. I would prefer to use window capture with both games, as game capture obscures the image when cropped, but game capture is more reliable.
I tested both game capture and window capture. I switched XEBRA between using OpenGL for stretching and not using it. I think XEBRA only uses OpenGL to stretch the final image, and not for rendering it. I wish I could provide more info about XEBRA, but all of its documentation is in Japanese, which I can't read.
With OpenGL disabled, game capture fails (as expected) but window capture works. This also increases XEBRA's CPU load and makes performance drop. With OpenGL enabled, game capture works but window capture does not; It does not even capture the window borders, which turn black when minimized and then restored, and the window buttons never update. Is this behavior a bug, or something intentional?
Here is a recording of my tests:
Sorry about the blurriness; YouTube resized the video. When I add the window capture, I do not change any default options, so capturing mouse cursor is checked, but not the layered windows or compatibility mode. No combination of options makes the window contents visible.
My OS is Windows 8. The log analyzer says I have zero issues. Here is the log from the recording:
Minor tangent, but is game capture supposed to obscure the image if it doesn't fit the aspect ratio?
Hello, OBS devs. Thank you for this excellent software! It has worked well for me for many months. I am having some trouble capturing some game windows, however.
Some windows, when added to the sources list, will either capture a single image and then stop, or will capture only a flat color yet continue to update. My most recent trouble has been with the emulator XEBRA, which is used in the recording below, and the game Cave Story+. I would prefer to use window capture with both games, as game capture obscures the image when cropped, but game capture is more reliable.
I tested both game capture and window capture. I switched XEBRA between using OpenGL for stretching and not using it. I think XEBRA only uses OpenGL to stretch the final image, and not for rendering it. I wish I could provide more info about XEBRA, but all of its documentation is in Japanese, which I can't read.
With OpenGL disabled, game capture fails (as expected) but window capture works. This also increases XEBRA's CPU load and makes performance drop. With OpenGL enabled, game capture works but window capture does not; It does not even capture the window borders, which turn black when minimized and then restored, and the window buttons never update. Is this behavior a bug, or something intentional?
Here is a recording of my tests:
My OS is Windows 8. The log analyzer says I have zero issues. Here is the log from the recording:
Code:
19:40:42: Open Broadcaster Software v0.624b - 64bit ( ^ω^)
19:40:42: -------------------------------
19:40:42: CPU Name: Intel(R) Core(TM) i5-3570K CPU @ 3.40GHz
19:40:42: CPU Speed: 3392MHz
19:40:42: Physical Memory: 8155MB Total, 4498MB Free
19:40:42: stepping id: 9, model 58, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 4, total cores 4
19:40:42: monitor 1: pos={0, 0}, size={1600, 900}
19:40:42: Windows Version: 6.2 Build 9200
19:40:42: Aero is Enabled
19:40:42: -------------------------------
19:40:42: OBS Modules:
19:40:42: Base Address Module
19:40:42: 00000000C5E20000 OBS.exe
19:40:42: 00000000F0790000 OBSApi.dll
19:40:42: 000000000BF40000 DShowPlugin.dll
19:40:42: 000000000BF10000 GraphicsCapture.dll
19:40:42: 000000000BEE0000 NoiseGate.dll
19:40:42: 0000000009120000 PSVPlugin.dll
19:40:42: 0000000008EB0000 scenesw.dll
19:40:42: ------------------------------------------
19:40:42: Adapter 1
19:40:42: Video Adapter: AMD Radeon HD 7800 Series
19:40:42: Video Adapter Dedicated Video Memory: 2128662528
19:40:42: Video Adapter Shared System Memory: 4007180288
19:40:42: Video Adapter Output 1: pos={0, 0}, size={1600, 900}, attached=true
19:40:42: =====Stream Start: 2014-05-27, 19:40:42===============================================
19:40:42: Multithreaded optimizations: On
19:40:42: Base resolution: 1600x900
19:40:42: Output resolution: 1600x900
19:40:42: ------------------------------------------
19:40:42: Loading up D3D10 on AMD Radeon HD 7800 Series (Adapter 1)...
19:40:42: ------------------------------------------
19:40:42: Audio Format: 44100 Hz
19:40:42: ------------------------------------------
19:40:42: Audio Channels: 2 Ch
19:40:42: Playback device {0.0.0.00000000}.{dacecc52-dbd2-4faf-894c-111887717396}
19:40:42: ------------------------------------------
19:40:42: Using desktop audio input: Speakers (Realtek High Definition Audio)
19:40:42: Global Audio time adjust: 0
19:40:42: ------------------------------------------
19:40:42: Audio Encoding: AAC
19:40:42: bitrate: 96
19:40:42: Using Window Capture
19:40:42: Using Monitor Capture
19:40:42: Scene buffering time set to 400
19:40:42: ------------------------------------------
19:40:42: Video Encoding: x264
19:40:42: fps: 30
19:40:42: width: 1600, height: 900
19:40:42: preset: veryfast
19:40:42: profile: main
19:40:42: keyint: 60
19:40:42: CBR: yes
19:40:42: CFR: yes
19:40:42: max bitrate: 2000
19:40:42: buffer size: 2000
19:40:42: ------------------------------------------
19:40:54: Using graphics capture
19:40:54: Trying to hook process: ARBEX.EXE
19:40:54: SharedTexCapture hooked
19:41:09: Using Window Capture
19:41:34: Exit signal received, terminating capture
19:42:11: Capture window 0x001D0496 invalid or changing, terminating capture
19:42:15: SharedTexCapture hooked
19:42:58: Total frames encoded: 4076, total frames duplicated: 1 (0.02%)
19:42:58: Total frames rendered: 4080, number of late frames: 0 (0.00%) (it's okay for some frames to be late)
19:42:58:
19:42:58: Profiler time results:
19:42:58:
19:42:58: ==============================================================
19:42:58: video thread frame - [100%] [avg time: 1.389 ms] [children: 70.6%] [unaccounted: 29.4%]
19:42:58: | scene->Preprocess - [63.8%] [avg time: 0.886 ms]
19:42:58: | GPU download and conversion - [6.77%] [avg time: 0.094 ms] [children: 5.98%] [unaccounted: 0.792%]
19:42:58: | | flush - [5.33%] [avg time: 0.074 ms]
19:42:58: | | CopyResource - [0.504%] [avg time: 0.007 ms]
19:42:58: | | conversion to 4:2:0 - [0.144%] [avg time: 0.002 ms]
19:42:58: Convert444Threads - [100%] [avg time: 0.565 ms] [children: 99.5%] [unaccounted: 0.531%]
19:42:58: | Convert444toNV12 - [99.5%] [avg time: 0.562 ms]
19:42:58: encoder thread frame - [100%] [avg time: 1.095 ms] [children: 0.731%] [unaccounted: 99.3%]
19:42:58: | sending stuff out - [0.731%] [avg time: 0.008 ms]
19:42:58: ==============================================================
19:42:58:
19:42:58:
19:42:58: Profiler CPU results:
19:42:58:
19:42:58: ==============================================================
19:42:58: video thread frame - [cpu time: avg 0.382 ms, total 1562.5 ms] [avg calls per frame: 1]
19:42:58: | scene->Preprocess - [cpu time: avg 0.08 ms, total 328.125 ms] [avg calls per frame: 1]
19:42:58: | GPU download and conversion - [cpu time: avg 0.038 ms, total 156.25 ms] [avg calls per frame: 1]
19:42:58: | | flush - [cpu time: avg 0.019 ms, total 78.125 ms] [avg calls per frame: 1]
19:42:58: | | CopyResource - [cpu time: avg 0.003 ms, total 15.625 ms] [avg calls per frame: 1]
19:42:58: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
19:42:58: Convert444Threads - [cpu time: avg 0.224 ms, total 1828.13 ms] [avg calls per frame: 2]
19:42:58: | Convert444toNV12 - [cpu time: avg 0.224 ms, total 1828.13 ms] [avg calls per frame: 2]
19:42:58: encoder thread frame - [cpu time: avg 1.018 ms, total 4140.63 ms] [avg calls per frame: 1]
19:42:58: | sending stuff out - [cpu time: avg 0.003 ms, total 15.625 ms] [avg calls per frame: 1]
19:42:58: ==============================================================
19:42:58:
19:42:58: =====Stream End: 2014-05-27, 19:42:58=================================================
Last game capture log:
2014-05-27, 19:42:15: we're booting up:
19:42:15: CaptureThread: attached to process ARBEX.EXE
19:42:15: GL Present
19:42:15: (half life scientist) everything.. seems to be in order
19:42:15: SwapBuffers(922817419) Called
19:42:15: NV Capture available
19:42:15: FBO available
19:42:15: setting up gl data
19:42:15: share device: 124024596
19:42:15: share texture: 124055480
19:42:15: share device handle: 124001864
19:42:15: share texture handle: 123324400
19:42:15: DoGLGPUHook: success
19:42:15: wglSwapBuffers(922817419) Called
19:42:58: stop requested, terminating gl capture
19:42:58: ---------------------- Cleared OpenGL Capture ----------------------
19:42:58: wglSwapBuffers(922817419) Called
19:42:58: setting up gl data
19:42:58: SwapBuffers(922817419) Called
19:43:04: wglDeleteContext Called
19:43:04: ---------------------- Cleared OpenGL Capture ----------------------
Minor tangent, but is game capture supposed to obscure the image if it doesn't fit the aspect ratio?
Last edited: