108 Commits

Author SHA1 Message Date
jp9000
d99be83fb7 Fix resolution issue for elgato 1.x.x filter
If using the elgato 1.x.x filter it would not properly set resolution
changes due to intermediary filters.  Change to direct connect to
prevent that issue from occurring.
2014-09-16 13:18:31 -07:00
jp9000
e30108ed6a Always update source if elgato
The resolution changes can really cause confusion when updating, so if
the source is an elgato, just always reset the filter to ensure the
resolution changes.
2014-09-16 13:16:20 -07:00
jp9000
a77c286bd3 Add elgato resolution change support
Managed to make it so that the elgatos can change resolutions without
necessarily having to replace the entire subsystem.  I almost didn't
think this was doable but I made a workaround to be able to do so.
2014-09-14 21:07:48 -07:00
jp9000
11cc2ba097 Allow dynamic resolution changes in directshow 2014-09-14 21:07:39 -07:00
Richard Stanway
6760bc22b0 Set soundOutputType to 0 if a device fails to initialize
Fixes a crash if the device is also a global source
2014-06-13 13:46:16 +02:00
jp9000
7cca8663a2 Game capture: Add anti-cheat compatibility
- Add an option in game capture to use SetWindowsHookEx instead of
   CreateRemoteThread to inject the library.

 - Add logging of what process game capture is trying to capture.

 - Rename "audio time offset" where it was used to "audio sync offset"

 - Adde logging for audio sync offsets

 - Update version to 0.62b test 1
2014-04-09 00:10:33 -07:00
palana
8053f5abb4 Use async shader compilation for deinterlacing shaders in DShowSource 2014-03-11 18:25:03 +01:00
palana
044ee4520b Fix unintended switch fall through in DShowSource
This shouldn't have any visible impact except for slightly lower memory usage
for retro deinterlacing
2014-03-11 18:25:02 +01:00
palana
cc0a00075a Fix device source resolution with CPU based retro deinterlacing
Broken due to missing parentheses since 0a86949d295c9a072420cea4f45ab9923771036f
2014-03-10 18:43:16 +01:00
jp9000
75c6d10aa0 Added audio burst compensation (fix sync)
- Fixed an issue where audio data that came in bursts would cause
   desyncs.  Basically, if data came in too late, it would continue to
   buffer little by little, causing progressive desync with certain
   microphones and capture devices (avermedia stream engine for the live
   gamer portable especially).  Also seemed to happen with HDMI data
   from the newer game consoles, like xbox one apparently, though I
   can't be too sure.

   Now, it queries the mic and auxilary sound sources until sound
   buffers are depleted.  After doing so, it then "sorts" the audio
   packets timestamps backwards from the most recent packet to the
   oldest audio packet.  By doing this, it compensates for burst, and
   ensures that all audio data is seamless.  New burst data coming in
   will then line up properly with the older data via the sort function.

   NOTE: This needs testing
2014-01-05 16:58:54 -07:00
paibox
ff2df13018 Enable toggling point filtering on the fly for DirectShow
I for some reason neglected to add something to actually handle this
back when I added point filtering in the first place.
2013-12-27 22:48:00 +01:00
paibox
0a86949d29 Minor DirectShow fix
Ensure that the DirectShow texture actually ends up being the red 32x32
texture rather than cx and cy somehow getting set to 1.#INF when
SetFormat fails.
2013-12-22 17:41:42 +01:00
paibox
da69a593fc DirectShow global source audio fix round 2
One more fix, because people sometimes apparently add the same global
video capture device source to the same scene twice.
2013-12-20 00:39:40 +01:00
paibox
3a21c7c12e DirectShow global source audio fix
Make it so that global DirectShow sources actually mute themselves when
you switch to a scene where they're not present again.
2013-12-20 00:08:05 +01:00
paibox
2a41886993 DShow: Add option to use WaveOut audio renderer
Added an option to use the old WaveOut audio renderer setting for
capture devices to avoid audio desynch over long broadcasts. This only
affects capture device audio being output to desktop, direct stream
output is unaffected, caveats are the same as back in the olden days:
Adjusting sound volume for the capture device changes the volume slider
for OBS' system process, can only have one WaveOut output source per
scene.
2013-12-13 14:32:06 +01:00
paibox
6a8fca466e Video capture device properties dialog fixes
Fix the properties dialog so it doesn't needlessly refresh the source if
no settings have been changed.
2013-11-26 21:32:02 +01:00
jp9000
adcf92fd0b woops that should probably be utf-8 2013-10-26 19:29:12 -07:00
jp9000
05c722f2af yet another device-specific fix. 2013-10-26 19:27:55 -07:00
jp9000
e93c809df3 directshow, if unable to find an appropriate resolution, use 'recommended' resolution, or just use whatever's available, if any (this mainly seems to happen only with the elgato) 2013-10-20 22:21:40 -07:00
jp9000
6fda31fc40 made some decklink/blackmagic specific adjustments, and made some improvements to the automatic fps/resolution selector 2013-10-06 16:20:14 -07:00
jp9000
a48f678d63 log buffering in dshow devices (not that it actually matters at this point) 2013-09-27 21:24:33 -07:00
jp9000
c28bb97810 made a tiny adjustment to the buffer max storage threshold (blame jim for not commenting this bad code) 2013-09-25 16:40:14 -07:00
jp9000
022448ae92 removed some debug code 2013-09-20 21:23:37 -07:00
jp9000
b95889d1b0 added a red message on the status bar if encoding is taking too long to process 2013-09-20 21:22:41 -07:00
jp9000
e40a9dd7c0 Fixed a bug where global sources would initialize when switching to a scene with an unchecked global source, also made it so that global sources regsiter as having "entered" and "left" the scene when checked and unchecked 2013-09-02 09:57:24 -07:00
Extrems
10f88c3740 Fix DShowPlugin pixel shaders 2013-08-30 06:52:12 -04:00
paibox
efe0d951bf Remove an unused line of code
Because it was never used. Unloved by all, it had to go.
2013-07-28 00:24:04 +02:00
paibox
dfea4c2902 Mute global source capture device audio when not on the current scene
Added some additional functionality in order to prevent capture devices
added as global sources to play audio across all scenes, regardless of
if that global source was present on the current scene or not.
2013-07-24 19:56:51 +02:00
jp9000
87b3ab9072 Removed some code around release macros that already did the exact same thing 2013-07-16 00:37:40 -07:00
palana
6fdc1273a0 Fixed crash in DShowPlugin with cpu retro deinterlacing and I420/YV12 input 2013-07-12 05:53:06 +02:00
palana
2fd5192485 Fixed failure states for DeviceSource
Fixed red output image on failure
Disabled allocation of additional textures for failure states
Stopped using unallocated deinterlacer texture
2013-07-09 22:40:22 +02:00
paibox
e8922e9024 Fixed an ancient memory leak in the DirectShow plugin 2013-07-09 17:55:46 +02:00
palana
4ec79648ba Fixed memory leak with deinterlacing in DeviceSource 2013-07-09 17:47:58 +02:00
palana
7c29a61324 Added GPU based deinterlacing and refactored interlacing code
Added deinterlacing modes:
- Blend (GPU)
- Linear (GPU)
- Yadif (GPU)
each with source framerate and double source framerate mode.
Also added GPU based Retro deinterlacing
2013-07-09 15:55:02 +02:00
jp9000
c0438dacb4 when automatically determining FPS/resolution for devices, prioritize FPS rather than resolution 2013-07-07 16:11:15 -07:00
palana
d3102d28f5 Fixed a crash with thread creation in DShowPlugin 2013-07-06 23:45:57 +02:00
palana
b670a50273 Fixed vertical flip with deinterlacing 2013-07-03 20:52:49 +02:00
palana
b895bee6ad Fixed crash with missing DirectShowSource devices 2013-07-03 20:40:18 +02:00
palana
8e442fa210 Refactored deinterlacing to avoid copying frame data 2013-07-03 14:00:26 +02:00
jp9000
21bdc9b988 fixed a signed/unsigned mismatch warning 2013-06-27 21:29:34 -07:00
paibox
1a20510cc2 Minor improvement to the retro/scandoubling deinterlacing
Handle irregular frame rates a bit differently, helps a bunch with
devices such as the NTSC NES/SNES, which output at a frame rate of
60.10.
2013-06-26 09:52:32 +02:00
paibox
6faa5ee29d Add retro/scandoubling deinterlacing to the DirectShow plugin
Full frame rate deinterlacing for low resolution console games. You
know, the kind of games your grandfather used to play...!
2013-06-26 02:08:33 +02:00
paibox
bdcdec1a29 Let's not spam the logs with NULL texture warning messages 2013-06-20 08:22:50 +02:00
paibox
e3dab2b5ca Add UI functionality for deinterlacing
Because comboboxes are great. Also fix my earlier brain fart. Just
enable point filtering for sharp field discard deinterlacing.
2013-06-19 19:58:04 +02:00
paibox
3beb40b3c9 Some field discard deinterlacing updates
Allow user to select between image smoothing (type
1/deinterlace_Discard) and sharp pixels (type
2/deinterlace_Discard_Sharp, mostly suitable for low resolution stuff).
2013-06-19 17:30:25 +02:00
paibox
4909692812 Added simple field discard deinterlacing for DirectShow sources
Can currently only be toggled by directly editing scenes.xconfig, has
not been tested with 12-bit color devices, because I do not have any at
my disposal.
2013-06-18 11:50:28 +02:00
jp9000
c25404da58 fixed "output to desktop" to use directsound instead of "basic audio", because basic audio was using the windows mixer for volume adjustment 2013-06-08 07:22:05 -07:00
paibox
56e22768ff Fix DirectShow gamma again. (Forgot that not everything uses RGB.) 2013-06-02 03:36:19 +02:00
paibox
8f23635228 DirectShow gamma adjustment fix. (Apparently I wasn't supposed to delete that shader.) 2013-06-02 00:56:57 +02:00
paibox
245614d323 Added gamma adjustment to DirectShow source. 2013-06-01 23:25:14 +02:00