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.)
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.)