Commit Graph

257 Commits (d07664b1296d9804d7f0e31aab5a2dea9b498e66)

Author SHA1 Message Date
jp9000 d07664b129 UI: Add option to select recording format
Add a listboxes to recording to allow changing file formats (allows mp4,
mov, mkv, ts, flv)
2015-06-21 22:34:51 -07:00
Jim 859415943f Merge pull request #436 from ThoNohT/output-folder
Use correct output folder for Show/Remux
2015-06-09 17:32:28 -07:00
jp9000 d16ec97f7b UI: Change default simple audio bitrate to 160
The audio bitrate required is insignificant relative to the video
bitrate, and due to the fact that it's possible that a lower-quality
encoder may be in use (such as FFmpeg's AAC encoder), setting the
default to 160 is really more ideal to reducee any potential quality
loss.
2015-06-05 08:57:01 -07:00
Eric Bataille e42aee5da9 UI: Use correct output folder for Show/Remux
Ensures that the "Show Recordings" an "Remux Recordings" file menu
items will open the recordings folder from the currently active
output mode rather than always the simple output mode.
2015-06-04 20:57:16 +02:00
jp9000 e7eaa268e5 UI: Add option to disable aero on windows vista/7
On windows vista/7, you cannot really use display capture efficiently
without disabling aero, so this will add an option to settings to allow
it to be disabled and cause it to be disabled on startup.
2015-06-02 19:18:15 -07:00
jp9000 4b422d7d23 UI: Replace os_get_config_path with GetConfigPath
This allows the UI to be able to use a custom config path for cases such
as portable mode, where the config path is relative to the executable.
2015-06-01 16:42:30 -07:00
jp9000 13bed1a448 UI: Replace Qt5Network classes with libcurl
The Qt5Network classes seem to only support OpenSSL, and because OpenSSL
isn't available on windows, we would have to distribute it with the
program to get SSL access working.  The problem with that is that
OpenSSL is not GPL-compatible, so we cannot distribute OpenSSL with the
program, which means we have to find a better (and preferably superior)
library for accessing remote files that can use the windows SSPI for our
SSL needs, which comes with the operating system.

Fortunately, libcurl is probably the best library out there, and can be
compiled with SSPI instead of OpenSSL, so we're just going to switch to
libcurl instead.  Originally I thought it didn't support SSPI, otherwise
I would have implemented it sooner.

As a side note, this will make it so we'll able to get files from the
internet via plugins, which will be quite useful.
2015-05-24 16:20:13 -07:00
Palana f6234ec90d UI: Fix push-to-* localization strings being swapped 2015-05-12 21:36:46 +02:00
Palana 37069d372f UI: Add Start/Stop Recording/Streaming hotkeys 2015-05-11 20:45:28 +02:00
Palana 6192b34ab3 UI: Add OBSBasic::StartStreaming/StopStreaming 2015-05-11 20:45:28 +02:00
Palana 508f04d927 UI: Add OBSBasic::StartRecording/StopRecording 2015-05-11 20:45:28 +02:00
Palana 054f00ced1 UI: Add SelectScene hotkey
UI supplied per scene hotkey to allow switching between scenes; this
has to be done in the UI since it's up to the application to define
what exactly "changing/selecting a scene" means (changing the output
of channel 0 may not be enough for other applications)
2015-05-11 20:45:28 +02:00
Palana 9cda23f4b9 UI: Add basic hotkey integration 2015-05-11 20:45:26 +02:00
Palana 9f0696c1d8 UI: Preserve service hotkey data 2015-05-11 20:45:26 +02:00
Palana 1d39c3e9b6 (API Change) libobs: Add hotkey data to *_create functions 2015-05-11 20:45:25 +02:00
Palana ec1043515b UI: Move Recording button label update logic 2015-05-07 02:08:09 +02:00
Palana f1f1ca45df UI: Selectively disable focus frame
NoFocusFrameStyle was meant to disable focus frames around the scenes/sources
list (on OSX); unfortunately it also removed focus frames from controls that
should have focus frames like input boxes in the settings window
2015-05-07 02:08:09 +02:00
Palana 71abed387f (API Change) libobs: Make obs_service refcounted 2015-05-07 02:08:05 +02:00
jp9000 881d1a79d2 UI: Add YUV 4:4:4 format option 2015-04-18 00:03:20 -07:00
jp9000 abdc2b61ce UI: Make RGB output use RGB, not BGR
Noticed that the red and blue channels were inverted when testing.
2015-04-15 18:42:06 -07:00
jp9000 0fbf112491 UI: Fix vec2 warning
Fix warning encountered on clang-504.0.40 on OSX 10.9:

obs/window-basic-main.cpp:2884:22: warning: suggest braces around
initialization of subobject [-Wmissing-braces]
		struct vec2 dir = {0.0f, 0.0f};
2015-04-10 10:07:56 -07:00
jp9000 167e781b5e UI: Add fullscreen projector options
Add the ability to use a fullscreen projector for scenes, sources, and
the preview display.
2015-04-10 07:27:37 -07:00
jp9000 b7421aafde UI: Add up/down/left/right position shortcuts
Allows nudging of selected items in the direction pressed when the
preview window is focused.
2015-04-10 07:27:35 -07:00
jp9000 167df61d03 UI: Add context menu to preview
Includes the ability to disable the preview and general source context
menu options (add/remove/filters/properties/etc)
2015-04-10 07:27:35 -07:00
jp9000 1cfe72664a UI: Remove listbox selection if deselected
If the item currently selected in the source listbox is deselected in
the preview, then make sure to deselect it in the listbox as well.
2015-04-10 07:27:34 -07:00
jp9000 853e63765e UI: Remove redundant config settings
These are replaced by other settings in the global ini file.
2015-04-10 07:27:33 -07:00
jp9000 206ae650de UI: Rename "MainWindow" ini section
Rather than using [MainWindow] in the global ini, explicitly state
BasicWindow instead so we know it's for the basic user interface.
2015-04-10 07:27:33 -07:00
jp9000 9e39a2c787 UI: Use setGeometry to restore saved dimensions
There was an issue where the position/size would keep changing every
time the program opened/closed, was due to the fact that we were not
calling setGeometry to restore the position/size.
2015-03-25 14:14:42 -07:00
jp9000 3c5cc5cd54 UI: Add visibility checkbox to main sources list
Adds a visibility checkbox to the main sources list so that users can
temporarily disable/re-enable sources.  Only applies to scene items, not
the sources themselves.
2015-03-25 14:12:02 -07:00
jp9000 86ed7f12f3 UI: Allow scenes to use filters 2015-03-25 14:12:01 -07:00
jp9000 ceba24c7e9 UI: Add user interface for filters 2015-03-25 14:12:00 -07:00
jp9000 87965fa9eb UI: Clear list boxes in ::closeEvent
Ensures that ->deleteLater events are put in to the event queue before
the destructor is called.
2015-03-22 19:18:12 -07:00
jp9000 6b3d30ef03 UI: Flush event queue before obs_shutdown
Sometimes events with rogue source references are in the event queue
when the program is shutting down.  This can cause the program to
reference freed data.  Processing those remaining events before shutting
down solves the issue.
2015-03-22 19:18:12 -07:00
jp9000 c4ef2522ad UI: Destroy save timer before closing main window
This prevents the save timer from unexpectedly going off during the
middle of the save process.
2015-03-22 19:18:11 -07:00
jp9000 363d8b890d UI: Store proper window pos/size
Only store the last restored (non-maximized and non-minimized) window
position and size on exit.
2015-03-22 19:18:09 -07:00
jp9000 9832a760b8 (API Change) Always use planar float audio output
Core API functions changed:
-----------------------------
EXPORT bool obs_reset_audio(struct audio_output_info *aoi);
EXPORT bool obs_get_audio_info(struct audio_output_info *aoi);

To:
-----------------------------
EXPORT bool obs_reset_audio(const struct obs_audio_info *oai);
EXPORT bool obs_get_audio_info(struct obs_audio_info *oai);

Core structure added:
-----------------------------
struct obs_audio_info {
	uint32_t            samples_per_sec;
	enum speaker_layout speakers;
	uint64_t            buffer_ms;
};

Non-interleaved (planar) floating point output is standard with audio
filtering, so to prevent audio filters from having to worry about
different audio format implementations and for the sake consistency
between user interfaces, make it so that audio is always set to
non-interleaved floating point output.
2015-03-12 22:22:02 -07:00
Socapex 6a16778bc9 UI: Implement theme selection option
OBS will offer the user a list of themes which are .qss files inside
data/obs-studio/themes.  If no theme is found in the configuration, it
loads the default theme for the system.
2015-03-12 09:27:18 -07:00
jp9000 5faa5157c5 UI: Change default retry delay to ten seconds
Two seconds is a bit low apparently, and some services don't seem to
like it.
2015-03-07 10:10:41 -08:00
Socapex baa1890ed6 UI: Save position and size of main window
Resolves bug tracker issue #0000143

Closes Pull Request #396
2015-03-06 08:54:31 -08:00
jp9000 f4704cf4a8 UI: Use 'reorder' signal for scene item reordering
The old signals for for reordering have been removed; the new signal to
use is the 'reorder' signal, which means that the list needs to be
refreshed.
2015-03-05 02:28:17 -08:00
Caleb Anderson c3e382c8f7 UI: View Log menu entry in Help -> Log Files menu
Since the file being logged to changes with each run, opening a log
file is a tad more involved than desirable when it's necessary to view
the log each time OBS is run. This new menu entry shortcuts opening the
file from the file system manually.
2015-02-24 01:44:37 -07:00
Socapex 86d4ee68e6 UI: Do not save the project if null
If the jsonData string is null, then there's nothing that should be
written.

Closes pull request #366 from Socapex/debugcrash
2015-02-14 12:19:41 -08:00
fryshorts 90ccae6f4c UI: Ensure only one advanced audio settings window
Add a check to prevent that the advanced audio settings dialog is only
once. When the dialog is already present raise it to the top instead.
2015-02-13 13:11:15 +01:00
jp9000 c2832b8b1c UI: Add "enforce streaming service settings"
Add a checkbox named "Enforce streaming service encoder settings"
checkbox to advanced output.  Disabling this checkbox allows the user to
optionally disable the enforcement of streaming service encoder
settings.  I had a user complain that they didn't want to always have
the service's preferred encoder settings forced on them.
2015-02-10 22:10:40 -08:00
jp9000 b72e68afe7 (API Change) Fix obs_service_gettype func name
Before:                After:
obs_service_gettype    obs_service_get_type

It seems there was an API function that was missed when we were doing
our big API consistency update.  Unsquishes obs_service_gettype to
obs_service_get_type.
2015-02-07 08:19:34 -08:00
jp9000 69c6714090 UI: Make service settings use OK/Apply/Cancel
Currently service settings are updated in real time via the properties
view, which means that OK/Cancel/Apply have no effect.  This fixes that
by using the new type of properties view that operates only on settings
data, not an object.
2015-02-07 08:11:46 -08:00
jp9000 17c342bf61 UI: If active, prompt user before exiting
Precautionary measure to prevent the user from accidentally clicking the
'exit' buttons
2015-02-07 03:39:16 -08:00
jp9000 a3e47e53bf UI: Add button for adv. audio properties
Add a button to the main window to access advanced audio properties to
make it a bit more visible to users.

To facilitate this, the bottom part of the window was switched to a grid
layout.
2015-02-07 02:43:37 -08:00
jp9000 8b2614ddc2 UI: Add advanced output settings
Adds an 'advanced' mode to the output settings to allow more powerful
and complex streaming and recording options:

- Optionally use a different encoder for recording than for streaming to
  allow the recording to use a different encoder or encoder settings if
  desired (though at the cost if increased CPU usage depending on the
  encoders being used)

- Use encoders other than x264

- Rescale the recording or streaming encoders in case the user wishes to
  stream and record at different resolutions

- Select the specific mixer to use for recording and for streaming,
  allowing the stream and recording to use separate mixers (to for
  example allow a user to stream the game/mic audio but only record the
  game audio)

- Use FFmpeg output for the recording button instead of only recording
  h264/aac to FLV, allowing the user to output to various different
  types of file formats or remote URLs, as well as allowing the user to
  select and use different encoders and encoder settings that are
  available in the FFmpeg library

- Optionally allow the use of multiple audio tracks in a single output
  if the file formats or stream services support it
2015-02-06 11:55:48 -08:00
jp9000 a2373b1258 UI: Add buffer size to 'simple' settings 2015-02-06 03:56:19 -08:00