52 Commits

Author SHA1 Message Date
Richard Stanway
28cdebdc9e UI: Don't set audio encoder track index in Adv Output
The audio track should always be 0 for RTMP output. The previous code
accidentally used the audio track index to set the encoder track index.
If the chosen audio track was track 2, this enabled the experimental
multi-track RTMP output code. This then caused streams to fail as if
there were network problems, as popular RTMP services like Twitch don't
understand the multi-track RTMP stream and the connection hangs.
2020-02-23 01:04:04 +01:00
jp9000
cce734a0aa UI: Allow rescaling for texture-based encoders 2020-02-18 21:00:57 -08:00
Aaron Boxer
0881b4e722 UI: Use new ffmpeg-encoded-output for non-RTMP urls 2019-11-27 14:40:52 -05:00
Clayton Groeneveld
bab3391ce4 UI: Use radio buttons for FLV track selection 2019-11-09 08:19:41 -08:00
Joel Bethke
63d66c87e4 UI: Fix audio bitrate not being set in simple mode 2019-10-25 10:56:26 -05:00
jp9000
b486cc6f9e UI: Disable NVENC lookahead if dynamic bitrate on
Lookahead causes playback issues when bitrate changes mid-stream.
Bitrate can suddenly drop to 0, and other issues such as audio
stuttering on Twitch have been observed.  Turning off lookahead fixed
the issue.  Lookahead is normally off by default anyway.
2019-09-10 12:01:10 -07:00
jp9000
1986445511 UI: Fix bug where FTL was using AAC instead of opus
When the streaming audio track was separated from the recording tracks
in advanced output mode in be8c06334, it mistakenly removed the opus
audio encoder code when FTL is used.  This restores that code.
2019-08-22 15:08:24 -07:00
jp9000
8ee0480138 UI: Add dynamic bitrate support to the UI
Adds dynamic bitrate support (marked as beta) to the advanced settings
for now.
2019-08-18 03:16:37 -07: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
be8c063346 UI: Make adv. streaming audio encoder independent
Allows the ability to pause when streaming and recording use the same
tracks in advanced output mode.
2019-07-06 09:27:40 -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
Clayton Groeneveld
493962330c UI: Use stream track if no tracks are selected 2019-06-17 17:52:30 -05:00
Richard Stanway
90df9ea290 UI: Update error message severity levels and show additional info 2019-04-19 05:45:19 -07:00
Jim
b2bc1e159b
Merge pull request #1589 from caffeinetv/minor-improvements
Minor improvements
2019-04-14 03:43:05 -07:00
jp9000
6bf39f763d UI: Do not allow post-GPU rescaling on gpu encoders 2019-02-26 08:03:49 -08:00
jp9000
1c4a6ca6c6 UI: Make workaround for Logitech plugin hard lock
In commit d17ee20863, we attempted to fix a race condition crash in the
Logitech plugin by deferring the "stream/recording/replay buffer active"
calls to the UI thread.  However, the Logitech plugin loop_function
funciton can call obs_frontend_streaming_active/etc functions while the
UI thread waits for the loop_function thread for many OBS events,
causing a hard lock in the Logitech plugin.  This fixes that by making
the obs_frontend_streaming_active/etc functions completely atomic
instead.  It's a bit of a hack but it's better than accessing objects.
2019-02-26 06:37:01 -08:00
jp9000
79613b6696 UI: Use new NVENC by default in simple output mode
If the new texture-based NVENC implementation is available, uses it by
default when a user is using simple output mode.
2019-02-07 17:00:47 -08:00
jp9000
08fb29a035 UI: Add Auth and OAuth classes
Allows the ability to authenticate to a specific service.  Typically via
OAuth.
2019-02-07 14:47:15 -08:00
Matthew Orlando
54e7267ad9 UI: Show output's last error in failure dialog
Logs the last output error if given.
2019-02-02 15:29:05 -08:00
Matthew Orlando
f41bc2c32b UI: Fix unencoded stream failure
A stream will fail to start if the output_info does not have an
encoded_audio_codecs string, even if the output is not flagged as
encoded. This allows unencoded outputs to omit that string.
2019-02-02 15:16:15 -08:00
pkv
1f5dd38a40 UI: Fix audio recording for lossless simple (#1616)
The first audio track was not recorded following the API changes for
 custom ffmpeg recording (adding multi-track support).
 This fixes the issue (spotted by EposVox, thanks to him for the report).
2019-01-30 22:58:22 -06:00
pkviet
047e586eaf UI: Add multi-track FFmpeg output support 2018-10-04 20:32:35 -07:00
jp9000
310c98e641 UI: Fix bug with advanced output service settings
When the user had advanced output mode selected and they created a new
profile, enforced service settings for advanced output mode would not be
applied because GetDataFromJsonFile would return a nullptr (because the
settings file did not yet exist).  Instead of returning nullptr, always
return a valid data object, and in addition, apply the defaults of the
encoder to pass to obs_service_apply_encoder_settings just to be safe.
2018-07-20 01:57:57 -07:00
SuslikV
6e189c156b
UI: Fix no_space file naming for replays
Replays was ignoring user's settings when generating replays filenames.
2018-04-26 17:54:47 +02: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
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
Richard Stanway
91c292d394
UI: Show error if empty recording path specified
Same as 937ec4d but for advanced output.
2017-08-07 00:40:20 +02:00
Richard Stanway
0c0ffb341c
UI: Report more detailed output errors if available 2017-08-07 00:32:52 +02:00
Richard Stanway
937ec4d552
UI: Show error if empty recording path specified 2017-08-06 23:59:03 +02:00
Michael Fabian Dirks
fbefa080b0 UI: Fix incorrect properties set for Hardware (AMD)
Due to an oversight in enc-amf with strcmp, the code currently causes
certain weirdness to appear.  This fixes it so it will use "High"
Profile instead of attempting to use "Constrained Baseline" and also
changes it to actually set things up for "Constant Bitrate" instead of
"Variable Bitrate (Latency Constrained)".  Finally I've added a slight
change that always makes it set the B-Frame Pattern to 0 in order to
work better with VCE2.0 and VCE3.0 cards.

Closes jp9000/obs-studio#978
2017-08-01 03:00:42 -07:00
jp9000
c5b26fe75c UI: Return false if audio encoder creation fails 2017-08-01 02:27:35 -07:00
jp9000
d98bda8fee UI: Remove trailing whitespace 2017-08-01 02:27:35 -07:00
jp9000
960958a4ca UI: Fix potential crash when outputs change
If the service settings change and the output type changes, the previous
signals would attempt to disconnect after the output has been destroyed,
and subsequently that would cause a crash.
2017-07-25 19:01:29 -07:00
jp9000
753bf20ed7 UI: Allow outputs to use different audio codecs
Allows an output to automatically specify which audio codec it requires
and use it instead of AAC.  This change is intended to be
behind-the-scenes and seamless to the user.
2017-07-14 12:44:12 -07:00
jp9000
3491487c71 UI: Allow services to use different outputs
Allows a service to specify the output it needs in order to function as
configured.

NOTE: This functionality should be considered temporary as a seamless
means of implementing support for different output types within the same
service.  Ideally, different services should be used for this
functionality.
2017-07-14 12:43:04 -07:00
Richard Stanway
2933b89733
UI: Add support for showing output error messages 2017-05-15 12:03:42 +02: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
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
Michael Fabian Dirks
2e8ec44db0 UI: Update Simple Mode AMD Presets
Due to the default value assigned to AMF.H264.VBVBuffer.Strictness and AMF.H264.Version, the config upgrade code ran every time someone tried to use simple mode. That caused the AMF.H264.VBVBuffer.Strictness value to always be stuck at 100, which is wrong for streaming and recording.
2017-02-27 21:47:34 +01:00
derrod
1fd302218b UI: Add gop size option for custom ffmpeg output
Closes jp9000/obs-studio#804
2017-02-25 09:08:01 -08:00
derrod
379b41aa0e UI: Add options for new socket loop 2017-02-25 06:21:24 -08:00
derrod
6bc1ecc794 UI: Add warning if starting the output fails
This is mainly to give visual feedback to those affected by NVENC not
working with older driver versions. Currenlty obs fails silently which
could go unnoticed for users who are using hotkeys as well as confuse
users who are not trained to read their logs when issues occur.

Closes jp9000/obs-studio#788
2017-02-14 19:21:19 -08:00
jp9000
c4ec1bc28a UI: Increase maximum audio tracks to 6 2016-12-21 17:14:24 -08:00
jp9000
ec60ab9bc6 UI: Add file prefix/suffix options for replay buffer
Adds the ability to use a specific prefix and/or suffix on replay buffer
filenames to distinguish them from normal recordings.  Defaults to
having the prefix "Replay".
2016-12-09 14:48:44 -08:00
jp9000
f790d0fe08 UI: Separate replay buffer from recording
Replay buffer and recording should be separate in case the user wants to
start recording from a specific point rather being forced to reconfigure
for regular recording.

Creates a new button on the main window below the recording button for
turning on/off the replay buffer.
2016-12-09 14:47:03 -08:00
jp9000
752c118f2e UI: Add replay buffer options to simple output mode 2016-12-08 03:36:19 -08:00
Michael Fabian Dirks
949400118e UI: Update settings and fix presets for simple AMD encoder 2016-11-17 04:40:49 +01:00
Michael Fabian Dirks
01a33edea9 UI: Add AMD presets and update settings 2016-11-03 20:34:57 +01:00
Michael Fabian Dirks
857cf00a39 UI: Implement simple output mode presets for AMD
Closes jp9000/obs-studio#630
2016-09-26 18:51:03 -07:00