Commit Graph

6654 Commits (b2e0d93990cd5160633b8dd339efd77548082531)

Author SHA1 Message Date
Clayton Groeneveld b2e0d93990 UI: Use icons for hotkey buttons 2019-05-02 08:54:13 -07:00
Clayton Groeneveld d17e261d23 UI: Truncate text in hotkeys interface 2019-05-02 08:54:13 -07:00
Clayton Groeneveld 64aa211d46 UI: Remove icons from settings button box 2019-05-02 08:54:13 -07:00
Clayton Groeneveld e284289c56 UI: Improve look of Dark theme 2019-05-02 08:54:10 -07:00
Clayton Groeneveld 4b6a1bf971 UI: Remove settings horizontal lines 2019-05-02 08:18:07 -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
jp9000 7efcb6989d UI: Only execute "What's New" code on win32
The "What's New" dialog currently is only functional on windows.
2019-05-01 12:12:03 -07:00
jp9000 767d534409 UI: Check for valid systen tray pointer
Fixes a potential crash that can happen if the system tray is not
initialized for whatever reason.
2019-05-01 12:11:29 -07:00
Clayton Groeneveld 1160ee767a UI: Increment bitrates by 50 2019-04-30 06:54:02 -05:00
Jim dd68493590
Merge pull request #956 from mntone/issue-load-methods
libobs: Load function simbol from specified file.
2019-04-27 13:03:32 -07:00
mntone a66ad7eb63 libobs: Use RTLD_FIRST when loading libraries on macOS
Ensures that functions loaded by `os_dlsym()` come only from the
specified library that was loaded with `os_dlopen()` rather than the set
of libraries loaded by the specified library.
2019-04-27 11:56:53 -07:00
Jim d273e74e94
Merge pull request #1853 from cg2121/fix-vis-lock-icons
UI: Fix theme issues with vis/lock checkboxes
2019-04-27 05:56:40 -07:00
Clayton Groeneveld 507cfe3ea0 UI: Fix theme issues with vis/lock checkboxes 2019-04-27 01:06:41 -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 0e8fe8bbbc libobs/util: Add function to get executable path 2019-04-26 13:24:30 -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
Jim 6f23c1ca4f
Merge pull request #1846 from jpark37/rgb-limited
Support limited color range for RGB/Y800 sources
2019-04-25 16:25:28 -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 8d125dc01d libobs: Add better default source color range handling
Fixes handling of the `obs_source_frame::full_range` member variable,
which is often set to false by default by many plugins even when using
RGB, which would cause RGB to be marked as "partial range".  This change
is crucial for when partial range RBG support is implemented.

Adds `obs_source_frame2` structure that replaces the `full_range` member
variable with a `range` variable, which uses the `video_range_type` enum
to allow handling default range values.  This member variable treats
VIDEO_RANGE_DEFAULT as full range if the format is RGB, and partial
range if the format is YUV.

Also adds `obs_source_output_video2` and `obs_source_preload_video2`
functions which use the `obs_source_frame2` structure instead of the
`obs_source_frame` structure.

When using the original `obs_source_frame`, `obs_source_output_video`,
and `obs_source_preload_video` functions, RGB will always be full range
by default for backward compatibility purposes.
2019-04-25 15:12:08 -07:00
jp9000 f109d1c2bf Revert "libobs: libobs-d3d11: obs-filters: No excess alpha"
This reverts commit d91bd327d7, which
broke alpha with sources, scenes, and filter, causing them all to become
opaque unintentionally.
2019-04-25 08:36:41 -07:00
Jim 314a31d973
Merge pull request #1851 from cg2121/fix-theme-selection
UI: Fix theme bug when updating from older versions
2019-04-24 04:31:10 -07:00
Clayton Groeneveld 52c3f81f0e UI: Fix theme bug when updating from older versions
Fixes: https://obsproject.com/mantis/view.php?id=1446
2019-04-23 23:38:03 -05:00
Jim 5781605289
Merge pull request #1847 from cg2121/scene-copy-paste-filters
UI: Add ability to copy/paste scene filters
2019-04-23 18:18:10 -07:00
Jim 575f998fdd
Merge pull request #1850 from guangong7628/renaming-scene
UI: Fix unable to escape when renaming scene
2019-04-23 04:58:54 -07:00
Clayton Groeneveld 2940c80f49 UI: Add ability to copy/paste scene filters 2019-04-23 06:46:04 -05:00
guangong7628 16cc60587f UI: Fix unable to escape when renaming scene
Fixes https://obsproject.com/mantis/view.php?id=1443
2019-04-23 04:20:49 -07:00
Jim 7dc9ff0575
Merge pull request #1843 from cg2121/fix-group-icons
UI: Fix group checkbox icons not working in Dark theme
2019-04-22 05:35:25 -07:00
Clayton Groeneveld 2ca71fc9d6 UI: Fix group checkbox icons not working in Dark theme 2019-04-22 06:21:28 -05:00
Jim cdcd45fe11
Merge pull request #1842 from cg2121/prev-prog-label-alignment
UI: Fix preview/program label alignment
2019-04-22 03:25:06 -07:00
Jim 8d791b5ee2
Merge pull request #1839 from cg2121/svg-icons
UI: Change icons to svg
2019-04-22 03:24:12 -07:00
Clayton Groeneveld 21a32def35 UI: Simplify locked/visibility checkboxes 2019-04-22 01:50:10 -07:00
Clayton Groeneveld 189e48835d UI: Change icons to svg
This changes all of the icons from png to svg. With svgs, scaling is
unlimited. With the svgs, the issue of the @ symbols with the Windows
updater is no longer an issue.

I changed the colors of the icons to a light gray (#d2d2d2), in the
dark themes, because I thought they looked better with this color.

The mute, unmute, plus, minus, up, down and expand icons are from the
Feather Icons set. https://feathericons.com/

The visibility icon is from the Octicons set. https://octicons.github.com/

The locked and unlocked icons are from the Open Iconic set.
https://github.com/iconic/open-iconic
2019-04-22 01:50:03 -07:00
Clayton Groeneveld ed5fdde059 UI: Fix preview/program label alignment 2019-04-22 03:08:35 -05:00
Jim eadcc5adef
Merge pull request #1841 from jpark37/index-size-fix
libobs: Fix GS_UNSIGNED_LONG definition
2019-04-21 22:41:15 -07:00
Jim 72b76d212a
Merge pull request #1840 from pkviet/certleak
obs-outputs: Fix leak with certs for rtmp
2019-04-21 22:36:23 -07:00
James Park 8bafa51d3b libobs: Fix GS_UNSIGNED_LONG definition
GS_UNSIGNED_LONG is defined as sizeof(long) in some places, making it 8
outside of Windows instead of 4 as it should be.

Fixes https://obsproject.com/mantis/view.php?id=1444
2019-04-21 21:25:35 -07:00
pkv a5b837518e obs-outputs: Fix leak with certs for rtmp 2019-04-21 23:54:27 +02:00
Jim 7925ac1402
Merge pull request #1747 from cg2121/recording-time-left
UI: Estimate recording time left until disk is full
2019-04-21 06:55:33 -07:00
jp9000 72ccefff5f UI: Rename UI files for consistency
Changes comboBox-* and spinBox-* files to lowercase to be more
consistent with the rest of the files in the UI directory.
2019-04-21 04:10:46 -07:00
jp9000 140f927f4f UI: Fix whitespace issues with "ignore wheel" widgets 2019-04-21 04:07:00 -07:00
jp9000 c3c740d36f UI: Do not remove focus on mouse leave events
For the "ignore wheel" widgets, do not leave focus on mouse leave
events.  This causes unintended side effects such as not being able to
type in edit boxes, and is very annoying.
2019-04-21 04:03:37 -07:00
Jim 491abe7f40
Merge pull request #1742 from ujifgc/fix-wasapi-usb-disconnect
win-wasapi: Fix audio capture after USB sound card unplugging
2019-04-20 04:11:01 -07: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
Jim 1856f40e2a
Merge pull request #1836 from jpark37/rotated-line-fix
libobs: UI: Fix rotated line scale
2019-04-20 02:34:45 -07:00
Jim 043963c5e8
Merge pull request #1828 from DDRBoxman/removewidget
UI: Remove SourceListWidget
2019-04-20 02:27:36 -07:00