0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00
Commit Graph

315 Commits

Author SHA1 Message Date
Richard Stanway
ac90d863cb
UI: Set error mode to SEM_FAILCRITICALERRORS
This prevents spurious dialog boxes appearing, such as "No disk is in the
drive" if the application attempts to access an invalid drive.
2017-06-21 17:39:20 +02:00
jp9000
1d2def766f UI: Preserve source if audio settings device changed
If the user changes one of the devices in audio settings, it would reset
all of its data, including settings, filters, flags, and all that.  This
changes the handling so that the source and all of its other settings
are preserved if the user just changes the device.  (Note that if the
user disables the device, settings will be lost; this only applies to
when the user changes the device to a different device for whatever
reason)
2017-06-21 00:03:14 -07:00
jp9000
bd9706c8ac UI: Use QT_TO_UTF8 with name dialog
Could potentially use the wrong locale otherwise.
2017-06-20 18:19:30 -07:00
jp9000
96f746ce41 UI: Initialize Stats window values after OBSInit/reset
When the statistics window starts up for the first time, it reset values
at that very moment so that stray lagged frames due to OBS' startup
wouldn't be displayed.  However, that's really a bad place to reset
those values because the user could want to view the stats window after
a long stream, and having those values reset when he/she views the
window for the first time would sort of make the point of viewing your
stats moot.

Instead, reset the values only when applicable, such as after OBSInit or
when video is reset.
2017-06-19 15:38:13 -07:00
jp9000
bc30c39a03 UI: Ignore first 2.5 seconds of bandwidth test
System network buffers need to be given some time to fill before
starting a bandwidth test.  This prevents the buffers from skewing with
the results.
2017-06-15 20:00:01 -07:00
Joel Bethke
432e285257 UI: Add new theme, update theme capabilities
I have always felt that the out of the box themes for OBS were quite
lacking, and have spent a lot of time going through and sorting out the
difficulties with the current setup. I've added a new themeID parameter to
several elements that were otherwise impossible to target with QSS in a
theme. Since Qt has pushed for the use of QML over QSS at this point,
these should be considered workarounds. Included is the theme I was
working on that can serve as a base. I'm hoping to encourage others to
make their own themes, so we can grow the available themes for OBS.

I am happy for any feedback on the theme itself, or other updates that
can me made to make creating new themes easier overall.
2017-06-13 14:37:59 -05:00
Richard Stanway
da9e247964
UI/updater: Fix incorrect path in portable mode 2017-06-12 16:45:16 +02:00
Shaolin
cb9f767e45 libobs/plugins/UI: Suppress -Wimplicit-fallthrough introduced by GCC 7
Signed-off-by: Shaolin <admshao@gmail.com>
2017-05-29 21:05:18 -03:00
Jim
d4bd7ea052 Merge pull request #931 from DDRBoxman/osxplugin
UI: Look for plugins in ~/Library/Application Support/obs-studio/plug…
2017-05-29 15:57:49 -07:00
Colin Edwards
c6e2318eae UI: Look for plugins in ~/Library/Application Support/obs-studio/plugins/ 2017-05-29 17:41:29 -05:00
jp9000
847b3013fc UI/installer: Update installer VC redist download link 2017-05-28 15:35:33 -07:00
jp9000
7c72cfc625 UI/installer: Fix broken realsense plugin install locations 2017-05-28 15:35:04 -07:00
jp9000
5e41865f83 UI/installer: Specify "source" in plugins section
When using the full installer, there'll be a section where you can
choose what to install -- one section is a tree view with a "plugins"
section, and in that section there's "Browser plugin" and "Realsense
plugin".  Instead of superfluously saying "plugin" for each of those,
replace with "source" instead -- so browser source and realsense source.
Also somewhat helps prevent the user from getting confused and thinking
we're installing a browser or something.
2017-05-28 15:35:03 -07:00
jp9000
870bf6b6fc UI: Fix tooltip for "prefer hardware encoding" 2017-05-21 09:02:14 -07:00
jp9000
8416c9fbae UI: Fix autoconfig capping bitrate with "custom server"
When custom server is used, it would still use the "common" RTMP service
to cap its bitrate.  So if Twitch was selected and you changed over to
custom RTMP server, it would still cap to Twitch's bitrate limits even
though you're not using Twitch anymore.
2017-05-21 01:40:12 -07:00
mntone
2ea7e3b344 UI: Fix creation of crash log with non-english paths 2017-05-21 10:44:54 +09:00
jp9000
cd52679160 UI: Unlock mutex before trying to stop output
Prevents the output from hard-locking on itself when the stop call would
trigger the callback and then try to lock again.  Probably could be
solved with a recursive mutex, but at that point it's not really
necessary.
2017-05-20 12:31:57 -07:00
Gol-D-Ace
5d25d800ad Fix German locale inconsistencies 2017-05-20 20:24:46 +02:00
jp9000
0c198bee50 UI: Fix bug where auto-config settings wouldn't apply
The radio buttons had been changed so "Streaming" would be selected by
default, but it only sets the wizard's "type" to streaming if the user
actually clicks the radio button themselves manually, so it would stay
set to "Invalid" by mistake, causing settings to not be applied.
2017-05-20 11:15:01 -07:00
jp9000
fa09e6743d UI: Remove whitespace from end of autconfig stream key
Because ?bandwidthtest is being appended to the end, it would bypass
normal whitespace removal, causing the stream key to fail.
2017-05-20 11:14:59 -07:00
jp9000
060fbb30ea UI: Change default autoconfig test bitrate
Changes the default autoconfig test bitrate to 10000kb/s, which will
then be capped by the user's service selection (so it'll still only use
6000 on Twitch for example, but will allow 10000 on Youtube and others).
2017-05-20 01:37:25 -07:00
Gol-D-Ace
3d2cacd782 Update translations from Crowdin 2017-05-20 10:18:41 +02:00
jp9000
12236d73f4 UI: Fix enumeration of scene collections on first run
When running the program for the first time, no scene collections will
show up in the scene collection menu.  This changes it to forcibly save
the first scene collection on the first run of the program, and then
re-enumerates the list to ensure it's listed.
2017-05-17 23:29:02 -07:00
jp9000
ee6ca246fe UI: Actually update service for wiz. bitrate limits
obs_service_update was left out by accident in the previous commit.
2017-05-17 22:37:05 -07:00
jp9000
93297d3d0e UI: Remove advanced settings from final wizard results
Removes advanced encoder settings from final wizard result so they don't
conflict with the wizard's expected final results.
2017-05-17 22:32:48 -07:00
jp9000
8dff07ad46 UI: Fix cases where wizard bitrate is not capped
Fixes some cases where the maximum bitrate might not be capped by the
service selection as it's supposed to be.
2017-05-17 22:31:02 -07:00
jp9000
f093028d7a UI: Sort filter names when adding filters 2017-05-16 18:03:34 -07:00
Igor Bochkariov
6e1c4caf99 UI: Fix creation of log files with non-english paths
This commit fixes creating log files in windows with Unicode profile
names.

I encountered this bug when running obs-studio 18.0.2 in Windows 8.1 x64
with my user profile path containing Unicode characters.

Steps to reproduce:

1) Create a windows user with a Unicode name: "пользователь"
2) Run OBS Studio, go to Help -> Log Files -> View current log (Nothing
happens)

The expected result is opening current log file.

Closes jp9000/obs-studio#916
2017-05-15 21:50:44 -07:00
jp9000
0a82d87d82 UI: Check to see if outputs valid when updating stats 2017-05-15 15:05:54 -07:00
jp9000
3470776843 UI: Make Stats a regular window rather than dialog 2017-05-15 15:02:56 -07:00
jp9000
47221e52cf UI: Move Stats to the view menu 2017-05-15 15:01:59 -07:00
jp9000
840bd07365 UI: Prevent user from starting ouputs while in settings
There's a loophole that would allow users to activate an output while in
the settings window via hotkeys -- this prevents that from being able to
happen.  Note that users can still shut down outputs, but they can no
longer start them up while in the settings window.
2017-05-15 14:35:38 -07:00
jp9000
4ff7ac0bfa UI: Change output blocking bool to integer ref counter 2017-05-15 14:35:36 -07:00
jp9000
0697e37b26 UI: Fix misleading log message when updating settings
While an output is active, the user may try to reset the settings in the
settings window, causing a misleading error message to be thrown in the
log indicating that it's "falling back" to OpenGL.

Instead, if an output is currently active, do not reset video.
2017-05-15 14:28:00 -07:00
Richard Stanway
2933b89733
UI: Add support for showing output error messages 2017-05-15 12:03:42 +02:00
jp9000
b2e376b022 UI: Update quick transitions on transition add/removal
Fixes a bug where the individual drop-down lists of each quick
transition would not have the correct available transitions listed if
transitions were added, renamed, or removed
2017-05-14 23:06:11 -07:00
Jim
b5a6e12219 Merge pull request #912 from Xaymar/feature-enc-amf
enc-amf: Version 2.1.3
2017-05-14 21:02:02 -07:00
Michael Fabian Dirks
1e99bf100f enc-amf: Version 2.1.3 2017-05-15 03:36:20 +02:00
jp9000
96ce9633e0 UI: Warn user if multiple instances of the UI are open
Uses a named mutex to detect if multiple instances of the program are
open, and if so warns the user.  When running in portable mode, uses a
separate unique mutex name mapped to the user's config directory to
ensure that no two portable builds use the same config directory.  This
way, portable builds do not conflict with normal builds or other
separate portable builds.
2017-05-14 15:25:34 -07:00
jp9000
99f5ae3059 UI: Don't count debug log messages in repeat detection 2017-05-14 15:24:15 -07:00
jp9000
602c730312 UI: Fix bug where Pre19Defaults would always be set
"OldDefaults" was changed to "Pre19Defaults", but it was still left in
this spot unchanged.
2017-05-14 13:12:14 -07:00
jp9000
13741034dd UI: Don't use "quit on last window closed"
Instead, quit only when the main window has been fully closed (and not
minimized to tray).  Fixes a bug where if the main window is minimized
to tray and another non-child window is open (for example, the stats
window), and then that window is closed, would cause the program to
prematurely exit and crash.
2017-05-14 13:03:46 -07:00
jp9000
3d5759335c UI: Save/remember stats window geometry 2017-05-13 20:51:44 -07:00
jp9000
b40f940b51 UI: Add option to show stats on startup to general 2017-05-13 20:47:47 -07:00
jp9000
b3435f62d7 UI: Bring stats to front if it already exists
If the menu item is triggered again, just bring it to the front instead
of trying to recreate it again.
2017-05-13 20:45:48 -07:00
jp9000
72d7adba67 UI: Fix locale text for "OK" in question dialogs
This is the only case where the button's name does not match the
locale's text, the button name being "Ok" and the locale text item being
"OK", fully capitalized.
2017-05-13 14:10:44 -07:00
jp9000
522f5cdf3b UI: Make sure all message box buttons are translated
Instead of QMessageBox::question and QMessageBox::information, use the
OBSMessageBox class, which translates all buttons.
2017-05-13 14:06:32 -07:00
jp9000
bd34dce8b6 UI: Add helper class to translate message box buttons 2017-05-13 14:05:03 -07:00
jp9000
1c5591e644 UI: Make Qt use locale text for QWizard buttons 2017-05-13 13:07:12 -07:00
jp9000
35454f7fc5 UI: Fix a few locale items, and add a few missing ones 2017-05-13 13:01:56 -07:00
jp9000
0e1ae62355 UI: Add stats dialog
Shows performance stats, and streaming/recording stats, and helps warn
the user when they have less-than-optimal values with coloring on the
values (e.g. yellow when getting low on disk space, red when getting
really low)
2017-05-13 01:52:54 -07:00
jp9000
ee734c17a5 UI: Add themeID values for colors to style sheets 2017-05-13 01:52:53 -07:00
jp9000
d0d9cc4254 UI: Add function to get current memory usage (win32) 2017-05-13 01:52:45 -07:00
Richard Stanway
09f6882137
UI: Show invalid Bind to IP entries in the settings
This fixes a case where the user sets an IP but then that IP is no longer
valid, resulting in OBS showing "Default" in the settings but still trying
to bind to the invalid IP internally.
2017-05-10 21:44:28 +02:00
jp9000
4049a5a882 UI: Add auto-configuration wizard
The auto-configuration wizard is designed to allow first-time or
novice/uneducated users or to set up video and encoding settings in a
very quick and easy way.  It'll automatically perform a bandwidth test,
and/or test the user's video settings to determine the most ideal
settings for streaming and recording (assuming a 1-pc setup).
2017-05-08 02:12:03 -07:00
jp9000
51e5f5fc64 UI: Remove colon from a few locale items
The colon makes it difficult to use these locale items for other
purposes, and the colon isn't used much elsewhere, so just remove them.
2017-05-06 12:12:37 -07:00
jp9000
f9595938d0 UI: Add 1920x1080/1280x720 to the settings base res list
Adds 1920x1080 and 1280x720 to the drop-down list of "default"
base/canvas resolutions rather than just the user's monitor resolutions,
in case the user wants to set the canvas to 1920x1080 or 1280x720
without having to manually type it in.  Added as a minor convenience.
2017-05-06 11:29:41 -07:00
jp9000
9d019e90ab UI: Limit default canvas res to 1920x1080 or below
The reasoning behind this is because having a very large canvas size can
negatively affect the user experience -- most sources end up seeming
smaller than they need to be to users, resulting in the user needing to
size up the sources, or in the case of webcams it makes the user try to
use much larger webcam resolutions than they should reasonably need to
do, resulting in higher unintentional resource usage.  The program will
additionally require more fillrate to render and downscale things as
well.

This applies only to the default starting base/canvas resolution for new
users only.

Additionally, users that ran the program pre-19 will be unaffected by
this change, as it will detect that and set the old defaults to prevent
an unexpected change in resolution for those users.
2017-05-06 11:29:40 -07:00
jp9000
ca0d4d18d5 UI: Don't subject base/output resolutions defaults
If defaults change for the base or output resolutions, it could
unintentionally affect users who are using defaults by chance and have
never changed those values.

Instead, save those values are soon as defaults are set if the users
haven't already set them.
2017-05-06 11:29:39 -07:00
jp9000
b850bc6415 UI: Add function to enable/disable outputs 2017-05-06 11:29:37 -07:00
fryshorts
937356cc8a UI: Fix settings dialog crashing on linux
Fix a double free in the settings window that occurs on linux only.
The UI Element already gets deleted above as a child of the
advAudioGroupBox which is not present on linux.
Apart from making the code even more unreadable, this will likely
come back to haunt us if the advAudioGroup will ever be shown on linux.
2017-05-06 15:59:41 +02:00
Richard Stanway
a23c009a69 Various: Optimize bundled PNG files
By losslessly recompressing and removing redundant metadata, this saves
around 910 KB.
2017-05-05 19:56:00 +00:00
jp9000
08a94072a0 UI: Always alternatively open backup scene json file
Fixes an issue where scene data would reset if the file was not found,
even if a backup file existed.  This should prevent those remaining
stray cases where user's scenes would seem to be suddenly deleted if the
original file was deleted for some reason or another.  The backup files
should always be available, so this should clear up that last remaining
case.
2017-05-04 18:17:42 -07:00
cg2121
71c5753207 UI: Add ability to output to window
Closes jp9000/obs-studio#841
2017-05-04 17:07:36 -07:00
e00E
26c28b4502 UI: Fix warning in VisualStudio 2017
When building with VS2017 the compiler shows some warnings which is
undesirable.

The compiler rightly complains about declarations which hide older ones
which are trivially fixed.

Finally only POD types should be passed to variadic functions which is
why the String should be converted to c_str().
Relying on the current undefined behavior is a bad idea as it can change
with compilers and compiler versions.

Closes jp9000/obs-studio#902
2017-05-04 06:13:45 -07:00
e00E
4361c5bd45 UI, obs-qsv11: Fix build in VisualStudio 2017
OBS did not build out of the box in VS2017 but it does with these
changes.

Closes jp9000/obs-studio#902
2017-05-04 06:13:26 -07:00
Jim
965e2eea9a Merge pull request #900 from cg2121/linux-scene-switcher
frontend-tools: Add automatic scene switcher for Linux
2017-05-04 05:08:17 -07:00
Palakis
2e3888abd4 UI: Add Studio Mode features in the Frontend API
With these new functions, plugin developers can enable, disable and
get the status of Studio Mode, as well as get and set the current
preview scene and transition the current preview to Program

Here is a list of the Studio Mode events:
   - Studio Mode enabled
   - Studio Mode disabled
   - Previewed scene in Studio Mode changed
2017-05-03 23:19:04 +02:00
Jim
da0f3c2705 Merge pull request #889 from cg2121/drag-drop-bug
UI: Fix drag & drop bug
2017-05-03 14:17:49 -07:00
mntone
9efd2b87aa UI: Add option to disable audio ducking on windows
The audio subsystem of windows is by default configured to lower the
volume of other things while a communications device (mic) is currently
active.  This patch prevents that from being enabled with OBS.  If the
user needs audio ducking enabled again for whatever reason, there is now
an option to re-enable it in advanced settings.

Closes jp9000/obs-studio#884
2017-05-03 11:05:30 -07:00
cg2121
d1de03c0be frontend-tools: Add automatic scene switcher for Linux 2017-05-03 09:23:06 -05:00
jp9000
4684294bcd UI/updater: Add opt to disable building update module
Mostly to reduce build time when the update module doesn't need to be
rebuilt.
2017-05-02 03:45:20 -07:00
jp9000
aa70704700 frontend-plugins: Abstract captions
Currently the captioning code is a bit intertwined with the UI, and the
captioning is hard-coded towards microsoft speech API.

This patch abstracts captions to allow other APIs to be implemented
later.
2017-04-30 08:28:07 -07:00
jp9000
1e37017d4e frontend-tools: Rename some files
Changing the name of certain captions source files so it specifies which
caption API the files are for.  "mssapi" for Microsoft's speech API.
2017-04-30 08:23:46 -07:00
Shamun
0206227b75 UI: Add command line option for starting up always on top
Closes jp9000/obs-studio#853
2017-04-30 07:49:25 -07:00
cg2121
e26f07a1c3 UI: Make sure all dialogs have close buttons
This adds close buttons to remux dialog, output timer dialog, and
advanced audio properties dialog.  I also did a small refactor of the
remux dialog so the buttons were consistent with other dialogs.

Closes jp9000/obs-studio#876
2017-04-30 06:38:33 -07:00
cg2121
012b5ef6a5 UI: Display filename when dragging & dropping
After dragging and dropping a file, the source name will be the
filename.

(Jim: When dragging and dropping raw text, the raw text would then be
used as the source's name, which is bad if there's a lot of text.  It's
now been changed so that it uses the source type's display name, i.e.
"Text (GDI+)" as the source name in that case)

Closes jp9000/obs-studio#888
2017-04-30 03:37:02 -07:00
Jim
1e831ea9eb Merge pull request #894 from trwnh/patch-1
UI: Ctrl+E to Edit Transform
2017-04-30 03:05:27 -07:00
Palakis
9f3bb4a13f UI: Add front-end API functions to get/modify service
This commit adds functions to get, set and save the service and its
settings, and is plugged straight into the existing internal functions
serving this purpose

(Jim: Fixed commit message and missing newline at end of file)

Closes jp9000/obs-studio#895
2017-04-30 02:53:44 -07:00
Ryan Foster
2d80ae0231 UI: Remove unused defines from old updater code
This commit removes some define statements that were used in the updater
code before OBS Studio 18.0.0.
2017-04-26 13:09:30 -04:00
trwnh
76d795aec0 UI: Ctrl+E to Edit Transform
Added a shortcut to "Edit Transform", with Ctrl+E (lines 1191-1193).
Editing was very easy in OBS Classic, and I could not find the option
for stretching a source to bounds in OBS Studio, so the "Edit Transform"
dialogue should be more user-facing. Giving it a keyboard shortcut
denotes that it is important enough to have a shortcut, as opposed
to the myriad options with no shortcut
2017-04-25 22:57:55 -05:00
Ryan Foster
be98cee2a0 Fix various typos across multiple modules 2017-04-25 22:39:42 -04:00
cg2121
485bfa5570 UI: Fix drag & drop bug 2017-04-23 20:45:55 -05:00
Richard Stanway
599ffaa02a
UI: Increase MAX_CRASH_REPORT_SIZE to 150 KB
Now that OBS defaults to 64 bits on Windows, our crash reports are often
truncated since the 64 bit stack values are using twice as much space.
2017-04-11 13:07:34 +02:00
Richard Stanway
67e5f6c54e
UI: Continue to show OpenGL if already in use
Otherwise the user can't actually switch back to Direct3D since the
settings panel doesn't consider the renderer to be modified.
2017-04-10 16:53:28 +02:00
Richard Stanway
fdc9c47875
UI: Hide OpenGL and D3D adapter on Windows
OpenGL on Windows is rather unstable and can result in graphical
corruption or the complete inability to start OBS since some GPUs do not
support the minimum requirements after switching to OpenGL. The UI option
is now hidden unless --allow-opengl is passed on the command line.

The D3D adapter is currently unused and we often find users are concerned
when their GPU does not appear in the list.
2017-04-10 15:54:51 +02:00
cg2121
5e65254f2c UI: Add window name to remux dialog 2017-04-09 01:31:50 -05:00
jp9000
3544a2da48 UI: Fix property widgets not being disabled 2017-04-01 13:32:26 -07:00
jp9000
14725a79ee UI: Remove libff as a dependency
Just directly includes the ff-util.c/h files in to UI to prevent the
need of compiling libff in full.
2017-03-31 12:10:34 -07:00
Jim
3a3015aecd Merge pull request #855 from MP2E/master
UI: Fix segfault when no system tray exists
2017-03-25 08:53:02 -07:00
jp9000
6af48130e0 UI: Fix bug where items can't be deleted in last scene
Bug introduced in jp9000/obs-studio#861
2017-03-25 07:36:46 -07:00
jp9000
3774a73fe9 UI: Disable filter pasting when scene collection changed 2017-03-25 07:08:11 -07:00
cg2121
bcd491a3d6 UI: Add copying/pasting of sources/filters
Closes jp9000/obs-studio#860
2017-03-25 04:29:49 -07:00
Cray Elliott
c47cb25434 UI: Fix segfault when no system tray exists 2017-03-23 16:47:42 -07:00
cg2121
66dbf8f258 UI: Add workaround to fix deleting final scene bug 2017-03-13 13:18:10 -05:00
Richard Stanway
a8106115d9
UI/updater: Fix incorrect inflate use
Same issue as 77ceb97 corrected but for POST responses.
2017-03-10 16:19:04 +01:00
jp9000
4f64be278c UI/updater: Ignore 64bit files on 32bit windows
This would cause people to download the 64bit files when they were on
the 32bit version of windows, even though those files aren't meant to be
installed.
2017-03-07 09:11:44 -08:00
jp9000
77ceb97f96 UI/updater: Fixed a bug with deflating
The file could deflate infinitely until hard drive space ran out.
2017-03-07 09:01:03 -08:00
jp9000
aab843597d UI/updater: Fix potential fail case when no files to patch
The updater would return HTTP 400 on an empty json array upload for the
patch manifest.
2017-03-06 22:20:51 -08:00
jp9000
65d453049a UI/updater: Fix temp files being created and not deleted
The GetTempPath and GetTempFileName functions weren't being used
correctly, GetTempFileName always create a temporary file, and was
creating a temporary file in the root directory of the hard drive
unintentionally.
2017-03-06 21:57:47 -08:00