369 Commits

Author SHA1 Message Date
Matthew McNamara
d8743a2872 ui: Fix unsaved changes dialog showing twice
When clicking the close button with unsaved changes in a source properties
dialog closeEvent and reject are called, which both call ConfirmQuit.
This fixes it by setting the acceptClicked flag correctly in ConfirmQuit
2017-12-08 01:32:40 +01:00
jp9000
0d6204c8af Fix a number of MSVC warnings
Fixes a number of warnings with all modules
2017-12-05 13:53:44 -08:00
Ryan Foster
12abbd9205 cmake: Correct CMake checks for LINUX
Some CMake checks were recently switched from UNIX to LINUX to get them
to not apply to macOS/OSX. Since LINUX doesn't seem to be defined,
switch these checks to UNIX AND NOT APPLE.
2017-12-03 19:10:34 -05:00
Colin Edwards
fcea48490f cmake: Do not require X11 on OSX 2017-12-02 22:40:10 -06:00
jp9000
570cd49b6d UI: Duplicate when double-click switching is used
The studio mode double-click scene switching option disables scene
duplication, which bypasses the user's settings for scene switching in
studio mode.  This fixes it so that scenes are properly duplicated
according to the user's settings.
2017-12-02 16:36:01 -08:00
jp9000
8a38d8e60e UI: Move multiview options to view menu
Moves the multiview (fullscreen/window) options to the view menu to
reduce context menu clutter, and allow using it even when not in studio
mode.

Also adds missing translation strings.
2017-12-02 16:12:03 -08:00
jp9000
3770a24e61 UI: Fix draw issues with multiview projector
Scissor rects would affect the internal effect rendering of sources, so
scissor rectangles aren't the ideal method of restricting draw space.
Instead, use viewports and projection matrices, which are automatically
accounted for by internal source handling.
2017-12-02 15:36:32 -08:00
Shaolin
721cb3dea5 UI: Add Multiview projector
Jim note:

- Refactored code significantly
- Added a context menu option to exclude specific scenes from projectors
- Made it so multiview projectors update when scenes are
  added/removed/renamed
- Increased text quality
- Removed the color sources and replaced them with simple solid
  rectangles
- Increased the border size of "program" and "preview" scenes in the
  lower scene list

Closes jp9000/obs-studio#1068
2017-12-01 12:14:02 -08:00
jp9000
7d2cda57bb UI: Fix issue where studio preview scene would stick 2017-11-30 11:42:42 -08:00
jp9000
42323ea31b UI: Fix scene override when switching off studio mode
The scene override would trigger, but the scene override variable would
stay set, causing the next transition to be the same one that was
previously used for overriding.
2017-11-30 09:51:24 -08:00
jp9000
ed7ae5839b UI: Don't override transition if quick transition
Fixes an issue where quick transitions would not function if the scene
has a transition override set for it.
2017-11-30 09:48:59 -08:00
jp9000
6461b63623 UI: Fix preview/program projectors being swapped
If a preview projector was created in normal mode, it would become a
studio projector in studio mode.  The window title of the window
projector would reflect that it was in fact a preview projector and not
a program projector.
2017-11-30 06:17:07 -08:00
cg2121
60e1d7e90b UI: Implement per-scene transition overriding
Allows the ability to override what specific transition a scene may use
when transitioning to it.

(Original proposal by cg2121, reworked by Jim)

Closes jp9000/obs-studio#1052
2017-11-30 05:10:25 -08:00
jp9000
b5c036974f UI: Fix studio program projectors
The studio mode program view projectors used the wrong saving mechanism.
The save data was copied from the source projectors, which were
dependent on string values, where as it should have been using a boolean
true/false value for specific monitors.
2017-11-29 23:11:38 -08:00
Ryan Foster
f140104da8 UI: Add Studio Mode layout option for portrait mode displays
This commit adds a checkbox to general setting to allow users to enable
a vertically oriented layout for studio mode.

This commit addresses mantis issue 827:
https://obsproject.com/mantis/view.php?id=827

Closes jp9000/obs-studio#1072
2017-11-28 22:24:57 -08:00
jp9000
68e67366d2 UI: Fix bug with studio mode double-click switching
Fixes a bug where the OBSBasic::programScene variable would not be set
for the new program scene when switching scenes via double-clicking on
them.
2017-11-28 03:38:30 -08:00
Ryan Foster
9fce162137 UI: Add Studio Preview Projector
This commit allows a user to create projectors for the preview scene
instead of the program/live scene.

Close jp9000/obs-studio#1071
2017-11-27 00:28:03 -08:00
cg2121
3a43a047d4 UI: Add transition on double-click studio mode option
This adds the ability to switch to a scene by double-clicking it when in
studio mode.

(Edit by Jim: In case this change is undesired by the user, this has
been changed to be an option in general settings; disabled by default)

Closes jp9000/obs-studio#1029
2017-11-26 19:05:50 -08:00
pkviet
bbac3280c1 libobs: Add surround sound audio support
(This commit also modifies the following modules: UI,
deps/media-playback, coreaudio-encoder, decklink, linux-alsa,
linux-pulseaudio, mac-capture, obs-ffmpeg, obs-filters, obs-libfdk,
obs-outputs, win-dshow, and win-wasapi)

Adds surround sound audio support to the core, core plugins, and user
interface.

Compatible streaming services: Twitch, FB 360 live
Compatible protocols: rtmp / mpeg-ts tcp udp
Compatible file formats: mkv mp4 ts  (others untested)
Compatible codecs: ffmpeg aac, fdk_aac, CoreAudio aac,
		   opus, vorbis, pcm (others untested).
Tested streaming servers: wowza, nginx
	 HLS, mpeg-dash : surround passthrough
Html5 players tested with live surround:
	 videojs, mediaelement, viblast (hls+dash), hls.js
Decklink: on win32, swap channels order for 5.1 7.1
         (due to different channel mapping on wav, mpeg, ffmpeg)
Audio filters: surround working.
Monitoring: surround working (win macOs linux (pulse-audio)).
VST:	 stereo plugins keep in general only the first two channels.
	 surround plugins should work (e.g. mcfx does).
OS: win, macOs, linux (alsa, pulse-audio).
Misc: larger audio bitrates unlocked to accommodate more channels
NB: mf-aac only supports mono and stereo + 5.1 on win 10
         (not implemented due to lack of usefulness)

Closes jp9000/obs-studio#968
2017-11-26 03:41:53 -08:00
jp9000
573fbbfead UI: Fix a memory leak when renaming mixer sources 2017-11-26 02:30:26 -08:00
Jim
1866778f61
Merge pull request #1074 from admshao/fix-x11-fullscreen-keypress
UI: Allow keyboard events on X11 fullscreen projector
2017-11-25 18:29:16 -08:00
cg2121
e86754c2a0 UI: Add ability to rename audio sources from the mixer
This adds the ability for users to change the names of audio sources
from the mixer including desktop and mic/aux sources.

Closes jp9000/obs-studio#1055
2017-11-25 00:59:01 -08:00
Jim
a63028dd9c
Merge pull request #1051 from RytoEX/add-frontend-replay-buffer-save
UI: Add Frontend API function to save replay buffer
2017-11-24 22:41:54 -08:00
Jim
5d5da2a380
Merge pull request #1050 from RytoEX/disable-copy-with-no-source
UI: Disable source copy if no sources are selected
2017-11-24 22:40:56 -08:00
nleseul
d22a75401d UI: Make streaming/recording buttons checkable
This makes it so the buttons appear "pressed" while streaming/recording
to more visibly help indicate that they are currently active.

Closes jp9000/obs-studio#1039
2017-11-23 00:54:06 -08:00
nleseul
953af9f3d1 UI: Handle update_properties signal in OBSBasicFilters window
The OBSBasicFilters window did not register a handler for the
"update_properties" signal. Now it does. Addresses issue #1028.

Closes jp9000/obs-studio#1036
2017-11-22 23:38:23 -08:00
Shaolin
6df56e09ce UI: Allow keyboard events on X11 fullscreen projector
X11BypassWindowManagerHint  Bypass the window
           manager completely. This results in a borderless window
           that is not managed at all (i.e., no keyboard input unless
you call QWidget::activateWindow() manually).

This allows the Esc key to close the projector on X11
2017-11-11 14:54:49 -02:00
Richard Stanway
0cbd9cc051 UI: Fix custom ffmpeg output file / URL entry
The default value in the .ui file was out of sync so the signal to
update the stacked widget was never sent.

Fixes https://obsproject.com/mantis/view.php?id=1060
2017-11-08 15:43:48 +01:00
Richard Stanway
9f046dc52b UI: Log when output timer events stop outputs 2017-10-26 18:31:56 +02:00
Ryan Foster
44b3cde9da UI: Add Frontend API function to save replay buffer 2017-10-19 07:16:00 -04:00
Ryan Foster
c8353c90b6 UI: Disable source copy if no sources are selected
This commit addresses Mantis Bug 993. If no source was selected, the
"Copy" context menu item was enabled, but selecting it would do nothing.
This commit disables that menu item when no sources are selected.
2017-10-17 19:22:07 -04:00
jp9000
7bd06e7f26 Update translations from Crowdin 2017-10-17 05:39:22 -07:00
cg2121
0e0db29d80 UI: Fix Pulse Audio not loading saved device 2017-10-16 17:28:50 -05:00
Ryan Foster
0fe4688a34 UI: Disallow pasting duplicates of sources with DO_NOT_DUPLICATE
This commit prevents users from being able to use the "Paste
(Duplicate)" context menu option after copying a source that has the
OBS_SOURCE_DO_NOT_DUPLICATE flag set. Though OBS would correctly paste
the source as a reference, it seems that this behavior was confusing
some users. This fixes Mantis Bug 1034.
2017-10-14 05:05:16 -04:00
Richard Stanway
8e66f180d8
UI: Add missing text for replay buffer hotkey log 2017-10-12 17:49:02 +02:00
Richard Stanway
5c9d3dd30d
UI: Log when starting / stopping via hotkey or timer
This will help resolve incidents where users accidentally started or
stopped their stream without knowing what triggered it (usually from
hotkeys that were forgotten about).
2017-10-12 17:23:56 +02:00
jp9000
d768717b8c rtmp-services: Only update Twitch ingests when necessary
(This commit also modifies UI)

Instead of pinging Twitch every time the program starts up, only pings
for new servers when the ingests are actually being used, and when the
UI uses the auto-configuration dialog.

If ingests have not been cached when using the "Auto" server, it will
wait for 3 seconds max to query the Twitch ingest API.  If it takes
longer than 3 seconds or fails, it will defer to SF.  If ingests were
already cached, then it will use the existing cache immediately.
2017-10-09 10:10:59 -07:00
jp9000
3dc96fbe43 UI: Add ini option to use different graphics adapters
Allows setting a specific graphics adapter index to use for Direct3D 11.
This is currently meant to be sort of "undocumented" in implementing it
this way due to the fact that users will be guaranteed to break their
configurations if this is implemented in the UI (even if in advanced
settings).
2017-10-07 03:05:57 -07:00
jp9000
720a28aeb9 UI: Log generic stream startup failures
These code paths had no logging on failure, resulting in a log file that
would confuse people attempting to perform support for users.
2017-10-06 04:52:25 -07:00
Richard Stanway
05fb67717e
UI/updater: Use TLS 1.2 with WinHTTP
On Windows 7, WinHTTP defaults to using only SSL3 and TLS 1.0. The
obsproject.com server was updated to remove TLS 1.0 support and
this has caused updates to stop working on Windows 7.
2017-10-02 15:33:34 +02:00
jp9000
8f43934be6 UI: Lock graphics context when adding new sources
Prevents a potential cross-lock deadlock.  The UI thread would lock the
scene's mutex in obs_scene_atomic_update, then the item would lock the
graphics context to create a texture.  Meanwhile in the video thread, it
could lock the graphics context in the render loop, then lock the
scene's mutex when rendering.  When doing anything graphics-related, the
graphics context is always supposed to be locked before the scene's
mutex is supposed to be locked (it's designed that way), and the
obs_scene_atomic_update would just bypass that.
2017-09-17 02:47:54 -07:00
Benjamin Schubert
9cba5660e4 UI: Enable Replay Buffer in Advanced Mode
Replay buffer is currently only supported in simple mode.  This change
adds support to advanced mode and is, for the most part, a mirror of the
addition of replay buffer to simple mode.

Mantis-bug: https://obsproject.com/mantis/view.php?id=792

Closes jp9000/obs-studio#1019
2017-09-16 05:55:18 -07:00
Jim
1e1808dbd9 Merge pull request #1005 from SuslikV/patch-1
UI: Fix parent window geometry loading
2017-09-15 10:30:39 -07:00
Jim
34b0f29dc5 Merge pull request #1003 from Fenrirthviti/theme-updates
UI: Allow volume peak to be customized via .qss
2017-09-15 09:33:52 -07:00
Jim
dcd3e627c2 Merge pull request #1027 from SuslikV/patch-2
UI: Add missing option to context menu
2017-09-15 04:13:28 -07:00
Christoph Hohmann
27a8f69eea UI: Use Qt standard buttons in source properties
Use the Qt standard buttons in the source properties dialog to make the
UI consistent.  Also remove the right alignment of the button box to
allow Qt to align standard buttons on the left side of the dialog.

Closes jp9000/obs-studio#1013
2017-09-15 04:05:32 -07:00
SuslikV
2b175d6da9 UI: Add missing option to context menu
Add 'Advanced Audio Properties' option to context menu over empty area
of the Mixer's pane.
2017-09-14 15:01:15 +02:00
cg2121
76b6266689 UI: Allow hiding/unhiding sources in the mixer
Allows the ability to hide/unhide sources in the mixer that the user
doesn't care about or doesn't necessarily want to see (such as video
sources that have audio but don't have any audio playing).  If all
sources are hidden, the user can right-click the mixer's empty area and
choose "unhide all" via a context menu.

Closes jp9000/obs-studio#1002
2017-09-13 21:17:44 -07:00
jp9000
7bde1eb6af UI: Allow right-clicking mixer sources to bring up menu
Allows bringing up properties/filters/etc via right-clicking mixer items
in addition instead of only being able to click the gear icon.  Minor
QoL improvement.
2017-09-13 21:17:44 -07:00
Shaolin
1bae6f3c18 UI: Enable audio monitoring on linux if pulse available
Closes jp9000/obs-studio#940
2017-09-12 03:37:58 -07:00