6953 Commits

Author SHA1 Message Date
Matt Gajownik
80730417d0 UI: Change Connect Account to Recommended 2019-08-15 08:25:35 +10:00
jp9000
ae83c857d7 obs-browser: Update to 2.6.1 2019-08-12 20:07:10 -07:00
Jim
444991ba21
Merge pull request #2021 from jpark37/yuva-format
Add support for YUV alpha formats
2019-08-11 20:38:17 -07:00
Jim
285ad0ff53
Merge pull request #2024 from kkartaltepe/patch-linux-capture
Revert GS_RGBX changes made as part of #1934
2019-08-11 20:36:32 -07:00
Jim
8a4c7a90e2
Merge pull request #2022 from jpark37/header-entry
deps/media-playback: Add missing header to CMake
2019-08-11 19:57:41 -07:00
Kurt Kartaltepe
9bc39c7617 libobs-opengl: Fix DUMMY textures left bound 2019-08-11 19:40:24 -07:00
Kurt Kartaltepe
491b6ec035 Revert "libobs-opengl: Add GS_RGBX format"
This reverts commit d940b9e580dcf59a4df7e93b740acf0026640add.
2019-08-11 18:30:28 -07:00
Kurt Kartaltepe
1402a80583 linux-capture: Revert GS_RGBX usage 2019-08-11 18:30:23 -07:00
jpark37
1e87df89bb deps/media-playback: Convert YUV alpha formats to RGB on GPU
I40A -> RGBA, 1080p, CPU
swscale (MMX), Intel i7-6700: 1910 us -> 0 us

GPU measurements used Intel GPA with SetStablePowerState.

I40A -> RGBA, 1080p, GPU
Intel HD Graphics 530: 0 us -> 677 us
NVIDIA RTX 2080 Ti: 0 us -> 43 us
2019-08-11 11:26:52 -07:00
jpark37
90c545b52c obs-ffmpeg: Add YUV alpha formats for completeness 2019-08-11 11:26:32 -07:00
jpark37
3d6f5c8ad6 libobs: Add YUV alpha formats
This will allow YUV alpha formats to be converted to RGBA on the GPU.
2019-08-11 11:26:22 -07:00
jpark37
6600bd13ea deps/media-playback: Add missing header to CMake 2019-08-11 07:27:42 -07:00
Jim
0546d18855
Merge pull request #1934 from kkartaltepe/alpha-linux
linux-capture: Correct XCompCap glxFBConfigs alpha check
2019-08-11 05:00:35 -07:00
Jim
a52c564e5d
Merge pull request #2003 from SCG82/video-io
libobs: Add missing format to format_is_yuv & get_video_format_name
2019-08-10 23:47:15 -07:00
Jim
fe56046a38
Merge pull request #1988 from cg2121/fix-suffix
obs-transitions: Fix suffix with stinger transition
2019-08-10 23:28:37 -07:00
Jim
31a902b3af
Merge pull request #2018 from jpark37/yuv-simplify2
libobs: Separate textures for YUV input
2019-08-10 22:41:28 -07:00
Jim
2dbabd6b6e
Merge pull request #2019 from cg2121/rename-mixer
UI: Rename Mixer to Audio Mixer
2019-08-10 03:03:54 -07:00
Jim
1821c403b0
Merge pull request #2015 from obsproject/extra-browser-panels
Add ability to create custom browser docks
2019-08-10 03:02:52 -07:00
Jim
ecfcb64056
Merge pull request #1994 from jpark37/faster-lanczos
libobs: Optimize lanczos shader, remove scaling
2019-08-10 03:02:26 -07:00
Clayton Groeneveld
4343e39ba7 UI: Rename Mixer to Audio Mixer 2019-08-10 02:27:02 -05:00
jpark37
bdd8d64053 libobs: Separate textures for YUV input
The shaders to unpack YUV information from the same texture were rather
complicated. Breaking them up into separate textures makes the shaders
much simpler, and we can remove the PRECISION_OFFSET hack.

Performance also gets a nice boost on Intel for planar textures.

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

UYVY: 473 us -> 457 us
YUY2: 492 us -> 422 us
YVYU: 491 us -> 441 us
I420: 1637 us -> 505 us
I422: 1644 us -> 482 us
I444: 1653 us -> 504 us
NV12: 1656 us -> 369 us
Y800 (limited): 270 us -> 277 us
Y800 (full): 263 us -> 289 us
RGB (limited): 341 us -> 411 us
BGR3 (limited): 512 us -> 509 us
BGR3 (full): 527 us -> 534 us
2019-08-09 21:14:29 -07:00
Jim
164f731320
Merge pull request #1995 from jpark37/yuv-simplify
libobs: Separate textures for YUV output, fix chroma
2019-08-09 21:11:45 -07:00
Jim
0fa22233a4
Merge pull request #1997 from Xaymar/patch-fix-spinbox-from-1979
UI: Fix Int/Float Sliders and Spinboxes by partially reverting PR #1979
2019-08-09 19:02:24 -07:00
Jim
cd79855ddb
Merge pull request #1998 from jpark37/gpu-timing
libobs: Add GPU timestamp query support
2019-08-09 19:01:47 -07:00
Jim
4963cde35d
Merge pull request #2001 from Xaymar/patch-fix-lua-stackable-filters
obs-scripting: Use a recursive mutex for Lua scripting
2019-08-08 23:54:18 -07:00
Michael Fabian 'Xaymar' Dirks
cdc613a5ea obs-scripting: Use a recursive mutex for Lua scripting
This enables stacking of Lua driven filters of the same kind without
freezing OBS Studio in place, or even crashing.
2019-08-08 22:57:35 -07:00
Jim
36a123f653
Merge pull request #2006 from cg2121/pause-scene
obs-scripting: Add pause scene script
2019-08-08 20:15:23 -07:00
Jim
6694a9691d
Merge pull request #2007 from cg2121/rachni-pause-button
UI: Fix pause button checked color with Rachni theme
2019-08-08 20:13:52 -07:00
Jim
60c364027f
Merge pull request #2004 from IainCole/ic_remove_twitch_multichannel_support
UI: Remove Twitch from MultichannelWarning message
2019-08-08 20:08:45 -07:00
Jim
16783a4658
Merge pull request #2012 from jpark37/stale-format
libobs: Fix stale format in async frame cache
2019-08-08 20:08:17 -07:00
jp9000
0759652cee UI: Add the ability to create custom browser docks
Allows the ability for users to add custom browser widget docks that
they can use for their third party services if they feel the need,
mostly as a convenience tool so they don't have to open extra browsers
alongside the program.
2019-08-08 03:31:31 -07:00
jp9000
d5d8492bb3 UI: Add LineEditChanged and LineEditCanceled
These functions allow item delegates (editors) or item widgets with
event filters to detect whether a user has finished editing a line edit
control.  This separates the code so it can be used elsewhere than just
in the source tree widget.
2019-08-08 03:25:33 -07:00
jp9000
a2e8741449 obs-browser: Fix a few panel issues 2019-08-08 03:23:53 -07:00
jpark37
b0e7c5d0d3 libobs: Fix stale format in async frame cache
The video format is not updated if switching between cache-compatible
formats, e.g. YUY2 and YVYU, resulting in the wrong conversion technique
being used. This change ensures the format is always up-to-date.
2019-08-07 06:47:27 -07:00
Clayton Groeneveld
0c379f1c20 UI: Fix pause button checked color with Rachni theme 2019-08-04 06:50:23 -05:00
Clayton Groeneveld
bbaad30be6 obs-scripting: Add pause scene script 2019-08-04 06:21:22 -05:00
Cole
c7e77024ea UI: Remove Twitch from MultichannelWarning message 2019-08-03 14:08:15 -07:00
SCG82
5bc1b3bc76 libobs: Add missing pixel format to format_is_yuv and get_video_format_name 2019-08-03 05:42:30 -07:00
jp9000
deaeb5e632 win-dshow: Use unbuffered by default for MJPEG
Due to the recent change of using FFmpeg to decode MJPEG, MJPEG was
getting included in the delayed device check.  This fixes that so that
it doesn't.  MJPEG can decode in real time.
2019-07-29 20:34:13 -07:00
jp9000
cd6e9e34b8 win-dshow: Clarify function name/purpose
IsEncoded is meant to be used to indicated delayed devices, such as
older Elgato devices, or Hauppauge device.  Devices that use H264 and
have a 800+ millisecond latency.  This changes the function name to
better indicate that.
2019-07-29 20:34:13 -07:00
jp9000
68a5a40df9 libobs, obs-ffmpeg, win-dshow: Fix FFmpeg 4.0 deprecation
Fixes FFmpeg 4.0 deprecation warnings.
2019-07-29 20:34:13 -07:00
jp9000
a3fface27f win-dshow, obs-ffmpeg: Add hardware decoding support
Fixes hardware decoding support and updates it to FFmpeg 4.0.
2019-07-29 20:34:13 -07:00
jpark37
0e12d8189c libobs: Add GPU timestamp query support
This change only wraps the functionality. I have rough code to exercise
the the query functionality, but that part is not really clean enough to
submit.
2019-07-27 13:31:07 -07:00
Michael Fabian 'Xaymar' Dirks
bd8ead2d4b UI: Partially revert PR #1979
This broke support for various filters, sources and encoders and should not
have been merged as it is.
2019-07-27 19:21:46 +02:00
jpark37
30979a54fe UI: Fix Lanczos label with correct sample count 2019-07-27 08:39:00 -07:00
jpark37
9aacc99b3e libobs: Separate textures for YUV output, fix chroma
The shaders to pack YUV information into the same texture were rather
complicated and suffering precision issues. Breaking them up into
separate textures makes the shaders much simpler and avoids having to
compute large integer offsets. Unfortunately, the code to handle
multiple textures is not as pleasant, but at least the NV12 rendering
path is no longer separate.

In addition, write chroma samples to "standard" offsets. For I444,
there's no difference, but I420/NV12 formats now have chroma shifted to
the left as 4:2:0 is shown in the H.264 specification.

Intel GPA, SetStablePowerState, Intel HD Graphics 530

Expect speed incrase:
I420: 844 us -> 493 us (254 us + 190 us + 274 us)
I444: 837 us -> 747 us (258 us + 276 us + 272 us)
NV12: 450 us -> 368 us (319 us + 168 us)

Expect no change:
NV12 (HW): 580 (481 us + 166 us) us -> 588 us (468 us + 247 us)
RGB: 359 us -> 387 us

Fixes https://obsproject.com/mantis/view.php?id=624
Fixes https://obsproject.com/mantis/view.php?id=1512
2019-07-26 23:21:41 -07:00
Gol-D-Ace
baddca2536 CI: Only download Qt if it doesn't exist already 2019-07-27 06:52:47 +02:00
jpark37
f27ece50c9 libobs: Optimize lanczos shader, remove scaling
Use bilinear filtering to reduce 36 taps to 25 for the regular path.
This works because the middle weights are always between 0 and 1,
allowing texture coordinates to be placed strategically to sample
correct ratios. I'm not sure about the undistort path, so I've left that
alone.

Also remove scaling added in #526, after which weight normalization is
unnecessary. If we want to use or invent an algorithm with alternate
downscaling properties, that's fine, but I don't think we should change
Lanczos scaling to mean something it's not. The scale implementation was
also seen not working when applied directly to scene items because of
assumptions made about the projection matrix.

Intel GPA, SetStablePowerState, Intel HD Graphics 530, D3D11
644x478 -> 1323x1080: 3890 us -> 3401 us
1920x1080 -> 1280x720: 2555 us -> 2261 us
2019-07-26 20:45:33 -07:00
Jim
62c7e00d16
Merge pull request #1993 from jpark37/faster-bicubic
Optimize bicubic shader
2019-07-26 00:36:19 -07:00
jp9000
363d28815f obs-browser: Update to 2.5.0 (audio capture support) 2019-07-26 00:14:09 -07:00