[outdated][offline] DirectDraw (+dx8) capture support

[outdated][offline] DirectDraw (+dx8) capture support

Bl00drav3n

Member
Quick update on the progress so far.

I am using the IDirectDraw7 interface throughout the whole code now, what makes the capture work with a lot of "newer" games, but seem to cause some issues with games that use the old interface. I will probably change the code a bit to work around this issue. At the moment the plugin causes some games to randomly crash, I didn't find the cause yet, maybe it's a problem with threading.

I also implemented a fix to broken palettes on Win7. As probably many of you have experienced already, old DirectDraw games look quite ugly on Windows 7, because Microsoft didn't stick with their own suggestion to NOT SWAP PALETTES WHEN NOT IN FULLSCREEN.... What is basically happening is the game creates a palette and sets it as the current state. But in the meantime programs like explorer.exe (wtf?) changes the system palette and messes up the entries. The game does not check if the palette changed and assumes that everything is in order. As a result you can get weird colors like purple water in Age of Empires 2.
My fix is really straightforward, though not very efficient. Every time the game sets a palette, I save it in a structure. Everytime the game calls IDirectDrawSurface::Unlock I check if this method was called for the primary surface (the surface that is drawn to screen). If it was the primary surface I simply reset the palette to the one I saved earlier. So even though other Windows-programs in the background can mess up the palette, the colors stay the same. Here are two screenshots one with and one without the fix:

(Note: the first image is not exactly what it looks like on monitor, but you get the idea)
Same goes for Starcraft 1 btw, though I have problems with palette swaps.

There is still some work to be done, and I also started working on DX8-Capture, so stay tuned! :)

Quick Edit: Just tried to compile 64bit version and tested it with Diablo1. Working so far.
 

Attachments

Genette

New Member
Hello,

this plugin is really heaven-sent for an older game like Age of Empires II: The Conquerors. At first, the plugin was running fine and I was really excited about it. But in some of my streams the screen went suddenly black and I couldn't figure out why. So, I did some testing and noticed that "alt-tabbing" makes the screen irreversibly go black and the plugin won't work anymore until the game (and OBS, if I'm correct) get(s) restarted.

Code:
22:39:05: Error retrieving palette
DDraw Error: no palette attached
22:39:05: called DoDDrawHook()
22:39:05: DoDDrawHook: no surface descriptor found
22:39:05: CopyDDrawTextureThread: waiting for copyEvents
22:39:05: DoDDrawHook: found 32bit format (using plain copy)
22:39:05: DoDDrawHook: frontSurface width = 1920, height = 1080
22:39:05: DoDDrawHook(): Could not create offscreen capture
DDraw Error: invalid params
22:39:05: DoDDrawHook: success
22:39:05: Cleaning up
22:39:05: CopyDDrawTextureThread: killed
What also might be interesting for you guys: I'm using the "simple scene switcher" and I added the "most recent 64-bit Build", since I'm running OBS on 64bit as well.

Since AoC games can be rather lengthy and even the waiting window might be displayed a few minutes before the actual game starts, "alt-tabbing" is kind of a must here :S

Here's a twitch recording showing this phenomenon: http://en.twitch.tv/genettetesting/b/466422512?t=3m38s

If you need any more of my logfiles from OBS to examine this, please let me know - I'll check back here regularly.

Thanks for all the great work, btw! You wouldn't believe how many streamers out there truely love what you're doing!

Regards, Genette

Edit: cleared dxtory and SCFH DSF and added a new log file.

Code:
22:37:07: Server Ping plugin strings not found, dynamically loading 24 strings
22:38:30: Open Broadcaster Software v0.571b - 64bit ( ^ω^)
22:38:30: -------------------------------
22:38:30: CPU Name: AMD FX(tm)-8350 Eight-Core Processor
22:38:30: CPU Speed: 4018MHz
22:38:30: Physical Memory:  8174MB Total, 6146MB Free
22:38:30: stepping id: 0, model 2, family 15, type 0, extmodel 0, extfamily 3, HTT 1, logical cores 8, total cores 4
22:38:30: monitor 1: pos={0, 0}, size={1920, 1080}
22:38:30: Windows Version: 6.1 Build 7601 S
22:38:30: Aero is Disabled
22:38:30: -------------------------------
22:38:30: OBS Modules:
22:38:30: Base Address     Module
22:38:30: 000000003F270000 OBS.exe
22:38:30: 00000000E5310000 OBSApi.dll
22:38:30: 00000000F8CF0000 DShowAudioPlugin.dll
22:38:30: 00000000F8A20000 DShowPlugin.dll
22:38:30: 00000000F89F0000 GraphicsCapture.dll
22:38:30: 00000000F8D40000 NoiseGate.dll
22:38:30: 00000000F89D0000 PSVPlugin.dll
22:38:30: 00000000F89B0000 scenesw.dll
22:38:30: 00000000F8850000 ServerPingPlugin.dll
22:38:30: ------------------------------------------
22:38:30: Adapter 1
22:38:30:   Video Adapter: AMD Radeon HD 6700 Series
22:38:30:   Video Adapter Dedicated Video Memory: 1062043648
22:38:30:   Video Adapter Shared System Memory: 4017156096
22:38:30: =====Stream Start: 2013-10-01, 22:38:30===============================================
22:38:30:   Multithreaded optimizations: On
22:38:30:   Base resolution: 1920x1080
22:38:30:   Output resolution: 1280x720
22:38:30: ------------------------------------------
22:38:30: Loading up D3D10 on AMD Radeon HD 6700 Series...
22:38:30: ------------------------------------------
22:38:30: Audio Format: 48000hz
22:38:30: Playback device Default
22:38:30: ------------------------------------------
22:38:30: Using desktop audio input: Lautsprecher (VIA High Definition Audio)
22:38:30: ------------------------------------------
22:38:30: Using auxilary audio input: Mikrofon (USB PnP Sound Device)
22:38:30: ------------------------------------------
22:38:30: Audio Encoding: AAC
22:38:30:     bitrate: 80
Warning -- DShowPlugin: Could not create device filter
22:38:30: Using directshow input
22:38:30: Using custom x264 settings: "subme=7 me=umh b-adapt=1 merange=32 bframes=1 rc-lookahead=20 psy-rd=0.5:0.0 keyint=40 scenecut=40 8x8dct=1 partitions=all profile=high aq-mode=2 chroma-qp-offset=2 colormatrix=smpte170m deblock=0:0 direct=auto ipratio=1.41 level=3.1 min-keyint=1 mixed-refs=1 no-mbtree=0 qcomp=0.6 qpmax=51 qpmin=10 qpstep=4 ratetol=10 ref=1 threads=0 trellis=2 weightb=1 weightp=2"
22:38:30: ------------------------------------------
22:38:30: Video Encoding: x264
22:38:30:     fps: 20
22:38:30:     width: 1280, height: 720
22:38:30:     preset: veryfast
22:38:30:     profile: high
22:38:30:     keyint: 40
22:38:30:     CBR: yes
22:38:30:     CFR: yes
22:38:30:     max bitrate: 850
22:38:30:     buffer size: 850
22:38:30: ------------------------------------------
22:38:30: MMDeviceAudioSource: Frequency for device 'Lautsprecher (VIA High Definition Audio)' is 384000, samples per sec is 48000
22:38:30: MMDeviceAudioSource: Frequency for device 'Mikrofon (USB PnP Sound Device)' is 192000, samples per sec is 48000
22:38:33: Using RTMP service: Twitch / Justin.tv
22:38:33:   Server selection: rtmp://live-lhr-backup.justin.tv/app
22:38:33:   Interface: Realtek PCIe GBE Family Controller (ethernet, 100 mbps)
22:38:33: Completed handshake with rtmp://live-lhr-backup.justin.tv/app in 427 ms.
22:38:34: SO_SNDBUF was at 8192
22:38:34: SO_SNDBUF is now 65536
22:38:38: Total frames encoded: 151, total frames duplicated: 0 (0.00%)
22:38:38: Total frames rendered: 154, number of late frames: 0 (0.00%) (it's okay for some frames to be late)
22:38:38: RTMPPublisher::SocketLoop: Graceful loop exit
22:38:38: Average send payload: 3298 bytes, average send interval: 29 ms
22:38:38: Number of times waited to send: 0, Waited for a total of 0 bytes
22:38:38: Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
22:38:38: Number of bytes sent: 376017
22:38:39: 
22:38:39: Profiler time results:
22:38:39: 
22:38:39: ==============================================================
22:38:39: video thread frame - [100%] [avg time: 0.911 ms] [children: 0.22%] [unaccounted: 99.8%]
22:38:39: | scene->Preprocess - [0.22%] [avg time: 0.002 ms]
22:38:39: GPU download and conversion - [100%] [avg time: 0.184 ms] [children: 72.3%] [unaccounted: 27.7%]
22:38:39: | flush - [59.2%] [avg time: 0.109 ms]
22:38:39: | CopyResource - [7.07%] [avg time: 0.013 ms]
22:38:39: | conversion to 4:2:0 - [5.98%] [avg time: 0.011 ms]
22:38:39: Convert444Threads - [100%] [avg time: 0.595 ms] [children: 98.8%] [unaccounted: 1.18%]
22:38:39: | Convert444toNV12 - [98.8%] [avg time: 0.588 ms]
22:38:39: encoder thread frame - [100%] [avg time: 1.776 ms]
22:38:39: ==============================================================
22:38:39: 
22:38:39: 
22:38:39: Profiler CPU results:
22:38:39: 
22:38:39: ==============================================================
22:38:39: video thread frame - [cpu time: avg 0.303 ms, total 46.8 ms] [avg calls per frame: 1]
22:38:39: | scene->Preprocess - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
22:38:39: GPU download and conversion - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
22:38:39: | flush - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
22:38:39: | CopyResource - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
22:38:39: | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
22:38:39: Convert444Threads - [cpu time: avg 0.92 ms, total 265.2 ms] [avg calls per frame: 2]
22:38:39: | Convert444toNV12 - [cpu time: avg 0.92 ms, total 265.2 ms] [avg calls per frame: 2]
22:38:39: encoder thread frame - [cpu time: avg 1.636 ms, total 234.001 ms] [avg calls per frame: 1]
22:38:39: ==============================================================
22:38:39: 
22:38:39: =====Stream End: 2013-10-01, 22:38:39=================================================
22:38:51: =====Stream Start: 2013-10-01, 22:38:51===============================================
22:38:51:   Multithreaded optimizations: On
22:38:51:   Base resolution: 1920x1080
22:38:51:   Output resolution: 1280x720
22:38:51: ------------------------------------------
22:38:51: Loading up D3D10 on AMD Radeon HD 6700 Series...
22:38:51: ------------------------------------------
22:38:51: Audio Format: 48000hz
22:38:51: Playback device Default
22:38:51: ------------------------------------------
22:38:51: Using desktop audio input: Lautsprecher (VIA High Definition Audio)
22:38:52: ------------------------------------------
22:38:52: Using auxilary audio input: Mikrofon (USB PnP Sound Device)
22:38:52: ------------------------------------------
22:38:52: Audio Encoding: AAC
22:38:52:     bitrate: 80
22:38:52: Using Monitor Capture
22:38:52: Using custom x264 settings: "subme=7 me=umh b-adapt=1 merange=32 bframes=1 rc-lookahead=20 psy-rd=0.5:0.0 keyint=40 scenecut=40 8x8dct=1 partitions=all profile=high aq-mode=2 chroma-qp-offset=2 colormatrix=smpte170m deblock=0:0 direct=auto ipratio=1.41 level=3.1 min-keyint=1 mixed-refs=1 no-mbtree=0 qcomp=0.6 qpmax=51 qpmin=10 qpstep=4 ratetol=10 ref=1 threads=0 trellis=2 weightb=1 weightp=2"
22:38:52: ------------------------------------------
22:38:52: Video Encoding: x264
22:38:52:     fps: 20
22:38:52:     width: 1280, height: 720
22:38:52:     preset: veryfast
22:38:52:     profile: high
22:38:52:     keyint: 40
22:38:52:     CBR: yes
22:38:52:     CFR: yes
22:38:52:     max bitrate: 850
22:38:52:     buffer size: 850
22:38:52: ------------------------------------------
22:38:52: MMDeviceAudioSource: Frequency for device 'Lautsprecher (VIA High Definition Audio)' is 384000, samples per sec is 48000
22:38:52: MMDeviceAudioSource: Frequency for device 'Mikrofon (USB PnP Sound Device)' is 192000, samples per sec is 48000
22:38:54: Using RTMP service: Twitch / Justin.tv
22:38:54:   Server selection: rtmp://live-lhr-backup.justin.tv/app
22:38:56:   Interface: Realtek PCIe GBE Family Controller (ethernet, 100 mbps)
22:38:57: Completed handshake with rtmp://live-lhr-backup.justin.tv/app in 910 ms.
22:38:58: SO_SNDBUF was at 8192
22:38:58: SO_SNDBUF is now 65536
22:39:04: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
22:39:04:   New Scene
22:39:04: Using graphics capture
Warning -- MemoryCapture::Init: Could not open file mapping
Warning -- MemoryCapture::Init: Could not open file mapping
22:39:05: using memory capture
22:39:05: GraphicsCaptureSource::NewCapture:  eliminating old capture
Warning -- MemoryCapture::Init: Could not open file mapping
Warning -- MemoryCapture::Init: Could not open file mapping
Warning -- MemoryCapture::Init: Could not open file mapping
22:39:11: using memory capture
22:39:16: GraphicsCaptureSource::NewCapture:  eliminating old capture
Warning -- MemoryCapture::Init: Could not open file mapping
Warning -- MemoryCapture::Init: Could not open file mapping
22:39:17: using memory capture
22:40:02: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
22:40:02:   New Scene
22:40:02: Using Monitor Capture
22:40:09: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
22:40:09:   New Scene
22:40:09: Using graphics capture
22:40:14: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
22:40:14:   New Scene
22:40:14: Using Monitor Capture
22:40:19: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
22:40:19:   New Scene
22:40:19: Using graphics capture
22:40:22: Total frames encoded: 1800, total frames duplicated: 27 (1.50%)
22:40:22: Total frames rendered: 1804, number of late frames: 1 (0.06%) (it's okay for some frames to be late)
22:40:22: RTMPPublisher::SocketLoop: Graceful loop exit
22:40:23: Average send payload: 4191 bytes, average send interval: 37 ms
22:40:23: Number of times waited to send: 0, Waited for a total of 0 bytes
22:40:23: Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
22:40:23: Number of bytes sent: 9447882
22:40:23: 
22:40:23: Profiler time results:
22:40:23: 
22:40:23: ==============================================================
22:40:23: video thread frame - [100%] [avg time: 4.536 ms] [children: 51.7%] [unaccounted: 48.3%]
22:40:23: | scene->Preprocess - [51.7%] [avg time: 2.344 ms]
22:40:23: GPU download and conversion - [100%] [avg time: 0.319 ms] [children: 83.4%] [unaccounted: 16.6%]
22:40:23: | flush - [77.7%] [avg time: 0.248 ms]
22:40:23: | CopyResource - [3.13%] [avg time: 0.01 ms]
22:40:23: | conversion to 4:2:0 - [2.51%] [avg time: 0.008 ms]
22:40:23: Convert444Threads - [100%] [avg time: 0.471 ms] [children: 98.9%] [unaccounted: 1.06%]
22:40:23: | Convert444toNV12 - [98.9%] [avg time: 0.466 ms]
22:40:23: encoder thread frame - [100%] [avg time: 1.717 ms]
22:40:23: ==============================================================
22:40:23: 
22:40:23: 
22:40:23: Profiler CPU results:
22:40:23: 
22:40:23: ==============================================================
22:40:23: video thread frame - [cpu time: avg 3.043 ms, total 5491.24 ms] [avg calls per frame: 1]
22:40:23: | scene->Preprocess - [cpu time: avg 1.357 ms, total 2449.22 ms] [avg calls per frame: 1]
22:40:23: GPU download and conversion - [cpu time: avg 0.06 ms, total 109.2 ms] [avg calls per frame: 1]
22:40:23: | flush - [cpu time: avg 0.034 ms, total 62.4 ms] [avg calls per frame: 1]
22:40:23: | CopyResource - [cpu time: avg 0.017 ms, total 31.2 ms] [avg calls per frame: 1]
22:40:23: | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
22:40:23: Convert444Threads - [cpu time: avg 0.4 ms, total 1435.21 ms] [avg calls per frame: 2]
22:40:23: | Convert444toNV12 - [cpu time: avg 0.395 ms, total 1419.61 ms] [avg calls per frame: 2]
22:40:23: encoder thread frame - [cpu time: avg 1.062 ms, total 1903.21 ms] [avg calls per frame: 1]
22:40:23: ==============================================================
22:40:23: 
22:40:23: =====Stream End: 2013-10-01, 22:40:23=================================================
22:40:30: Server Ping plugin instance deleted; removing dynamically loaded localization strings


Last game capture log:
2013-10-01, 22:39:05: we're booting up: 
22:39:05: Trying to initialize ddraw hook
22:39:05: DirectDraw Present
22:39:05: (half life scientist) everything..  seems to be in order
22:39:05: IDirectDraw::CreateSurface: got DDInterface pointer
22:39:05: IDirectDraw::CreateSurface: Primary surface created at 0x0098B538
22:39:05: found primary surface
22:39:05: Error retrieving palette
DDraw Error: no palette attached
22:39:05: called DoDDrawHook()
22:39:05: DoDDrawHook: no surface descriptor found
22:39:05: CopyDDrawTextureThread: waiting for copyEvents
22:39:05: DoDDrawHook: found 32bit format (using plain copy)
22:39:05: DoDDrawHook: frontSurface width = 1920, height = 1080
22:39:05: DoDDrawHook(): Could not create offscreen capture
DDraw Error: invalid params
22:39:05: DoDDrawHook: success
22:39:05: Cleaning up
22:39:05: CopyDDrawTextureThread: killed
22:39:05: ---------------------- Cleared DirectDraw Capture ----------------------
22:39:05: IDirectDraw::CreateSurface: got DDInterface pointer
22:39:05: found primary surface
22:39:05: Error retrieving palette
DDraw Error: no palette attached
22:39:05: called DoDDrawHook()
22:39:05: DoDDrawHook: no surface descriptor found
22:39:05: DoDDrawHook: found 32bit format (using plain copy)
22:39:05: DoDDrawHook: frontSurface width = 1920, height = 1080
22:39:05: DoDDrawHook(): Could not create offscreen capture
DDraw Error: invalid params
22:39:05: CopyDDrawTextureThread: waiting for copyEvents
22:39:05: DoDDrawHook: success
22:39:05: Cleaning up
22:39:05: CopyDDrawTextureThread: killed
22:39:05: ---------------------- Cleared DirectDraw Capture ----------------------
22:39:05: Got DirectDraw interface pointer
22:39:05: found primary surface
22:39:05: Error retrieving palette
DDraw Error: no palette attached
22:39:05: called DoDDrawHook()
22:39:05: DoDDrawHook: no surface descriptor found
22:39:05: DoDDrawHook: found 32bit format (using plain copy)
22:39:05: DoDDrawHook: frontSurface width = 1920, height = 1080
22:39:05: CopyDDrawTextureThread: waiting for copyEvents22:39:05: 
DoDDrawHook: success
22:39:05: Releasing primary surface 0x0098B538
22:39:05: Freeing primary surface
22:39:05: Cleaning up
22:39:05: CopyDDrawTextureThread: killed
22:39:05: ---------------------- Cleared DirectDraw Capture ----------------------
22:39:05: IDirectDraw::CreateSurface: got DDInterface pointer
22:39:05: IDirectDraw::CreateSurface: Primary surface created at 0x0098B618
22:39:05: found primary surface
22:39:05: Error retrieving palette
DDraw Error: no palette attached
22:39:05: called DoDDrawHook()
22:39:05: DoDDrawHook: no surface descriptor found
22:39:05: CopyDDrawTextureThread: waiting for copyEvents
22:39:05: DoDDrawHook: found 32bit format (using plain copy)
22:39:05: DoDDrawHook: frontSurface width = 1920, height = 1080
22:39:05: DoDDrawHook(): Could not create offscreen capture
DDraw Error: invalid params
22:39:05: DoDDrawHook: success
22:39:05: Cleaning up
22:39:05: CopyDDrawTextureThread: killed
22:39:05: ---------------------- Cleared DirectDraw Capture ----------------------
22:39:05: IDirectDraw::CreateSurface: got DDInterface pointer
22:39:10: IDirectDraw::CreateSurface: Primary surface created at 0x0098B6F8
22:39:10: found primary surface
22:39:10: Error retrieving palette
DDraw Error: no palette attached
22:39:10: called DoDDrawHook()
22:39:10: DoDDrawHook: no surface descriptor found
22:39:10: DoDDrawHook: found 32bit format (using plain copy)
22:39:10: DoDDrawHook: frontSurface width = 1920, height = 1080
22:39:10: DoDDrawHook(): Could not create offscreen capture
DDraw Error: invalid params
22:39:10: DoDDrawHook: success
22:39:10: Cleaning up
22:39:10: CopyDDrawTextureThread: waiting for copyEvents
22:39:10: CopyDDrawTextureThread: killed
22:39:10: ---------------------- Cleared DirectDraw Capture ----------------------
22:39:10: IDirectDraw::CreateSurface: got DDInterface pointer
22:39:10: found primary surface
22:39:10: Error retrieving palette
DDraw Error: no palette attached
22:39:10: called DoDDrawHook()
22:39:10: DoDDrawHook: no surface descriptor found
22:39:10: DoDDrawHook: found 32bit format (using plain copy)
22:39:10: DoDDrawHook: frontSurface width = 1920, height = 1080
22:39:10: DoDDrawHook(): Could not create offscreen capture
22:39:10: DDraw Error: invalid params
CopyDDrawTextureThread: waiting for copyEvents
22:39:10: DoDDrawHook: success
22:39:10: Cleaning up
22:39:10: CopyDDrawTextureThread: killed
22:39:10: ---------------------- Cleared DirectDraw Capture ----------------------
22:39:10: Got DirectDraw interface pointer
22:39:11: found primary surface
22:39:11: Error retrieving palette
DDraw Error: no palette attached
22:39:11: called DoDDrawHook()
22:39:11: DoDDrawHook: no surface descriptor found
22:39:11: DoDDrawHook: found 32bit format (using plain copy)
22:39:11: DoDDrawHook: frontSurface width = 1920, height = 1080
22:39:11: CopyDDrawTextureThread: waiting for copyEvents
22:39:11: DoDDrawHook: success
22:39:16: Releasing primary surface 0x0098B6F8
22:39:16: Freeing primary surface
22:39:16: Cleaning up
22:39:16: CopyDDrawTextureThread: killed
22:39:16: ---------------------- Cleared DirectDraw Capture ----------------------
22:39:16: IDirectDraw::CreateSurface: got DDInterface pointer
22:39:16: IDirectDraw::CreateSurface: Primary surface created at 0x0098B078
22:39:16: found primary surface
22:39:16: Error retrieving palette
DDraw Error: no palette attached
22:39:16: called DoDDrawHook()
22:39:16: DoDDrawHook: no surface descriptor found
22:39:16: CopyDDrawTextureThread: waiting for copyEvents
22:39:16: DoDDrawHook: found 32bit format (using plain copy)
22:39:16: DoDDrawHook: frontSurface width = 1920, height = 1080
22:39:16: DoDDrawHook(): Could not create offscreen capture
DDraw Error: invalid params
22:39:16: DoDDrawHook: success
22:39:16: Cleaning up
22:39:16: CopyDDrawTextureThread: killed
22:39:16: ---------------------- Cleared DirectDraw Capture ----------------------
22:39:16: IDirectDraw::CreateSurface: got DDInterface pointer
22:39:16: found primary surface
22:39:16: Error retrieving palette
DDraw Error: no palette attached
22:39:16: called DoDDrawHook()
22:39:16: DoDDrawHook: no surface descriptor found
22:39:16: DoDDrawHook: found 32bit format (using plain copy)
22:39:16: DoDDrawHook: frontSurface width = 1920, height = 1080
22:39:16: CopyDDrawTextureThread: waiting for copyEvents
22:39:16: DoDDrawHook(): Could not create offscreen capture
DDraw Error: invalid params
22:39:16: DoDDrawHook: success
22:39:16: Cleaning up
22:39:16: CopyDDrawTextureThread: killed
22:39:16: ---------------------- Cleared DirectDraw Capture ----------------------
22:39:16: Got DirectDraw interface pointer
22:39:16: found primary surface
22:39:16: Error retrieving palette
DDraw Error: no palette attached
22:39:16: called DoDDrawHook()
22:39:16: DoDDrawHook: no surface descriptor found
22:39:16: DoDDrawHook: found 32bit format (using plain copy)
22:39:16: DoDDrawHook: frontSurface width = 1920, height = 1080
22:39:16: CopyDDrawTextureThread: waiting for copyEvents
22:39:16: DoDDrawHook: success
 

Bl00drav3n

Member
Hi! Thank you for the informations, I will have a look into it. There are some major bugs to fix and I took a little break from the project, but I will continue to work on this plugin.
I will try testing my latest development version with recording Age of Empires 2 and will let you know when I fixed the problems.

Edit: Just fixed a major bug, although I wouldn't call it stable yet.
 

Bl00drav3n

Member
UPDATE Nov 16: Fixed crashes with palettes and fixed some synchronization/memory corruption erros. Built against OBS v0.854b stable.
 

Rewoig

New Member
I tried your 64-bit build on win7 64 and OBS v0.854b, by putting the files in C:\Program Files\OBS\plugins and C:\Program Files\OBS\plugins\GraphicsCapture. Then starting OBS, it complained about Game Capture Plugin being out of date, (I declined to update it obviously), as such I assume I managed to install it. But it gives the same result as before, a black screen with broodwar or age of empires 2. I'm I doing it wrong? Love to see this working, many thanks.
 

Bl00drav3n

Member
DirectorGunner said:
Would this work for League of Legends?
League of Legends uses DirectX9 (afaik) which already works with the original gamecapture plugin.

Rewoig said:
But it gives the same result as before, a black screen with broodwar or age of empires 2. I'm I doing it wrong? Love to see this working, many thanks.
May I see your logfile?

Edit: Just tried it out with AoE II and OBS 0.584b 64bit:


I also tested Starcraft Gold Edition:


But there seems to be a real issue somewhere. I tried to capture Diablo 1 but it didn't work. After I restarted the program it worked. Really strange.
 

Rewoig

New Member
Well I didn't want to look through all of my logs, so I'll try to reproduce it now. When I first started it, and tried broodwar it didn't work, the log:
Code:
18:29:10: Open Broadcaster Software v0.584b - 64bit ( ^ω^)
18:29:10: -------------------------------
18:29:10: CPU Name: Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
18:29:10: CPU Speed: 3368MHz
18:29:10: Physical Memory:  8173MB Total, 5688MB Free
18:29:10: stepping id: 7, model 42, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 4, total cores 4
18:29:10: monitor 1: pos={0, 0}, size={1920, 1200}
18:29:10: monitor 2: pos={-1920, -556}, size={1920, 1080}
18:29:10: Windows Version: 6.1 Build 7601 S
18:29:10: Aero is Disabled
18:29:10: -------------------------------
18:29:10: OBS Modules:
18:29:10: Base Address     Module
18:29:10: 000000003F390000 OBS.exe
18:29:10: 00000000EE100000 OBSApi.dll
18:29:10: 00000000F6E50000 DShowPlugin.dll
18:29:10: 00000000F6E20000 GraphicsCapture.dll
18:29:10: 00000000F6E00000 NoiseGate.dll
18:29:10: 00000000F6DE0000 PSVPlugin.dll
18:29:11: ------------------------------------------
18:29:11: Adapter 1
18:29:11:   Video Adapter: NVIDIA GeForce GTX 580
18:29:11:   Video Adapter Dedicated Video Memory: 3165061120
18:29:11:   Video Adapter Shared System Memory: 4016793600
18:29:11:   Video Adapter Output 1: pos={0, 0}, size={1920, 1200}, attached=true
18:29:11:   Video Adapter Output 2: pos={-1920, -556}, size={1920, 1080}, attached=true
18:29:11: =====Stream Start: 2013-12-05, 18:29:11===============================================
18:29:11:   Multithreaded optimizations: On
18:29:11:   Base resolution: 1280x960
18:29:11:   Output resolution: 1280x960
18:29:11: ------------------------------------------
18:29:11: Loading up D3D10 on NVIDIA GeForce GTX 580...
18:29:11: ------------------------------------------
18:29:11: Audio Format: 48000hz
18:29:11: Playback device Default
18:29:11: ------------------------------------------
18:29:11: Using desktop audio input: Realtek Digital Output(Optical) (Realtek High Definition Audio)
18:29:11: ------------------------------------------
18:29:11: Using auxilary audio input: Linjeingång (Realtek High Definition Audio)
18:29:11: ------------------------------------------
18:29:11: Audio Encoding: AAC
18:29:11:     bitrate: 128
18:29:11: Using graphics capture
18:29:11: Scene buffering time set to 700
18:29:11: ------------------------------------------
18:29:11: Video Encoding: x264
18:29:11:     fps: 30
18:29:11:     width: 1280, height: 960
18:29:11:     preset: veryfast
18:29:11:     profile: high
18:29:11:     keyint: 250
18:29:11:     CBR: yes
18:29:11:     CFR: yes
18:29:11:     max bitrate: 15000
18:29:11:     buffer size: 15000
18:29:11: ------------------------------------------
18:29:11: MMDeviceAudioSource: Frequency for device 'Realtek Digital Output(Optical) (Realtek High Definition Audio)' is 384000, samples per sec is 48000
18:29:11: MMDeviceAudioSource: Frequency for device 'Linjeingång (Realtek High Definition Audio)' is 352800, samples per sec is 44100
18:30:22: Total frames encoded: 2126, total frames duplicated: 74 (3.48%)
18:30:22: Total frames rendered: 2067, number of late frames: 5 (0.24%) (it's okay for some frames to be late)
18:30:22: 
18:30:22: Profiler time results:
18:30:22: 
18:30:22: ==============================================================
18:30:22: video thread frame - [100%] [avg time: 1.725 ms] [children: 2.96%] [unaccounted: 97%]
18:30:22: | scene->Preprocess - [0.058%] [avg time: 0.001 ms]
18:30:22: | GPU download and conversion - [2.9%] [avg time: 0.05 ms] [children: 2.49%] [unaccounted: 0.406%]
18:30:22: | | flush - [1.45%] [avg time: 0.025 ms]
18:30:22: | | CopyResource - [0.986%] [avg time: 0.017 ms]
18:30:22: | | conversion to 4:2:0 - [0.058%] [avg time: 0.001 ms]
18:30:22: Convert444Threads - [100%] [avg time: 1.216 ms] [children: 99.6%] [unaccounted: 0.411%]
18:30:22: | Convert444toNV12 - [99.6%] [avg time: 1.211 ms]
18:30:22: encoder thread frame - [100%] [avg time: 1.179 ms]
18:30:22: ==============================================================
18:30:22: 
18:30:22: 
18:30:22: Profiler CPU results:
18:30:22: 
18:30:22: ==============================================================
18:30:22: video thread frame - [cpu time: avg 0.15 ms, total 312.002 ms] [avg calls per frame: 1]
18:30:22: | scene->Preprocess - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
18:30:22: | GPU download and conversion - [cpu time: avg 0.037 ms, total 78 ms] [avg calls per frame: 1]
18:30:22: | | flush - [cpu time: avg 0.03 ms, total 62.4 ms] [avg calls per frame: 1]
18:30:22: | | CopyResource - [cpu time: avg 0.007 ms, total 15.6 ms] [avg calls per frame: 1]
18:30:22: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
18:30:22: Convert444Threads - [cpu time: avg 1.207 ms, total 4929.63 ms] [avg calls per frame: 2]
18:30:22: | Convert444toNV12 - [cpu time: avg 1.203 ms, total 4914.03 ms] [avg calls per frame: 2]
18:30:22: encoder thread frame - [cpu time: avg 1 ms, total 2106.01 ms] [avg calls per frame: 1]
18:30:22: ==============================================================
18:30:22: 
18:30:22: =====Stream End: 2013-12-05, 18:30:22=================================================


Last game capture log:
2013-12-05, 18:29:32: we're booting up: 
18:29:32: Trying to initialize ddraw hook
18:29:32: OS version not supported - if you are using Win7/Win8 try setting compatibility mode to Win7/Win8
I restarted the program, and tried age of empires which worked fine, awesome! No idea why i didn't get it to work before though, quite sure I restarted OBS then as well..

Code:
18:31:38: Open Broadcaster Software v0.584b - 64bit ( ^ω^)
18:31:38: -------------------------------
18:31:38: CPU Name: Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
18:31:38: CPU Speed: 3368MHz
18:31:38: Physical Memory:  8173MB Total, 5696MB Free
18:31:38: stepping id: 7, model 42, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 4, total cores 4
18:31:38: monitor 1: pos={0, 0}, size={1920, 1200}
18:31:38: monitor 2: pos={-1920, -556}, size={1920, 1080}
18:31:38: Windows Version: 6.1 Build 7601 S
18:31:38: Aero is Disabled
18:31:38: -------------------------------
18:31:38: OBS Modules:
18:31:38: Base Address     Module
18:31:38: 000000003F430000 OBS.exe
18:31:38: 00000000F6B10000 OBSApi.dll
18:31:38: 00000000F6AD0000 DShowPlugin.dll
18:31:38: 00000000F6DE0000 GraphicsCapture.dll
18:31:38: 00000000F6AB0000 NoiseGate.dll
18:31:38: 00000000F6A90000 PSVPlugin.dll
18:31:38: ------------------------------------------
18:31:38: Adapter 1
18:31:38:   Video Adapter: NVIDIA GeForce GTX 580
18:31:38:   Video Adapter Dedicated Video Memory: 3165061120
18:31:38:   Video Adapter Shared System Memory: 4016793600
18:31:38:   Video Adapter Output 1: pos={0, 0}, size={1920, 1200}, attached=true
18:31:38:   Video Adapter Output 2: pos={-1920, -556}, size={1920, 1080}, attached=true
18:31:38: =====Stream Start: 2013-12-05, 18:31:38===============================================
18:31:38:   Multithreaded optimizations: On
18:31:38:   Base resolution: 1280x960
18:31:38:   Output resolution: 1280x960
18:31:38: ------------------------------------------
18:31:38: Loading up D3D10 on NVIDIA GeForce GTX 580...
18:31:38: ------------------------------------------
18:31:38: Audio Format: 48000hz
18:31:38: Playback device Default
18:31:38: ------------------------------------------
18:31:38: Using desktop audio input: Realtek Digital Output(Optical) (Realtek High Definition Audio)
18:31:38: ------------------------------------------
18:31:38: Using auxilary audio input: Linjeingång (Realtek High Definition Audio)
18:31:38: ------------------------------------------
18:31:38: Audio Encoding: AAC
18:31:38:     bitrate: 128
18:31:38: Using graphics capture
18:31:38: Scene buffering time set to 700
18:31:38: ------------------------------------------
18:31:38: Video Encoding: x264
18:31:38:     fps: 30
18:31:38:     width: 1280, height: 960
18:31:38:     preset: veryfast
18:31:38:     profile: high
18:31:38:     keyint: 250
18:31:38:     CBR: yes
18:31:38:     CFR: yes
18:31:38:     max bitrate: 15000
18:31:38:     buffer size: 15000
18:31:38: ------------------------------------------
18:31:38: MMDeviceAudioSource: Frequency for device 'Realtek Digital Output(Optical) (Realtek High Definition Audio)' is 384000, samples per sec is 48000
18:31:38: MMDeviceAudioSource: Frequency for device 'Linjeingång (Realtek High Definition Audio)' is 352800, samples per sec is 44100
18:31:40: using memory capture
18:31:53: GraphicsCaptureSource::NewCapture:  eliminating old capture
18:31:53: using memory capture
18:32:11: GraphicsCaptureSource::NewCapture:  eliminating old capture
18:32:11: using memory capture
18:32:13: Exit signal received, terminating capture
18:32:23: Total frames encoded: 1335, total frames duplicated: 52 (3.90%)
18:32:23: Total frames rendered: 1299, number of late frames: 5 (0.38%) (it's okay for some frames to be late)
18:32:23: 
18:32:23: Profiler time results:
18:32:23: 
18:32:23: ==============================================================
18:32:23: video thread frame - [100%] [avg time: 2.806 ms] [children: 3.56%] [unaccounted: 96.4%]
18:32:23: | scene->Preprocess - [0.0356%] [avg time: 0.001 ms]
18:32:23: | GPU download and conversion - [3.53%] [avg time: 0.099 ms] [children: 2.82%] [unaccounted: 0.713%]
18:32:23: | | flush - [2%] [avg time: 0.056 ms]
18:32:23: | | CopyResource - [0.784%] [avg time: 0.022 ms]
18:32:23: | | conversion to 4:2:0 - [0.0356%] [avg time: 0.001 ms]
18:32:23: Convert444Threads - [100%] [avg time: 1.03 ms] [children: 99.4%] [unaccounted: 0.583%]
18:32:23: | Convert444toNV12 - [99.4%] [avg time: 1.024 ms]
18:32:23: encoder thread frame - [100%] [avg time: 1.203 ms]
18:32:23: ==============================================================
18:32:23: 
18:32:23: 
18:32:23: Profiler CPU results:
18:32:23: 
18:32:23: ==============================================================
18:32:23: video thread frame - [cpu time: avg 0.924 ms, total 1201.21 ms] [avg calls per frame: 1]
18:32:23: | scene->Preprocess - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
18:32:23: | GPU download and conversion - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
18:32:23: | | flush - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
18:32:23: | | CopyResource - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
18:32:23: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
18:32:23: Convert444Threads - [cpu time: avg 1.125 ms, total 2870.42 ms] [avg calls per frame: 2]
18:32:23: | Convert444toNV12 - [cpu time: avg 1.119 ms, total 2854.82 ms] [avg calls per frame: 2]
18:32:23: encoder thread frame - [cpu time: avg 1.021 ms, total 1341.61 ms] [avg calls per frame: 1]
18:32:23: ==============================================================
18:32:23: 
18:32:23: =====Stream End: 2013-12-05, 18:32:23=================================================


Last game capture log:
2013-12-05, 18:31:38: we're booting up: 
18:31:38: Trying to initialize ddraw hook
18:31:38: DirectDraw Present
18:31:38: (half life scientist) everything..  seems to be in order
18:31:40: Got DirectDraw interface pointer
18:31:40: found primary surface
18:31:40: initializing palette
18:31:40: Trying to retrieve 256 palette entries
18:31:40: Initialized palette with 256 color entries
18:31:40: called DoDDrawHook()
18:31:40: DoDDrawHook: no surface descriptor found, creating a new one (not an error)
18:31:40: DoDDrawHook: primary surface width = 800, height = 600
18:31:40: CopyDDrawTextureThread: waiting for copyEvents
18:31:40: DoDDrawHook successfull
18:31:40: initializing palette
18:31:40: Trying to retrieve 256 palette entries
18:31:40: Initialized palette with 256 color entries
18:31:40: SurfaceRestore: restoring offscreen buffers
18:31:51: Detaching palette
18:31:53: Freeing primary surface
18:31:53: Cleaning up
18:31:53: CopyDDrawTextureThread: killed
18:31:53: ---------------------- Cleared DirectDraw Capture ----------------------
18:31:53: IDirectDraw::CreateSurface: got DDInterface pointer
18:31:53: IDirectDraw::CreateSurface: Primary surface created at 0x0D6884E0
18:31:53: found primary surface
18:31:53: called DoDDrawHook()
18:31:53: DoDDrawHook: no surface descriptor found, creating a new one (not an error)
18:31:53: CopyDDrawTextureThread: waiting for copyEvents
18:31:53: DoDDrawHook: primary surface width = 1920, height = 1200
18:31:53: DoDDrawHook: Could not create offscreen capture
18:31:53: DoDDrawHook DDraw Error: invalid params
18:31:53: DoDDrawHook failed
18:31:53: Cleaning up
18:31:53: CopyDDrawTextureThread: killed
18:31:53: ---------------------- Cleared DirectDraw Capture ----------------------
18:31:53: Got DirectDraw interface pointer
18:31:53: found primary surface
18:31:53: called DoDDrawHook()
18:31:53: DoDDrawHook: no surface descriptor found, creating a new one (not an error)
18:31:53: DoDDrawHook: primary surface width = 1920, height = 1200
18:31:53: DoDDrawHook successfull
18:31:53: CopyDDrawTextureThread: waiting for copyEvents
18:31:53: initializing palette
18:31:53: Trying to retrieve 256 palette entries
18:31:53: Initialized palette with 256 color entries
18:32:11: Detaching palette
18:32:11: Freeing primary surface
18:32:11: Cleaning up
18:32:11: CopyDDrawTextureThread: killed
18:32:11: ---------------------- Cleared DirectDraw Capture ----------------------
18:32:11: IDirectDraw::CreateSurface: got DDInterface pointer
18:32:11: IDirectDraw::CreateSurface: Primary surface created at 0x0D688560
18:32:11: found primary surface
18:32:11: called DoDDrawHook()
18:32:11: DoDDrawHook: no surface descriptor found, creating a new one (not an error)
18:32:11: DoDDrawHook: primary surface width = 800, height = 600
18:32:11: CopyDDrawTextureThread: waiting for copyEvents
18:32:11: DoDDrawHook: Could not create offscreen capture
18:32:11: DoDDrawHook DDraw Error: invalid params
18:32:11: DoDDrawHook failed
18:32:11: Cleaning up
18:32:11: CopyDDrawTextureThread: killed
18:32:11: ---------------------- Cleared DirectDraw Capture ----------------------
18:32:11: Got DirectDraw interface pointer
18:32:11: found primary surface
18:32:11: called DoDDrawHook()
18:32:11: DoDDrawHook: no surface descriptor found, creating a new one (not an error)
18:32:11: CopyDDrawTextureThread: waiting for copyEvents
18:32:11: DoDDrawHook: primary surface width = 800, height = 600
18:32:11: DoDDrawHook successfull
18:32:11: initializing palette
18:32:11: Trying to retrieve 256 palette entries
18:32:11: Initialized palette with 256 color entries
18:32:13: Detaching palette
18:32:13: Freeing primary surface
18:32:13: Cleaning up
18:32:13: CopyDDrawTextureThread: killed
18:32:13: ---------------------- Cleared DirectDraw Capture ----------------------
edit:
I still get, even with compatibility mode to Win7 on injectHelper64.exe, injectHelper.exe and OBS.exe, when I try to capture broodwar.
Code:
Last game capture log:
2013-12-05, 19:15:32: we're booting up: 
19:15:32: Trying to initialize ddraw hook
19:15:32: OS version not supported - if you are using Win7/Win8 try setting compatibility mode to Win7/Win8
edit2:
If I first run age of empires and then starcraft I get:
Code:
19:20:21: Open Broadcaster Software v0.584b - 64bit ( ^ω^)
19:20:21: -------------------------------
19:20:21: CPU Name: Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
19:20:21: CPU Speed: 3368MHz
19:20:21: Physical Memory:  8173MB Total, 5532MB Free
19:20:21: stepping id: 7, model 42, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 4, total cores 4
19:20:21: monitor 1: pos={0, 0}, size={1920, 1200}
19:20:21: monitor 2: pos={-1920, -556}, size={1920, 1080}
19:20:21: Windows Version: 6.1 Build 7600 
19:20:21: Aero is Disabled
19:20:21: -------------------------------
19:20:21: OBS Modules:
19:20:21: Base Address     Module
19:20:21: 000000003F770000 OBS.exe
19:20:21: 00000000F67F0000 OBSApi.dll
19:20:21: 00000000F62E0000 DShowPlugin.dll
19:20:21: 00000000F6E60000 GraphicsCapture.dll
19:20:21: 00000000F6D10000 NoiseGate.dll
19:20:21: 00000000F6DF0000 PSVPlugin.dll
19:20:21: ------------------------------------------
19:20:21: Adapter 1
19:20:21:   Video Adapter: NVIDIA GeForce GTX 580
19:20:21:   Video Adapter Dedicated Video Memory: 3165061120
19:20:21:   Video Adapter Shared System Memory: 4016793600
19:20:21:   Video Adapter Output 1: pos={0, 0}, size={1920, 1200}, attached=true
19:20:21:   Video Adapter Output 2: pos={-1920, -556}, size={1920, 1080}, attached=true
19:20:21: =====Stream Start: 2013-12-05, 19:20:21===============================================
19:20:21:   Multithreaded optimizations: On
19:20:21:   Base resolution: 1280x960
19:20:21:   Output resolution: 1280x960
19:20:21: ------------------------------------------
19:20:21: Loading up D3D10 on NVIDIA GeForce GTX 580...
19:20:21: ------------------------------------------
19:20:21: Audio Format: 48000hz
19:20:21: Playback device Default
19:20:21: ------------------------------------------
19:20:21: Using desktop audio input: Realtek Digital Output(Optical) (Realtek High Definition Audio)
19:20:21: ------------------------------------------
19:20:21: Using auxilary audio input: Linjeingång (Realtek High Definition Audio)
19:20:21: ------------------------------------------
19:20:21: Audio Encoding: AAC
19:20:21:     bitrate: 128
19:20:21: Using graphics capture
19:20:21: Using graphics capture
19:20:21: Using graphics capture
19:20:21: Scene buffering time set to 700
19:20:21: ------------------------------------------
19:20:21: Video Encoding: x264
19:20:21:     fps: 30
19:20:21:     width: 1280, height: 960
19:20:21:     preset: veryfast
19:20:21:     profile: high
19:20:21:     keyint: 250
19:20:21:     CBR: yes
19:20:21:     CFR: yes
19:20:21:     max bitrate: 15000
19:20:21:     buffer size: 15000
19:20:21: ------------------------------------------
19:20:21: MMDeviceAudioSource: Frequency for device 'Realtek Digital Output(Optical) (Realtek High Definition Audio)' is 384000, samples per sec is 48000
19:20:21: MMDeviceAudioSource: Frequency for device 'Linjeingång (Realtek High Definition Audio)' is 352800, samples per sec is 44100
19:20:31: using memory capture
19:20:34: Exit signal received, terminating capture
19:21:00: Total frames encoded: 1139, total frames duplicated: 97 (8.52%)
19:21:00: Total frames rendered: 1056, number of late frames: 8 (0.76%) (it's okay for some frames to be late)
19:21:00: 
19:21:00: Profiler time results:
19:21:00: 
19:21:00: ==============================================================
19:21:00: video thread frame - [100%] [avg time: 3.764 ms] [children: 3.16%] [unaccounted: 96.8%]
19:21:00: | scene->Preprocess - [0.0266%] [avg time: 0.001 ms]
19:21:00: | GPU download and conversion - [3.13%] [avg time: 0.118 ms] [children: 2.52%] [unaccounted: 0.611%]
19:21:00: | | flush - [1.51%] [avg time: 0.057 ms]
19:21:00: | | CopyResource - [0.877%] [avg time: 0.033 ms]
19:21:00: | | conversion to 4:2:0 - [0.133%] [avg time: 0.005 ms]
19:21:00: Convert444Threads - [100%] [avg time: 1.199 ms] [children: 99.6%] [unaccounted: 0.417%]
19:21:00: | Convert444toNV12 - [99.6%] [avg time: 1.194 ms]
19:21:00: encoder thread frame - [100%] [avg time: 1.247 ms]
19:21:00: ==============================================================
19:21:00: 
19:21:00: 
19:21:00: Profiler CPU results:
19:21:00: 
19:21:00: ==============================================================
19:21:00: video thread frame - [cpu time: avg 0.206 ms, total 218.401 ms] [avg calls per frame: 1]
19:21:00: | scene->Preprocess - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
19:21:00: | GPU download and conversion - [cpu time: avg 0.029 ms, total 31.2 ms] [avg calls per frame: 1]
19:21:00: | | flush - [cpu time: avg 0.014 ms, total 15.6 ms] [avg calls per frame: 1]
19:21:00: | | CopyResource - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
19:21:00: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
19:21:00: Convert444Threads - [cpu time: avg 1.088 ms, total 2246.41 ms] [avg calls per frame: 2]
19:21:00: | Convert444toNV12 - [cpu time: avg 1.088 ms, total 2246.41 ms] [avg calls per frame: 2]
19:21:00: encoder thread frame - [cpu time: avg 1.019 ms, total 1138.81 ms] [avg calls per frame: 1]
19:21:00: ==============================================================
19:21:00: 
19:21:00: =====Stream End: 2013-12-05, 19:21:00=================================================


Last game capture log:
2013-12-05, 19:20:49: we're booting up: 
19:20:49: Trying to initialize ddraw hook
19:20:49: OS version not supported - if you are using Win7/Win8 try setting compatibility mode to Win7/Win8
 

Bl00drav3n

Member
Oh that was my bad obviously. I meant setting compatibility mode of the game executable to Windows 7. Nice that it works for AoE :)
 

Bl00drav3n

Member
Nice! If the plugin is unstable for a particular game (or in general) please feel free to share any information you have. :)
 

Rewoig

New Member
Bl00drav3n said:
Nice! If the plugin is unstable for a particular game (or in general) please feel free to share any information you have. :)
I will. But it's been working really well so far :)
 
How do you go about installing/using this? Would love to stream some Sacrifice but, well, apparently i'm supposed to know how to do this.
 

Rewoig

New Member
In your OBS folder (i.e. the one with OBS.exe), you have a plugins folder, that's the same plugins folder as the one in the build zip files (in the OP). This will replace the original game capture plugin with Bl00drav3n's. To use it, start the game, start OBS, in OBS add game capture, choose your game, and then hopefully it works. If not post some more..
 

Rewoig

New Member
Yeah, google docs is a bit unintuitivly, but you can download the zip by: File->Download, alternativly you can press Ctrl+S.
 

Attachments

Top