Commit Graph

1363 Commits (084e9daf88158d6dd4249194784107b6c99b173e)

Author SHA1 Message Date
Take Vos 9007de70cc obs-filters: Add option to undistort ultrawide -> wide
Adds an option to the aspect/scale filter to undistort the center of the
image when scaling from ultrawide to wide.

Closes jp9000/obs-studio#762
2017-01-30 06:01:28 -08:00
Ryan Sullivan 8eb742b2cd rtmp-services: Add Restream.io Los Angeles server 2017-01-30 02:52:31 -08:00
jp9000 d1b78edbf3 obs-outputs: Increase default drop threshold
500ms is a bit unnecessarily low.
2017-01-24 15:54:25 -08:00
jp9000 5c27ab8d87 obs-output: Add ability to get congestion to rtmp output 2017-01-24 15:52:22 -08:00
Jim 1608435657 Merge pull request #770 from derrod/purge-services
rtmp-services: remove shut down services
2017-01-23 22:57:40 -08:00
Mark Vaughn ea0f47e6d2 rtmp-services: Update Vaughn Live ingests
Update video ingest servers for Vaughn Live.  Also split Breakers.TV
into its own since it is possibly becoming its own entity soon.

Closes jp9000/obs-studio#771
Closes jp9000/obs-studio#772
2017-01-23 22:52:36 -08:00
Colin Edwards 2d6993e7f1 obs-browser: Update browser ref 2017-01-23 20:07:36 -06:00
derrod cdd6f846f9 rtmp-services: remove shut down services 2017-01-22 22:37:45 +01:00
jp9000 839e593e77 Revert "Revert "win-capture: Use FindWindowEx to traverse window list""
This reverts commit f4d7f0cbba.

Never thought a revert of a revert would happen.
2017-01-18 20:18:28 -08:00
jp9000 c8d08932fb obs-browser: Update submodule to latest version
Fixes a hang on startup.
2017-01-18 10:55:31 -08:00
jp9000 bf9048a1a4 obs-x264: Allow opencl through much longer alias
Due to the fact that people follow terrible guides that ignorantly
recommend opencl, the "opencl" custom x264 option was blocked.  However,
because some people still apparently want to use it, it's being renamed
to "opencl_is_experimental_and_potentially_unstable" so that anyone who
uses this option realizes that they should probably think twice about
using the option rather than just follow some terrible guide that tells
them to use it.
2017-01-16 13:22:04 -08:00
jp9000 c30d4f5075 win-capture: Fix game capture size bug when rehooking
When rehooking, even if scaling is off, it'll unintentionally overwrite
the game's backbuffer texture size with the scale size.
2017-01-16 04:19:16 -08:00
Gol-D-Ace e4f32aa54a Update translations from Crowdin 2017-01-16 12:44:07 +01:00
Jim 21839374a8 Merge pull request #746 from iblis17/master
obs-outputs: fix build error on freebsd
2017-01-16 03:43:03 -08:00
Cephas Reis 1e17414e8f obs-filters.c: Fix color correction filter saturation
The Saturation option was unbalanced, giving more weight to the color
red and a TON more weight to the color blue.  This patch balances the
colors to provide a more even increase in saturation across the RGB
channels.

Closes jp9000/obs-studio#739
2017-01-16 03:41:57 -08:00
Cephas Reis 10d6d5f0ca obs-filters.c: Fix color correction filter OpenGL crash
When using this filter in/on OpenGL situations can cause crashes with an
"int to vec4" cast.  This fix should resolve that issue.

Closes jp9000/obs-studio#739
2017-01-16 03:41:50 -08:00
Jim 956349fdd3 Merge pull request #759 from derrod/ignore-opencl
obs-x264: ignore opencl param
2017-01-16 03:31:37 -08:00
Jim b45cf05db9 Merge pull request #753 from Xaymar/feature_amd-encoder
enc-amf: Update to 1.4.3.8
2017-01-16 03:30:29 -08:00
jp9000 f4d7f0cbba Revert "win-capture: Use FindWindowEx to traverse window list"
This reverts commit bd67c18c02.

Causes performance issues when the window isn't found.  The situation it
fixes is also very rare anyway.
2017-01-16 03:22:12 -08:00
jp9000 21d70fa207 win-capture: Don't use FindWindow for game capture keepalive
Using and creating a window can use issues in game capture if multiple
game captures are active, so revert back to using a mutex, and just
ignore the keepalive check failure if injected inside a UWP program
(only check to see if GetLastError reports that it's not found -- if it
returns access denied or any other error, assume it's in a UWP program,
and ignore the keepalive check).
2017-01-15 09:15:45 -08:00
Michael Fabian Dirks 6939bddf8f enc-amf: Update to 1.4.3.8 2017-01-12 19:47:57 +01:00
derrod dad1e3a01b obs-x264: ignore opencl param
Silently ignores opencl parameter for x264 to protect users
following bad youtube guides.
2017-01-12 07:27:23 +01:00
Jim 09d6022171 Merge pull request #755 from DDRBoxman/osx
CI: Update browser plugin ref and build scripts.
2017-01-09 18:13:23 -08:00
Colin Edwards 770a9b7e67 CI: Update browser plugin ref and build scripts.
Hopefully this will fix a crash from CEF on 10.9
2017-01-09 19:48:32 -06:00
Gol-D-Ace 6223ed6520 Update translations from Crowdin 2017-01-07 00:23:16 +01:00
Iblis Lin 7a15f670e1 obs-outputs: fix build error on freebsd
There is a build error on freebsd:
    error: invalid application of 'sizeof' to an incomplete type
    'struct sockaddr_in'

Include proper header file to solve this.

Ref:
https://www.freebsd.org/doc/en/books/developers-handbook/sockets-essential-functions.html
2017-01-04 16:31:50 +08:00
Gol-D-Ace 34f48aa3fc rtmp-services: Increase video bitrate limit for YouTube
YouTube now recommends a max video bitrate of 51.000 Kbps.
2016-12-30 15:35:35 +01:00
jp9000 afe37773bc obs-outputs: Free encoder packet data manually
These aren't referenced encoder packets, so they must be freed manually.
2016-12-24 03:01:52 -08:00
Gol-D-Ace 69f0bc244a Update translations from Crowdin 2016-12-23 20:46:47 +01:00
jp9000 21be33805d win-capture: Release backbuffers immediately upon init
There's no need to keep a reference to the backbuffers.  That and the
backbuffer references weren't being released anyway, so that fixes that
bug.
2016-12-23 08:07:26 -08:00
jp9000 74a5bdf993 win-capture: If backbuffer count is 1, disable dxgi 1.4 use
Executing the dxgi 1.4 code causes it to cycle through backbuffers,
backbuffers which may not exist if in discard mode.
2016-12-23 08:02:35 -08:00
jp9000 414ff5ba14 win-capture: Refactor DX12 backbuffer code
It was undesirable to pass arrays via function parameters, so a
structure should be used instead.

Also increases total allowable backbuffers to 8.
2016-12-23 08:02:30 -08:00
jp9000 a4143be052 win-capture: Fix possible access of array beyond size
If the backbuffer count is larger than 3, it could still try to assign
backbuffers to pointers beyond the variable's array size when calling
swap->GetBuffer.
2016-12-23 07:49:13 -08:00
Alexandre Biny b276b1633e obs-qsv11: Use d3d9 allocator on Win7
Use a d3d9 device and allocator to encode in QSV.

This fixes a random crash that could only happen on Windows 7. The QSV
Deviced returned a DEVICE_FAILURE after a random amount of time with the
old method.

This fix is totally based on Shinck's QSVHelper.exe patch for OBS
Classic (see
https://obsproject.com/forum/threads/0-633b-qsvhelper-exe-was-killed-encode-failed.19230/page-3#post-161984
for more information)

This is more like a proof of concept, but that fix is currently stable
and tested more than 50 hours, with a single session of +14 hours.

That commit doesn't respect all OBS Guidelines. It is currently
recommended to wait for a more "cleaner" implementation.
2016-12-23 07:49:12 -08:00
Cephas Reis 2278782c19 obs-filters: Fix comment messages
Split commit for jp9000/obs-studio#733
2016-12-23 02:40:00 -08:00
Cephas Reis d231f40588 obs-filters: Add "Color" option to color correction filter
Closes jp9000/obs-studio#733
2016-12-23 02:39:44 -08:00
jp9000 2da7f3cb0e win-capture: Add a few new blacklisted game capture exes 2016-12-23 02:17:14 -08:00
jp9000 ad72194090 win-capture: Do not add certain windows to window lists
Due to using FindWindowEx to search for certain windows, certain windows
will show up that aren't usable/capturable.  Prevent these windows from
showing up in the window lists.
2016-12-23 02:15:59 -08:00
jp9000 4fe2ca0f75 win-capture: Fix possible null pointer dereference 2016-12-23 02:04:26 -08:00
jp9000 bd67c18c02 win-capture: Use FindWindowEx to traverse window list
For some unknown reason, GetWindow will not traverse the entire window
tree.  It could be due to Microsoft purposely hiding certain UWP
windows, though the reason is unknown.  For some equally unknown reason
FindWindowEx does work in its place.

This fixes the issue of not being able to find/capture certain windows,
such as halo 5: forge.
2016-12-23 01:53:44 -08:00
jp9000 3b5a30ce97 win-capture: Capture all D3D12 backbuffers
D3D12 capture does not take in to account when multiple backbuffers are
in used.  With previous versions of Direct3D there was no need to do
this, but with D3D12 you must explicitly capture each specific
backbuffer currently in use.
2016-12-23 01:53:15 -08:00
jp9000 cef4cba576 obs-ffmpeg: Fix nvenc_h264 deprecated message
The encoder name was changed from "nvenc_h264" to "h264_nvenc", and will
throw a warning in the log file if you use the former, so try the latter
first, then the former.
2016-12-21 19:27:55 -08:00
jp9000 c4580ac6ba obs-text: Do not reset blend state
Similar to the parent commit, do not reset the blend state if the source
is not marked as a custom drawn source.  Filters applied won't have the
correct blend state and the alpha edges of the text will be partially
black.
2016-12-21 15:31:13 -08:00
jp9000 922e1d23f9 image-source: Do not change blend state
The blend state does not need to (and should not) be changed.  This
fixes an issue where if filters are applied to an image source, the
image source will paint incorrectly.
2016-12-21 15:26:33 -08:00
Cephas Reis d4cd14b05c obs-filters: Improve "Color Correction" filter
Replaces the "Color Correction" filter with a newer version that uses a
matrix, adds hue and saturation, and improves the contrast option.

Closes jp9000/obs-studio#708
2016-12-20 23:08:00 -08:00
Jim 94a1b0eaef Merge pull request #710 from Xaymar/feature_amd-encoder
enc-amf: Update to version 1.4.3.4 for AMD Driver 16.12.1
2016-12-20 22:46:28 -08:00
Michael Fabian Dirks 6bf1a033af enc-amf: Update to 1.4.3.4 for AMD Driver 16.12.1 2016-12-21 04:47:41 +01:00
shiina424 0d5a23d5f7 obs-ffmpeg: Don't allow 32kb/s with FFmpeg AAC encoder
FFmpeg's AAC encoder is unideal at very low bitrates.

Closes jp9000/obs-studio#722
2016-12-18 06:16:16 -08:00
jp9000 68a8a5bf2b win-capture: Do not fall back to other windows for UWP windows
If capturing a UWP window, do not fall back to matching windows with the
same window class if the exact window is not found, as this will get any
other UWP window on the system (due to the fact that they all have the
same window class name).
2016-12-16 14:06:05 -08:00
jp9000 4f4aea4562 win-capture: Add debug messages when hooking
These are helpful for debugging UWP capture issues.
2016-12-16 14:06:04 -08:00
jp9000 61773bcbf2 win-capture: Fix cursor not painting with UWP windows
Because the hook cannot get the window handle of UWP windows, fall back
to using the window handle stored in the game capture source itself if
it's unavailable from the hook.
2016-12-16 14:06:03 -08:00
jp9000 b3119e0a8d win-capture: Don't hard fail if thread ID not found
Under certain circumstances, the program may not be able to acquire the
window thread ID for a UWP process, but will be able to acquire the
process ID.  In this case, it should soft fail and retry, rather than
assume it's unacquirable and stop trying to reacquire.
2016-12-16 14:06:02 -08:00
jp9000 a5337605cd win-capture: Add ApplicationFrameHost to game capture blacklist
The ApplicationFrameHost process is a sandbox process, and should not be
hooked.
2016-12-16 14:06:01 -08:00
jp9000 480d0e986f win-capture: Fix "attempting to hook [executable]" message
The "attempting to hook [executable]" message would not display the
correct executable if it's fallen back to a different window with the
same window class.
2016-12-16 14:06:00 -08:00
jp9000 209bcda1f4 win-capture: Wait a few frames for hook to load
Now that the game capture hook creates and controls all the
synchronization objects, it's no longer possible to expect that the hook
is fully loaded by the time game capture tries to initialize it.  In
that case, allow game capture to retry the hook for a few frames before
assuming something failed.
2016-12-16 14:05:59 -08:00
jp9000 bddd9766ac win-capture: Don't hook suspended processes
Remote threads in suspended processes will also start up suspended, so
do not attempt to hook suspended processes.
2016-12-16 14:05:58 -08:00
jp9000 e29638ebf9 win-capture: Log plugin-side when capture successful/lost 2016-12-16 14:05:57 -08:00
jp9000 d4a99e062b win-capture: Output hook debug messages if addresses missing 2016-12-16 14:05:57 -08:00
jp9000 926b9c5f96 win-capture: Open UWP named objects with helper functions
This detects whether the target process is a UWP process, and then uses
the open_app_* functions for mutexes/events/mapping.  Also slightly
refactors named object open functions.
2016-12-16 14:05:56 -08:00
jp9000 aeb1d7ae1b win-capture: Add ability to open UWP named kernel objects
The only way to open named kernel objects within a UWP "app" is to get
the AppContainer SID, and then open the objects with their full
system namespace names via undocumented NT functions.
2016-12-16 14:05:55 -08:00
jp9000 b5f216ef88 win-capture: Use wide strings for named objects
Prevents from having to mix ansi/wide string usage for opening UWP
programs.
2016-12-16 02:21:10 -08:00
jp9000 c63bb17b08 win-capture: Remove redundant function
This function now already exists elsewhere -- open_event_plus_id.
2016-12-16 02:21:09 -08:00
jp9000 ec4c05f406 win-capture: Don't use "Local\" for game capture shared mem
The "Local\" prefix effectively does nothing.
2016-12-16 02:21:08 -08:00
jp9000 ab9bda52e0 win-capture: Create all named objects within hook
All named objects (including file mapped shared memory) need to be
created within the hook itself due to the fact that UWP programs cannot
access named objects outside of the UWP process.

Because shared memory needs to be created within the hook, the capture
loop cannot start until the shared memory has been filled with valid
data.  Creating an additional "initialize" event fixes this issue.

Additionally, changed the way that named kernel objects are
opened/created.  Before, there were functions that would first try to
open named objects and then implicitly create them if opening failed
(assuming that if the hook didn't create it first, game capture would),
now it's been changed so that you can only either explicitly open or
create.
2016-12-16 02:21:07 -08:00
jp9000 d19342442f win-capture: Use window for keepalive check
To check to make sure game capture is still active in the capture
program, it currently uses a named event, and then it checks to see if
that named event exists.  However with UWP programs, you can't open a
named event outside of the UWP process.  FindWindow on the other hand
does work, so instead of checking to see if a named kernel object
exists, create a window and check to see if that window exists.
2016-12-16 02:21:06 -08:00
jp9000 1e48b522fa win-capture: Fix getting proper UWP window handles
The "main" windows detected for UWP programs are basically to help
sandbox the programs -- they run in the ApplicationFrameHost process and
help reduce the possibility of other programs trying to access the
actual process window, which is a child window.

To bypass this, go through the list of child windows for the
ApplicationFrameHost window, and then find the one that's attached to
a different process; that different process will always be the target,
and will allows us to open the actual process of the UWP program.
2016-12-16 02:21:05 -08:00
jp9000 4ec1033741 win-capture: Do not require pipe/mutex within hook
Named pipes cannot be used within UWP programs, so make them optional.
2016-12-15 13:03:44 -08:00
jp9000 746061fb3a win-capture: Always use minimal access rights within hook
This prevents issues with opening handles to objects within UWP
programs, which have increased security limitations.
2016-12-15 13:03:42 -08:00
jp9000 e148087636 win-capture: Only duplicate to get cur thread handle
Instead of calling OpenThread, use DuplicateHandle with the minimal
access rights (SYNCHRONIZE) to be able to get the current thread handle
within a UWP program.
2016-12-12 08:10:06 -08:00
jp9000 f2e85b8352 obs-ffmpeg: Add replay buffer output
This output allows buffering the encoded data, and then muxing the
current buffer to a file on the spot via a hotkey the user sets.
2016-12-08 03:36:17 -08:00
jp9000 7d6e6eee79 libobs: Use reference counting for encoder packets
Prevents reallocation of encoded packet data.

Deprecates:
obs_duplicate_encoder_packet
obs_free_encoder_packet

Replaces those functions with:
obs_encoder_packet_ref
obs_encoder_packet_release
2016-12-08 03:27:39 -08:00
jp9000 ca607f8b35 cmake: Add _CRT_SECURE_NO_WARNINGS to all projects
This prevents issues with using standard C functions, where microsoft
would otherwise spit out pointless warnings to encourage using
microsoft-specific functions instead.
2016-12-08 03:27:36 -08:00
Richard Stanway 7df46d4a8e
obs-outputs: Fix librtmp IP bind / resolve behavior
Fixes a case where OBS would prefer trying to connect
to an IPv4 address even though you had bound it to an
IPv6 interface for example.
2016-11-30 22:11:17 +01:00
derrod bfc2987f02 rtmp-services: remove shut down services 2016-11-25 23:55:35 +01:00
Jim 22b1306eb1 Merge pull request #700 from Dead133/master
rtmp-services: Update ingests list for Restream.io
2016-11-25 13:39:50 -08:00
jp9000 e87031f4d6 Revert "obs-transitions: Avoid branching in slide_transition.effect"
This reverts commit 0edaebe192.

The commit was actually less optimal than it was before.  Shaders are
always fully unfolded and both sides of a branch are always executed.
Despite that fact, the "avoid branching" commit actually *added* two
extra unnecessary instructions with the same number of actual sample
instructions, making it arguably less optimal than before.

This was tested via the D3DDissamble function.
2016-11-25 12:20:42 -08:00
jp9000 2f305cb550 win-capture: Use static runtimes for hooks/helpers
(Note: This commit also modifies the ipc-util/seg-service modules)

When compiling the final project, always compile
ipc-util/get-graphics-offsets/graphics-hook/inject-helper/seg-service
with static MSVC runtimes to prevent the need of requiring the MSVC
runtimes for both architectures.
2016-11-23 06:03:00 -08:00
Jim b7b8ad476f Merge pull request #703 from Xaymar/feature_amd-encoder
enc-amf: Avoid using C++17 for VS2013 compatibility
2016-11-20 08:49:19 -08:00
Michael Fabian Dirks f792846c83 enc-amf: Avoid using C++17 for VS2013 compatibility 2016-11-20 17:46:13 +01:00
Gol-D-Ace 2d47dc4e2c Update translations from Crowdin 2016-11-20 12:22:26 +01:00
jp9000 4c4025a242 win-ivcam: Add Intel RealSense plugin 2016-11-19 03:15:21 -08:00
Andrew Surzhynskyi 072e24eb9e rtmp-services: Update ingest list for Restream.io 2016-11-18 17:40:21 +02:00
Jim 36b5527667 Merge pull request #698 from Xaymar/feature_amd-encoder
enc-amf: Update to 1.4.2.3
2016-11-17 05:57:59 -08:00
Michael Fabian Dirks 920d41220b enc-amf: Update to 1.4.2.3 2016-11-17 13:43:39 +01:00
Jim 80f1a19c62 Merge pull request #692 from RytoEX/youtube-recs
rtmp-services: Change YouTube keyint from 4 to 2
2016-11-16 20:51:30 -08:00
Michael Fabian Dirks 1e9ace42af enc-amf: Update to 1.4.2.2 2016-11-17 05:19:11 +01:00
Gol-D-Ace 90e805ad9b Update translations from CrowdIn 2016-11-16 00:32:47 +01:00
jp9000 edfc2bed05 obs-qsv11: Manually mark priority bits for QSV frames
QSV frame priority bits are not being marked correctly; their priorities
are always marked either low or disposable, whereas I-frames should be
marked as highest (3), P-frames should be marked as high (2), and other
frames should be marked as either low or disposable.  This helps ensure
that the correct frames are dropped when frames need to be dropped.
2016-11-14 17:34:46 -08:00
jp9000 53eb817d43 text-freetype2: Defer loading of plugin until source created
Helps significantly boost initialization time.
2016-11-14 17:34:45 -08:00
jp9000 eaa32c20be win-capture: Defer hook offset loading to separate thread
Boosts startup time significantly to defer this to a separate thread.
2016-11-14 17:34:44 -08:00
jp9000 35285a26b7 win-capture: Do not load 64bit hook offsets on 32bit systems 2016-11-14 17:34:32 -08:00
jp9000 67e9cafaba enc-amf: Update to temporary fix branch
Fixes the previous submodule commit, which is broken.  The temporary
branch used here ensures that users with multi-GPU laptops won't crash
on startup.
2016-11-14 17:34:31 -08:00
jp9000 b0054a16d0 enc-amf: Update to commit which prevents crash on startup
On certain switchable laptops with AMD graphics, due to a driver
bug/issue, the program will crash when querying capabilities.  The
commit this updates to fixes that by not querying capabilities on
startup.
2016-11-14 14:17:38 -08:00
jp9000 c5706d726b obs-outputs: Use correct variable for drop priority
There are two variables used for 'priority', the general marked frame
priority, and the drop priority.  They can sometimes be different
because some encoders don't always use the correct frame priority.
2016-11-13 16:29:23 -08:00
Ryan Foster 9f33ff0b99 rtmp-services: Change YouTube keyint from 4 to 2
YouTube recommends a keyframe interval of 2 seconds with a maximum
interval of 4 seconds.
2016-11-09 19:58:28 -05:00
Michael Fabian Dirks ffbf115ef3 enc-amf: Update to version 1.4.1.5 2016-11-09 21:49:16 +01:00
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
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
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