4056 Commits

Author SHA1 Message Date
Ricardo Constantino
8c3b475812
obs-ffmpeg: Fix assumption about plane height with i444
Affected both FFmpeg and nvenc encoders.
Fixes issue 667.
2016-11-09 16:04:12 +00:00
jp9000
9adad2ebc2 libobs: Update to 0.16.5 2016-11-07 21:04:06 -08:00
jp9000
f6fae9b7e9 libobs-d3d11: Remove possible null pointer dereference 2016-11-06 16:49:02 -08:00
jp9000
bd5de5d938 libobs-d3d11: Include GDI surface in rebuild
The GDI surface was not included in the rebuild process, therefore when
window capture is used, it would cause a crash after a rebuild.
2016-11-06 16:46:38 -08:00
jp9000
b77fdd7c9a libobs: Update to version 0.16.4 2016-11-04 05:54:02 -07:00
Jim
6be527e25c Merge pull request #685 from Xaymar/plugin_enc-amf
enc-amf: Fix VS2013 compiling issue
2016-11-04 05:52:22 -07:00
Michael Fabian Dirks
b25a38517f enc-amf: Fix VS2013 compiling issue
VS2013 doesn't include <memory> by default, this quick update fixes that problem.
2016-11-04 13:51:47 +01:00
jp9000
fa0bd585a5 Revert "UI: Enable HiDPI scaling."
This reverts commit c4eebbba54717bac6abb1ae22ae1cb492fe212ad.
2016-11-04 04:27:07 -07:00
jp9000
06894c6e84 Revert "UI: Only scale HiDPI on QT 5.6+"
This reverts commit 404258f41a407ce2f0b070271ffceecf1626c66e.
2016-11-04 04:26:52 -07:00
Jim
e72d59e2c7 Merge pull request #684 from Xaymar/plugin_enc-amf
enc-amf: Update to Version 1.4.1.0
2016-11-04 04:20:18 -07:00
Michael Fabian Dirks
25fa895796 enc-amf: Update to Version 1.4.1.0 2016-11-04 12:06:24 +01:00
Jim
98d293d267 Merge pull request #683 from RytoEX/BasicTransform-tab-order
UI: Fix tab order of Crop fields in Transform Properties
2016-11-04 03:40:17 -07:00
Ryan Foster
2c5577facd UI: Fix tab order of Crop fields in Transform Properties 2016-11-04 06:25:46 -04:00
jp9000
41a3a30655 win-mf: Deprecate AMD Media Foundation H.264 encoder 2016-11-03 14:24:53 -07:00
jp9000
5b44b1994e libobs: Update to version 0.16.3 2016-11-03 13:36:23 -07:00
jp9000
ed85b22534 Update translations from CrowdIn 2016-11-03 13:32:52 -07:00
Jim
f8f71541ad Merge pull request #680 from Xaymar/plugin_enc-amf
enc-amf: Update to version 1.4.0.0
2016-11-03 13:09:51 -07:00
Michael Fabian Dirks
8307ba1118 enc-amf: Update to release 1.4.0.0 2016-11-03 20:59:09 +01:00
Michael Fabian Dirks
01a33edea9 UI: Add AMD presets and update settings 2016-11-03 20:34:57 +01:00
jp9000
d0e186497f UI: Allow the ability to use deprecated sources 2016-11-03 12:28:33 -07:00
jp9000
0b27b51294 win-capture: Add D3D12 capture support
Currently only supports shared texture capture, and doesn't support
rescaling.
2016-11-03 12:13:42 -07:00
jp9000
f49065b1e6 win-capture: Use IUnknown for getting swap backbuffers
Using IDXGIResource doesn't work with D3D12.  D3D12 textures are not a
subclass of that class.
2016-11-03 09:28:32 -07:00
jp9000
81ab13a2a4 win-capture: Cache cursor textures to prevent reallocation
Whenever a cursor is captured and the cursor icon changes, it creates a
new texture.  This isn't particularly optimal, so instead just store a
cache of cursor textures (based on size), and make the textures dynamic.
Doing this will prevent unnecessary texture reallocation.
2016-11-03 09:23:25 -07:00
jp9000
8e8834f109 libobs-d3d11: Rebuild device and assets if device removed/reset
Due to an NVIDIA driver bug with the Windows 10 Anniversary Update,
there are an increasingly large number of reports of "Device Removed"
errors and TDRs.  When this happens, OBS stops outputting all data
because all graphics functions are failing, and it appears to just
"freeze up" for users.

To temporarily alleviate this issue while waiting for it to be fixed,
the D3D subsystem can be rebuilt when that happens, all assets can be
reloaded to ensure that it can continue functioning (with a minor hiccup
in playback).

To allow rebuilding the entire D3D subsystem, all objects that contain
D3D references must be part of a linked list (with a few exceptions) so
we can quickly traverse them all whenever needed, and all data for those
resources (static resources primarily, such as shaders, textures, index
buffers, vertex buffers) must be stored in RAM so they can be recreated
whenever needed.

Then if D3D reports a "device removed" or "device reset" error, all D3D
references must first be fully released with no stray references; the
linked list must be fully traversed until all references are released.
Then, the linked list must once again be traversed again, and all those
D3D objects must be recreated with the same data and descriptors (which
are now saved in each object).  Finally, all states need to be reset.

After that's complete, the device is able to continue functioning almost
as it was before, although the output to recording/stream may get a few
green frames due to texture data being reset.

This will temporarily alleviate the "Device Removed" issue while waiting
for a fix from NVIDIA.
2016-11-03 09:23:24 -07:00
jp9000
5eb0c4ec83 libobs-d3d11: Add Release funtions to all GS objects
Releases references for each graphics object.
2016-11-03 09:23:23 -07:00
jp9000
54737c9c68 libobs-d3d11: Remove unused function 2016-11-03 09:23:22 -07:00
jp9000
951c6892b0 libobs-d3d11: Use linked list for all objects (for rebuilding) 2016-11-03 09:23:21 -07:00
jp9000
5c71f79d5f libobs-d3d11: Make shared texture error message less vague 2016-11-03 09:23:20 -07:00
jp9000
ecd5b4ee81 libobs-d3d11: Save all D3D11 object descriptors (for rebuilding) 2016-11-03 09:23:19 -07:00
jp9000
bab77c2afd libobs-d3d11: Store static vertex buffer data (for rebuilding)
Instead of letting vertex buffer data be freed immediately, store it so
it can be used for rebuilding later.  Also, separate the buffer building
to a function.
2016-11-03 09:23:18 -07:00
jp9000
61042e2bc4 libobs-d3d11: Store static textures in RAM (for rebuilding) 2016-11-03 09:23:17 -07:00
jp9000
e4900751c3 libobs-d3d11: Store device adapter index (for rebuilding) 2016-11-03 09:23:16 -07:00
jp9000
6d18ae39c5 libobs-d3d11: Store swap initialization data (for rebuilding) 2016-11-03 09:23:15 -07:00
jp9000
bc0faf9a3c libobs-d3d11: Clear device state before unloading
Unloads all device data and clears all device references.  Probably not
necessary, but it's unknown how D3D11 handles this internally so
probably best to be safe.
2016-11-03 09:23:14 -07:00
jp9000
a5ed61e02e libobs-d3d11: Store index and add "Start" function
This allows restarting the duplicator at a later point in time.
2016-11-03 09:23:13 -07:00
jp9000
75cd6b4ab4 libobs-d3d11: Correct error message creating blend states 2016-11-03 09:23:12 -07:00
jp9000
66bdf43e44 libobs-d3d11: Correct error message for staging surfaces 2016-11-03 09:23:11 -07:00
jp9000
7321cc38e8 libobs-d3d11: Store shader samplers as pointers
This allows having them be a part of a linked list later.
2016-11-03 09:23:10 -07:00
jp9000
d4d0cd479d libobs-d3d11: Correct error message for pixel shaders 2016-11-03 09:23:09 -07:00
jp9000
1ecb1550af libobs-d3d11: Store compiled shader data (for rebuilding) 2016-11-03 09:23:08 -07:00
jp9000
29eea269fc libobs-d3d11: Store dxgi adapter used for device
Keeping a reference is useful, and additionally allows pruning a bit of
duplicated code in the dupicator object.
2016-11-03 09:23:07 -07:00
Jim
9b50334806 Merge pull request #676 from wt/fix_some_printf_compiler_warnings
obs-ffmpeg: Fix a couple printf compiler warnings.
2016-10-30 20:06:08 -07:00
Warren Turkal
40a5436549 obs-ffmpeg: Fix a couple printf compiler warnings. 2016-10-30 19:56:08 -07:00
Jim
1728a5d1b7 Merge pull request #673 from Xaymar/patch-1
obs-transitions: Fix inefficient branching in slide_transition.effect
2016-10-30 08:19:44 -07:00
Michael Fabian Dirks
0edaebe192 obs-transitions: Avoid branching in slide_transition.effect
Branching is not recommended in shaders and only recently gained
widespread support without causing massive branch misprediction issues. Also sampling inside a branch will cause cache misses and additional texture load instructions.
2016-10-29 13:09:11 +02:00
Jim
7a077b311a Merge pull request #671 from reboot/fix_missing_profile_end
libobs: Fix missing call to profile_end() when encoding fails
2016-10-28 01:28:59 -07:00
jp9000
523e1ace49 libobs: Add date/time to crash handler 2016-10-27 18:39:13 -07:00
Christoph Hohmann
e775abaa71 libobs: Fix missing call to profile_end() when encoding fails
The do_encode() method does not call profile_end() when encoding fails
which causes an error message about mismatching names being logged.
2016-10-24 13:44:28 +02:00
jp9000
39a91d749c libobs/util: Add Get() function to CoTaskMemPtr 2016-10-23 09:20:54 -07:00
jp9000
405ae6bc7c rtmp-services: Add Picarto 2016-10-23 09:20:53 -07:00