3373 Commits

Author SHA1 Message Date
Jim
b745a100a3
Merge pull request #5371 from norihiro/automatic-file-splitting
Automatic file splitting
2022-04-10 16:49:37 -07:00
jpark37
a63d353463 win-dshow: Add Rec. 2020 HLG support
Also rename "Partial" range to "Limited" range for consistency.
2022-04-10 12:55:02 -07:00
jpark37
a59713eaaa obs-filters: Add HDR support to Scaling filter 2022-04-10 12:54:21 -07:00
jpark37
59dbc3eb81 libobs: Rename Rec. 2020 to Rec. 2100
Rec. 2020 is really an SDR spec, but I think HDR10 made it okay to slap
PQ on it, call it an HDR spec. Rec. 2100 came along after and formally
allowed the use of PQ/HLG, so we should use 2100 instead.
2022-04-10 00:13:52 -07:00
Georges Basile Stavracas Neto
3d7663f417 linux-pipewire: Explicitly enumerate portal capture types
This is very much like previous commit, but there's a catch: there
already was an enumeration in place, which is replaced in this
commit. The obs_pw_capture_type enum was introduced before splitting
the portal code into a separate file, and the enum itself is specific
to the screencast portal, so the appropriate place to enumerate it
is in portal.h.

For completude, PORTAL_CAPTURE_TYPE_VIRTUAL was added to the enum,
even though we never used, and probably never will.

The values are still the same, since both the old and this new enum
were extracted from the screencast portal [1].

https://github.com/flatpak/xdg-desktop-portal/blob/main/data/org.freedesktop.portal.ScreenCast.xml#L290-300
2022-04-09 16:45:02 -07:00
Georges Basile Stavracas Neto
e7815dff66 linux-pipewire: Explicitly enumerate cursor modes
The ScreenCast portal defines 3 cursor modes [1]:

 * Hidden: no visible cursor (value: 1)
 * Embedded: cursor is drawn in the frames (value: 2)
 * Metadata: cursor is sent as stream metadata (value: 4)

The values are power-of-two due to be used as flags.

Explicitly listing these values in an enum improves legibility
of the code, so do that instead of hardcoding 1, 2, and 4.

[1] https://github.com/flatpak/xdg-desktop-portal/blob/main/data/org.freedesktop.portal.ScreenCast.xml#L302-L316
2022-04-09 16:45:02 -07:00
Georges Basile Stavracas Neto
1267081e5c linux-pipewire: Move fetching cursor mode to portal.c
The portal.c file was introduced after the PipeWire code landed, and
handles acquiring a D-Bus connection to the portal interface, and also
has helpers to get properties from portals. The available cursor modes
property fits nicely in portal.c.

Move fetching the cursor mode to portal.c.
2022-04-09 16:45:02 -07:00
Georges Basile Stavracas Neto
2534e549f9 linux-pipewire: Remove ellipses from log messages
Ellipses in log messages bring a tone of vagueness and insecurity
that does not match the geist of the OBS Studio community. We're
a bold, industry-leading community producing software that is at
the heart of the biggest services of today's world. When it comes
to PipeWire and Wayland adoption, we're quite literally the app
that protocols and portals are designed for.

Therefore, it is unacceptable that the log messages in the PipeWire
capture don't communicate how strong of a community we are. Not
only that, these ellipses bring harm on the long run. After all,
who on their right mind would design protocols, portals, and user
interactions for an app that doesn't even log their messages in
accordance to its community values?

Our logs must shout strength. They must reflect that OBS Studio
is here to stay. Readers of such logs must fasten their seatbelts
before opening these files. Competition tremble with dread and
fear when presented with these logs. Only extreme metal singers
should be able to read these logs out loud.

No compromise.

Remove ellipses from PipeWire log messages.
2022-04-09 16:45:02 -07:00
Georges Basile Stavracas Neto
25fe22a489 linux-pipewire: Properly capitalize log messages
They are inconsistently capitalized, some with sentence capitalization,
some completely lower-cased.

Capitalize all log messages using sentence capitalization.
2022-04-09 16:45:02 -07:00
Georges Basile Stavracas Neto
6216f4555b linux-pipewire: Log more PipeWire-related info
The information that we currently log is not enough to give proper
support, and at best allows us to know that the first few steps of
negotiation worked.

Transform a few key debug messages into infos.
2022-04-09 16:45:02 -07:00
jpark37
848e128435 libobs,plugins: Replace video matrix function
video_format_get_parameters_for_format provides a more accurate matrix
than video_format_get_parameters.
2022-04-07 19:28:51 -07:00
Joshua Ashton
9903d73f36 linux-capture: Don't initialize format info if init_obs_pipewire fails
The pointer has been freed by this point so it just segfaults.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2022-04-07 08:41:19 -03:00
wangshaohui
db8145e8a2 obs-ffmpeg, win-dshow, deps/media-playback: Use recommended API for AVCodecContext 2022-04-07 01:59:30 -07:00
jpark37
d641ab12f7 win-capture: Use normal blend equation for cursor
Not sure what the previous setup was trying to do. I guess we'll find
out if users complain.
2022-04-07 01:51:15 -07:00
jpark37
433eef5910 obs-transitions: Smooth source transition fades
Add logic to avoid unexpected deviation.
2022-04-07 01:49:57 -07:00
karenkim-AfreecaTV
42c7e29d25 rtmp-services: Update AfreecaTV
Add Brazil server
2022-04-07 01:48:22 -07:00
jpark37
6e4ed48188 obs-transitions: Add HDR support to cut/fade
Both transitions are capable of passing through HDR sources now.
2022-04-06 17:33:53 -07:00
jpark37
e2b0ccdd22 obs-transitions: Add effect files to VS solution 2022-04-06 17:33:53 -07:00
jpark37
a00d53eccf win-dshow: Add HDR support 2022-04-03 00:03:34 -07:00
jpark37
4c2aa58dbe obs-ffmpeg: Support Rec. 2020, I010/P010 formats
Also remove unused function, ffmpeg_to_obs_video_format.
2022-04-03 00:03:34 -07:00
Paul Hindt
743f540fa1 aja: Use correct colorspace for SD or HD/UHD
Set video range to VIDEO_RANGE_PARTIAL
2022-04-02 16:23:21 -07:00
jpark37
083034bb0a obs-filters: Fix scale undistort, attempt two
Undistort checkbox should be ignored if bilinear lowres effect is used.
2022-04-02 16:22:59 -07:00
Kurt Kartaltepe
bf660b1d8d linux-pipewire: Version check call to pw_deinit
Per upstream this function is not supposed to be called by users of
PipeWire, and will crash when called twice. Instead only call it on
recent versions of PipeWire where it is safe to call.

This also removes the nearly empty pipewire-common files.
2022-04-02 12:45:39 -03:00
Patrick Heyer
3c1d7aeb86
Merge pull request #6245 from PatTheMav/cmake-resource-fix
win-capture: Fix added resources not properly copied to rundir
2022-03-31 11:52:50 +02:00
PatTheMav
d42c98fa22
win-capture: Fix added resources not properly copied to rundir
The `add_target_resource` function uses unnecessary path components
when copying files to the rundir, resulting in files added that way
not to end up where OBS expects them to.

The generated binaries created by sub-targets also need to be copied
as part of `win-capture`'s data files, which was easy to fix as the
target exists before CMake switches into the subdirectories.
2022-03-30 11:10:54 +02:00
striphat-dev
8360893730 rtmp-services: Update Stripchat streaming service 2022-03-29 19:55:44 +02:00
jpark37
a014137ff1 obs-filters: Fix invalid scale filter combination
Undistort checkbox should be ignored if bilinear lowres effect is used.
2022-03-26 13:01:01 -07:00
PatTheMav
aae3a6a466 cmake: Fix diverging prefix padding for OBS status outputs
Status output related to OBS configuration is prefixed with the string
"OBS" and added padding for enabled and disabled features. This padding
was not aligned between platforms.

By moving the padding and prefix decoration into its own function,
both elements are controlled in a single place. CMake scripts were
changed to use this new function `obs_status` instead of using CMake's
`message` function directly.
2022-03-26 09:44:23 -04:00
Norihiro Kamae
ba68eda590 obs-ffmpeg: Use av_packet_alloc instead of av_init_packet
sizeof(AVPacket) being a part of the public ABI is deprecated. once
av_init_packet() is removed, new packets will only be able to be
allocated with av_packet_alloc().
In ffmpeg-mux, ffmpeg-vaapi, and obs-ffmpeg-nvenc, AVPacket is allocated
at the initialization to avoid frequent allocation of AVPacket.

Includes changes to win-dshow.
2022-03-24 17:19:40 -07:00
Richard Stanway
85addc3dac UI, file-updater, rtmp-services: Enable curl ALPN support
In the years since this code was added, ALPN is now widely supported,
and NPN is being removed entirely in the latest version of nginx. It's
time to start using ALPN!
2022-03-24 17:10:01 -07:00
Ryan Foster
ae3570a741 rtmp-services: Fix file mode
Revert file mode changes from 99afbc687e4f39ac59fddead9231ec4e0e4415d8.
2022-03-23 12:44:49 -04:00
vasuais
99afbc687e rtmp-services: Update SharePlay.tv recommendations 2022-03-23 09:16:23 -07:00
Georges Basile Stavracas Neto
a147315f33 project: Migrate PipeWire capture into linux-pipewire
The capture ids are preserved, so that it's compatible with the
previous code. No code changes were necessary whatsoever.
2022-03-20 20:53:39 -03:00
columbarius
ebe8f6c72a linux-pipewire: Create new plugin
This plugin should contain different plugins importing and exporting
multimedia streams via PipeWire.
2022-03-20 20:53:39 -03:00
pkv
c8b2db9760 obs-libfdk: Set bitstream to ADTS for mpegts output
This sets the aac bitstream to ADTS for the mpegts output.
This fixes a bug with mpegts ouput where the avformat muxer issues
an error with fdk-aac encoder.

Signed-off-by: pkv <pkv@obsproject.com>
2022-03-19 15:25:02 -07:00
vasu
7dcd22dc95 rtmp-services: Add Shareplay.tv 2022-03-18 14:21:14 -07:00
tytan652
7d07b57993 obs-outputs,librtmp: Remove encrypted RTMP support
RC4 and Diffie-Hellmann Key related codes are removed
2022-03-18 13:34:03 -07:00
tytan652
179ad9e67b librtmp: Add mbedtls 3 compatibility
Since Mbed TLS 3 doesn't support RC4 algorithm,
encrypted RTMP is disabled if OBS is built with
the version 3 or later of Mbed TLS.
2022-03-18 13:34:03 -07:00
Richard Stanway
9170e0a9b1
obs-qsv11: Fix double free on CreateSurface failure
_dx9_simple_free already frees this pointer. I don't think this code
path is currently reachable, but it should probably still be fixed.
Detected by Coverity Scan.
2022-03-18 18:11:24 +01:00
PatTheMav
f3e23c2332
obs-vst: Update submodule to pull in CMake changes 2022-03-17 14:28:59 +01:00
PatTheMav
ab021ff3bf
obs-browser: Update submodule to pull in CMake changes 2022-03-17 14:28:34 +01:00
PatTheMav
49e9d49943
plugins: Update CMakeLists.txt for included plugins 2022-03-16 23:11:08 +01:00
jpark37
2a991a4fa0 win-waspai: Tighten version check for RTWQ
Getting reports that it isn't working for 1607 and below.

If they continue, we should probably just pull the RTWQ path.
2022-03-13 06:07:39 -07:00
eightball567
6df5a98534 mac-capture: Add vbcable to whitelist for loopback devices 2022-03-12 15:41:06 -08:00
Florian Zwoch
8886091793 obs-ffmpeg: add NVENC blacklist check for Linux
Similar to the Windows counter part. Check the PCI bus for
installed cards. When found at least one VGA compatible adapter
from NVIDIA that is not in the blacklist we pass the check.
2022-03-08 12:16:07 -08:00
cg2121
efce0f41d0 decklink: Use ComPtr for variables
This makes sure Decklink variables are automatically released.

Closes https://github.com/obsproject/obs-studio/pull/5508
2022-03-08 03:36:01 -08:00
jpark37
c7c52a59f9 win-dshow: Fix hwdevice_ctx leak 2022-03-05 15:02:23 -08:00
jp9000
490c6214f0 virtualcam-module: Revert changes since 27.1.3 (for now)
This reverts commit 4b0767741ab7f3c10d95c96c17a9ac0c0f726ca3,
3f3f9ed7e60a8dbe8c904b234a8b715841df880f,
0e7c17bd6e2f17a6002556ef8229f0b7e2124e91, and
865eecb7396841ccf4b4154b79253f5c8f1a1b76.
2022-03-02 17:35:36 -08:00
jp9000
4b0767741a virtualcam-module: Prevent placeholder memory leak 2022-03-02 05:06:12 -08:00
jp9000
2026270b65 virtualcam-module: Only initialize placeholder once 2022-03-02 05:06:12 -08:00