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

74 Commits

Author SHA1 Message Date
Richard Stanway
a53c59e8c7 UI: Determine rate control after creating encoders
If the user hasn't specifically set a rate control and left OBS at the
default of CBR, the settings loaded by GetDataFromJsonFile will not have
a rate_control parameter present. This causes the replay buffer to think
the user is in VBR mode and use the wrong settings for determining
maximum buffer size. Fixes #2516.
2020-12-12 02:43:35 +01:00
jp9000
7a17f47d8a UI: Allow enabling vod track on custom via ini 2020-12-03 01:31:32 -08:00
jp9000
eac66d773c UI: Fix vod track working with custom server 2020-12-03 01:20:37 -08:00
jp9000
609ec9b556 UI: Fix vod track not working with twitch soundtrack
The vod track in advanced output mode would be overwritten by twitch
soundtrack's vod track. Additionally, simple output mode would overwrite
twitch's soundtrack vod track even when vod track was turned off in
settings.

So instead, if vod track is off, don't clear the secondary encoder
unless it's explicitly our encoder. Additionally, make sure that
advanced output mode's vod track encoder behaves consistently with
simple output mode's vod track so it doesn't get overwritten.
2020-12-03 01:13:10 -08:00
jp9000
53ec75ccd6 UI: Fix aac encoder name
Was meant to be "adv" meaning advanced rather than "avc"
2020-12-03 01:13:10 -08:00
jp9000
fc6d53763a UI: Add Twitch VOD track to simple output mode
Allows the ability to use the separated Twitch VOD track with simple
output mode in addition to advanced output mode.
2020-11-14 08:05:52 -08:00
jp9000
546dcc7a14 UI: Move "enforce" setting to "ignore" stream section
Moves the "Enforce streaming service bitrate" option from simple output
mode to the stream section, renames it to "Ignore streaming service
setting recommendations" (inverting it). When trying to check it, it
will now also display a message box warning the user that it's generally
a not-so-good idea.

Also displays recommended settings for the service.
2020-11-11 09:48:39 -08:00
jp9000
6b81c106d8 UI: Add VOD track support in advanced output
Adds a VOD track option (specific to Twitch) that allows a user to
specify which audio track to use for their Twitch VODs, which uses a
separate encoder to encode the track. This allows users the ability to
choose what audio goes on their VOD, separately from the live stream.
2020-11-04 00:15:25 -08:00
Jim
b32abbe33f
Merge pull request #3083 from pkviet/srtfix4
UI: Enable sps/pps (video headers) repetition (for srt/mpegts)
2020-10-30 23:25:24 -07:00
Matt Gajownik
bc7afb0fae UI: Report detailed output errors for Replay Buffer
Same changes as 0c0ffb341c
2020-10-21 18:10:05 -07:00
hgonomeg
4390eb5591 UI: Fix replay buffer saved event in advanced mode
AdvancedOutput::AdvancedOutput(OBSBasic *main_) lacked
a proper event handler connection
2020-10-18 12:17:31 -07:00
jp9000
3d51602690 UI: Fix replay buffer frontend event not triggering
The frontend API event OBS_FRONTEND_EVENT_REPLAY_BUFFER_SAVED was not
being triggered when hotkeys were used because it was only set to
trigger when the replay buffer button was clicked, not when a hotkey was
used. This fixes it so that the frontend event sends a signal to the
frontend so that hotkeys will actually work.
2020-10-12 16:59:26 -07:00
jp9000
e5d8f345fc UI: Fix screenshots preventing auto-remux
Due to the fact that a global was used on GenerateSpecifiedFilename to
save the remux file name, when a screenshot was made, it would overwrite
the filename being remuxed, because screenshots use the same function to
generate filenames as well.

This solves that problem by removing the global and the changes to
GeneratedSpecifiedFilename, and isolating that to the output handler.

Coincidentally, this bug probably also happened with replay buffers
under certain circumstances.

Fixes obsproject/obs-studio#3497
Closes obsproject/obs-studio#3498
2020-09-26 08:19:27 -07:00
jp9000
2963b3b8ed UI: Create output before calling start stream event
Allows modifying the output OBS_FRONTEND_EVENT_STREAMING_STARTING.
2020-09-16 22:25:09 -07:00
jp9000
7286ee427a UI: Make SetupOutputs virtual instead of ignoring vcam
In 218b936b1d, the virtual camera was ignored when checking the active
state, which is kind of a lackluster solution.  Instead, this makes
SetupOutputs() a virtual function, and calls it before starting the
virtual camera to be more consistent with the rest of the outputs.
2020-09-03 06:56:03 -07:00
jp9000
218b936b1d UI: Fix crash when starting vcam before other outputs
The BasicOutputHandler::Active() function was used for checking whether
outputs had started or not.  However, the virtual camera is not used in
the subclasses; instead it's a part of the base class.  Because of that
fact, when the virtual camera is started, the procedures used to start
up the other outputs are never called, causing outputs to crash because
they hadn't been initialized properly.  For example, starting the
virtual camera, then starting stream/recording would crash.

So, as a simple fix to this, when checking the active status in the
derived classes, do not factor in the virtual camera.
2020-09-03 05:49:58 -07:00
pkv
e0c6ac3675 UI: Apply custom_rtmp service settings to srt output 2020-08-23 11:10:10 +02:00
Clayton Groeneveld
cc565653d3 UI: Simplify path generation code 2020-07-30 17:41:43 -07:00
jp9000
a72a52fa38 UI: Add virtual camera to UI
Adds a virtual camera button to the main user interface.  If virtual
camera is not installed, it will not add the button.  On Windows, it
detects whether the virtual camera filters are properly registered, and
will only add the button if the virtual camera filter is confirmed
registered.

Also adds a virtual camera option to the auto-configuration wizard,
which will just simply set the user's resolution/scale to 1920x1080 at
30 FPS.
2020-07-07 06:09:59 -07:00
jp9000
002886bbac obs-ffmpeg, UI: Allow slash in recording names
Automatically generate directories if slashes are present in a recording
name format set in advanced settings or in the replay buffer
prefix/suffix settings.

Fixes obsproject/obs-studio#2416
Closes obsproject/obs-studio#2858
2020-06-27 05:21:14 -07:00
Richard Stanway
169764fc51 UI: Don't try to load replay buffer hotkey if null
If replay buffer hotkey isn't set, this would cause an error to be
logged due to a null string.
2020-06-18 23:43:52 +02:00
pkv
697563f4db UI: Swap to new srt output
Redirect non rtmp streaming to ffmpeg-mux instead of previous
ffmpeg-encoded-output which has been removed.
2020-05-19 16:15:41 -07:00
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