[unsupported] Datapath Vision Capture

[unsupported] Datapath Vision Capture 20130903

Boildown

Active Member
Draco said:
I know when I run the "Vision window" monitoring program alone, it's a solid 60 or so. But with OBS grabbing at the same time, it plummets to 30-50, which I assumed was just normal for this card. Is it the same for you guys?

I have an E1S and when I'm not doing the -multi thing to run two instances of OBS at the same time, this plugin works great. I have yet to benchmark it to see how much of a performance improvement it makes though.

For the record, even if I run this plugin on one instance of OBS and run directshow on the other (using -multi on both), the stuttering effect still occurs on at least one of the OBS instances. Which one (if not both) seems to depend on which order I start them in, but I did my testing long enough ago that I don't recall the exact details.

Furthermore, I can push my E1S pretty hard and capture at at least 105 fps, as detailed in an earlier post in this thread. So I think its a plugin / OBS issue, not a capture card bandwidth issue.
 

Muf

Forum Moderator
For reference, what format do you use when you use the DirectShow plugin, Boildown? YUY2, RGB24, or RGB32?
 

Boildown

Active Member
Muf said:
For reference, what format do you use when you use the DirectShow plugin, Boildown? YUY2, RGB24, or RGB32?

I'm not sure, in the Device Selection which you see when you right click the source and select Properties, "Use Output Format" is unchecked. I guess whatever is the default?

Hmm, according to the log files, it says "chosen type: YUY2". And later on, "fourCC: 'YUY2' ".

So I guess it defaults to YUY2.
 

Muf

Forum Moderator
Boildown said:
I'm not sure, in the Device Selection which you see when you right click the source and select Properties, "Use Output Format" is unchecked. I guess whatever is the default?

Hmm, according to the log files, it says "chosen type: YUY2". And later on, "fourCC: 'YUY2' ".

So I guess it defaults to YUY2.
It's funny that you would insist that it isn't about bandwidth then, because YUY2 requires literally only half the bandwidth of RGB32. A more fair comparison would be to check "Use Output Format" and select RGB32.
 

Boildown

Active Member
Muf said:
It's funny that you would insist that it isn't about bandwidth then, because YUY2 requires literally only half the bandwidth of RGB32. A more fair comparison would be to check "Use Output Format" and select RGB32.

I'll do some testing after work today.

But the basis of that statement was that when using your plugin, I can achieve 105Hz captures on an E1S. But can't run OBS twice at 30fps when capturing at 60Hz with the plugin.
 

Muf

Forum Moderator
Boildown said:
But the basis of that statement was that when using your plugin, I can achieve 105Hz captures on an E1S. But can't run OBS twice at 30fps when capturing at 60Hz with the plugin.
Might be something to do with scheduling, in that case. In fact I could probably implement texture sharing so that multiple instances of the plugin can reuse the same texture.
 

Boildown

Active Member
Test results:

Old log files (DirectShow YUY2):

1) Local Capture:
Code:
22:41:44: Open Broadcaster Software v0.584b - 32bit (´・ω・`)
22:41:44: -------------------------------
22:41:44: CPU Name: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
22:41:44: CPU Speed: 3400MHz
22:41:44: Physical Memory:  4095MB Total, 4095MB Free
22:41:44: stepping id: 7, model 42, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
22:41:44: monitor 1: pos={0, 0}, size={1680, 1050}
22:41:44: Windows Version: 6.1 Build 7601 S
22:41:44: Aero is Disabled
22:41:44: -------------------------------
22:41:44: OBS Modules:
22:41:44: Base Address     Module
22:41:44: 00390000         OBS.exe
22:41:44: 74250000         OBSApi.dll
22:41:44: 73E20000         DatapathPlugin.dll
22:41:44: 73DC0000         DShowPlugin.dll
22:41:44: 73DA0000         GraphicsCapture.dll
22:41:44: 73D80000         NoiseGate.dll
22:41:44: 73D60000         PSVPlugin.dll
22:41:44: ------------------------------------------
22:41:44: Adapter 1
22:41:44:   Video Adapter: NVIDIA GeForce GTX 560 Ti  
22:41:44:   Video Adapter Dedicated Video Memory: 1025966080
22:41:44:   Video Adapter Shared System Memory: 3220779008
22:41:44:   Video Adapter Output 1: pos={0, 0}, size={1680, 1050}, attached=true
22:41:44: =====Stream Start: 2013-11-26, 22:41:44===============================================
22:41:44:   Multithreaded optimizations: On
22:41:44:   Base resolution: 1920x1080
22:41:44:   Output resolution: 1920x1080
22:41:44: ------------------------------------------
22:41:44: Loading up D3D10 on NVIDIA GeForce GTX 560 Ti...
22:41:45: ------------------------------------------
22:41:45: Audio Format: 44100hz
22:41:45: Playback device Default
22:41:45: ------------------------------------------
22:41:45: Using desktop audio input: Speakers (Creative SB X-Fi)
22:41:45: ------------------------------------------
22:41:45: Using auxilary audio input: Microphone (3- USB Audio Device)
22:41:45: ------------------------------------------
22:41:45: Audio Encoding: AAC
22:41:45:     bitrate: 192
22:41:45: ------------------------------------------
22:41:45:     device: Datapath VisionRGB-E1 Video 01,
22:41:45:     device id (null),
22:41:45:     chosen type: YUY2, usingFourCC: false, res: 320x240 - 4096x4096, frameIntervals: 50000-10000000
22:41:45:     use buffering: false - 0, fourCC: 'YUY2'
22:41:45:     audio device: Disable,
22:41:45:     audio device id Disabled,
22:41:45: 
22:41:45: Using directshow input
22:41:45: Scene buffering time set to 400
22:41:45: Using custom x264 settings: "opencl=true threads=4 qp=24"
22:41:45: x264: VBV maxrate specified, but no bufsize, ignored
22:41:45: ------------------------------------------
22:41:45: Video Encoding: x264
22:41:45:     fps: 45
22:41:45:     width: 1920, height: 1080
22:41:45:     preset: superfast
22:41:45:     profile: high
22:41:45:     keyint: 250
22:41:45:     CBR: no
22:41:45:     CFR: yes
22:41:45:     max bitrate: 1000
22:41:45:     buffer size: 0
22:41:45:     quality: 10
22:41:45: ------------------------------------------
22:41:45: MMDeviceAudioSource: Frequency for device 'Speakers (Creative SB X-Fi)' is 352800, samples per sec is 44100
22:41:45: MMDeviceAudioSource: Frequency for device 'Microphone (3- USB Audio Device)' is 176400, samples per sec is 44100
00:12:52: Total frames encoded: 245991, total frames duplicated: 251 (0.10%)
00:12:52: Number of frames skipped due to encoder lag: 172 (0.07%)
00:12:52: Total frames rendered: 245824, number of late frames: 10 (0.00%) (it's okay for some frames to be late)
00:12:53: 
00:12:53: Profiler time results:
00:12:53: 
00:12:53: ==============================================================
00:12:53: video thread frame - [100%] [avg time: 2.018 ms] [children: 79.3%] [unaccounted: 20.7%]
00:12:53: | scene->Preprocess - [75.9%] [avg time: 1.531 ms]
00:12:53: | GPU download and conversion - [3.42%] [avg time: 0.069 ms] [children: 2.48%] [unaccounted: 0.942%]
00:12:53: | | flush - [1.64%] [avg time: 0.033 ms]
00:12:53: | | CopyResource - [0.743%] [avg time: 0.015 ms]
00:12:53: | | conversion to 4:2:0 - [0.0991%] [avg time: 0.002 ms]
00:12:53: Convert444Threads - [100%] [avg time: 1.042 ms] [children: 99.2%] [unaccounted: 0.768%]
00:12:53: | Convert444toNV12 - [99.2%] [avg time: 1.034 ms]
00:12:53: encoder thread frame - [100%] [avg time: 1.436 ms]
00:12:53: ==============================================================
00:12:53: 
00:12:53: 
00:12:53: Profiler CPU results:
00:12:53: 
00:12:53: ==============================================================
00:12:53: video thread frame - [cpu time: avg 1.47 ms, total 361453 ms] [avg calls per frame: 1]
00:12:53: | scene->Preprocess - [cpu time: avg 1.259 ms, total 309594 ms] [avg calls per frame: 1]
00:12:53: | GPU download and conversion - [cpu time: avg 0.031 ms, total 7703.13 ms] [avg calls per frame: 1]
00:12:53: | | flush - [cpu time: avg 0.015 ms, total 3750 ms] [avg calls per frame: 1]
00:12:53: | | CopyResource - [cpu time: avg 0.005 ms, total 1328.13 ms] [avg calls per frame: 1]
00:12:53: | | conversion to 4:2:0 - [cpu time: avg 0.001 ms, total 281.25 ms] [avg calls per frame: 1]
00:12:53: Convert444Threads - [cpu time: avg 1.007 ms, total 495516 ms] [avg calls per frame: 2]
00:12:53: | Convert444toNV12 - [cpu time: avg 1.004 ms, total 494000 ms] [avg calls per frame: 2]
00:12:53: encoder thread frame - [cpu time: avg 1.029 ms, total 253188 ms] [avg calls per frame: 1]
00:12:53: ==============================================================
00:12:53: 
00:12:53: =====Stream End: 2013-11-27, 00:12:53=================================================
2) Stream to Twitch:
Code:
22:41:43: Open Broadcaster Software v0.584b - 64bit ( ^ω^)
22:41:43: -------------------------------
22:41:43: CPU Name: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
22:41:43: CPU Speed: 3400MHz
22:41:43: Physical Memory:  12255MB Total, 11049MB Free
22:41:43: stepping id: 7, model 42, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
22:41:43: monitor 1: pos={0, 0}, size={1680, 1050}
22:41:43: Windows Version: 6.1 Build 7601 S
22:41:43: Aero is Disabled
22:41:43: -------------------------------
22:41:43: OBS Modules:
22:41:43: Base Address     Module
22:41:43: 000000003FB10000 OBS.exe
22:41:43: 00000000F3180000 OBSApi.dll
22:41:43: 00000000F3140000 DShowPlugin.dll
22:41:43: 00000000F3110000 GraphicsCapture.dll
22:41:43: 00000000F30F0000 NoiseGate.dll
22:41:43: 00000000F30D0000 PSVPlugin.dll
22:41:43: ------------------------------------------
22:41:43: Adapter 1
22:41:43:   Video Adapter: NVIDIA GeForce GTX 560 Ti  
22:41:43:   Video Adapter Dedicated Video Memory: 1025966080
22:41:43:   Video Adapter Shared System Memory: 3220779008
22:41:43:   Video Adapter Output 1: pos={0, 0}, size={1680, 1050}, attached=true
22:41:43: =====Stream Start: 2013-11-26, 22:41:43===============================================
22:41:43:   Multithreaded optimizations: On
22:41:43:   Base resolution: 1920x1080
22:41:43:   Output resolution: 1280x720
22:41:43: ------------------------------------------
22:41:43: Loading up D3D10 on NVIDIA GeForce GTX 560 Ti...
22:41:43: ------------------------------------------
22:41:43: Audio Format: 44100hz
22:41:43: Playback device Default
22:41:43: ------------------------------------------
22:41:43: Using desktop audio input: Speakers (Creative SB X-Fi)
22:41:43: ------------------------------------------
22:41:43: Using auxilary audio input: Microphone (3- USB Audio Device)
22:41:43: ------------------------------------------
22:41:43: Audio Encoding: AAC
22:41:43:     bitrate: 160
22:41:43: ------------------------------------------
22:41:43:     device: Datapath VisionRGB-E1 Video 01,
22:41:43:     device id (null),
22:41:43:     chosen type: YUY2, usingFourCC: false, res: 320x240 - 4096x4096, frameIntervals: 50000-10000000
22:41:43:     use buffering: false - 0, fourCC: 'YUY2'
22:41:43:     audio device: Disable,
22:41:43:     audio device id Disabled,
22:41:43: 
22:41:43: Using directshow input
22:41:43: Scene buffering time set to 400
22:41:43: Using custom x264 settings: "opencl=true threads=6"
22:41:43: ------------------------------------------
22:41:43: Video Encoding: x264
22:41:43:     fps: 45
22:41:43:     width: 1280, height: 720
22:41:43:     preset: faster
22:41:43:     profile: high
22:41:43:     keyint: 90
22:41:43:     CBR: yes
22:41:43:     CFR: yes
22:41:43:     max bitrate: 3000
22:41:43:     buffer size: 2000
22:41:43: ------------------------------------------
22:41:43: MMDeviceAudioSource: Frequency for device 'Speakers (Creative SB X-Fi)' is 352800, samples per sec is 44100
22:41:43: MMDeviceAudioSource: Frequency for device 'Microphone (3- USB Audio Device)' is 176400, samples per sec is 44100
22:56:45: Using RTMP service: Twitch / Justin.tv
22:56:45:   Server selection: rtmp://live-iad.justin.tv/app
22:56:45:   Interface: Intel(R) 82579V Gigabit Network Connection (ethernet, 1000 mbps)
22:56:45: Completed handshake with rtmp://live-iad.justin.tv/app in 180 ms.
22:56:46: SO_SNDBUF was at 8192
22:56:46: SO_SNDBUF is now 65536
22:56:48: RTMPPublisher::SocketLoop: Increasing send buffer to ISB 131072 (buffer: 2201 / 404480)
22:57:48: RTMPPublisher::SocketLoop: Stalled for 1703 ms to write 400569 bytes (buffer: 0 / 404480), unstable connection?
22:57:56: RTMPPublisher::SocketLoop: Stalled for 2869 ms to write 404146 bytes (buffer: 0 / 404480), unstable connection?
22:57:57: RTMPPublisher::SocketLoop: Stalled for 1798 ms to write 401008 bytes (buffer: 0 / 404480), unstable connection?
22:58:01: RTMPPublisher::SocketLoop: Stalled for 3182 ms to write 403315 bytes (buffer: 0 / 404480), unstable connection?
22:58:03: RTMPPublisher::SocketLoop: Stalled for 2899 ms to write 400985 bytes (buffer: 0 / 404480), unstable connection?
22:58:05: RTMPPublisher::SocketLoop: Stalled for 1821 ms to write 402641 bytes (buffer: 0 / 404480), unstable connection?
22:58:09: RTMPPublisher::SocketLoop: Stalled for 3692 ms to write 404317 bytes (buffer: 0 / 404480), unstable connection?
22:58:11: RTMPPublisher::SocketLoop: Stalled for 2371 ms to write 401174 bytes (buffer: 0 / 404480), unstable connection?
22:58:16: RTMPPublisher::SocketLoop: Stalled for 4206 ms to write 402908 bytes (buffer: 0 / 404480), unstable connection?
22:58:29: RTMPPublisher::SocketLoop: Stalled for 2070 ms to write 401013 bytes (buffer: 0 / 404480), unstable connection?
22:58:32: RTMPPublisher::SocketLoop: Stalled for 2188 ms to write 402643 bytes (buffer: 0 / 404480), unstable connection?
22:58:35: RTMPPublisher::SocketLoop: Stalled for 2401 ms to write 401712 bytes (buffer: 0 / 404480), unstable connection?
22:58:39: RTMPPublisher::SocketLoop: Stalled for 2095 ms to write 400514 bytes (buffer: 0 / 404480), unstable connection?
23:09:33: RTMPPublisher::SocketLoop: Increasing send buffer to ISB 262144 (buffer: 0 / 404480)
00:12:51: Total frames encoded: 246031, total frames duplicated: 77 (0.03%)
00:12:51: Total frames rendered: 246036, number of late frames: 0 (0.00%) (it's okay for some frames to be late)
00:27:53: RTMPPublisher::SocketLoop: Graceful loop exit
00:27:53: Average send payload: 8067 bytes, average send interval: 20 ms
00:27:53: Number of times waited to send: 45, Waited for a total of 157334 bytes
00:27:53: Number of b-frames dropped: 667 (0.27%), Number of p-frames dropped: 699 (0.28%), Total 1366 (0.56%)
00:27:53: Number of bytes sent: 2156471743
00:27:54: 
00:27:54: Profiler time results:
00:27:54: 
00:27:54: ==============================================================
00:27:54: video thread frame - [100%] [avg time: 1.815 ms] [children: 79%] [unaccounted: 21%]
00:27:54: | scene->Preprocess - [75.6%] [avg time: 1.373 ms]
00:27:54: | GPU download and conversion - [3.31%] [avg time: 0.06 ms] [children: 2.26%] [unaccounted: 1.05%]
00:27:54: | | flush - [1.43%] [avg time: 0.026 ms]
00:27:54: | | CopyResource - [0.771%] [avg time: 0.014 ms]
00:27:54: | | conversion to 4:2:0 - [0.0551%] [avg time: 0.001 ms]
00:27:54: Convert444Threads - [100%] [avg time: 0.418 ms] [children: 99%] [unaccounted: 0.957%]
00:27:54: | Convert444toNV12 - [99%] [avg time: 0.414 ms]
00:27:54: encoder thread frame - [100%] [avg time: 1.218 ms]
00:27:54: ==============================================================
00:27:54: 
00:27:54: 
00:27:54: Profiler CPU results:
00:27:54: 
00:27:54: ==============================================================
00:27:54: video thread frame - [cpu time: avg 1.276 ms, total 314141 ms] [avg calls per frame: 1]
00:27:54: | scene->Preprocess - [cpu time: avg 1.026 ms, total 252609 ms] [avg calls per frame: 1]
00:27:54: | GPU download and conversion - [cpu time: avg 0.018 ms, total 4671.88 ms] [avg calls per frame: 1]
00:27:54: | | flush - [cpu time: avg 0.009 ms, total 2234.38 ms] [avg calls per frame: 1]
00:27:54: | | CopyResource - [cpu time: avg 0.002 ms, total 687.5 ms] [avg calls per frame: 1]
00:27:54: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 187.5 ms] [avg calls per frame: 1]
00:27:54: Convert444Threads - [cpu time: avg 0.352 ms, total 173625 ms] [avg calls per frame: 2]
00:27:54: | Convert444toNV12 - [cpu time: avg 0.349 ms, total 171969 ms] [avg calls per frame: 2]
00:27:54: encoder thread frame - [cpu time: avg 0.803 ms, total 197781 ms] [avg calls per frame: 1]
00:27:54: ==============================================================
00:27:54: 
00:27:54: =====Stream End: 2013-11-27, 00:27:54=================================================

Sample Datapath Vision Capture Plugin capture log file, 104 fps:
Code:
23:15:27: Open Broadcaster Software v0.584b - 32bit (´・ω・`)
23:15:27: -------------------------------
23:15:27: CPU Name: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
23:15:27: CPU Speed: 3400MHz
23:15:27: Physical Memory:  4095MB Total, 4095MB Free
23:15:27: stepping id: 7, model 42, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
23:15:27: monitor 1: pos={0, 0}, size={1680, 1050}
23:15:27: Windows Version: 6.1 Build 7601 S
23:15:27: Aero is Disabled
23:15:27: -------------------------------
23:15:27: OBS Modules:
23:15:27: Base Address     Module
23:15:27: 00BC0000         OBS.exe
23:15:27: 74290000         OBSApi.dll
23:15:27: 73F10000         DatapathPlugin.dll
23:15:27: 73EE0000         DShowPlugin.dll
23:15:27: 73EC0000         GraphicsCapture.dll
23:15:27: 73EA0000         NoiseGate.dll
23:15:27: 73E80000         PSVPlugin.dll
23:15:27: ------------------------------------------
23:15:27: Adapter 1
23:15:27:   Video Adapter: NVIDIA GeForce GTX 560 Ti  
23:15:27:   Video Adapter Dedicated Video Memory: 1025966080
23:15:27:   Video Adapter Shared System Memory: 3220779008
23:15:27:   Video Adapter Output 1: pos={0, 0}, size={1680, 1050}, attached=true
23:15:27: =====Stream Start: 2013-12-05, 23:15:27===============================================
23:15:27:   Multithreaded optimizations: On
23:15:27:   Base resolution: 1920x1080
23:15:27:   Output resolution: 1920x1080
23:15:27: ------------------------------------------
23:15:27: Loading up D3D10 on NVIDIA GeForce GTX 560 Ti...
23:15:27: ------------------------------------------
23:15:27: Audio Format: 44100hz
23:15:27: Playback device Default
23:15:27: ------------------------------------------
23:15:27: Using desktop audio input: Speakers (Creative SB X-Fi)
23:15:27: ------------------------------------------
23:15:27: Using auxilary audio input: Microphone (3- USB Audio Device)
23:15:27: ------------------------------------------
23:15:27: Audio Encoding: AAC
23:15:27:     bitrate: 192
23:15:27: Scene buffering time set to 400
23:15:27: Using custom x264 settings: "opencl=true threads=9 qp=24"
23:15:27: x264: VBV maxrate specified, but no bufsize, ignored
23:15:27: ------------------------------------------
23:15:27: Video Encoding: x264
23:15:27:     fps: 104
23:15:27:     width: 1920, height: 1080
23:15:27:     preset: superfast
23:15:27:     profile: high
23:15:27:     keyint: 250
23:15:27:     CBR: no
23:15:27:     CFR: yes
23:15:27:     max bitrate: 1000
23:15:27:     buffer size: 0
23:15:27:     quality: 10
23:15:27: ------------------------------------------
23:15:27: MMDeviceAudioSource: Frequency for device 'Speakers (Creative SB X-Fi)' is 352800, samples per sec is 44100
23:15:27: MMDeviceAudioSource: Frequency for device 'Microphone (3- USB Audio Device)' is 176400, samples per sec is 44100
23:20:41: Total frames encoded: 32643, total frames duplicated: 75 (0.23%)
23:20:41: Total frames rendered: 32656, number of late frames: 0 (0.00%) (it's okay for some frames to be late)
23:20:41: 
23:20:41: Profiler time results:
23:20:41: 
23:20:41: ==============================================================
23:20:41: video thread frame - [100%] [avg time: 0.646 ms] [children: 7.12%] [unaccounted: 92.9%]
23:20:41: | scene->Preprocess - [0.155%] [avg time: 0.001 ms]
23:20:41: | GPU download and conversion - [6.97%] [avg time: 0.045 ms] [children: 6.04%] [unaccounted: 0.929%]
23:20:41: | | flush - [3.1%] [avg time: 0.02 ms]
23:20:41: | | CopyResource - [2.63%] [avg time: 0.017 ms]
23:20:41: | | conversion to 4:2:0 - [0.31%] [avg time: 0.002 ms]
23:20:41: Convert444Threads - [100%] [avg time: 1.064 ms] [children: 99.2%] [unaccounted: 0.752%]
23:20:41: | Convert444toNV12 - [99.2%] [avg time: 1.056 ms]
23:20:41: encoder thread frame - [100%] [avg time: 1.309 ms]
23:20:41: ==============================================================
23:20:41: 
23:20:41: 
23:20:41: Profiler CPU results:
23:20:41: 
23:20:41: ==============================================================
23:20:41: video thread frame - [cpu time: avg 0.343 ms, total 11218.8 ms] [avg calls per frame: 1]
23:20:41: | scene->Preprocess - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
23:20:41: | GPU download and conversion - [cpu time: avg 0.003 ms, total 125 ms] [avg calls per frame: 1]
23:20:41: | | flush - [cpu time: avg 0.001 ms, total 46.875 ms] [avg calls per frame: 1]
23:20:41: | | CopyResource - [cpu time: avg 0.002 ms, total 78.125 ms] [avg calls per frame: 1]
23:20:41: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
23:20:41: Convert444Threads - [cpu time: avg 0.928 ms, total 60531.3 ms] [avg calls per frame: 2]
23:20:41: | Convert444toNV12 - [cpu time: avg 0.926 ms, total 60390.6 ms] [avg calls per frame: 2]
23:20:41: encoder thread frame - [cpu time: avg 0.982 ms, total 32031.3 ms] [avg calls per frame: 1]
23:20:41: ==============================================================
23:20:41: 
23:20:41: =====Stream End: 2013-12-05, 23:20:41=================================================
23:20:57: Memory Leaks Were Detected.
23:20:57:

New log files (DirectShow RGB32):
1) Local Capture:
Code:
23:39:52: Settings::Video: Enabling Aero
23:39:59: Settings::Video: Enabling Aero
23:44:39: Open Broadcaster Software v0.584b - 32bit (´・ω・`)
23:44:39: -------------------------------
23:44:39: CPU Name: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
23:44:39: CPU Speed: 3400MHz
23:44:39: Physical Memory:  4095MB Total, 4095MB Free
23:44:39: stepping id: 7, model 42, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
23:44:39: monitor 1: pos={0, 0}, size={1680, 1050}
23:44:39: Windows Version: 6.1 Build 7601 S
23:44:39: Aero is Disabled
23:44:39: -------------------------------
23:44:39: OBS Modules:
23:44:39: Base Address     Module
23:44:39: 00E70000         OBS.exe
23:44:39: 74270000         OBSApi.dll
23:44:39: 73EF0000         DatapathPlugin.dll
23:44:39: 73EA0000         DShowPlugin.dll
23:44:39: 73E80000         GraphicsCapture.dll
23:44:39: 73E60000         NoiseGate.dll
23:44:39: 73E40000         PSVPlugin.dll
23:44:39: ------------------------------------------
23:44:39: Adapter 1
23:44:39:   Video Adapter: NVIDIA GeForce GTX 560 Ti  
23:44:39:   Video Adapter Dedicated Video Memory: 1025966080
23:44:39:   Video Adapter Shared System Memory: 3220779008
23:44:39:   Video Adapter Output 1: pos={0, 0}, size={1680, 1050}, attached=true
23:45:24: =====Stream Start: 2013-12-05, 23:45:24===============================================
23:45:24:   Multithreaded optimizations: On
23:45:24:   Base resolution: 1920x1080
23:45:24:   Output resolution: 1920x1080
23:45:24: ------------------------------------------
23:45:24: Loading up D3D10 on NVIDIA GeForce GTX 560 Ti...
23:45:24: ------------------------------------------
23:45:24: Audio Format: 44100hz
23:45:24: Playback device Default
23:45:24: ------------------------------------------
23:45:24: Using desktop audio input: Speakers (Creative SB X-Fi)
23:45:24: ------------------------------------------
23:45:24: Using auxilary audio input: Microphone (3- USB Audio Device)
23:45:24: ------------------------------------------
23:45:24: Audio Encoding: AAC
23:45:24:     bitrate: 192
23:45:24: ------------------------------------------
23:45:24:     device: Datapath VisionRGB-E1 Video 01,
23:45:24:     device id (null),
23:45:24:     chosen type: RGB32, usingFourCC: false, res: 320x240 - 4096x4096, frameIntervals: 50000-10000000
23:45:24:     use buffering: false - 0, fourCC: 00000003
23:45:24:     audio device: Disable,
23:45:24:     audio device id Disabled,
23:45:24: 
23:45:24: Using directshow input
23:45:24: Scene buffering time set to 400
23:45:24: Using custom x264 settings: "opencl=true threads=4 qp=24"
23:45:24: x264: VBV maxrate specified, but no bufsize, ignored
23:45:24: ------------------------------------------
23:45:24: Video Encoding: x264
23:45:24:     fps: 60
23:45:24:     width: 1920, height: 1080
23:45:24:     preset: superfast
23:45:24:     profile: high
23:45:24:     keyint: 250
23:45:24:     CBR: no
23:45:24:     CFR: yes
23:45:24:     max bitrate: 1000
23:45:24:     buffer size: 0
23:45:24:     quality: 10
23:45:24: ------------------------------------------
23:45:24: MMDeviceAudioSource: Frequency for device 'Speakers (Creative SB X-Fi)' is 352800, samples per sec is 44100
23:45:24: MMDeviceAudioSource: Frequency for device 'Microphone (3- USB Audio Device)' is 176400, samples per sec is 44100
23:49:32: Total frames encoded: 14886, total frames duplicated: 1 (0.01%)
23:49:32: Total frames rendered: 14895, number of late frames: 1 (0.01%) (it's okay for some frames to be late)
23:49:33: 
23:49:33: Profiler time results:
23:49:33: 
23:49:33: ==============================================================
23:49:33: video thread frame - [100%] [avg time: 1.318 ms] [children: 66.8%] [unaccounted: 33.2%]
23:49:33: | scene->Preprocess - [62.7%] [avg time: 0.827 ms]
23:49:33: | GPU download and conversion - [4.02%] [avg time: 0.053 ms] [children: 3.41%] [unaccounted: 0.607%]
23:49:33: | | flush - [1.9%] [avg time: 0.025 ms]
23:49:33: | | CopyResource - [1.37%] [avg time: 0.018 ms]
23:49:33: | | conversion to 4:2:0 - [0.152%] [avg time: 0.002 ms]
23:49:33: Convert444Threads - [100%] [avg time: 1.14 ms] [children: 99.2%] [unaccounted: 0.789%]
23:49:33: | Convert444toNV12 - [99.2%] [avg time: 1.131 ms]
23:49:33: encoder thread frame - [100%] [avg time: 1.45 ms]
23:49:33: ==============================================================
23:49:33: 
23:49:33: 
23:49:33: Profiler CPU results:
23:49:33: 
23:49:33: ==============================================================
23:49:33: video thread frame - [cpu time: avg 0.914 ms, total 13625 ms] [avg calls per frame: 1]
23:49:33: | scene->Preprocess - [cpu time: avg 0.558 ms, total 8312.5 ms] [avg calls per frame: 1]
23:49:33: | GPU download and conversion - [cpu time: avg 0.033 ms, total 500 ms] [avg calls per frame: 1]
23:49:33: | | flush - [cpu time: avg 0.017 ms, total 265.625 ms] [avg calls per frame: 1]
23:49:33: | | CopyResource - [cpu time: avg 0.011 ms, total 171.875 ms] [avg calls per frame: 1]
23:49:33: | | conversion to 4:2:0 - [cpu time: avg 0.001 ms, total 15.625 ms] [avg calls per frame: 1]
23:49:33: Convert444Threads - [cpu time: avg 1.051 ms, total 31265.6 ms] [avg calls per frame: 2]
23:49:33: | Convert444toNV12 - [cpu time: avg 1.047 ms, total 31125 ms] [avg calls per frame: 2]
23:49:33: encoder thread frame - [cpu time: avg 1.089 ms, total 16187.5 ms] [avg calls per frame: 1]
23:49:33: ==============================================================
23:49:33: 
23:49:33: =====Stream End: 2013-12-05, 23:49:33=================================================
2) Stream to Twitch (buffered start, aborted before it was sent, but it was encoded):
Code:
23:44:40: Open Broadcaster Software v0.584b - 64bit ( ^ω^)
23:44:40: -------------------------------
23:44:40: CPU Name: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
23:44:40: CPU Speed: 3400MHz
23:44:40: Physical Memory:  12255MB Total, 10022MB Free
23:44:40: stepping id: 7, model 42, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
23:44:40: monitor 1: pos={0, 0}, size={1680, 1050}
23:44:40: Windows Version: 6.1 Build 7601 S
23:44:40: Aero is Disabled
23:44:40: -------------------------------
23:44:40: OBS Modules:
23:44:40: Base Address     Module
23:44:40: 000000003F4E0000 OBS.exe
23:44:40: 00000000F2370000 OBSApi.dll
23:44:40: 00000000F2CA0000 DShowPlugin.dll
23:44:40: 00000000F5E60000 GraphicsCapture.dll
23:44:40: 00000000F6E30000 NoiseGate.dll
23:44:40: 00000000F6660000 PSVPlugin.dll
23:44:40: ------------------------------------------
23:44:40: Adapter 1
23:44:40:   Video Adapter: NVIDIA GeForce GTX 560 Ti  
23:44:40:   Video Adapter Dedicated Video Memory: 1025966080
23:44:40:   Video Adapter Shared System Memory: 3220779008
23:44:40:   Video Adapter Output 1: pos={0, 0}, size={1680, 1050}, attached=true
23:45:25: =====Stream Start: 2013-12-05, 23:45:25===============================================
23:45:25:   Multithreaded optimizations: On
23:45:25:   Base resolution: 1920x1080
23:45:25:   Output resolution: 1280x720
23:45:25: ------------------------------------------
23:45:25: Loading up D3D10 on NVIDIA GeForce GTX 560 Ti...
23:45:25: ------------------------------------------
23:45:25: Audio Format: 44100hz
23:45:25: Playback device Default
23:45:25: ------------------------------------------
23:45:25: Using desktop audio input: Speakers (Creative SB X-Fi)
23:45:25: ------------------------------------------
23:45:25: Using auxilary audio input: Microphone (3- USB Audio Device)
23:45:25: ------------------------------------------
23:45:25: Audio Encoding: AAC
23:45:25:     bitrate: 160
23:45:25: ------------------------------------------
23:45:25:     device: Datapath VisionRGB-E1 Video 01,
23:45:25:     device id (null),
23:45:25:     chosen type: RGB32, usingFourCC: false, res: 320x240 - 4096x4096, frameIntervals: 50000-10000000
23:45:25:     use buffering: false - 0, fourCC: 00000003
23:45:25:     audio device: Disable,
23:45:25:     audio device id Disabled,
23:45:25: 
23:45:25: Using directshow input
23:45:25: Scene buffering time set to 400
23:45:25: Using custom x264 settings: "opencl=true threads=6"
23:45:25: ------------------------------------------
23:45:25: Video Encoding: x264
23:45:25:     fps: 45
23:45:25:     width: 1280, height: 720
23:45:25:     preset: faster
23:45:25:     profile: high
23:45:25:     keyint: 90
23:45:25:     CBR: yes
23:45:25:     CFR: yes
23:45:25:     max bitrate: 3000
23:45:25:     buffer size: 2000
23:45:25: ------------------------------------------
23:45:25: MMDeviceAudioSource: Frequency for device 'Speakers (Creative SB X-Fi)' is 352800, samples per sec is 44100
23:45:25: MMDeviceAudioSource: Frequency for device 'Microphone (3- USB Audio Device)' is 176400, samples per sec is 44100
23:49:31: Total frames encoded: 11046, total frames duplicated: 0 (0.00%)
23:49:31: Total frames rendered: 11052, number of late frames: 1 (0.01%) (it's okay for some frames to be late)
23:50:59: Number of times waited to send: 0, Waited for a total of 0 bytes
23:50:59: Number of b-frames dropped: 0 (-1.$%), Number of p-frames dropped: 0 (-1.$%), Total 0 (-1.$%)
23:50:59: Number of bytes sent: 0
23:50:59: 
23:50:59: Profiler time results:
23:50:59: 
23:50:59: ==============================================================
23:50:59: video thread frame - [100%] [avg time: 1.838 ms] [children: 71.5%] [unaccounted: 28.5%]
23:50:59: | scene->Preprocess - [67.5%] [avg time: 1.241 ms]
23:50:59: | GPU download and conversion - [4.03%] [avg time: 0.074 ms] [children: 3.26%] [unaccounted: 0.762%]
23:50:59: | | flush - [1.96%] [avg time: 0.036 ms]
23:50:59: | | CopyResource - [1.2%] [avg time: 0.022 ms]
23:50:59: | | conversion to 4:2:0 - [0.109%] [avg time: 0.002 ms]
23:50:59: Convert444Threads - [100%] [avg time: 0.517 ms] [children: 99.2%] [unaccounted: 0.774%]
23:50:59: | Convert444toNV12 - [99.2%] [avg time: 0.513 ms]
23:50:59: encoder thread frame - [100%] [avg time: 0.805 ms]
23:50:59: ==============================================================
23:50:59: 
23:50:59: 
23:50:59: Profiler CPU results:
23:50:59: 
23:50:59: ==============================================================
23:50:59: video thread frame - [cpu time: avg 1.392 ms, total 15390.6 ms] [avg calls per frame: 1]
23:50:59: | scene->Preprocess - [cpu time: avg 0.952 ms, total 10531.3 ms] [avg calls per frame: 1]
23:50:59: | GPU download and conversion - [cpu time: avg 0.039 ms, total 437.5 ms] [avg calls per frame: 1]
23:50:59: | | flush - [cpu time: avg 0.015 ms, total 171.875 ms] [avg calls per frame: 1]
23:50:59: | | CopyResource - [cpu time: avg 0.012 ms, total 140.625 ms] [avg calls per frame: 1]
23:50:59: | | conversion to 4:2:0 - [cpu time: avg 0.001 ms, total 15.625 ms] [avg calls per frame: 1]
23:50:59: Convert444Threads - [cpu time: avg 0.456 ms, total 10062.5 ms] [avg calls per frame: 2]
23:50:59: | Convert444toNV12 - [cpu time: avg 0.454 ms, total 10015.6 ms] [avg calls per frame: 2]
23:50:59: encoder thread frame - [cpu time: avg 0.196 ms, total 2171.88 ms] [avg calls per frame: 1]
23:50:59: ==============================================================
23:50:59: 
23:50:59: =====Stream End: 2013-12-05, 23:50:59=================================================

MediaInfo from YUY2 DirectShow capture:
Code:
General
Complete name                  : D:\Fraps\November (23).mp4
Format                         : MPEG-4
Format profile                 : Base Media
Codec ID                       : isom
File size                      : 10.5 GiB
Duration                       : 1h 31mn
Overall bit rate               : 16.5 Mbps
Encoded date                   : UTC 2013-11-27 05:12:53
Tagged date                    : UTC 2013-11-27 05:12:53
Writing application            : Open Broadcaster Software v0.584b

Video
ID                             : 2
Format                         : AVC
Format/Info                    : Advanced Video Codec
Format profile                 : High@L4.2
Format settings, CABAC         : Yes
Format settings, ReFrames      : 4 frames
Muxing mode                    : Container profile=High@3.1
Codec ID                       : avc1
Codec ID/Info                  : Advanced Video Coding
Duration                       : 1h 31mn
Source duration                : 1h 31mn
Bit rate                       : 16.3 Mbps
Width                          : 1 920 pixels
Height                         : 1 080 pixels
Display aspect ratio           : 16:9
Frame rate mode                : Variable
Frame rate                     : 45.000 fps
Minimum frame rate             : 43.478 fps
Maximum frame rate             : 45.455 fps
Color space                    : YUV
Chroma subsampling             : 4:2:0
Bit depth                      : 8 bits
Scan type                      : Progressive
Bits/(Pixel*Frame)             : 0.174
Stream size                    : 10.3 GiB (99%)
Source stream size             : 10.3 GiB (99%)
Writing library                : x264 core 136 r2350 dba1934
Encoding settings              : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x3:0x3 / me=dia / subme=1 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=4 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=1 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc=cqp / mbtree=0 / qp=24 / ip_ratio=1.40 / pb_ratio=1.30 / aq=0
Encoded date                   : UTC 2013-11-27 05:12:53
Tagged date                    : UTC 2013-11-27 05:12:53
mdhd_Duration                  : 5465821
Color primaries                : BT.709
Transfer characteristics       : sYCC
Matrix coefficients            : BT.709

Audio
ID                             : 1
Format                         : AAC
Format/Info                    : Advanced Audio Codec
Format profile                 : LC
Codec ID                       : 40
Duration                       : 1h 31mn
Source duration                : 1h 31mn
Bit rate mode                  : Constant
Nominal bit rate               : 192 Kbps
Channel(s)                     : 2 channels
Channel positions              : Front: L R
Sampling rate                  : 44.1 KHz
Compression mode               : Lossy
Source stream size             : 123 MiB (1%)
Language                       : English
Encoded date                   : UTC 2013-11-27 05:12:53
Tagged date                    : UTC 2013-11-27 05:12:53

MediaInfo from 104 FPS Datapath plugin capture:
Code:
General
Complete name                  : D:\Fraps\December.mp4
Format                         : MPEG-4
Format profile                 : Base Media
Codec ID                       : isom
File size                      : 1.04 GiB
Duration                       : 5mn 13s
Overall bit rate               : 28.5 Mbps
Encoded date                   : UTC 2013-12-06 04:20:41
Tagged date                    : UTC 2013-12-06 04:20:41
Writing application            : Open Broadcaster Software v0.584b

Video
ID                             : 2
Format                         : AVC
Format/Info                    : Advanced Video Codec
Format profile                 : High@L5.1
Format settings, CABAC         : Yes
Format settings, ReFrames      : 4 frames
Muxing mode                    : Container profile=High@3.1
Codec ID                       : avc1
Codec ID/Info                  : Advanced Video Coding
Duration                       : 5mn 13s
Source duration                : 5mn 13s
Bit rate                       : 28.3 Mbps
Width                          : 1 920 pixels
Height                         : 1 080 pixels
Display aspect ratio           : 16:9
Frame rate mode                : Variable
Frame rate                     : 104.000 fps
Minimum frame rate             : 100.000 fps
Maximum frame rate             : 111.111 fps
Color space                    : YUV
Chroma subsampling             : 4:2:0
Bit depth                      : 8 bits
Scan type                      : Progressive
Bits/(Pixel*Frame)             : 0.131
Stream size                    : 1.03 GiB (99%)
Source stream size             : 1.03 GiB (99%)
Writing library                : x264 core 136 r2350 dba1934
Encoding settings              : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x3:0x3 / me=dia / subme=1 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=9 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=1 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc=cqp / mbtree=0 / qp=24 / ip_ratio=1.40 / pb_ratio=1.30 / aq=0
Encoded date                   : UTC 2013-12-06 04:20:41
Tagged date                    : UTC 2013-12-06 04:20:41
mdhd_Duration                  : 313327
Color primaries                : BT.709
Transfer characteristics       : sYCC
Matrix coefficients            : BT.709

Audio
ID                             : 1
Format                         : AAC
Format/Info                    : Advanced Audio Codec
Format profile                 : LC
Codec ID                       : 40
Duration                       : 5mn 13s
Source duration                : 5mn 13s
Bit rate mode                  : Constant
Bit rate                       : 154 Kbps
Nominal bit rate               : 192 Kbps
Channel(s)                     : 2 channels
Channel positions              : Front: L R
Sampling rate                  : 44.1 KHz
Compression mode               : Lossy
Stream size                    : 5.74 MiB (1%)
Source stream size             : 5.74 MiB (1%)
Language                       : English
Encoded date                   : UTC 2013-12-06 04:20:41
Tagged date                    : UTC 2013-12-06 04:20:41

MediaInfo from RGB32 DirectShow capture:
Code:
General
Complete name                  : D:\Fraps\December (01).mp4
Format                         : MPEG-4
Format profile                 : Base Media
Codec ID                       : isom
File size                      : 316 MiB
Duration                       : 4mn 7s
Overall bit rate               : 10.7 Mbps
Encoded date                   : UTC 2013-12-06 04:49:33
Tagged date                    : UTC 2013-12-06 04:49:33
Writing application            : Open Broadcaster Software v0.584b

Video
ID                             : 2
Format                         : AVC
Format/Info                    : Advanced Video Codec
Format profile                 : High@L4.2
Format settings, CABAC         : Yes
Format settings, ReFrames      : 4 frames
Muxing mode                    : Container profile=High@3.1
Codec ID                       : avc1
Codec ID/Info                  : Advanced Video Coding
Duration                       : 4mn 7s
Bit rate                       : 10.5 Mbps
Width                          : 1 920 pixels
Height                         : 1 080 pixels
Display aspect ratio           : 16:9
Frame rate mode                : Variable
Frame rate                     : 60.000 fps
Minimum frame rate             : 58.824 fps
Maximum frame rate             : 62.500 fps
Color space                    : YUV
Chroma subsampling             : 4:2:0
Bit depth                      : 8 bits
Scan type                      : Progressive
Bits/(Pixel*Frame)             : 0.085
Stream size                    : 310 MiB (98%)
Writing library                : x264 core 136 r2350 dba1934
Encoding settings              : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x3:0x3 / me=dia / subme=1 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=4 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=1 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc=cqp / mbtree=0 / qp=24 / ip_ratio=1.40 / pb_ratio=1.30 / aq=0
Encoded date                   : UTC 2013-12-06 04:49:33
Tagged date                    : UTC 2013-12-06 04:49:33
mdhd_Duration                  : 247533
Color primaries                : BT.709
Transfer characteristics       : sYCC
Matrix coefficients            : BT.709

Audio
ID                             : 1
Format                         : AAC
Format/Info                    : Advanced Audio Codec
Format profile                 : LC
Codec ID                       : 40
Duration                       : 4mn 7s
Source duration                : 4mn 7s
Bit rate mode                  : Constant
Nominal bit rate               : 192 Kbps
Channel(s)                     : 2 channels
Channel positions              : Front: L R
Sampling rate                  : 44.1 KHz
Compression mode               : Lossy
Source stream size             : 4.59 MiB (1%)
Language                       : English
Encoded date                   : UTC 2013-12-06 04:49:33
Tagged date                    : UTC 2013-12-06 04:49:33

As you can see, it seems to have no trouble with RGB32 content using DirectShow with two simultaneous streams. It simply wasn't the default, so I didn't use it, but I'll keep it set to RGB32 mode from now on.
 

Draco

Member
Muf said:
Due to limitations in OBS1, my plugin only captures in RGB32. This means for 1920x1080@60fps, you're trying to push 475MB/sec through the card. The E2s has a bandwidth limit of 650MB/s so that leaves plenty of headroom, but the 480MB/s bandwidth limit of the E2 might be too tight when you factor in possible unknown bus overhead. DirectShow capture doesn't have the same problem because it can capture RGB24 (356MB/sec) and YUY2 (238MB/s). However, as the buffer gets converted to RGB32 on the CPU, and then uploaded to the GPU from system memory, the total PCI-e bus load is higher, as well as CPU load.

The OBS2 (also known as "the redux" or "obs-studio") version of the plugin will support the full range of colour spaces supported by the cards, with full hardware acceleration (DMA) and colour space conversion done on the GPU.

I'm looking forward to testing out OBS2 and a new plugin version then! I figured it was reaching the limitations of the card if you're grabbing RGB32 or even RGB24 by default. Now I really want to hunt for a used E2s or DVI-DL, meh... oh well. It's running stable/good enough as is. :(
 

Boildown

Active Member
Draco said:
I figured it was reaching the limitations of the card if you're grabbing RGB32 or even RGB24 by default. Now I really want to hunt for a used E2s or DVI-DL, meh... oh well. It's running stable/good enough as is. :(

I believe I just showed that this limitation doesn't exist. I captured 104 FPS video on a E1S. The only reason I didn't go to 120fps was because of a limitation on how fast I could push the single-link DVI connection from my source computer.
 

Muf

Forum Moderator
Boildown said:
I believe I just showed that this limitation doesn't exist. I captured 104 FPS video on a E1S.
That's the difference; you have an E1s, and Draco only has an E1 (no s).
 

Boildown

Active Member
Muf said:
That's the difference; you have an E1s, and Draco only has an E1 (no s).

Ahhh I see.

On another note I just updated to the latest version of Custom Resolution Utility and Nvidia Pixel Clock Patcher, and BAM, I can do 120Hz at 1080p over a single-link DVI and the E1s is seeing it as 120Hz incoming. And it seems to be working. I still need to give it a good workout while playing games and whatnot. Now I need to decide between streaming 864p40 or 720p60; either is a "nice" fraction of 120 Hz. And if it works, who needs a DVI-DL?

Edit: That's interesting. I was Previewing Stream with Directshow and it appears to work fine, but when I do the same with EasyRGB using the plugin, the screen is squeezed into half the size. Not sure what's up with that yet. That's with incoming signal at 120Hz, capturing at 60fps. If I try to capture the incoming 120Hz at 120fps, OBS crashes with the EasyRGB plugin, appears to work with Directshow.
 

Muf

Forum Moderator
Boildown said:
Now I need to decide between streaming 864p40 or 720p60; either is a "nice" fraction of 120 Hz. And if it works, who needs a DVI-DL?
I would go with 720p60, because most viewers will be on 60hz displays, and 40 isn't a nice fraction of 60.

Boildown said:
If I try to capture the incoming 120Hz at 120fps, OBS crashes with the EasyRGB plugin, appears to work with Directshow.
Now THAT is interesting. Do you have a crash log? I would suspect that my 1 frame DMA delay is too short for the transaction to finish in time at 120Hz. I might have to come up with some formula to work out how many frames I need to delay to prevent crashes. Btw, fun fact: on AMD graphics, it's not OBS that crashes, but the actual display driver itself. It tries to access memory that hasn't been copied yet and BOOM.
7dc2a3f8_vbattach157773.jpeg
 

Boildown

Active Member
Muf said:
Do you have a crash log?

Sure, here's one at 30fps with 120Hz input on the new OBS version that came out today:

https://anonfiles.com/file/5e535143c2b2 ... 054a991ee3

It crashed at whatever fps I set it to if I waited long enough, which was usually just a few seconds. Until it crashed the entire preview screen was squished into the left half. As you may recall I earlier captured 104fps with 104Hz input without issues. The crash was often but not always immediate.
 

Boildown

Active Member
Ok, hold everything. Today's stream and local copy looked downright crappy (in image quality, it was smooth) with the 120Hz and 60fps recording, compared to 90Hz input and 45fps recording that I was using previously. I'm going to try using a better ratecontrol next time but I suspect something can't really handle the full 120Hz input over single-link, and I'll have to fall back to something slower.

By the way, the reason I'm obsessing over this instead of just sending 60Hz to the capture card and 120Hz to my main monitor is that it seems like my main screen is affected with some sort of lag when I do that. The faster the duplicated screen the better it "feels".

Late Night Update: I discovered a few things after many hours of research and testing.

First, the symptoms I describe above I eventually recognized having read about on the Custom Resolution Utility forum thread. The scrunched screen and degraded quality at 120Hz were a symptom of my computer assuming the DVI connection was dual-link instead of single-link when the pixel clock got high enough. I got around this by using my video card's HDMI out with a passive HDMI to DVI adapter. HDMI is hard-coded single-link, so it can't fake it any more. After making this change, the Datapath plugin / RGBEasy no longer squished the screen to the left half nor could I make it crash every time I output a 120 Hz framerate as before.

Next I went about discovering the actual limits of my Datapath E1S (or possibly the HDMI port, I'm not 100% sure which). It turns out the limit is at around a 250Mhz pixel clock on the video signal. Exceed this a little (up to ~ 252 MHz) and there is visible pixel jitter and horizontal glitches on the screen. Exceed it by a lot and the screen is blurred to unreadable or it simply declares that there's no valid signal.

By using ridiculously small values for the Front Porch, Sync Width, and Back Porch, I could just about get a 120Hz signal output successfully. The Datapath card is capable of accepting a Front Porch of 1, Sync Width of 2, and Back Porch of 3 on the Horizontal, and all 1s on the Vertical, which is stupidly small blanking. Frustratingly, this still resulted in about a 250.31 MHz Pixel Clock, which is oh so slightly over 250 MHz, and screen glitches were evident.

I backed it down to 110 Hz with less aggressive though still small blanking for a pixel clock of 231.13 MHz and the preview picture in OBS looked rock solid. Then I proceeded to test the Datapath Plugin... when I realized my mainline OBS installation was using the old version of the Datapath plugin. When OBS switched install locations I copied the wrong version. The test copy (and there hasn't been a test version of OBS in a long time) had the latest plugin version, but I wasn't running the test version any more. Suffice to say, the latest plugin works properly with no signs of stuttering, even with two copies of OBS running simultaneously, which it couldn't do before, even with a 110Hz input and 110fps preview.

That said, there were still a few instances of OBS crashing when using the latest plugin (never with Directshow). Crash logs attached here:

https://anonfiles.com/file/4165506773c2 ... ec3d5b0b77
 

Muf

Forum Moderator
Boildown said:
That said, there were still a few instances of OBS crashing when using the latest plugin (never with Directshow). Crash logs attached here:

https://anonfiles.com/file/4165506773c2 ... ec3d5b0b77
The crash log so far confirms my theory. The crash happens in the NVIDIA user-mode driver component (that's why you don't get the crash balloon like I did on AMD graphics), and it's an access violation; so I'd wager a guess at that it's trying to read texture data that hasn't been copied yet. Basically the 120fps update cycle is too fast to reliably copy 1920x1080 worth of framebuffer, so sometimes OBS tries to draw a texture that just isn't there yet, crashing the NVIDIA Direct3D runtime.

I'm still doubting between programmatically deriving the frame delay (to give the hardware enough time to finish copying) from the OBS scene fps, or making it a pulldown box in the UI (since all hardware is different and some people might not need the delay or might need more delay).
 

Boildown

Active Member
Streamed for two hours with the input at 110 Hz and the stream and local recording at 60fps... I know its not an even fraction of 110 but I've never felt this is something that has had any actual noticeable effect (similar to people with 60Hz monitors who stream at 45 or 48fps). Anyways, other than the stream instance of OBS crashing immediately on starting (I just reloaded and restarted it after that, and the second time it didn't crash), it was rock solid. This was with the Datapath RBGEasy plugin on both OBS instances. So I'm pretty happy with that.

Interestingly, the capture used up significantly less bitrate at the same quality setting for my local recording. On replay I can't notice a difference in quality though. The changes are recording at 60fps instead of 45fps and using the plugin instead of Directshow. I would have expected it to use more bitrate, not less, because of the framerate increase. Not sure what to make of this.
 

Boildown

Active Member
When I attempt to use the new plugin, an error message pops up when OBS opens and says, "The program can't start because d3dx9d_43.dll is missing from your computer. Try reinstalling the program to fix the problem." Clicking OK returns to OBS but then your RGBEasy plugin isn't available.

When I go back to the previous plugin version, this error doesn't appear and the old plugin is available as usual.
 

Muf

Forum Moderator
Boildown said:
When I attempt to use the new plugin, an error message pops up when OBS opens and says, "The program can't start because d3dx9d_43.dll is missing from your computer.

I'm very sorry, I should have packed that into the rar. Fixed now, same download link.
 
Top