Commit Graph

2161 Commits (e6daa22ab7ee8f667ba677e444ba488ed886a1ac)

Author SHA1 Message Date
Jim e6daa22ab7
Merge pull request #2079 from exeldro/startcase
obs-text: text transform add locale and start case
2019-11-15 02:07:07 -08:00
Jim 61d959a095
Merge pull request #2077 from brittneysclark/qsv_cust_quant_mat
obs-qsv: Enable option for Custom Quantization Matrix
2019-11-14 18:54:51 -08:00
Jim 0d140542e4
Merge pull request #2072 from jpark37/dshow-negative-height
win-dshow: Support bottom-up DIBs
2019-11-13 11:42:05 -08:00
Jim 0f8472e8a8
Merge pull request #1914 from YouNow/master
rtmp-services: Add YouNow service and implement ingest lookup
2019-11-13 08:41:13 -08:00
jpark37 f896c773e8 win-dshow: Support bottom-up DIBs
The biHeight field can be negative, leading to crashes on some cards
like VisionRGB-E1S. Adding flip support is fairly straightforward.

There also appears to be a hack to automatically flip for RGB formats,
but I wish to remove it because it seems to fight with this change. We
already have a separate vertical flip checkbox to deal with non
compliant behavior.
2019-11-12 17:59:59 -08:00
wanhongqing 9b4d9c6788 win-dshow: Fix format switching issue
If the format was one encoded format and changes to another encoded
format, it could cause it to continue to treat it as the old format.
2019-11-12 14:37:32 -08:00
Jim 768a58771a
Merge pull request #1919 from omkelderman/mask-filter-reload-on-file-change
obs-filters: Reload the mask image when file change is detected
2019-11-07 15:45:12 -08:00
Olle Kelderman 5534c46920 obs-filters: Reload the mask image when file change is detected 2019-11-07 11:34:10 -08:00
VodBox 6645eaf1b8 obs-filters: Add toggle for scroll filter looping
By giving the option to disable the looping in the scroll filter, it
makes it more suitable for tasks like credits sequences, where you don't
want the texture to repeat and for the motion to only be performed once.
2019-11-07 06:25:36 -08:00
Kurt Kartaltepe d9470770a0 rtmp-services: Type check apply_encoder_settings
This fixes ovewritting hidden "profile" setting in ffmpeg vaapi which is
a number and not a string. It also shouldnt be overwritten as it is
required on some AMD hardware for the encoder to work.
2019-11-06 20:10:19 -08:00
tujinshu 76e6a99124 win-capture: Fix rare crash when GL program exits
**Commit message modified and clarified by Jim**

When hooking a program that has both DirectX and OpenGL contexts in use,
it is possible to cause a crash on shutdown due to capture_active()
returning true when an OpenGL context is deleted.  Normally, when
capturing an OpenGL program, this would not happen because the 'active'
variable would not be set due to OpenGL capture not being initialized,
but if DirectX is captured while an OpenGL context is available, and
OpenGL could not load these required functions, then GL can crash due to
trying to use unavailable functions.

This case is extremely rare and doesn't happen under normal
circumstances; only if a program is using both DirectX and OpenGL within
the same program simultaneously, and *only* if OpenGL could not load the
required functions.  This likely almost never happens under normal
programs, games, and hardware.  This was apparently produced by hooking
a GL Qt program that used QWebEngine, which used multiple contexts at
once.
2019-11-05 13:44:15 -08:00
Roman Sivriver 64d90c28c8 rtmp-services: Add YouNow service and implement ingest lookup 2019-10-30 13:16:13 -04:00
Dmitry Vovk c0a8e86c9c rtmp-services: Add Stars.AVN.com streaming service 2019-10-22 23:53:48 -07:00
Jim 4c85ac65a3
Merge pull request #2134 from WizardCM/wasapi-samplerate
Log Sample Rate for WASAPI devices
2019-10-21 23:30:18 -07:00
Jim 86006ca726
Merge pull request #2129 from Fenrirthviti/win-blacklist-update
win-capture: Add additional exe to window capture blacklist
2019-10-21 23:23:23 -07:00
Matt Gajownik a6a86caf21 win-wasapi: Log device sample rate when initialized 2019-10-19 21:53:08 +11:00
derrod 5e183ff9a7 obs-ffmpeg: use avcodec_find_best_pix_fmt_of_list
The built-in format selector failed in certain cases like UtVideo now
using a differently packeg RGB format. FFmpeg has a format selection
functionality built-in that does pick the correct format however
(avcodec_find_best_pix_fmt_of_list), so we can simply use that instead.
2019-10-17 08:07:27 +02:00
Joel Bethke 6fb3552d70 win-capture: Add additional exe to window capture blacklist
These are additional internal windows processes that should not
be listed in the window capture dropdown.
2019-10-16 19:47:43 -05:00
Jim 1ae588f3be
Merge pull request #2121 from cg2121/fix-warning
rtmp-stream: Fix comparison between signed and unsigned ints
2019-10-15 22:24:10 -07:00
Jim 86a5d43173
Merge pull request #2110 from derrod/ffmpeg-output-fix
obs-ffmpeg: Use av_opt_set on context instead of priv_data
2019-10-15 22:21:04 -07:00
Jim 09cbbd5487
Merge pull request #2108 from cg2121/mantis-1557
obs-filters: Fix sharpness not being translated
2019-10-15 22:19:27 -07:00
Jim ba6472fa1c
Merge pull request #2095 from jpark37/amf-upgrade
enc-amf: Reinstate AMF 1.4.14 with driver version check
2019-10-15 10:18:18 -07:00
Jim 5cbc23c195
Merge pull request #2091 from Programatic/xshm_wrong_windows
linux-capture: Fix bug where multiple 0x0 windows would appear
2019-10-15 10:09:03 -07:00
luz.paz d124e6402c docs/sphinx: Fix various typos
(This modifies UI, libobs, deps/obs-scripting, various cmake files)

Found using:
`codespell -q 3 -S *.ini,./UI/data/locale,./deps/w32-pthreads -L aci,dur,iff,mut,numer,uint`
2019-10-14 17:19:38 -07:00
jpark37 e35c15d4b6 enc-amf: Upgrade to v2.6
Deprecated support for drivers that ship an AMF Runtime older than
version 1.4.14, and older than 19.9.2. This also means Windows 8 is no
longer supported since AMD has stopped providing driver updates.

Added the new "High Motion Quality Boost" option that is exclusive to
the new 5700 cards and seems to do nothing on older cards.

Fixed the calculation of the automatic VBV buffer above 50%.

The Video API option will now only list one API, Direct3D 11 on Windows
10, and Direct3D 9 on Windows 7.
2019-10-13 13:52:17 -07:00
Jim 6b08c064f6
Merge pull request #2066 from jpark37/feature-level-baseline
Use D3D_FEATURE_LEVEL_10_0 as baseline
2019-10-12 20:55:33 -07:00
Jim 0a2fa768d5
Merge pull request #2045 from wolf247/master
rtmp-services: Add ChathostessModels
2019-10-12 02:17:32 -07:00
jp9000 d88a5a5a60 obs-browser: Remove "monitor by default" flag
The reasoning behind removing this flag is because the whole point of
having it in was so we could replace chromium's audio output.  But there
are too many obstacles in our path from doing that for now, so it's
better to not have this flag because it just causes a lot of browser
sources to initialize audio monitoring unnecessarily.  We can change
this in the future, but for now, it's best to let the user choose to
turn on audio monitoring for the source if they choose to turn on audio
rerouting to OBS.

Note that this only changes default behavior for newly created sources;
it will not change settings of existing sources the user had before this
change.
2019-10-11 23:42:35 -07:00
Clayton Groeneveld 350969a206 rtmp-stream: Fix comparison between signed and unsigned ints 2019-10-11 22:34:49 -05:00
wolf247 7d6d315533 rtmp-services: Add ChathostessModels 2019-10-11 17:05:25 -07:00
jp9000 80a1fee70f obs-browser: Only disable NetworkService on macOS
Apparently, using the old chromium network implementation changes the
way cookies are handled, causing cookies to reset.  So instead of doing
that, continue to use the new network implementation on Windows, and
only use the old network implementation on macOS for the time being.
2019-10-11 12:45:42 -07:00
brittneysclark ffd0bbb1ab obs-qsv11: Enable option for Custom Quantization Matrix
Add the option to enable custom quantization matrix for game streaming
on ICL for better subject quality. Feature is only supported with AVC
high profile, so added function to detect when QSV profile is modified
and hide or show CQM UI option accordingly. Also, increase SPS/PPS
buffer sizes since matrix is stored in SPS/PPS.
2019-10-11 01:10:08 -07:00
brittneysclark dc76bf2fe9 obs-qsv11: Add platform enums for KBL and ICL
Add two new platform enums for enabling future features
2019-10-11 01:10:08 -07:00
Jim 29ca28418f
Merge pull request #2115 from jpark37/duplicator-ref-count
Fix duplicator ref count
2019-10-10 21:01:16 -07:00
jpark37 1ce61c57c0 win-capture: Fix extra duplicator refs
Make duplicator_capture_tick the sole creater, and reference adder of
IDXGIOutputDuplication objects. This prevents a situation where
duplicator_capture::showing cause be false while
duplicator_capture::duplicator was not null at startup on background
scenes, preventing IDXGIOutputDuplication from being recreated when
DXGI_ERROR_ACCESS_LOST.
2019-10-10 19:03:18 -07:00
jp9000 8743b00f84 obs-browser: Use older chromium network implementation
This uses the older network implementation rather than the new
NetworkService chromium has implemented until a later version of CEF is
used.  The newer NetworkService implementation has caused some lag with
playback when hardware acceleration is not available for whatever
reason.  This doesn't fix media playback issues with software rendering
on windows, but it does on macOS.  All playback issues with software
rendering appear to be fixed in later version of CEF, however those
versions do not currently have hardware accelerated OSR or audio capture
support, so we must deal with 3770 until we can upgrade CEF again (which
hopefully won't be too long).
2019-10-10 02:00:57 -07:00
derrod 5e6a538931 obs-ffmpeg: Use av_opt_set on context instead of priv_data
Certain ffmpeg parameters such as "bufsize" or "maxrate" have to be
applied to the context rather than to "priv_data". In order to make sure
options are still passed to the encoder setting set AV_OPT_SEARCH_CHILDREN.
2019-10-09 18:54:01 +02:00
Clayton Groeneveld 2d6494ec00 obs-filters: Fix sharpness not being translated 2019-10-09 05:23:15 -05:00
jp9000 89586ef441 obs-ffmpeg: Remove unbuffered mode from media source
Unbuffered mode is causing the frames of media sources to potentially
have some slight jitter in playback, so instead of using unbuffered mode
with media sources, just leave buffering on.  There may be a frame or so
of latency, but it shouldn't be noticeable to most users.
2019-10-05 15:40:12 -07:00
jp9000 e023060afa obs-transitions: Fix stingers sometimes getting cut off
The file duration is a bit of an estimate.  This adds 500ms to the
estimated stinger media file duration to help ensure stinger videos
play back in full without getting cut off prematurely.
2019-10-05 12:51:01 -07:00
jp9000 c6f48b9107 obs-browser: Update version to 2.7.12 2019-10-05 02:16:27 -07:00
jp9000 eabebd1774 obs-ffmpeg: Fix deadlock with nvenc lookahead
Lookahead requires examining frame data over a large number of frames,
so when pkv added the change to fully reset the encoder when the bitrate
changes, nvenc will invalidate all buffers and basically starts over
from a completely clean slate.

It's possible to make lookahead work when changing the bitrate, but due
to how lookahead seems to works internally in nvenc, it will cause
continually increasing latency every time the bitrate is updated, which
is unideal.

Additionally, when lookahead is enabled, deadlocks can occur when
changing the bitrate in a thread other than the graphics thread.
Currently we allow it to be reset outside of the graphics thread.  From
limited investigating, it would appear this deadlock occurs because
nvenc is locking and releasing old textures.

So instead of dealing with all these potential issues, disable the
ability to adjust bitrate when the user has lookahead enabled on nvenc.
It's not really worth implementing dynamic bitrate support when
lookahead is enabled if the latency is just going to continually
increase for every bitrate adjustment anyway.
2019-10-04 04:39:15 -07:00
Ford Smith 003e8474d3 linux-capture: Fix bug with xshm input showing multiple 0x0 windows 2019-10-02 13:51:28 -04:00
jp9000 66967b7a55 obs-ffmpeg: Do not enable hardware decoding by default
If a user has a tremendous amount of media files, this can cause
instability.  Instead, make hardware decoding something the user has to
explicitly enable.

Although hardware decoding was technically enabled by default even
before we fixed it, fixing it was essentially a change to defaults for
users because it was just not even available before version 24.
2019-09-24 03:04:18 -07:00
Exeldro ffb58f51d5 obs-text: text transform add start case
Add option to transform to start case
2019-09-21 21:26:07 +02:00
Exeldro fd879e56f0 obs-text: text transform add locale
Support transform accented characters
2019-09-21 21:24:45 +02:00
jp9000 94570478b7 obs-browser: Fix a deadlock
This fixes a freeze that can occur if you try to destroy browser while
another browser is being created.  The CEF UI thread has to wait on a
window message to the main application UI thread, meanwhile the destroy
call in the main application UI thread is waiting on the CEF UI thread,
thus causes a deadlock.

Now that we have the SetParent(hwnd, nullptr) code that detaches the CEF
window from the Qt window, we no longer have to worry about
synchronously shutting down the browser, so instead of waiting for that
operation to finish, just allow it to occur asynchronously.
2019-09-20 08:14:16 -07:00
jp9000 e200a8a8a9 obs-browser: Signal whether audio active/inactive
Uses the new obs_source_set_audio_active function to signal to the UI
whether audio is active or inactive depending upon whether the user is
currently allowing OBS to control the audio or whether the user is
allowing CEF to control the audio.  Ensures that the browser does not
show up in the mixer if CEF is playing back the audio itself.
2019-09-19 23:43:36 -07:00
jp9000 3baa75c7ca obs-browser: Turn rerouting audio off by default
It was determined that rerouting audio through OBS currently isn't the
best idea even with monitoring enabled, primarily due to the fact that
audio monitoring has never had this wide of testing before, and that
many users complained that they were not getting audio for (as of yet)
unknown reasons from audio monitoring.  It would appear that we need to
address the issues with audio monitoring first before attempting to use
audio monitoring with any sources by default.  For now, audio will
reroute through CEF by default, and then the user must explicitly use
the option "Control audio via OBS", (renamed from "reroute audio", and
now disabled by default), to enable browser audio control through OBS.

There are other issues that need to be resolved as well, and once all
the various issues are addressed, the setting default can be allowed to
change back.
2019-09-19 19:14:21 -07:00
jp9000 eee40ec6d6 win-dshow: Do not allow H264 to have same priority as MJPEG
This prevents VideoFormat::Any from unintentionally selecting H264 when
MJPEG is the only other format available.

This fixes a bug where certain devices (Logitech C920 with latest
drivers) will only have H264 and MJPEG available, and using
VideoFormat::Any will then select H264 over MJPEG because it's the first
format value and has the same priority as MJPEG.  So now, MJPEG will be
prioritized over H264 instead.
2019-09-19 00:12:07 -07:00