[unsupported] Datapath Vision Capture

[unsupported] Datapath Vision Capture 20130903

Muf

Forum Moderator
This is a native capture plugin leveraging the RGBEasy API instead of DirectShow. When using hardware accelerated capture, it captures quite a bit faster than OBS' native Device Source, and uses no extra CPU. Additionally, it offers many handy features unique to the RGBEasy API, like automatically changing the capture resolution when the input resolution changes.

The plugin is heavily based off of Jim's DirectShow plugin (as it was the only plugin available to me at the time). Thanks, Jim!

A quick benchmark shows that Vision capture with hardware acceleration enabled is 33% faster than DirectShow capture, and that Vision capture with hardware acceleration disabled is 17% faster than DirectShow capture. Using hardware acceleration is 14% faster than not using hardware acceleration.

It has been tested with a small number of cards, but should theoretically work with the whole fleet of cards:

(Legend: Tested & supported, Tested & unsupported, Untested)

Datapath VisionAV / EMS XtremeRGB-Hdv2
Datapath VisionDVI-DL / EMS XtremeDVI-DualLink
Datapath VisionRGB-E1s / EMS XtremeRGB-Ex1
Datapath VisionRGB-E2s / EMS XtremeRGB-Ex2
Datapath VisionRGB-E1
Datapath VisionRGB-E2
Datapath VisionRGB-PRO2 / EMS PhynxRGB
Datapath VisionRGB-X2 / EMS XtremeRGB-II
Datapath VisionSD4+1S / EMS XtremeRGB-Ex4+
Datapath VisionSD8 / EMS XtremeRGB-Ex8
Datapath VisionSDI2 / EMS XtremeSDI-2
Note: VisionRGB-PRO cards are officially legacy and the last drivers are incompatible with the modern RGBEasy API. I am working together with Datapath to get them supported, stay tuned!

Implemented features:
- Video capture (yay!)
- Frame dropping
- Direct DMA to Direct3D mapped texture
- Resolution autodetection
- Automatic resolution switching on video mode change
- Cropping (real-time updated)
- Input port selection (also real-time)
- No signal / signal out of range notices (can be user-defined)
- Point filtering (as a substitute for a lack of prescaling support)

Planned features:
- Flip / rotate
- Picture adjustment controls
- Picture adjustment presets
- Colour space selection
- Deinterlacing
- Prescaling (for 15KHz VGA sources)

Download links:
Latest binary - DatapathPlugin-20130903-32R
Source - OBS-DatapathPlugin on GitHub

Old binaries:
DatapathPlugin-20130702-32R
DatapathPlugin-20130316-32R
DatapathPlugin-20130228-32R
DatapathPlugin-20130114-32R
DatapathPlugin-20130113-32R
DatapathPlugin-20130110-32R
DatapathPlugin-20130108-32R
DatapathPlugin-20130106-32R


Changelog:
20130903
- fix the bug where dropped frames would jump back in time

20130702
- implement point filtering

20130316
- partially fix broken toggle for DMA capture (toggling while capturing is still broken)

20130228
- refactor config slightly
- implement picture adjustments
 - vile, smelly code that I am in no way proud of :(
- validate textbox after losing focus only to prevent interference while typing a new value
- fix tab order
- prevent crash in unhandled UDN_DELTAPOS
- migrate to C-style API

20130114
- finally fix DMA capture!
 - should be configurable but is broken so hardcoded for now

20130113
- implement automatic resolution (now default)
- implement no signal / invalid signal images:
 - default ones in OBS\plugins\DatapathPlugin
 - user-defined ones in %APPDATA%\OBS\pluginData\DatapathPlugin
- fix stupidity

20130110
- update crop settings in real-time
- update input selection and detected mode in real-time
- implement mode change callback
- add red/green/blue gain controls to GUI (unused)
- add per-mode settings retention checkbox to GUI (unused)

20130108
- implement cropping
- swap top/left with left/top in config dialogue
- implement automatic bitmap/texture resize
- implement input selection instead of hardcoding to 0
- fix memory leaks
- add comments
- clean up old cruft

Here's a Twitch video of me testing it: Testing Datapath source plugin

(Note that I do not work for nor am affiliated with Datapath other than simply being one of their customers. Depending on things, I may never get to implementing certain planned features or I could stop developing it entirely.)
 
When I start up OBS with this in the plugins folder it says it wasn't able to start due to RGBEASY.dll was missing from my computer. Do I need to install anything special to get this to work?
 

paibox

heros in an halfshel
I would assume those are part of the drivers for your Datapath capture card. If there is a specific set of RGBEasy interface drivers, install those.
 

Muf

Forum Moderator
Yes, RGBEasy.dll comes standard with the Datapath drivers. Which capture card do you have?
 
Woops, totally forgot to install the driver after buying this plugging it into my computer. I've had the VisionRGB-E2s for awhile, just have never used it.
 

Muf

Forum Moderator
You have such an amazing capture card, and you never used it? Some people... :P

Anyway, let me know how the plugin works for you. I literally have not been able to test it on any PC other than my own, as I didn't know anyone else with one of these cards.
 
Muf said:
You have such an amazing capture card, and you never used it? Some people... :P

Anyway, let me know how the plugin works for you. I literally have not been able to test it on any PC other than my own, as I didn't know anyone else with one of these cards.
I really didn't see the need to use it lol. I already had a console capture card and I use Dxtory to record/capture PC games :P. But yeah it does work. Probably won't be using it much though for the reasons stated before. I do like the way you layed out the UI though :).
 

Muf

Forum Moderator
TheRevTastic said:
I really didn't see the need to use it lol. I already had a console capture card and I use Dxtory to record/capture PC games :P. But yeah it does work. Probably won't be using it much though for the reasons stated before. I do like the way you layed out the UI though :).
To each their own, I suppose, but I vastly prefer my plugin over Game Capture/DXTory. Just like Game Capture, Vision capture hardly uses any CPU resources, and it works for any game, Aero on, Aero off, whatever. Just fire and forget.
 
Muf said:
TheRevTastic said:
I really didn't see the need to use it lol. I already had a console capture card and I use Dxtory to record/capture PC games :P. But yeah it does work. Probably won't be using it much though for the reasons stated before. I do like the way you layed out the UI though :).
To each their own, I suppose, but I vastly prefer my plugin over Game Capture/DXTory. Just like Game Capture, Vision capture hardly uses any CPU resources, and it works for any game, Aero on, Aero off, whatever. Just fire and forget.
I see where you're coming from :P. I just don't have an extra DVI cord to use to make the capture card work. I had to borrow one from a friend yesterday which is why I ended up testing it out in the first place.
 

P4rD0nM3

New Member
Hey Muf, I game on a 2560x1600 monitor and I've been looking forever for a capture card that can handle my resolution. It looks like Datapath is my only option if I want support up to 4k. Where did you buy yours? Just saw your test streams and even if I have a 3960X and three GTX 680s, your quality beats mine (while streaming).

Mad props for developing this. You've converted me to Datapath. Now all I need is a store.
 

Draco

Member
P4rD0nM3 said:
Hey Muf, I game on a 2560x1600 monitor and I've been looking forever for a capture card that can handle my resolution. It looks like Datapath is my only option if I want support up to 4k. Where did you buy yours? Just saw your test streams and even if I have a 3960X and three GTX 680s, your quality beats mine (while streaming).

Mad props for developing this. You've converted me to Datapath. Now all I need is a store.
Maybe Muf might know more on this, but unfortunately the only way I've seen to get these cards are from official distributors/resellers listed on datapath's site. I contacted one and got an evaluation unit (E1S) two months back from DYNYE in PA. I couldn't spring on it and lay out the cash, but I absolutely loved the performance over my current card (BM Decklink HD Extreme 3D+). It just felt more solid.

I recently came across a E2S on eBay though and snatched it up! Seems rather rare to come across these cards this way unfortunately. I have it on the way and *cannot wait* to try this plugin out. The green and red channels have been horrible on the decklink (and it definitely can't capture fullrange feeds either). I hope the Datapath cards never convert RGB to YUV at any point in the hardware input as most "broadcast" capture cards do.
 

Muf

Forum Moderator
What I did is I mailed sales@datapath.co.uk and Liam there directly put me in touch with a sales rep for my local distributor (which in my case was Dicis). I suggest googling the model name of the card you're interested in first before approaching them to get a ballpark idea of what sort of price you can expect, though. These cards don't come cheap :).
 

austinmrs

Member
so this is a plugin for capture our desktop?

like Software Capture right? but better, i suppose :D

i use Software Capture for capture LoL in Borderless mode, i dont like to use game capture since i have to switch scenes when im on desktop, and i get no fps drop while using Software Capture
 

Muf

Forum Moderator
P4rD0nM3 said:
Muf just wondering, what was your bitrate and other settings?
Resolution: 1920x1200
Bitrate: 3000kbps
Buffer: 2500kb
Quality: 10
Preset: faster

That particular VOD was done with a very early version of the plugin though. Performance is much better now. I had a few VODs of WipeOut HD in 1080p60 that were a lot better (aside from the fact that it's practically impossible to stream a racing game like WipeOut at 1080p60 at any sort of decent quality), but Twitch already deleted them.

I should do a new VOD some time showing some of the new features of the plugin.
 

P4rD0nM3

New Member
Wow. That's lower than what I use.

bitrate: 3500
buffer: 4500
quality: 8
preset: faster

Here's a sample. http://www.twitch.tv/rodoabad/c/1925847

I play at 2560x1600, then downscale through OBS (1280x720).

I am about to order a VisionAV (4k4k). Do you think the VisionAV will be a night and day difference?

I'm not quite sure if I should downscale it still after purchasing the VisionAV. I mean if you're streaming at 1200p...you don't even downscale it and it's impressive that you use only 3000 kbps. Is it because all the processing is done in the capture card?

This was my first attempt at streaming with a capture card.

HD PVR at 720p (since 1080i sucks).

http://www.youtube.com/watch?v=ow1_B5ahmZI

As you can see quality sucks. Lol.
 

Muf

Forum Moderator
P4rD0nM3 said:
Here's a sample. http://www.twitch.tv/rodoabad/c/1925847

I play at 2560x1600, then downscale through OBS (1280x720).

I am about to order a VisionAV (4k4k). Do you think the VisionAV will be a night and day difference?
I doubt it. Your system seems more than capable of capturing through software at 60fps. The main reason for getting a capture card is being able to capture anything smoothly, without having to use different types of software capture like game capture, inner window capture, etc. You can just capture the entire screen and be done with it. A good use case for instance would be League of Legends. Another use case for a capture card is offloading the encoding to a second PC. That could still be an option for you, if you have the money; get a dedicated streambox with a powerful CPU, and you should be able to encode at 1080p60 with a heavy x264 preset like medium.

Also, keep in mind that 2560x1600 at 60Hz equates to a pixel clock of 330MHz, and the VisionAV supports HDMI sources up to a pixel clock of 225MHz. The VisionDVI-DL maxes out at a pixel clock of 330MHz, so it should in theory be able to capture 2560x1600; however you will need to connect it using a dual link DVI cable. Be very careful to check whether what you want to capture is supported by the card, because there are two factors at play: the maximum pixel clock and the maximum transfer bandwidth. 2560x1600 60Hz at RGB24 is 703MB/s, but a VisionDVI-DL can only transfer 650MB/s. In YUY2, it would be 468MB/s, but then you get slight colour bleeding with colours like bright red. Also note that the current version of my plugin only supports capturing in RGB32, neither RGB24 nor YUY2 are supported.

P4rD0nM3 said:
I'm not quite sure if I should downscale it still after purchasing the VisionAV. I mean if you're streaming at 1200p...you don't even downscale it and it's impressive that you use only 3000 kbps. Is it because all the processing is done in the capture card?
The only reason my stream looks decent at 1200p is because Starcraft II is a very compressible game. First person shooters are much harder to cram into a bitrate like 3000kbps. And if you raise bitrate/resolution too high, you're going to run into problems with viewers not being able to watch the stream because either their internet connection isn't fast enough or their CPU isn't fast enough. You can overcome that by becoming a partner and enabling transcodes (so viewers can choose between 480p, 720p, 1080p+ etc), but then there's still the issue that Twitch doesn't really support bitrates much higher than 4000kbps (I think their official policy is that anything 5000kbps or higher is considered abuse of the system).
 

P4rD0nM3

New Member
Hmm. Never thought of that. I just looked at the 4k4k input limit. I want to be able to play at 2560x1600 and then be able to stream at around 1080p without any lag whatsoever. I don't want to stream at 2560x1600 at the same time.
 
Top