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

6206 Commits

Author SHA1 Message Date
jp9000
c284d26163 UI: Increase Twitch "Stream Stats" height by 50
The default size was too small for affiliates/partners, and would cut
off subscribers.
2019-02-10 18:34:22 -08:00
jp9000
c07c5bb5f3 UI: Allow animated BTTV emojis 2019-02-10 18:22:03 -08:00
Colin Edwards
1af8789ce0 decklink-output-ui: Fix memory leak
Closes obsproject/obs-studio#1656
2019-02-10 18:16:10 -08:00
jp9000
53ba6c0350 UI: Enter graphics context before destroying texture
Fixes a memory leak where the texture would not be properly freed.
2019-02-10 18:13:21 -08:00
jp9000
2a92555f58 libobs: Make sure to destroy effect
This actually isn't necessary because the graphics subsystem technically
automatically frees effects, but that could change, so call this just to
be safe.
2019-02-10 18:12:37 -08:00
jp9000
8c819f9bbd UI: Make "What's New" dialog modeless 2019-02-10 16:27:51 -08:00
jp9000
0d4693e015 obs-ffmpeg: Add a few line breaks for new tooltips 2019-02-10 15:43:08 -08:00
jp9000
b5e1a797c2 UI: Check that CEF loaded before loading integrations
Fixes a case where a certain plugin that entirely replaces OBS's own
browser plugin would cause OBS to crash with the new service
integration.  ..Yea.
2019-02-09 23:09:47 -08:00
Jim
6d84bc4b03
Merge pull request #1654 from VodBox/nvenc-cqp
obs-ffmpeg: Use CQP in jim-nvenc properties text
2019-02-09 16:38:19 -08:00
VodBox
81dc78f50f obs-ffmpeg: Use CQP in jim-nvenc properties text 2019-02-10 13:23:05 +13:00
jp9000
476716798b UI: Fix being unable to drag/drop source list items 2019-02-09 12:56:48 -08:00
jp9000
2680fb00b1 UI: Fix issue with Mixer
Mixer was using the Twitch ID.
2019-02-09 12:26:34 -08:00
jp9000
5d05ab6df6 UI: Do one time reset of dock lock state for v23
In order to make for a better user experience with service integration,
do a one-time reset of the docks locked state, and set the default lock
state to off.
2019-02-09 01:12:18 -08:00
jp9000
8fb36700b2 obs-ffmpeg: Add tooltips for new NVENC settings 2019-02-09 01:12:18 -08:00
Jim
aa9f226aec
Merge pull request #1653 from WizardCM/projector-monitor-count
UI: Start projector user-facing monitor count at 1
2019-02-09 00:46:58 -08:00
Matt Gajownik
6555db7c45 UI: Start projector user-facing monitor count at 1
Consistent with #1638
2019-02-09 19:34:56 +11:00
Warchamp7
b9510dac52 UI: Adjust Acri and Rachni themes
Various tweaks and adjustments to Acri and Rachni for 23.0

Closes obsproject/obs-studio#1652
2019-02-09 00:16:16 -08:00
Gol-D-Ace
133b9462e1 CI: Build service-integration on Windows 2019-02-09 07:07:36 +01:00
jp9000
71130137f3 image-source: Increase slideshow max loaded to 15 2019-02-08 19:00:38 -08:00
jp9000
ecdae0d417 obs-ffmpeg: Disable psycho_aq by default (for now) 2019-02-08 16:16:41 -08:00
jp9000
58be029b14 UI: Fix twitch stream stat window not centering
Fixes an issue where if you auth to twitch, then close the program
without unhiding the twitch stream stats panel, the next time that panel
was unhidden it would be at position 0,0 on your screen.  This
explicitly sets its position to be center of the window beforehand to
ensure that won't occur.
2019-02-08 14:50:50 -08:00
jp9000
96644b31ad UI: Add bttv emote button to Twitch chat window 2019-02-08 01:00:21 -08:00
Jim
bb580c7c03
Merge pull request #1611 from VodBox/misc-ux-changes
UI: Scene item overflow, handle/outline change and hover outline
2019-02-08 00:56:14 -08:00
VodBox
6c880fb3c8 UI: Change preview handles/outline and add hover 2019-02-08 20:58:40 +13:00
VodBox
f095cb2d0e UI: Add scene item canvas overflow to preview 2019-02-08 20:38:53 +13:00
jp9000
a249d26eaa obs-ffmpeg: Do not allow new NVENC on gpu idx > 0
Because the new NVENC implementation requires texture sharing, if the
user chooses to use a secondary GPU, fall back to the old implementation
instead.
2019-02-07 22:47:50 -08:00
Jim
e60023daf5
Merge pull request #1502 from DDRBoxman/decklinkoutui
Decklink: Add UI to control output
2019-02-07 22:12:54 -08:00
Michael Fabian 'Xaymar' Dirks
656dcf4efa enc-amf: Update plugin to Version 2.5.1
Fixes the Profile Level problem with integrated AMD Vega GPUs.

(Jim: Also fixes an issue where the amf-test executable would not build)

Closes obsproject/obs-studio#1619
2019-02-07 18:49:31 -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
ed0c7bcd6a obs-ffmpeg: Add texture-based NVENC encoder implementation
Adds a texture-based NVENC implementation which passes OBS NV12 output
textures directly to NVENC without downloading them off of the GPU,
increasing NVENC performance by a significant margin.

If NV12 textures are unavailable or the new encoder fails to initialize
for whatever reason, it will fall back to the FFmpeg NVENC
implementation safely.
2019-02-07 17:00:47 -08:00
jp9000
8b566f3352 obs-ffmpeg: Update NVENC properties and property defaults
Adds VBR rate control mode, adds a lookahead option, adds psycho visual
tuning option, removes level property (now always set to 'auto'),
removes "2pass" option (replaced by new "Max Quality" preset which uses
2pass by default), modifies a few defaults, and updates their locale
text.
2019-02-07 17:00:47 -08:00
jp9000
9c11772682 obs-ffmpeg: Update display name of FFmpeg NVENC encoder 2019-02-07 17:00:47 -08:00
jp9000
c3f3aa7f25 obs-ffmpeg: Update nvEncodeAPI.h to latest version 2019-02-07 17:00:47 -08:00
jp9000
f5ad8b5d67 UI: If hardware encoder selected, disable post rescale
The post-output rescale option in advanced output mode cannot currently
be used with texture-based encoders, so disable the option when a
texture-based encoder is selected.
2019-02-07 17:00:47 -08:00
jp9000
9fee895359 UI: Use hardware encoding by default if available
If the user doesn't use the auto-configuration on first use, set the
default encoders used in simple output mode to hardware encoders.
2019-02-07 17:00:46 -08:00
jp9000
93ba6e7128 libobs: Add texture-based encoding support
Allows the ability to encode by passing NV12 textures.  This uses a
separate thread for texture-based encoders with a small queue of
textures.  An output texture with a keyed mutex shared texture is locked
between OBS and each encoder.  A new encoder callback and capability
flag is used to encode with textures.
2019-02-07 17:00:46 -08:00
jp9000
cd1607ca6e libobs: Split do_encode in to two funcs
This splits the "do_encode" function in to "do_encode" and
"send_off_encoder_packet", the latter of which allows the ability for
texture-based encoders to manage their own encoding and just simply send
off a packet to the outputs.
2019-02-07 17:00:46 -08:00
jp9000
36ffa65b68 libobs/media-io: Add frame funcs for separate GPU thread
Normally, the total and skipped frame count for the encoder is performed
in the video-io thread.  However, because a new thread is being
introduced for texture-based encoding, the frontend has no way of being
able to query that.  So, instead of making the frontend query that data
separately, just make the texture encoder thread increment the values of
video-io.  That way, the frontend doesn't need to change any code, and
can continue using the same functions for determining the total/skipped
frame count.

This can cause the frame count to be doubled if both a texture-based
encoder and a raw data encoder is active at the same time, but it's an
acceptable alternative.
2019-02-07 17:00:46 -08:00
jp9000
0be02564cb obs-ffmpeg: Implement NVENC video card blacklist
This implements a blacklist of devices that ship with NVENC libraries,
but do not support NVENC, which would cause the plugin to mistakenly
think that NVENC was available when it was not.  If these devices are
the only NVIDIA devices on the system, consider NVENC unavailable.

This is much more efficient than spawning an encoder on startup to see
if NVENC is available, which would incur a ~500 millisecond hit on
startup.  Additionally, also much less crash-prone.
2019-02-07 17:00:46 -08:00
jp9000
8134b8afda libobs/util: Fix bug with get_winver
get_winver is supposed to return a 16bit value in a format equivalent to
0xMMmm (Major minor).  It was returning 0xMM00mm incorrectly instead.
2019-02-07 17:00:46 -08:00
jp9000
e6c719a1dd libobs/util: Fix bug with circlebuf_data
If the index specified is equal to the size of the data, return NULL.
2019-02-07 17:00:46 -08:00
jp9000
9b8bc22ffa libobs: Add ability to reroute encoders
Allows the ability for one encoder to defer to another in case of
failure or unsupported feature.  Okay, fine, it's mostly a hack so the
new NVENC encoder can fall back to the FFmpeg encoder if NV12 textures
aren't in use, that way it does not have to implement raw fallback
support itself.  The settings and properties are pretty much the same,
so there's no reason not to utilize it in order to save time that could
otherwise be spent more productively.
2019-02-07 17:00:46 -08:00
jp9000
2e1a19456a libobs/util: Add get_win_ver_int() func (windows)
Returns the current version number of windows.  The lowest byte is the
minor version number, then the next lowest byte is the major version
number.  E.g. 0x601 for Windows 7, 0x602 for Windows 8, 0x603 for
Windows 8.1, and 0xA00 for Windows 10.
2019-02-07 17:00:46 -08:00
jp9000
28d0cc8b97 libobs: Use NV12 textures when available 2019-02-07 17:00:46 -08:00
jp9000
82848d513e libobs: Add obs_video_active() function
(This commit also modifies UI)

Adds a universal function for determining whether video output is
currently active, rather than having to use video_output_active() on the
value returned by obs_get_video().
2019-02-07 17:00:46 -08:00
jp9000
93fc61fa82 libobs/graphics: Add NV12 texture support 2019-02-07 17:00:46 -08:00
jp9000
b64d7d71d0 libobs/graphics: Add texture sharing functions 2019-02-07 17:00:46 -08:00
jp9000
0a202ab77b UI: Fix potential race condition
The signal mutex can be locked within other signal mutexes, causing a
potential hard cross-lock when releasing certain sources.  Instead,
defer the Disconnect() call to the UI thread.

This fixes a potential freeze on exit.
2019-02-07 17:00:46 -08:00
jp9000
a88b440290 UI: Add Twitch integration 2019-02-07 16:28:19 -08:00
jp9000
4710c04204 UI: Add Mixer integration 2019-02-07 16:28:19 -08:00