316 Commits

Author SHA1 Message Date
jpark37
cc7d67d050 UI: Redundant/bad casts 2019-08-17 08:49:08 -07:00
Jim
f838136597
Merge pull request #1924 from cg2121/stop-recording-disk-full
UI: Stop recording when disk space is low
2019-08-17 07:17:04 -07:00
jpark37
0ea820b277 libobs: UI: Add Area scaling for downscale output
Now that Lanczos downscale blurring has been removed, the Area shader
can attempt to fill the void.
2019-08-14 22:33:52 -07:00
jp9000
0759652cee UI: Add the ability to create custom browser docks
Allows the ability for users to add custom browser widget docks that
they can use for their third party services if they feel the need,
mostly as a convenience tool so they don't have to open extra browsers
alongside the program.
2019-08-08 03:31:31 -07:00
Clayton Groeneveld
d9a4842604 UI: Stop recording when disk space is low
This stops the recording when disk space is low. It is currently
set to stop when disk space is below 500 MB.
2019-07-23 15:28:29 -05:00
Grant Likely
4e3ce938f2 UI: Add option to warn on stop recording
OBS has an option to warn before stopping a stream, but it doesn't have
a similar warning for recording. This can result in a recording being
unintentionally stopped.

Add an option to warn when the "Stop Recording" button is pressed.

Note: While OBS also has an option to warn on stream start, this
patch purposefully does not add similar warn on recording start option.
This is because accidentally starting to record isn't risky in the same
way that accidentally starting to stream is.
2019-07-21 22:57:31 -07:00
Jim
1831165c5e
Merge pull request #1969 from cg2121/simplify-code
UI: Simplify resize output code
2019-07-21 22:33:46 -07:00
jpark37
3456ed0644 libobs: UI: Remove DrawBackdrop() to save fullscreen pass
It's a waste of GPU time to do two fullscreen passes to render final mix
previews. Use blend states to simulate the black background of
DrawBackdrop() for the following situations:

- Main preview window (Studio Mode off)
- Studio Mode: Program

This does not effect:

- Studio Mode: Preview (still uses DrawBackdrop)
- Fullscreen Projector (uses GPU clear to black)
- Windowed Projector (uses GPU clear to black)

intel GPA, SetStablePowerState, Intel HD Graphics 530, 1920x1080

Before:
DrawBackdrop: ~529 us
main texture: ~367 us (Cheaper than drawing a black quad?)

After:
[DrawBackdrop optimized away]
main texture: ~383 us
2019-07-18 19:58:29 -07:00
Clayton Groeneveld
5f5ba54a66 UI: Simplify resize output code 2019-07-15 04:50:42 -05:00
Jim
3975a7c42a
Merge pull request #1963 from WizardCM/mkv-default
UI: Change default recording format to MKV
2019-07-13 18:54:47 -07:00
Clayton Groeneveld
866e1e15a8 UI: Add enable preview button
Closes #1966
2019-07-13 20:27:14 -05:00
Matt Gajownik
ca12847aa8 UI: Change default recording format to MKV 2019-07-11 15:39:46 +10:00
jp9000
eab10d48b2 UI: Add pause support
Adds support for pausing recordings.  When settings are eligible for
recordings, a pause button will appear next to the recording button.  If
the settings are not eligible, it will warn the user in the output
settings that they cannot pause recordings if those settings are used.
2019-07-08 08:11:56 -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
58ce89bbe9 UI: Fix tray icon showing up on startup even if off
Apparently certain versions of Qt have a bug where the tray icon's
internal "visible" variable is set to false despite the fact that it
still shows.  Calling show() first before calling hide() sets the
internal boolean value and fixes the issue with the hide call.
2019-06-11 20:22:24 -07:00
jp9000
44d4df31e1 UI: Fix "Toggle Preview" hotkeys duplicating
Fixes "Toggle Preview" hotkeys from duplicating when profiles are
switched.  The hotkeys were not being unregistered.
2019-05-23 04:16:24 -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
VodBox
16484e07e9 UI: Add Transition Previews
This commit adds a preview to the properties window for transitions.

The preview will play back the transition at the global transition
duration or the transitions fixed duration, between two private scenes
with an A and B label, and different background colors.
2019-05-12 21:13:21 -07:00
James Park
5471e74cbe libobs: UI: Remove Qt usage from graphics thread
This fixes Xcode warning about detecting UI usage from another thread.
2019-05-09 23:30:37 -07:00
jp9000
acc8419295 UI: Add Patreon contributors to About dialog 2019-05-05 20:00:26 -07:00
Clayton Groeneveld
37bde71020 UI: Fix system tray not working 2019-05-04 09:23:21 -05:00
Tristan Matthews
92853f2c7b UI: fix crash due to NULL dereference 2019-05-03 02:54:55 -04: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
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
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
Clayton Groeneveld
ed5fdde059 UI: Fix preview/program label alignment 2019-04-22 03:08:35 -05:00
Richard Stanway
90df9ea290 UI: Update error message severity levels and show additional info 2019-04-19 05:45:19 -07:00
Clayton Groeneveld
e89283d172 UI: Add hotkey to toggle preview 2019-04-14 04:51:34 -07:00
Jim
b2bc1e159b
Merge pull request #1589 from caffeinetv/minor-improvements
Minor improvements
2019-04-14 03:43:05 -07:00
Clayton Groeneveld
977dea4ff0 UI: Add ability to center items vertically/horizontally 2019-04-08 22:52:39 -07:00
Jim
b5cc26a918
Merge pull request #1814 from torresam/rename-autoselect
UI: Autoselect text on scene/source rename
2019-04-08 13:14:22 -07:00
Jim
298901d710
Merge pull request #1797 from WizardCM/log-groupitems
UI: Log group items on startup
2019-04-08 02:29:14 -07:00
Anthony Torres
bd71839259 UI: Add text autoselect on scene rename 2019-04-08 02:14:06 -07:00
James Park
21f4dd63d4 libobs: UI: Use graphics debug markers
Add D3D/GL debug markers to make RenderDoc captures easier to tranverse.

Also add obs_source_get_name_no_null() to avoid boilerplate for safe
string formatting.

Closes obsproject/obs-studio#1799
2019-04-08 02:05:37 -07:00
jp9000
739072fdcb UI: Do not show [x] (close) for primary dock widgets
This solves the issue of users who close the primary dock widgets and
can't figure out how to get them back, who for whatever reason choose
not to read the message box when closing dock widgets that tells them
how to get it back.  The users can still hide the primary dock widgets
via the View menu, but they can no longer close them via the [x] button
on the dock widget.  This change does not apply to secondary dock
widgets, such as a chat window, stats, etc.

Closes obsproject/obs-studio#1804
2019-04-03 09:55:27 -07:00
Matt Gajownik
2feb0f0c5d UI: Log group items on startup 2019-04-01 18:51:36 +11:00
Clayton Groeneveld
e321005b02 UI: Fix issue where space/esc hotkeys would be blank
This also modifies libobs.

This only happened on Linux.

Fixes https://obsproject.com/mantis/view.php?id=1018
2019-03-31 05:10:02 -05:00
jp9000
29a1a97392 UI: Don't open settings or close in event subloop
Fixes a crash that can happen if you try to use the settings window
while in an even subloop, or if you try to close OBS while in an event
subloop.  Continually retries (defers) the actions every one second
until the subloop has finished.
2019-03-26 22:05:52 -07:00
SoftArch
de66aeab68 UI: Add Restream integration
Closes obsproject/obs-studio#1768
2019-03-25 19:13:27 -07:00
Colin Edwards
55c1b5bd7b
Merge pull request #1736 from cg2121/icons-from-theme
UI: Use icons from theme on Linux
2019-03-19 19:25:42 -05:00
Clayton Groeneveld
2080051b9f UI: Use icons from theme on Linux 2019-03-16 05:41:12 -05:00
James Park
8b1d701b27 UI: Remove Area downscale filter option
Originally added for completeness but wasn't actually implemented
correctly. Can be added back later if desired.
2019-03-14 10:05:50 -07:00
Colin Edwards
5c16a96770
Merge pull request #1715 from jpark37/area-filter
Add "Area" scale filter
2019-03-13 23:30:25 -05:00
Colin Edwards
1dc3edc805
Merge pull request #1694 from cg2121/audio-mixer-copy-filters
UI: Add ability to copy & paste filters from the mixer
2019-03-13 22:13:54 -05:00
Colin Edwards
0377a34095
Merge pull request #1725 from derrod/bwtest-cbox
UI: Add checkbox for Twitch bandwidth test mode
2019-03-11 23:37:23 -05:00
derrod
4595d49e98 UI: Add confirmation dialog for bandwidth test mode 2019-03-10 08:37:29 +01:00
Gol-D-Ace
7c0620b54f UI: Add PAL 25 & 50 FPS as common FPS values 2019-03-10 08:31:08 +01:00