Commit Graph

1485 Commits (cffbdd6408bc7c6dac5899d17b1b903b6985fb59)

Author SHA1 Message Date
jp9000 b63e4b055e decklink: Add workaround for audio timestamp jump issue 2017-04-07 19:57:34 -07:00
mntone c459ade360 decklink: Add option to select channel format
Closes jp9000/obs-studio#867
2017-04-07 19:56:28 -07:00
Hugh Bailey ("Jim") 698fd00174 Merge pull request #866 from RytoEX/update-picarto
rtmp-services: Update Picarto maximum bitrates
2017-04-06 12:55:12 -07:00
Shaolin e006d961a4 audio-monitoring: Add ability to monitor Outputs
(Note: This commits also modifies the linux-pulseaudio, mac-capture, and
win-wasapi plugins)

Do not prevent the targeted output device from being monitored if the
selected monitor output device is a different one.

Closes jp9000/obs-studio#872
2017-04-05 18:58:08 -07:00
Colin Edwards 162450c882 mac-avcapture: Ability to directly add iOS devices over USB
Closes jp9000/obs-studio#869
2017-04-04 18:29:19 -07:00
jp9000 8f4f38c30e obs-ffmpeg: Fix bug on non-MSVC compilers
This happens because the enum had the incorrect name, and microsoft
automatically treats all enums as integers in C, regardless of whether
they actually exist or not.  Microsoft makes terrible compilers and
whoever decided this was a good idea should be fired.
2017-03-31 12:45:47 -07:00
jp9000 1d69e359ec obs-ffmpeg: Always open on update unless set otherwise 2017-03-31 12:30:10 -07:00
jp9000 9174ba8403 obs-ffmpeg: Remove unnecessary open call 2017-03-31 12:28:10 -07:00
jp9000 45d029b1fb obs-ffmpeg: Change from libff to media-playback 2017-03-31 12:10:32 -07:00
Ryan Foster c0be332828 rtmp-services: Update Picarto maximum bitrates
Update maximum video bitrate for Picarto from 2000 to 3500 and maximum
audio bitrate from 160 to 128.
http://help.picarto.tv/knowledge_base/topics/how-to-configure-open-broadcaster-software
2017-03-26 12:30:58 -04:00
jp9000 c422d84d6e win-dshow: Fix issue with activating when not set to
When the windows video device source source is set to only activate when
showing, it would still activate on first startup of the program even if
it was in another scene and not showing anywhere to the user.  This
fixes that issue.
2017-03-26 05:45:42 -07:00
Patrick Ancillotti 5845664a02 rtmp-services: Add Livestream service
Closes jp9000/obs-studio#798
2017-03-26 05:34:00 -07:00
Jim f1c8ae3532 Merge pull request #859 from reboot/fix_image_reloading_in_preview
image-source: Move file modification check before animation processing
2017-03-25 08:37:27 -07:00
BtbN d1343dc064 obs-ffmpeg/nvenc: Remove "default" preset
The "default" preset is not an actual default, but something Nvidia
decided to just call that way.  It yields the worst quality per bitrate
out of all the presets, for no actual benefits.  The actual FFmpeg
default is the hq one, which yields the best quality, especially when
twopass mode is enabled.

I can't think of a way to keep the "default" preset in a non-confusing
way, and as it gives no known benefits, might as well just remove it
entirely.

(Jim edit: Also made it so that if the settings have it set to
"default", it automatically treats it as "hq")

Closes jp9000/obs-studio#865
2017-03-25 02:08:06 -07:00
derrod 707110d2fd rtmp-services: Update maximum bitrate for Twitch
Updated max 3.5 to 6. See https://help.twitch.tv/customer/portal/articles/1253460-broadcast-requirements#Broadcast%20Requirements
2017-03-18 23:46:21 +01:00
Andrew Surzhynskyi a760ecd7e3 rtmp-services: Update ingest list for Restream.io 2017-03-17 17:08:38 +02:00
Christoph Hohmann 35d6787fe5 image-source: Move file modification check before animation processing
The code to process GIF animations contains a return statement that
skiped the file modification check, if the source is not in an active
scene. Like that images in the preview scene of studio mode would never
update, when they get modified on disk.

Also reloading the image, if an animation file has been modified before
processing the old animation that will be replaced later anyway, seems
like a better way to do it.
2017-03-12 23:46:04 +01:00
Richard Stanway 48df41b5b7
obs-outputs: Improve shutdown behavior of new socket loop 2017-03-06 20:54:35 +01:00
Gol-D-Ace dbf95bdc15 Update translations from Crowdin 2017-03-05 23:40:11 +01:00
Gol-D-Ace de1bbf4342 Update translations from Crowdin 2017-03-04 07:04:03 +01:00
Richard Stanway 7c7307df88
obs-outputs: Various fixes to new network code
Fixes another 100% CPU spin bug, improves low latency mode, fixes some
crashes on stopping stream due to race conditions.
2017-03-04 02:59:02 +01:00
jp9000 a8d7419732 win-dshow: Actually fix LGP issue
The LGP issue is caused by the device drivers returning two or more
packets in a single segment of audio data.  This fixes it by detecting
that and decoding subsequent packets.

When the FFmpeg audio decoder returns, it returns how many bytes of data
was decoded.  To have it decode multiple packets in a single segment,
just subtract the return value from the expected size, and if that size
is still larger than zero, then there are more packets in the segment to
decode.  Otherwise, stop.
2017-03-03 17:02:06 -08:00
jp9000 084e9daf88 Revert "win-dshow: Add LGP timestamp fix"
This reverts commit 32f60d07a3.
2017-03-03 17:02:05 -08:00
Colin Edwards f1c2d41be8 VST: Fix crash when OBS is set to mono 2017-03-02 15:05:44 -06:00
Colin Edwards db1391da61 VST: Fix save / load of plugin state. More interface options.
Fixed an incorrect call when setting the chunks on plugins.

Added the ability to to enable having a plugin auto open when active.
2017-03-02 10:36:10 -06:00
Richard Stanway e63edcd436
obs-outputs: Fix 100% CPU usage with new network code 2017-03-02 00:44:45 +01:00
Jim d421228315 Merge pull request #834 from DDRBoxman/osxsign
CI: OSX - Update to CEF 2987
2017-02-28 22:35:28 -08:00
Colin Edwards 8a78e79a83 CI: OSX - Update to CEF 2987 2017-03-01 00:34:03 -06:00
Jim cd61439fbf Merge pull request #833 from Xaymar/feature_amd-encoder
enc-amf: Update to 1.4.3.11
2017-02-28 22:14:52 -08:00
Michael Fabian Dirks 1f1056d868 enc-amf: Update to 1.4.3.11
Thanks to @notr1ch for the PR and for the guy on Forums reporting the Simple Mode problem.
2017-03-01 04:07:42 +01:00
Jim 95fe16534d Merge pull request #826 from Xaymar/feature_amd-encoder
UI, enc-amf: Update AMD Encoder
2017-02-27 12:54:24 -08:00
Michael Fabian Dirks 0a2f85fc51 enc-amf: Update to hotfix 1.4.3.10 2017-02-27 21:47:49 +01:00
Gol-D-Ace a13c0a3c29 Update translations from Crowdin 2017-02-27 20:54:02 +01:00
jp9000 46828d16ad obs-filters: Increase max compressor release/attack values
As recommended by cg2121, attack is increased to 500ms, and release is
increased to 1000ms.
2017-02-27 09:36:09 -08:00
jp9000 be6881abc8 obs-filters: Change attack/release ms limit to 300 (from 100) 2017-02-27 08:03:30 -08:00
Michael Fabian Dirks 2a718248a4 enc-amf: Update to version 1.4.3.9
1.4.3.9 is not an official version, it just patches a bug introduced by overusing a macro. I'm not sure if it fixes the crash in blog, but it should fix the crash in AMF initialization.
2017-02-25 20:59:58 +01:00
derrod bb51d3d2f8 obs-ffmpeg: Make gop size configurable
Closes jp9000/obs-studio#804
2017-02-25 09:07:55 -08:00
Richard Stanway a1083d4252 obs-qsv11: Fix various issues detected by Coverity 2017-02-25 17:18:55 +01:00
Richard Stanway d2e9e47bb4 graphics-hook: Account for sizeof(wchar_t) in len 2017-02-25 17:18:55 +01:00
Michael Fabian Dirks ed6507ffcf obs-ffmpeg: Allow saving with different video codecs
Closes jp9000/obs-studio#794
2017-02-25 08:02:59 -08:00
Richard Stanway 8b640fae24
Fix various null pointer issues detected by Coverity 2017-02-25 16:45:45 +01:00
jp9000 6dd1707752 image-source: Add missing locale
The commit was modified and the locale was unintentionally left out.
2017-02-25 07:14:35 -08:00
cg2121 f16a6ad66d image-source: Add solid color source
Closes jp9000/obs-studio#809
2017-02-25 07:05:32 -08:00
Lionheart Zhang 5ade7f74f2 obs-ffmpeg/ffmpeg-mux: Fix failing when no video
(Jim: Technically this should never be used without video)

Closes jp9000/obs-studio#795
2017-02-25 06:50:55 -08:00
Cam 8a6491c9bf win-capture: Add hook exception for theHunter: COTW
Adds an exception to skip d3d10 checks for theHunter: Call of the Wild,
which fixes incompatibility with game capture.

Closes jp9000/obs-studio#801
2017-02-25 06:42:36 -08:00
Richard Stanway f8617bd359 librtmp: Clean up our extra RTMP fields on close 2017-02-25 06:16:19 -08:00
Richard Stanway 935223be34 obs-outputs: Port windows socket loop from OBS Classic 2017-02-25 06:16:18 -08:00
Julian Miller 941d040fd9 obs-filters: Add audio compression filter
Closes jp9000/obs-studio#799
2017-02-25 05:44:09 -08:00
Jim da1fddbd84 Merge pull request #793 from juvester/unused-params
obs-ffmpeg, UI: Fix compiler warnings
2017-02-25 02:35:46 -08:00
sorayuki a5c7cb52f1 obs-text: Fix issue drawing some chinese characters
Some Chinese fonts (for example "STHupo") won't render any characters in
the GDI+ text source.

Closes jp9000/obs-studio#800
2017-02-25 02:33:26 -08:00
jp9000 fabdeaa41b rtmp-services: Add "Pandora TV Korea" 2017-02-22 09:10:25 -08:00
jp9000 32f60d07a3 win-dshow: Add LGP timestamp fix
LGP devices are devices that induce anger in any sane developer because
they're prone to bad audio timestamps when using their decoded data
directly.  For that reason, add a hack that smooths the timestamps
within a large threshold to prevent audio skipping.
2017-02-22 01:18:24 -08:00
jp9000 5b8a0a2777 win-capture: Blacklist chrome/firefox from game capture 2017-02-21 23:05:49 -08:00
Gol-D-Ace be09c52e04 rtmp-services: Update max video bitrate for beam 2017-02-21 22:44:42 +01:00
jp9000 eb90b7dfff win-capture: Fall back to GetWindow if FindWindowEx fails
When kaspersky is installed on windows 7, FindWindowEx will fail to find
any windows due to apparently being blocked by kaspersky, so detect when
that happens, and fall back to GetWindow instead if it does.
2017-02-21 00:42:14 -08:00
jp9000 d9786a7d0a obs-ffmpeg: Add 'save' to replay buffer proc handler
Allows saving replays programmatically without having to use hotkeys.
2017-02-20 23:39:52 -08:00
Richard Stanway f86c538a5f
obs-ffmpeg: Fix custom audio codec parameters 2017-02-16 21:44:08 +01:00
Richard Stanway 4303253920
obs-ffmpeg: Be more verbose when custom params fail 2017-02-16 21:42:25 +01:00
juvester 133f8c311e obs-ffmpeg: Fix compiler warnings 2017-02-08 16:25:54 +02:00
derrod 610661a526 rtmp-services: Update twitch ingests
Adds canadian ingest server.
2017-02-08 03:11:53 +01:00
jp9000 a47ef76bd5 obs-ffmpeg: Do not use HW accel by default on mac
Due to crashes being caused by hardware acceleration in the media source
on mac, disable hardware acceleration of the media source being on by
default for the time being.
2017-02-06 15:10:02 -08:00
jp9000 e1e21c01d5 obs-transitions: Convert premultiplied alpha to straight
In transitions, because the 'to' and 'from' are always rendered to
textures, the end result will always have premultiplied alpha.  This
would cause alpha to have blackish edges during transition, and cause
semi-transparent images to appear darker than they were supposed to.

To replicate, simply set the transparency of a source to 50%, then
transition between that scene and another scene.  The source will appear
to "pop" in and out unnaturally due to the premultiplied alpha effect of
the render targets.

To fix this, the solution is to simply convert premultiplied alpha to
straight alpha in the transition pixel shaders.
2017-02-06 13:22:51 -08:00
jp9000 39d76cc76f win-wasapi: Mark audio outputs as unmonitorable
(Note: This commit also modifies mac-capture and linux-pulseaudio)

This prevents outputs from being monitored, preventing a potential
feedback loop.
2017-02-06 11:44:03 -08:00
derrod fc264e8297 rtmp-services: Update twitch/hitbox ingest and youtube recommendations
Twitch added the following ingests:
- South America: Lima, Peru
- EU: Lisbon, Portugal
- South America: Medellin, Columbia
- EU: Milan, Italy
- NA: Mexico City

The following ingest server is no longer listed in hitbox'  API:
- US-East: Washington

YouTube does not list a requirement that states that only the main profile can be used.
2017-02-02 21:56:42 +01:00
jp9000 001f2a4772 obs-filters: Change "LUT Filter" to "Apply LUT"
At request of c3r1c3 to be a bit more specific.
2017-01-30 19:02:53 -08:00
jp9000 a58c93eb9d obs-filters: Rename "Color Grade" filter to "LUT Filter" 2017-01-30 18:43:25 -08:00
Alexandre Vicenzi b6bbdee049 obs-filters: Fix compiler warnings
static should come before const.

Closes jp9000/obs-studio#778
2017-01-30 16:54:14 -08:00
Colin Edwards 94d4698c7f Add VST Plugin
Closes jp9000/obs-studio#750
2017-01-30 16:05:25 -08:00
Aydin Akan ab40281e2f rtmp-services: Add Web.TV streaming service
Closes jp9000/obs-studio#779
2017-01-30 16:02:58 -08:00
Gol-D-Ace f92601f253 rtmp-services: Add new beam.pro ingests
EU: Oslo
South Korea: Seoul
India: Chennai
2017-01-30 16:36:11 +01:00
mape 7d9a68c18d obs-filters: Add "Color Grading" filter
This allows for color grading based on a color look-up table. Commonly
used to color correct and/or grade video that has been shot in Log.

Closes jp9000/obs-studio#747
2017-01-30 06:41:20 -08:00
Jim 6510ba7f74 Merge pull request #780 from ryansully/master
rtmp-services: Add Restream.io Los Angeles server
2017-01-30 06:11:59 -08:00
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