7019 Commits

Author SHA1 Message Date
Jim
a8fc576678
Merge pull request #1982 from brittneysclark/qsv_reverted_ft_fix
obs-qsv: Fix QSV reverted features
2019-07-21 19:40:40 -07:00
Richard Stanway
f775070c80
obs-text: Use array type for unique_ptr uint8_t[] 2019-07-21 21:14:03 +02:00
Richard Stanway
37d8cb3307
rtmp-services: Remove redundant null checks
The jansson json_ macros already include a null check.
2019-07-21 20:50:22 +02:00
jpark37
3ea98b8b0d libobs: Improve timing of unbuffered deinterlacing
There are devices like the GV-USB2 that produce frames with smmoth
timestamps at an uneven pace, which causes OBS to stutter because the
unbuffered path is designed to aggressively operate on the latest frame.

We can make the unbuffered path work by making two adjustments:

- Don't discard the current frame until it has elapsed.
- Don't skip frames in the queue until they have elapsed.

The buffered path still has problems with deinterlacing GV-USB2 output,
but the unbuffered path is better anyway.

Testing:

GV-USB2, Unbuffered: Stuttering is gone!
GV-USB2, Buffered: No regression (still broken).
SC-512N1-L/DVI, Unbuffered: No regression (still works).
SC-512N1-L/DVI, Buffered: No regression (still works).
2019-07-20 21:00:59 -07:00
jp9000
cdb7cd80f6 win-dshow: Update libdshowcapture to 0.6.1 2019-07-20 20:24:52 -07:00
Jim
262a8c62bc
Merge pull request #1981 from jpark37/optimize-backdrop
libobs: UI: Remove DrawBackdrop() to save fullscreen pass
2019-07-20 17:09:08 -07:00
Jim
3f7d4fe1f5
Merge pull request #1975 from jpark37/area-upscale-shader
libobs: obs-filters: Area upscale shader
2019-07-20 17:06:41 -07:00
Jim
e6796edcb0
Merge pull request #1971 from jpark37/gl-error-infinite-loop
libobs-opengl: Fix glGetError() infinite loop
2019-07-20 17:05:52 -07:00
Jim
ffcfe4c9d9
Merge pull request #1951 from jpark37/audio-buffering
Fix audio buffering for devices like GV-USB2
2019-07-20 17:05:27 -07:00
Clayton Groeneveld
6da1df2ece UI: Display infinity symbol when volume is at 0 percent 2019-07-19 23:15:14 -05:00
crazyheart
b529925985 rtmp-services: Add Stripchat streaming service 2019-07-19 19:24:49 +03:00
brittneysclark
0610bc7570 obs-qsv: Enable high profile for QSV H.264
Changing QSV H.264 default profile from "main" to "high"
2019-07-19 02:51:49 -07:00
brittneysclark
00c06446d7 obs-qsv: Remove check for AsyncDepth in InitParams
AsyncDepth = 1 does not mean low latency so we can use default
MaxDecFrameBuffering
2019-07-19 02:33:01 -07:00
jpark37
3456ed0644 libobs: UI: Remove DrawBackdrop() to save fullscreen pass
It's a waste of GPU time to do two fullscreen passes to render final mix
previews. Use blend states to simulate the black background of
DrawBackdrop() for the following situations:

- Main preview window (Studio Mode off)
- Studio Mode: Program

This does not effect:

- Studio Mode: Preview (still uses DrawBackdrop)
- Fullscreen Projector (uses GPU clear to black)
- Windowed Projector (uses GPU clear to black)

intel GPA, SetStablePowerState, Intel HD Graphics 530, 1920x1080

Before:
DrawBackdrop: ~529 us
main texture: ~367 us (Cheaper than drawing a black quad?)

After:
[DrawBackdrop optimized away]
main texture: ~383 us
2019-07-18 19:58:29 -07:00
Richard Stanway
15770712a8
UI: Set default maximum name length to 170 characters
As the names entered into this dialog can be used as part of file names
(for example, saving a scene collection), allowing long names can result
in silent data loss where OBS creates the collection and allows the user
to manipulate it, but it cannot be saved on exit. This is due to the
MAX_PATH limitation on Windows (260 characters). 170 was chosen to
accomodate the length of the user app data folder plus some room for
extensions like .json.tmp.
2019-07-18 16:16:03 +02:00
Clayton Groeneveld
42c6984771 frontend-tools: Make start/stop buttons checkable 2019-07-18 07:07:34 -05:00
Clayton Groeneveld
3ea354b4e4 UI, obs-plugins: Add spinbox suffixes where necessary 2019-07-18 04:03:38 -05:00
jpark37
85cc7c84bc libobs: obs-filters: Area upscale shader
Add a separate shader for area upscaling to take advantage of bilinear
filtering. Iterating over texels is unnecessary in the upscale case
because a target pixel can only overlap 1 or 2 texels in X and Y
directions. When only overlapping one texel, adjust UVs to sample texel
center to avoid filtering.

Also add "base_dimension" uniform to avoid unnecessary division.

Intel HD Graphics 530, 644x478 -> 1323x1080: ~836 us -> ~232 us
2019-07-17 21:11:18 -07:00
Richard Stanway
dd3ed096f8
file-updater: Use transparent HTTP compression 2019-07-17 17:22:09 +02:00
Clayton Groeneveld
64598732a6 frontend-tools: Add option to pause output timer when rec is paused 2019-07-17 00:02:15 -05:00
brittneysclark
2f62831a96 obs-qsv: Enable LA_CBR as QSV rate control
Allow user to choose look ahead CBR as the rate control method for QSV.
Also, changes look ahead depth default to 15 when used.
2019-07-16 07:46:02 -07:00
jpark37
b90ce6944f libobs-opengl: Fix glGetError() infinite loop
glGetError() returns GL_INVALID_OPERATION during OBS shutdown when GL is
used on Windows. This change gives up after eight errors.

This could be avoided by stopping the graphics thread before window
destruction, but the shutdown code looks like it could be tricky to
reorder.
2019-07-15 09:13:14 -07:00
Clayton Groeneveld
5f5ba54a66 UI: Simplify resize output code 2019-07-15 04:50:42 -05:00
jp9000
8af49016fa obs-browser: Fix CEF 75.0.13 support 2019-07-14 09:39:19 -07:00
jp9000
d4e236dd03 libobs: Fix formatting 2019-07-13 19:01:48 -07:00
Jim
3975a7c42a
Merge pull request #1963 from WizardCM/mkv-default
UI: Change default recording format to MKV
2019-07-13 18:54:47 -07:00
Colin Edwards
f2a0c5275f
Merge pull request #1962 from jpark37/default-color-range
Default color range
2019-07-13 20:45:53 -05:00
Colin Edwards
c64d82530d
Merge pull request #1960 from Xaymar/patch-get_defaults2
libobs: Call both get_defaults and get_defaults2
2019-07-13 20:40:20 -05:00
Colin Edwards
0767a3d088
Merge pull request #1967 from Xaymar/patch-fix_property_groups_2
UI: Fix toggled signal of property groups
2019-07-13 20:32:19 -05:00
Clayton Groeneveld
866e1e15a8 UI: Add enable preview button
Closes #1966
2019-07-13 20:27:14 -05:00
Colin Edwards
d4a4518a7e
Merge pull request #1916 from ElectronicWar/rtmp-add-steam
rtmp-services: Add Steam
2019-07-13 19:13:31 -05:00
Manuel Kroeber
6c78f4d222 rtmp-services: Add Steam 2019-07-13 19:09:46 -05:00
brittneysclark
8717a66991 obs-qsv: Enable Content Adaptive Quantization
Allow user to enable Content Adaptive Quantization (MMBRC) if CPU is SKL
or newer
2019-07-13 00:10:16 -07:00
brittneysclark
b675bed90b obs-qsv: Enable B-frames and B-pyramid for encoder
Enable B-Pyramid frames to improve quality for high motion content.
B-pyramid allows a B-frame to choose closer frames for reference which
may have higher correlation.

Adjusts packet priority to avoid dropping referable B-frames

A check has been added to ensure feature is enabled only on platforms
with MSDK API 1.8 or higher - addresses crashing issues.
2019-07-12 23:35:16 -07:00
Colin Edwards
f2f78b98ef
Merge pull request #1964 from cg2121/dark-theme-groupbox
UI: Make Dark theme group box title bold
2019-07-12 22:10:03 -05:00
Colin Edwards
0e0ec9da12
Merge pull request #1955 from DDRBoxman/clang
CI: Run clang format on linux and osx CI and fail if changes are made
2019-07-12 21:59:40 -05:00
Colin Edwards
28243dbc94 CI: Run clang format on linux and osx CI and fail if changes are made 2019-07-12 21:44:33 -05:00
Colin Edwards
4ec072075d
Merge pull request #1958 from DDRBoxman/format
Apply clang-format to objective c code
2019-07-12 21:43:55 -05:00
Michael Fabian 'Xaymar' Dirks
3f6bbe2d49 libobs: Call both get_defaults and get_defaults2
Unlike get_properties, there is not reason to not call get_defaults if it is
given in addition to get_defaults2. Additonally this fixes the bug with
'init_encoder' which would only ever call get_defaults, resulting in broken
encoders if those used get_defaults2.
2019-07-13 00:49:18 +02:00
Michael Fabian 'Xaymar' Dirks
d2a71e6b1b UI: Fix toggled signal of property groups
The signal is actually called toggled(bool) and not just toggled(). Qt considers these two to be different signals.
2019-07-13 00:37:44 +02:00
jp9000
bda28b242c libobs: Fix formatting 2019-07-12 11:48:41 -07:00
brittneysclark
2b59b010bb obs-qsv: Add newer platforms to CPU enum
Adding BDW and SKL to QSV CPU enum to check CPUID before enabling newer
QSV features
2019-07-12 08:04:57 -07:00
Clayton Groeneveld
71f8a0bd5f UI: Make Dark theme group box title bold 2019-07-12 08:20:11 -05:00
Jim
36c8090492
Merge pull request #1952 from obsproject/pause
Add the ability to pause and unpause recordings
2019-07-11 19:56:41 -07:00
jpark37
1b6c55135e linux-v4l2: Add "Default" color range setting
VIDEO_RANGE_DEFAULT uses partial range for YUV and full range for RGB.
Previous default was always partial.
2019-07-10 23:40:58 -07:00
jpark37
1fc0a357d2 win-dshow: Add "Default" color range setting
VIDEO_RANGE_DEFAULT uses partial range for YUV and full range for RGB.
Previous default was always partial.
2019-07-10 23:40:53 -07:00
Matt Gajownik
ca12847aa8 UI: Change default recording format to MKV 2019-07-11 15:39:46 +10:00
Colin Edwards
ad85a9fa25 Apply clang-format to objective c code 2019-07-09 13:39:13 -05:00
jp9000
617086b040 obs-ffmpeg: Separate logging code
Cleans up obs-ffmpeg.c and separates all the logging code to a different
file, which can be enabled with ENABLE_FFMPEG_LOGGING.
2019-07-09 10:07:24 -07:00
wang-bin
5b6ee6e66b libobs: Clear module variable in case module reloaded
Closes obsproject/obs-studio#1957
2019-07-09 08:37:43 -07:00