2014 Commits

Author SHA1 Message Date
jp9000
942ca6f709 obs-ffmpeg: Add support for pausing 2019-07-07 16:38:22 -07:00
jp9000
3b581a3727 obs-ffmpeg: Remove unnecessary function
This terrible boilerplate code is no longer necessary, as it is now
fixed by the previous commit.
2019-07-07 16:38:21 -07:00
jp9000
8caa4f938c obs-ffmpeg: Check for replay buffer button press
The replay buffer was triggering on both button press and button
release, which is redundant.
2019-07-06 09:27:40 -07:00
derrod
d954853ce9 rtmp-services: Update and prune services 2019-07-01 19:56:31 +02:00
Richard Stanway
0e77a2c75b obs-outputs: Minor pointer fixes 2019-06-29 01:28:16 +02:00
Dead133
e0c8aac485 rtmp-services: Update ingest list for Restream.io 2019-06-25 17:18:02 +03:00
jp9000
8c54b7f393 obs-ffmpeg: Move external headers to external dir
Prevents automatic formatting with clang-format
2019-06-23 23:54:26 -07:00
jp9000
f53df7da64 clang-format: Apply formatting
Code submissions have continually suffered from formatting
inconsistencies that constantly have to be addressed.  Using
clang-format simplifies this by making code formatting more consistent,
and allows automation of the code formatting so that maintainers can
focus more on the code itself instead of code formatting.
2019-06-23 23:49:10 -07:00
jp9000
53615ee10f clang-format: Add clang-format files 2019-06-23 01:53:56 -07:00
Jim
fafda14963
Merge pull request #1906 from jpark37/bgr-three
libobs: linux-v412: obs-ffmpeg: Add packed BGR3 video support
2019-06-15 16:40:44 -07:00
Gol-D-Ace
973bc481ce Update translations from Crowdin 2019-06-11 01:42:42 +02:00
jp9000
1f39259bc5 win-capture: Add discord to game capture blacklist 2019-06-01 20:07:39 -07:00
James Park
614025742b libobs: linux-v412: obs-ffmpeg: Add packed BGR3 video support
Someone mentioned this format preserves the most quality for a
particular capture card using V4L2.
2019-05-30 06:05:53 -07:00
James Park
286e43bba8 win-wasapi: Speaker enum fixes
Remove KSAUDIO_SPEAKER_2POINT1 because it is included in the Windows
SDK. (I'm guessing it wasn't before.)

Redefine 4POINT1 as KSAUDIO_SPEAKER_SURROUND|SPEAKER_LOW_FREQUENCY
instead of KSAUDIO_SPEAKER_QUAD|SPEAKER_LOW_FREQUENCY. See definitions:

FFmpeg 4.1: FL+FR+FC+LFE+BC
WASAPI QUAD: FL+FR+BL+BR (looks wrong)
WASAPI SURROUND: FL+FR+FC+BC
WASAPI LOW_FREQUENCY: LFE
2019-05-23 21:31:18 -07:00
James Park
493648c6d2 obs-filters: Remove unused key_rgb shader variable
Variable was never used. Clean up both C++ and shader code.
2019-05-18 22:14:27 -07:00
James Park
dde6257bd9 obs-filters: Remove unused variable for color key 2019-05-18 22:12:19 -07:00
jp9000
c22077ae26 obs-browser: Close browser panels early
Shuts down browser panels early to ensure that cookie data doesn't
necessarily get lost.
2019-05-17 17:14:32 -07:00
jp9000
973d31b8c2 libobs: Fix lockup when an encode call fails
(This commit also modifies the UI, obs-ffmpeg, and obs-output modules)

Fixes a long-time regression where the program would lock up if an
encode call fails.  Shuts down all outputs associated with the failing
encoder and displays an error message to the user.

Ideally, it would be best if a more detailed error could be displayed to
the user about the nature of the error, though the primary problem is
the encoder errors are typically not something the user would be able to
understand.  The current message is a bit of a generic error message;
improvement is welcome.

Another suggestion is to try to have the encoder restart seamlessly,
though it would take a significant amount of work to be able to make it
do something like that properly, and it sort of assumes that encoder
failures are sporadic, which may not necessarily be the case with some
hardware encoders on some systems.  It may be better just to use another
encoder in that case.  For now, seamless restart is ruled out.
2019-05-17 01:51:12 -07:00
Jérémy Farnaud
525c473c4c obs-ffmpeg: Fix VAAPI CBR 2019-05-11 17:20:24 -07:00
James Park
2ff9cf17c0 obs-outputs: Fix undefined MSG_NOSIGNAL
Define MSG_NOSIGNAL even if CRYPTO is not defined.
2019-05-09 22:38:34 -07:00
Jim
e9185f462a
Merge pull request #1874 from tmatth/bugfix/avoid-sigpipe-on-closed-sock
Avoid sigpipe on writing to closed file descriptors
2019-05-09 19:26:01 -07:00
brittneysclark
092c35b2d7 obs-qsv: Update libmfx, fix QSV with new DCH drivers
This patch fixes QSV failing with new DCH graphics drivers. QSV is not
initializing under certain conditions when the graphics adapter 0 is not
set to iGFX due to outdated MSDK dispatcher. Updating to MSDK with new
dispatcher to enable proper initialization of QSV encoder with DCH
drivers.
2019-05-09 17:31:35 -07:00
Tristan Matthews
94c881b891 obs-outputs: Return error instead emitting SIGPIPE
This could happen if writing to a socket which was closed by the peer.
2019-05-09 17:05:38 -07:00
Jim
4991113abc
Merge pull request #1852 from jpark37/blend-alpha-attempt-two
libobs: libobs-d3d11: Fix alpha blend
2019-05-08 23:37:10 -07:00
James Park
ba21fb947e libobs: Fix various alpha issues
There are cases where alpha is multiplied unnecessarily. This change
attempts to use premultiplied alpha blending for composition.

To keep this change simple, The filter chain will continue to use
straight alpha. Otherwise, every source would need to modified to output
premultiplied, and every filter modified for premultiplied input.

"DrawAlphaDivide" shader techniques have been added to convert from
premultiplied alpha to straight alpha for final output. "DrawMatrix"
techniques ignore alpha, so they do not appear to need changing.

One remaining issue is that scale effects are set up here to use the
same shader logic for both scale filters (straight alpha - incorrectly),
and output composition (premultiplied alpha - correctly). A fix could be
made to add additional shaders for straight alpha, but the "real" fix
may be to eliminate the straight alpha path at some point.

For graphics, SrcBlendAlpha and DestBlendAlpha were both ONE, and could
combine together to form alpha values greater than one. This is not as
noticeable of a problem for UNORM targets because the channels are
clamped, but it will likely become a problem in more situations if FLOAT
targets are used.

This change switches DestBlendAlpha to INVSRCALPHA. The blending
behavior of stacked transparents is preserved without overflowing the
alpha channel.

obs-transitions: Use premultiplied alpha blend, and simplify shaders
because both inputs and outputs use premultiplied alpha now.

Fixes https://obsproject.com/mantis/view.php?id=1108
2019-05-08 20:26:52 -07:00
sorayuki
f67e63b1c6
win-dshow: fix issue decoding some H.264 stream
Logitech C920 web camera will output YUVJ420P which is not supported yet.
2019-05-05 16:18:16 +08:00
Hosein
61acbe9328 rtmp-services: Update GameTips.tv 2019-05-02 19:38:47 -07:00
jp9000
3f3ec4f933 obs-ffmpeg: Fix jim-nvenc initial DTS for fractional FPS
The initial DTS for non-fractional framerates was being incorrectly
calculated.  It assumed that the time base was in frames when it was
not.

Closes obsproject/obs-studio#1857
2019-05-02 12:45:17 -07:00
Clayton Groeneveld
31b73f8025 UI: Add ability to set properties spinbox suffix 2019-05-02 08:54:14 -07:00
Jim
003f00923e
Merge pull request #1860 from cg2121/kbps-singlestep
UI: Increment bitrates by 50
2019-05-02 07:32:49 -07:00
jp9000
f21a48ff36 UI: Remove mac browser workarounds, improve stability
The workarounds were made because of conflicts with running multiple UI
threads at once on macOS, which macOS can't do very well, and would be
susceptible to crashes.  This would cause crashes not only on startup
but seemingly at random when using the browser source on macOS.  The
original "fix" was a hack to try to minimize UI code and browser UI code
from executing at the same time.  The macOS initial scene loading was
deferred until all Qt-related and main window initialization was
completed.  Although this worked to some extent to prevent conflicts, it
made it so that there was an initial period on startup where the entire
UI seemed "blank" for users, and it was still possible for the main UI
thread and the browser UI thread to clash, causing crashes seemingly at
random for users.

The external message pump method of CEF is the solution to the problem,
which is the method which allows the main UI thread to share events with
CEF.  To do this, all CEF operations need to be performed in the UI
thread (Qt's main thread), and CefDoMessageLoopWork() needs to be called
when CefApp::OnScheduleMessagePumpWork callback is triggered.  A number
of other issues had to be solved as well, such as CefBrowser references
getting "stuck" in the Qt event queue.

With this, macOS no longer needs to do the "deferred load" hack, and
browsers are now much more stable and no longer as susceptible to
seemingly random crashes, improving overall program stability when
browsers are used.
2019-05-01 12:13:35 -07:00
Clayton Groeneveld
1160ee767a UI: Increment bitrates by 50 2019-04-30 06:54:02 -05:00
jp9000
0677fe2b21 obs-ffmpeg: Move ffmpeg-mux to executable dir
Instead of having ffmpeg-mux stored in a data directory, install it to
the primary binary directory.  On windows, this fixes ffmpeg-mux
potentially accessing the wrong FFmpeg libraries (some programs install
them to system32, foolishly), and instead ensures that it uses the ones
that come with the program.  On Linux, ensures that a binary is in its
appropriate directory (/usr/bin or /usr/local/bin rather than a subset
of /usr/share or /usr/local/share).
2019-04-26 13:24:34 -07:00
jp9000
0800c8cbd1 obs-filters: Use int sliders for opacity
This changes all opacity scrollers for filters to sliders + scrollers.

Reference: obsproject/obs-studio#1827
2019-04-26 06:33:41 -07:00
jp9000
71f9900e74 obs-filters: Fix opacity on image mask/blend filter
The alpha value from the opacity slider was being overwritten.

Closes obsproject/obs-studio#1827
2019-04-26 05:22:44 -07:00
James Park
a86710ec5b libobs: Support limited color range for RGB/Y800 sources
libobs: Add support for limited to full color range conversions when
using RGB or Y800 formats, and move RGB converison for Y800 formats to
the GPU.

decklink: Stop hiding color space/range properties for RGB formats, and
remove "YUV" from "YUV Color Space" and "YUV Color Range".

win-dshow: Remove "YUV" from "YUV Color Space" and "YUV Color Range".

UI: Remove "YUV" from "YUV Color Space" and "YUV Color Range".
2019-04-25 15:13:05 -07:00
jp9000
7d136c3ce1 decklink, win-dshow: Use obs_source_output_video2
Allows the ability to override and use partial range RGB with the
DirectShow and Decklink device sources when partial range RGB is
implemented.  Fixes certain cases where devices could capture RGB in
limited range via HDMI (per the HDMI specs).
2019-04-25 15:12:33 -07:00
jp9000
f109d1c2bf Revert "libobs: libobs-d3d11: obs-filters: No excess alpha"
This reverts commit d91bd327d7a8bb4597562fc26da4edb7b56874ff, which
broke alpha with sources, scenes, and filter, causing them all to become
opaque unintentionally.
2019-04-25 08:36:41 -07:00
pkv
a5b837518e obs-outputs: Fix leak with certs for rtmp 2019-04-21 23:54:27 +02:00
Igor Bochkariov
69b4df41c6 win-wasapi: Unapply/reapply audio monitoring on reconnect
Saves and disable monitoring before entering recover loop, and restores
it after recovery is complete.
2019-04-20 03:37:24 -07:00
Igor Bochkariov
041d3b4155 win-wasapi: Fix audio capture after unplugging device
This commit fixes a bug where the user would have to restart OBS when
certain types of devices are unplugged and plugged back in again
(particularly USB devices).  A wait interval is required
(RECONNECT_INTERVAL) because Windows does not send any events to
IAudioCaptureClient on device invalidation.
2019-04-20 03:37:24 -07:00
Igor Bochkariov
abe59f7187 win-wasapi: Call CoInitializeEx in reconnect thread
Fixes an issue where COM might not be available to calls within the
reconnect thread.
2019-04-20 03:37:24 -07:00
jp9000
77d92421ed rtmp-services: Update Mixer keyframe interval 2019-04-19 11:10:40 -07:00
Richard Stanway
ca5a19cf66 obs-ffmpeg: Add logging of last error for passing to UI 2019-04-19 05:45:38 -07:00
dwot
8c7dbf69f2 vlc-video: Enable subtitle track selection 2019-04-17 06:45:33 -07:00
Jim
10e72fcc2a
Merge pull request #1752 from pkviet/vlc
vlc-video: Enable audio track selection
2019-04-14 05:13:47 -07:00
Jim
397f3733cf
Merge pull request #1685 from DDRBoxman/luma
obs-filters: Add luma key filter
2019-04-14 04:24:16 -07:00
Jim
9480cc4fd2
Merge pull request #1675 from admshao/clear-linux-compiling-warnings
Clear linux compiling warnings
2019-04-14 04:21:21 -07:00
Jim
e7b25a9870
Merge pull request #1667 from grimmy/xshm-xrandr-support
linux-capture: Add randr support
2019-04-14 04:15:29 -07:00
geemion
f6581952bc win-capture/graphics-hook: Check if mutex abandoned
It's possible that the mutexes used with shared memory capture to return
WAIT_ABANDONED if OBS is shut down abnormally while the mutex is locked.
2019-04-14 03:44:48 -07:00