Commit Graph

99 Commits (b81ab5a32b46b4957ddf17e03f6dd85fc21f2b09)

Author SHA1 Message Date
Norihiro Kamae e46e0f8a3e UI: Fix memory leak when virtualcam fails to start 2022-08-13 01:35:45 -07:00
Jim 9e15114750
Merge pull request #6577 from chippydip/multiple-video-mixes
libobs: Add support for multiple video mixes
2022-08-09 21:37:48 -07:00
Chip Bradford df446c3f6e UI: Add Virtual Camera source selector dialog 2022-07-31 15:39:18 -07:00
gxalpha 8fd2f164b7 obs-ffmpeg: Enable file splitting with obs_data directly
Also modifies UI accordingly.

This can enable file splitting even if no time or storage limit is set.
2022-07-30 15:21:08 +02:00
jp9000 ea5fb710a9 UI: Refactor simple encoders to a func 2022-07-26 09:23:35 -07:00
jp9000 d68539e267 UI: Fix wrong AMD recording preset (simple output)
"hq" is not a valid preset. "quality" is the correct preset to use.
2022-07-24 11:18:18 -07:00
jp9000 2b957c9368 UI: Update simple output to use new AMD encoder 2022-07-21 15:29:25 -07:00
Norihiro Kamae 4ca0273a57 UI: Remove unnecessary UNUSED_PARAMETER 2022-07-19 11:01:00 -04:00
gxalpha 29ae00e4af UI: Add Apple H.264 hardware encoder to simple mode
Adds the Apple Silicon hardware encoder as a simple mode option. For
recordings this only requires being on Apple Silicon (since we use the
Constant Quality setting), while for streaming it requires the user to
be on macOS 13 or newer (since we're using CBR).
2022-07-11 23:45:43 +02:00
gxalpha cc5e5cbb94 UI: Move Simple Mode encoder preset out of Advanced 2022-06-25 16:30:27 -07:00
Yuriy Chumak 84e7db5059 UI: Simple Output Mode for NVENC HEVC 2022-06-05 16:02:58 -07:00
jpark37 f6589b12ae UI: Redo encoder names now that H.264 isn't alone
The old names were simple_h264_recording, simple_h264_stream,
recording_h264, and streaming_h264.

The new names are simple_video_recording, simple_video_stream,
advanced_video_recording, and advanced_video_stream.
2022-05-06 20:58:09 -07:00
jpark37 b45ad961c3 UI: Do not prefer NV12 for I010/P010
Can cause videos to save as 8-bit.
2022-04-29 12:34:56 -07:00
Norihiro Kamae ebc291956c UI: Set automatic file splitting time in minutes
The original PR was made with time specified in seconds because it was
useful to debug the behavior. For production, assuming most users want
to specify 10 minutes or more, the time should be specified in minutes.
2022-04-11 06:58:39 -07:00
Jim b745a100a3
Merge pull request #5371 from norihiro/automatic-file-splitting
Automatic file splitting
2022-04-10 16:49:37 -07:00
Matt Gajownik ff42da373b UI: Fix hotkey JSON error for Advanced Replay Buffer
This matches the Simple output Replay Buffer hotkey code.
2022-01-08 13:34:40 +11:00
jp9000 f295bd9968 Revert "UI: Add checks for overwrite setting to replay buffer"
This reverts commit 02f3495b72.

Multiple issues have come up with this commit. One issue is that
suddenly replays are overwriting themselves despite the option being
disabled. Second issue is that slashes to separate files into
subdirectories no longer work properly with replay buffers.

I'm just reverting it. I do not care enough about this feature to try to
fix it or wait on a fix. If someone wants to fix it they can create a
new PR for it.
2022-01-04 20:42:58 -08:00
Norihiro Kamae 550b1331ac obs-ffmpeg, UI: Reset timestamps at splitting file
This commit adds a setting to reset timestamps when splitting files.
Some NLEs cannot handle video files whose starting timestamp is not
zero. Default is enabed.
2021-12-24 15:59:26 +09:00
Norihiro Kamae 0e81c66f6e UI: Add automatic file splitting
This commit implements a new feature to split recordings in split files
in Advanced output mode.
These basic settings are implemented.
- Enable/disable the feature. Default is disabled.
- Select a type of the limit, time or size.
- Specifies the limit in seconds or MiB.
2021-12-24 15:55:57 +09:00
Mike 02f3495b72 UI: Add checks for overwrite setting to replay buffer 2021-12-17 06:49:44 -08:00
VodBox 3d544653e8 UI: Cleanup libobs C++ type use 2021-11-26 23:23:51 +13:00
jp9000 8f97e32227 UI: Allow overriding keyframe interval if smaller
Allows the ability to override the default keyframe interval via
advanced output mode as long as that interval is smaller than the
recommended keyframe interval.

Fixes an issue where it was impossible to set a lower keyframe interval
than the recommended keyframe interval.
2021-08-24 19:41:43 -07:00
Ryan Foster e0edd753ad UI: Handle mac-vth264 encoder ID change
Before OBS Studio 27, we used our own hard-coded internal encoder IDs on
for the mac-vth264 plugin: vt_h264_hw and vt_h264_sw. As of OBS Studio
27, we changed to using the encoder IDs that Apple's API reports.
Specifically, this behavior occurs due to PR #4105 and commit
6a9f25c8ea.

Unfortunately, this change in encoder IDs failed to take into account
existing user configurations, resulting in users with broken encoder
settings. This change attempts to gracefully upgrade user configurations
to handle the changed encoder IDs.

Fixes #4799.
2021-06-09 17:14:32 -07:00
Clayton Groeneveld 448c7f38d0 UI: Add save notifications to status bar
This shows notifications in the status bar with the following:
- When screenshot is saved
- When replay buffer is saved
- When recording is saved
- When recording is auto remuxed
2021-04-01 07:36:20 -07:00
Hayden McAfee 96ef45cef5 UI: Support FTL URLs for custom streaming service
Custom streaming service URLs beginning with `ftl` are handled by the
`ftl_output` plugin.
2021-01-13 09:44:52 -08:00
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