Commit Graph

122 Commits (fa7286f84cb3c27b9bd17659bba80e346e75203e)

Author SHA1 Message Date
jp9000 b574407c74 UI: Remove cbr/bufsize from simple output mode
CBR is now always on by default for streaming, so there's no reason to
have a setting for this in particular.  Still available in advanced
output settings of course, but simple output mode really should be kept
as simple as possible.
2015-09-11 08:43:10 -07:00
jp9000 a4f8d18948 UI: Move reconnect options to advanced settings
This is mostly just to remove the unnecessary clutter from the output
sections.  The reconnect settings are generally rarely modified by users
as it is.
2015-09-10 21:54:11 -07:00
jp9000 d1293b2b8a UI: Add stream delay options to advanced settings
I added stream delay options to advanced settings not just because I
feel it's an advanced option, but also to reduce clutter in the outputs
section and its sub-sections, which already have far too many options as
it is.
2015-09-10 12:13:40 -07:00
jp9000 75dcd1ffa3 UI: Allow generated filenames for FFmpeg output
This changes the way the advanced output section's FFmpeg output
settings work by allowing the user to select whether they want to output
to a file or output to a URL, and makes it so file names are
automatically generated like other recording outputs.

If they choose to output to a file, it'll only require an output
directory similarly to how other recording outputs work.  They can
select a directory to output to rather than being required to type in a
full path and filename; the filename is automatically generated.  The
extension is also automatically retrieved from libff depending on the
format selected.

Otherwise if they have Output to URL selected, it'll show a simple edit
box where they can type in the target URL.
2015-08-19 11:56:18 -07:00
jp9000 66f7330a58 UI: Remove properties window UI file (not needed)
The properties window UI file has no point at this time.  It's just a
window with a widget inside of it.
2015-07-20 19:11:35 -07:00
jp9000 7c97e21a1f UI: Add menu options to open settings folders
Adds "Show Settings Folder" and "Show Profile Folder" items to the file
menu.
2015-07-03 18:35:33 -07:00
jp9000 f9314128ea UI: Add Profiles
Adds setting profiles to the basic user interface.  For each profile, a
subdirectory for the profile will be created in
[config_dir]/obs-studio/basic/profiles which will contain the settings
data for each profile.
2015-07-03 18:35:30 -07:00
jp9000 7d6a12f49e UI: Add scene collections
Adds scene collections to the menu bar, which allows you to duplicate,
rename, remove, or add clean new scene collections.

Scene files are now stored in ./obs-studio/basic/scenes directory with
filesystem-safe names.
2015-07-03 18:33:57 -07:00
shousa 708bac734f UI: Add Audio bitrate
CoreAudio AAC encoder is now available for both AAC-LC and HE-AAC.
Added some Audio bitrate settings for lower bitrate region.
2015-07-01 20:00:19 +09:00
Palana fc0819ca32 UI: Add workaround for drag&drop removing items with Qt-5.4/win
Workaround taken from <http://stackoverflow.com/a/30291775>,
potentially relevant Qt bug:
<https://bugreports.qt.io/browse/QTBUG-45365>
2015-06-28 05:09:46 +02:00
Palana b53d6e9e58 UI: Add drag&drop reordering for the sources list 2015-06-28 05:09:45 +02:00
Palana 95857b4443 UI: Enable drag&drop reordering for scenes
The empty implementation for the QDataStream operators is necessary to fix
a Qt assertion: "QVariant::save: unable to save type
'std::vector<std::shared_ptr<OBSSignal> >' (type id: 1036)."

It doesn't seem like a full implementation of the stream operators would be
useful since the signal registration is very specific to the interaction
between the scenes and sources list, i.e. in case the scenes list ever accepts
scenes from sources (not 'obs_source's) other than itself (non InternalMove
drag&drop?) it would have to register those scenes with the libobs core which
should trigger the normal signal registration
2015-06-28 05:09:45 +02:00
jp9000 84567f2745 UI: Implement scene reordering
This simply saves/loads the actual list widget item order.

The reason why this is done is because internally, libobs doesn't have a
list of scenes, it only has a list of sources.  The list of scenes is
actually something artificially implemented by the basic window user
interface.
2015-06-25 03:55:33 -07:00
jp9000 f15965e721 UI: Add menu to visit website to basic main window 2015-06-25 01:02:47 -07:00
jp9000 c6a3287a16 UI: Remove unused actions from basic main window 2015-06-25 00:35:20 -07:00
jp9000 a24af63527 UI: Allow multi-track recording in advanced output 2015-06-21 22:34:52 -07:00
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
Palana 9b07309147 UI: Pre-select "General" entry when launching settings
This is just for visuals, no functionality change
2015-05-13 22:48:38 +02:00
Palana c23c071ba2 UI: Add Push-to-talk/mute settings to audio settings 2015-05-11 20:45:27 +02:00
Palana d28e80ae39 UI: Add hotkeys page in settings dialog 2015-05-11 20:45:27 +02:00
jp9000 724644ef03 UI: Add warning for non-NV12 color formats
Non-NV12 video formats are primarily intended for recording.  For
streaming, if the libobs color format is not set to NV12, it's likely
that the video frames will have to be converted to NV12, which will use
extra CPU usage.  Due to that fact, it's important to warn the user of
that potential extra increased CPU usage that may be required when
streaming.
2015-04-18 00:03:22 -07:00
jp9000 881d1a79d2 UI: Add YUV 4:4:4 format option 2015-04-18 00:03:20 -07:00
jp9000 95d96f043b UI: Enable video output format advanced option
This allows using NV12, I420, or RGB output video formats.  This option
will set what obs itself outputs frames as.

It's important to note that this is only ideal for specific FFmpeg
encoders that support the desired video format; for example, if you use
RGB and use the huffyuv encoder, huffyuv will now properly output in RGB
instead of YUV NV12/I420.

I420 is useful for eliminating the NV12->I420 conversion for the
AVerMedia encoders, as AVerMedia encoders only support I420 input.

A second even more important note about RGB is that if the encoder does
not support the format you are using, it will be converted on the CPU to
a format that the encoder supports as it's encoded; so for example
setting the obs output format to RGB and then using x264 will be futile
and end up using needless amounts of extra CPU than if you just had obs
set to NV12, which is the most common and ideal format for x264.

In the future, native output of other YUV formats might be implemented
(such as YUV 4:2:2).
2015-04-15 18:43:44 -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 3816b0bff9 UI: Fix tooltips for scene move up/down buttons 2015-04-10 07:27:31 -07:00
kc5nra b218957f38 UI: Add Format, Audio and Video ComboBoxes
Adds ComboBoxes for selecting format and audio/video
codecs. The ComboBoxes also show only valid codec
combinations for a particular container format.
2015-03-30 18:16:57 -05:00
jp9000 ceba24c7e9 UI: Add user interface for filters 2015-03-25 14:12:00 -07:00
jp9000 399eb6d330 UI: Add 'mute' checkbox style hint 2015-03-25 10:03:24 -07:00
jp9000 53a98ecbe5 UI: Add 'visibility' checkbox
This checkbox gives an 'eye' icon that indicates whether something is
visible or not.  The color of the icon is influenced by the current
style's foreground color.
2015-03-25 10:03:23 -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 7bd85233cc UI: Make "output mode" label disabled if active
I had previous made the output mode list box become disabled, but
neglected to do it for the label as well.
2015-03-12 09:27:17 -07:00
jp9000 21b8e6462b UI: Give "advanced" section icon a white border
Instead of trying to replace this icon, I feel like just giving it a
white border is sufficient to make it usable in both light and dark
themes.

The only other option is to add icon changing code for themes for this
particular type of widget, and I felt it was best to not go down that
route due to the complexity involved.
2015-03-12 09:27:16 -07:00
Socapex a62f079541 UI: Add dark theme
Links up certain controls via a "themeID" property so the icons can by
dynamically changed via the qss file if needed.
2015-03-12 09:27:16 -07:00
HomeWorld 1a7e594bdb UI: Optimize OBSBasic.ui
This optimizes the main OBSBasic.ui window so that it uses fewer objects
and thus fewer allocations.  Closes pull request #386

(message added by Jim)
2015-03-01 19:06:16 -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
jp9000 20d1c2c410 UI: Add 'Advanced' settings section
Currently, this allows the setting of values such as:
- Audio buffering time
- Color format (still somewhat unsupported)
- YUV color space (if a YUV format)
= YUV color range (if a YUV format)

More color formats will be added in the future, such as RGB and YUV
4:2:2 formats.
2015-02-11 13:10:57 -08:00
jp9000 bd2110947a UI: Disable unused export/import menu options 2015-02-11 13:10:56 -08: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 3ca57fbb3e UI: Set simple mode reconnect signal to toggled()
clicked() is the wrong signal to use, it only activates on actual user
click, not when the value is changed.  toggle() activates whenever the
value itself is changed.
2015-02-10 22:10:38 -08:00
jp9000 368f04727c UI: Set simple output mode bufsize minimum to 0 2015-02-10 22:10:07 -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
jp9000 fcb8561d6c UI: Rename 'x264 Preset' to 'Encoder Preset'
In the future, encoders other than x264 may end up filling this preset
list with their own values.
2015-02-04 16:51:54 -08:00
jp9000 8ffd7ec16c UI: Rename 'Custom x264 Settings'
Rename 'Custom x264 Settings' to 'Custom Encoder Settings', because it
may be useful to use this for encoders other than x264
2015-02-04 16:51:53 -08:00
Blackhive e198e27997 UI: Fix minor stylesheet issues
This does a few small things
-Moves buttons down 20px to the same height as the list boxes
-Adds a QFrame around scrollArea for mixer list.

Q: Why was this done?
A: When you go to style the mixer list in regards to adding a border,
shadow, or glow, it needs to be done on the QFrame. If you do it on the
scrollArea itself, the scrollbars will overlap the bottom of the border,
causing the border to look cut-off. Additionally, the other two sources
and scenes list widgets already had frames, so they did not have this
problem.
2015-01-14 02:15:30 -05:00
HomeWorld 24776b7f65 UI: Use SourceListWidget for sources list 2015-01-05 03:39:01 -08:00
jp9000 4993f2fa22 UI: Use VScrollArea for volume control area 2015-01-03 03:02:23 -08:00
jp9000 6fc52dfb16 UI: Add advanced audio properties dialog
This dialog gives options such as increasing audio past 100%, forcing
the audio of a source to mono, and setting the audio sync offset of a
source (which was an oft-requested feature)
2014-12-28 01:51:56 -08:00
jp9000 1d9440c6a7 Basic UI: Raise bitrate limit to 1000000
I don't know why on earth I set the limit to 16000.  There's no reason
why there should really be a low hard limit.
2014-12-21 10:14:20 -08:00