Commit Graph

7231 Commits (3f6cf0e87114f61be963a33ab6d52b5ca0e17175)

Author SHA1 Message Date
jp9000 707f83f57d deps/media-playback: Fix memory leak
The hardware accelerated decoder context needs to be explicitly unrefed
when it's no longer in use, otherwise it and many resources associated
with it will leak.
2019-08-24 18:15:25 -07:00
jp9000 94581952b5 deps/media-playback: Fix hw accel decode crash
When hardware accelerated decoding is enabled, sometimes it can't
initialize for whatever reason, so it will fall back to software on its
own.  When this occurs, it will not use the hardware pixel format on the
frame; instead it will defer to a standard format on the frame.  So if
the frame format does not match the expected format, assume software
decoding.  (This was also what the hw-decode.c FFmpeg example did if the
format did not match the expected format)
2019-08-24 18:12:02 -07:00
Stéphane Lepin 09e10a46ff libobs: add pointer check in reset_raw_output 2019-08-23 18:59:07 +02:00
jp9000 41e9dd38fa UI: Clarify dynamic bitrate support in tooltip 2019-08-22 16:26:34 -07:00
jp9000 6863140381 obs-x264: Do not display log messages every update
Prevents log spam when dynamic bitrate is used
2019-08-22 16:21:59 -07:00
jp9000 4dd96aa6d9 UI: Move "area" scale below bilinear, above bicubic 2019-08-22 15:15:44 -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 f0140cbb74 obs-browser: Fix audio cutting out
CEF outputs multiple audio streams at once, and OBS was only able to
handle one at a time.  This fixes it by using audio lines for each CEF
audio stream, and mixes them together itself.
2019-08-21 16:07:31 -07:00
jp9000 73704f20db libobs: Add audio lines
Adds the "audio_line" internal source type as a bare source type for the
sole purpose of outputting audio, and the obs_source_info::audio_mix
callback which allows mixing of those audio lines, which is then treated
as normal audio for the source.  Audio line objects should be added as
sub-sources when multiple audio lines from a single source are needed,
then mixed together with the audio_mix callback.

The difference between the new obs_source_info::audio_mix callback and
obs_source_info::audio_render is that obs_source_info::audio_mix (along
with the audio_line source) are only one track, and it outputs audio to
the source automatically via obs_source_output_audio() when the call
completes.  This allows the mixed audio to be treated like a normal
source's audio, in that you can filter it, change its volume, or monitor
it.

This change was necessary because the CEF (used with the browser source)
outputs multiple audio streams at once to a single browser source, so
it's the program's responsibility to mix those streams together itself.
2019-08-21 15:19:19 -07:00
Jim 509d7f49e1
Merge pull request #2041 from cg2121/pause-stuff
UI: A couple of pause changes
2019-08-20 12:23:58 -07:00
Clayton Groeneveld e284b102d8 UI: Simplify toggle pause code 2019-08-20 06:37:48 -05:00
Clayton Groeneveld e770a775c6 UI: Update tooltip when paused 2019-08-20 06:37:22 -05:00
Jim bc787c5e94
Merge pull request #2039 from Vainock/master
UI: Fix inconsistency with spaces
2019-08-19 00:03:43 -07:00
Vainock df88eeb092
UI: Fix inconsistency with spaces 2019-08-19 06:13:51 +02: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 aa4d1d0cd1 obs-outputs: Add dynamic bitrate to RTMP output
The dynamic bitrate operates based upon estimating the current bitrate
output, and then adjusting the bitrate on the fly as necessary when
congestion is detected as a replacement for dropping frames.

This may still need adjustment, as it is difficult to accurately emulate
real-world frame drop scenarios.  This does not currently drop frames at
all, and because of that, very high congestion may cause additional
stream delay to viewers (because data will be buffered), but from
limited testing, most congestion will not cause that and it can safely
recover pretty quickly without adding significant delay.
2019-08-18 03:14:38 -07:00
jp9000 806ab5a022 libobs: Mark encoders that support dynamic bitrate
(This commit also modifies mac-vth264, obs-ffmpeg, obs-qsv11, and
obs-x264)
2019-08-18 03:14:38 -07:00
jp9000 91ce2349db obs-outputs: Allow changing bitrate test limit on the fly
When doing the bitrate limit test, it can be useful to have the ability
to change the current maximum bitrate limit.  This adds the ability to
press keys on windows (numpad 0-6) to change between bitrates.  Numpad 0
being no limit, 1 being 1000, 2 being 2000, etc.
2019-08-18 03:14:38 -07:00
jp9000 15ade1e2c4 obs-x264: Do not show reconfigure details in log
Prevents the x264 plugin from spamming the log when dynamic bitrate is
active.
2019-08-18 03:14:38 -07:00
jp9000 ed43de5c75 obs-ffmpeg: Allow FFmpeg NVENC to be reconfigured
Adds the ability to reconfigure FFmpeg's NVENC implementation on the
fly.
2019-08-18 03:14:38 -07:00
Jim f15290d14f
Merge pull request #2038 from kkartaltepe/fix-rbswap-binding
linux-capture: Bind texture after GS_GL_DUMMYTEX changes
2019-08-18 02:04:14 -07:00
Kurt Kartaltepe e39e13e7b8 linux-capture: Texture unbound after GS_GL_DUMMYTEX changes 2019-08-17 22:47:32 -07:00
jp9000 d981c10906 Revert "win-capture: Don't leak dynamic library references"
This reverts commit c5928bff4a.

This breaks game capture.
2019-08-17 12:23:44 -07:00
Jim 021defd962
Merge pull request #2036 from jpark37/gl-warnings
libobs-opengl: Fix Clang warnings
2019-08-17 12:11:46 -07:00
Jim 51450b5a8f
Merge pull request #2035 from jpark37/remove-casts
Remove casts
2019-08-17 11:23:06 -07:00
jpark37 2af98bf483 libobs-opengl: Fix Clang warnings 2019-08-17 11:02:03 -07:00
jpark37 cc7d67d050 UI: Redundant/bad casts 2019-08-17 08:49:08 -07:00
jpark37 a6af549155 libobs-opengl: Redundant cast 2019-08-17 08:48:28 -07:00
Jim b59742d49a
Merge pull request #1949 from jb-alvarado/master
UI: Add ability to disable hotkeys when not in focus
2019-08-17 08:38:31 -07:00
Jim 22ff0cbff3
Merge pull request #1989 from sorayuki/master
libobs: Merge obs_source_process_filter_(tech_)?end functions
2019-08-17 08:36:21 -07:00
Jim 5f7ff6fbcc
Merge pull request #1970 from cg2121/fix-warnings
various: Fix compiler/theme warnings
2019-08-17 08:22:03 -07:00
Jim 3a71487835
Merge pull request #1941 from VodBox/selection-box
UI: Add box select to preview
2019-08-17 08:19:05 -07:00
Jim ce51fa092c
Merge pull request #1992 from Xaymar/patch-tidy-up-1
Fix various clang-tidy and CppCheck warnings.
2019-08-17 08:16:46 -07:00
VodBox 128b90af9d UI: Add box select to preview
This change adds the ability to box select by clicking and dragging from
an empty part of the preview.

Shift + Drag add any items in the box to the selection. Alt + Drag will
remove items in the box from the selection. Ctrl + Drag inverts the
selected state for items in the box.
2019-08-17 07:42:14 -07:00
Jim f838136597
Merge pull request #1924 from cg2121/stop-recording-disk-full
UI: Stop recording when disk space is low
2019-08-17 07:17:04 -07:00
jp9000 74a3e7246e libobs: Fix browser source settings resetting pre-24
Fixes an issue where the browser source settings will continually reset
pre-24.  Note that this is not 23.2.2, but the version is being
temporarily updated in order to fix the issue for the release candidate
build.
2019-08-17 06:21:19 -07:00
Jim 4e26d96e2d
Merge pull request #2034 from cyclopsian/swig-warnings
cmake: Fix SWIG deprecation warnings
2019-08-17 00:46:49 -07:00
Jason Francis 34c8538ab9 cmake: Fix SWIG deprecation warnings 2019-08-16 21:12:31 -04:00
Jim d0c72334b2
Merge pull request #1961 from Xaymar/patch-fix_property_groups
libobs: Fix modified callback and remove by name for groups
2019-08-16 13:16:34 -07:00
Jim e747584692
Merge pull request #2027 from cg2121/fix-typos
win-wasapi: Fix typo with description
2019-08-16 13:08:48 -07:00
jp9000 7b5cc8c29d UI: Use "-inf" for muted volume level
The infinity character doesn't work on windows, so just revert to using
"inf" for now.
2019-08-16 13:06:06 -07:00
jp9000 6ba97a1ce4 UI: Clarify extra browser dock text 2019-08-16 05:07:09 -07:00
Jim da8f52e423
Merge pull request #2032 from jpark37/area-sample-count
UI: Fix Area sample count text
2019-08-16 02:16:49 -07:00
Jim a2c2e15ddc
Merge pull request #2033 from jpark37/intel-hates-nv12
libobs-d3d11: Disable NV12 usage for Intel
2019-08-16 02:16:31 -07:00
jpark37 06e01a00ab libobs-d3d11: Disable NV12 usage for Intel
NV12 GPU copies to staging textures for CPU read take a ridiculously
long time on my integrated Intel GPU. Using R8/R8G8 instead seems to be
a huge speed-up.

Intel HD Graphics 530, D3D11 query timings, SetStablePowerState

NV12: ~3268 us (minimum of wild timings)
R8/R8G8: ~781 us (most frequently occurring timing)
2019-08-15 23:02:21 -07:00
jpark37 9ae1b15fec UI: Fix Area sample count text
Downscale will either fetch 2x2, 2x3, 3x2, or 3x3 texels.
2019-08-15 21:38:55 -07:00
jp9000 d6b551c9d3 obs-text: Fix formatting 2019-08-15 21:38:23 -07:00
jp9000 bc3ed7bbf7 libobs: Reset mixers for "monitoring only" sources
Resets mixer values for sources that are upgrading to "monitoring only"
(the browser source)
2019-08-15 21:23:45 -07:00
Jim da6a3e3ce0
Merge pull request #1931 from exeldro/text_transform
obs-text: fix text transform on updated file
2019-08-15 21:19:12 -07:00
Jim 59a8bf2254
Merge pull request #2031 from jpark37/area-output
libobs: UI: Add Area for downscale output
2019-08-15 20:41:29 -07:00