Commit Graph

85 Commits (04d1f04bd3bea27f3e60f5ce8a4cb9af394d9a90)

Author SHA1 Message Date
jp9000 f53df7da64 clang-format: Apply formatting
Code submissions have continually suffered from formatting
inconsistencies that constantly have to be addressed.  Using
clang-format simplifies this by making code formatting more consistent,
and allows automation of the code formatting so that maintainers can
focus more on the code itself instead of code formatting.
2019-06-23 23:49:10 -07:00
jp9000 53615ee10f clang-format: Add clang-format files 2019-06-23 01:53:56 -07:00
Gol-D-Ace 973bc481ce Update translations from Crowdin 2019-06-11 01:42:42 +02:00
James Park a86710ec5b libobs: Support limited color range for RGB/Y800 sources
libobs: Add support for limited to full color range conversions when
using RGB or Y800 formats, and move RGB converison for Y800 formats to
the GPU.

decklink: Stop hiding color space/range properties for RGB formats, and
remove "YUV" from "YUV Color Space" and "YUV Color Range".

win-dshow: Remove "YUV" from "YUV Color Space" and "YUV Color Range".

UI: Remove "YUV" from "YUV Color Space" and "YUV Color Range".
2019-04-25 15:13:05 -07:00
jp9000 7d136c3ce1 decklink, win-dshow: Use obs_source_output_video2
Allows the ability to override and use partial range RGB with the
DirectShow and Decklink device sources when partial range RGB is
implemented.  Fixes certain cases where devices could capture RGB in
limited range via HDMI (per the HDMI specs).
2019-04-25 15:12:33 -07:00
Gol-D-Ace e78ac5ebef Update translations from Crowdin 2019-04-04 16:19:51 +02:00
Vainock a99f71ef1c Adjust locales for better consistency 2019-03-12 06:27:47 +01:00
pkv 6e6d74671a decklink: Fix locale (missing word) 2019-03-03 22:37:53 +01:00
Colin Edwards 818001fb59 decklink: Allow selecting input connections. 2019-03-03 13:19:38 -06:00
Colin Edwards 8429724d64
Merge pull request #1706 from pkviet/deckfix
decklink: Fix FC<->LFE channel swap for some devices
2019-03-03 13:05:25 -06:00
pkv 05508ac895 decklink: Fix FC<->LFE channel swap for some devices
Fixes mantis issue https://obsproject.com/mantis/view.php?id=1379
For some devices with hdmi input, the Front Center channel and the LFE
channel are swapped. For some others they are not.
To solve the issue a new swap setting is added so that the user can
swap the two channels if needed.
2019-03-03 19:57:27 +01:00
Colin Edwards 39c9bc6823 decklink: Update SDK to 10.11.4 2019-02-26 19:30:11 -06:00
Gol-D-Ace 98f78fe3a7 Update translations from Crowdin 2019-02-25 15:11:33 +01:00
Gol-D-Ace c3711bdd5e Update translations from Crowdin 2019-02-20 22:26:07 +01:00
Dmitry-Me c9dc07db92 decklink: Remove redundant const qualifiers 2019-02-01 16:24:37 +03:00
Dmitry-Me a00b4ce1d4 decklink: Initialize member variables 2019-01-15 17:59:03 +03:00
Colin Edwards e296855d14 Decklink: only use RGBA when using keyer 2019-01-04 22:25:08 -06:00
Colin Edwards 19bc92d267 Decklink: Keyer support 2019-01-04 17:34:00 -06:00
Jim 494a37ec74
Merge pull request #1547 from SuslikV/patch-9
decklink: Add declaration file for integer types
2018-12-06 12:02:04 -08:00
SuslikV 2c52fe46fb
decklink: Add declaration file for integer types 2018-11-20 20:36:09 +02:00
Dmitry-Me d9ca4d540a decklink: Initialize member variable 2018-10-09 18:00:20 +03:00
Jim a43a4fac7e
Merge pull request #1043 from DDRBoxman/decklinkout
Decklink: Add decklink output
2018-09-25 18:15:14 -07:00
Colin Edwards 21b67cff64 Decklink: add output support 2018-09-25 19:13:25 -05:00
Jim af320a0838
Merge pull request #1480 from kkartaltepe/module-descriptions
Plugins: Add descriptions to modules
2018-09-16 15:34:28 -07:00
Marvin Scholz 94b30ec05a decklink: Use libobs CFString utils 2018-09-16 22:41:01 +02:00
pkviet c7dab6c92b decklink: Remove inactive audio channels (linux, macOs)
Decklink cards accept 2, 8 or 16 audio channels.
If obs audio output is setup to n channels ( 8 >= n > 2), and the
decklink card captures n channels, one needs to squash the silent
channels (n+1, .., 8) or sampling issues occur.
This had been done on windows but is required also on macOs and linux.
The commit adds the fix for macOS and linux.
Some code factoring has also been done.

Closes obsproject/obs-studio#1350
2018-09-15 13:21:21 -07:00
Kurt Kartaltepe d86c8121ed Plugins: Add descriptions to modules 2018-09-11 18:28:58 -07:00
Colin Edwards f8e628ac36 Update decklink SDK to version 10.11 2018-09-07 20:33:12 -05:00
Jim ef6a83666a
Merge pull request #1392 from Andersama/decklink-deactivate-when-not-shown
decklink: Add deactivate when not showing option to decklink
2018-09-07 18:22:50 -07:00
Alex Anderson a65b369716 decklink: Add deactivate when not showing option to decklink
Adds a deactivate when not showing checkbox to decklink sources.
2018-09-07 03:03:49 -07:00
Gol-D-Ace a79aaa28ab Update translations from Crowdin 2018-08-18 04:16:35 +02:00
Gol-D-Ace 88282c168c Update translations from Crowdin 2018-03-15 09:00:28 +01:00
Gol-D-Ace ae22886f67 Update translations from Crowdin 2018-01-22 04:55:52 +01:00
jp9000 7764848070 decklink: Default to 5.1 if invalid channel value 7
Value 7 was actually 5.1 surround mode, not 7.1.
2018-01-08 19:17:10 -08:00
jp9000 ed5ee5aae2 decklink: Fix bug with old channel formats
There were cases where the channel format could be set to 7, which used
to be a valid format but now no longer is.  If that format is set, just
use SPEAKERS_7POINT1 instead.
2018-01-08 19:04:40 -08:00
pkviet 974e64eb23 decklink: Add 2.1 & 4.1 surround layouts
The list of channel layouts available for decklink input is missing 2.1
& 4.1 layouts.  The commit adds them.  This aligns the decklink input
with the speaker layouts available at outputs.  Having different layouts
as input and output invokes FFmpeg resampler, which remixes the channels
in non trivial way except when downmixing to stereo.  This patch allows
to avoid such uncontrolled remix of channels with decklink input.
2018-01-05 13:44:57 -08:00
pkviet 67e48ecc2c libobs/media-io: Replace quad with 4.0
(also obs, deps/media-playback, libobs/audio-monitoring, decklink,
linux-alsa, linux-pulseaudio, mac-capture, obs-ffmpeg, win-dshow,
win-wasapi)

Default channel layout for 4 channels is 4.0 in FFmpeg.
Replacing quad with 4.0 will improve compatibility since FFmpeg has
better support of its default channel layouts.
2018-01-05 09:48:52 -08:00
pkviet fb580535c9 libobs/media-io: Clean surround API
(also modifies obs-ffmpeg, audio-monitoring, win-wasapi, decklink,
obs-outputs)

Removes speaker layouts which are not exposed in UI.  The speaker
layouts selectable by users in the UI are the most common ones.  It is
not necessary to keep other layouts.  (This basically removes
5POINT1_SURROUND, 7POINT1_SURROUND, SURROUND =3.0).
2018-01-05 09:47:59 -08:00
SuslikV 151199c388
decklink: Rename 5.1 and 7.1 multi-channel formats
Common multi-channel setup is 5.1 and 7.1 with rear speakers.

Thus only setups that include SPEAKER_SIDE_LEFT and SPEAKER_SIDE_RIGHT
needs the marking as not common (or "side" use), while it stays the
true Side setup (with side speakers) by its internal meaning.

This "side" is named "surround" by Microsoft. To not confuse users and
translators, it is wise to use "Side" mark next to format name.
2017-12-02 23:22:34 +02:00
pkviet bbac3280c1 libobs: Add surround sound audio support
(This commit also modifies the following modules: UI,
deps/media-playback, coreaudio-encoder, decklink, linux-alsa,
linux-pulseaudio, mac-capture, obs-ffmpeg, obs-filters, obs-libfdk,
obs-outputs, win-dshow, and win-wasapi)

Adds surround sound audio support to the core, core plugins, and user
interface.

Compatible streaming services: Twitch, FB 360 live
Compatible protocols: rtmp / mpeg-ts tcp udp
Compatible file formats: mkv mp4 ts  (others untested)
Compatible codecs: ffmpeg aac, fdk_aac, CoreAudio aac,
		   opus, vorbis, pcm (others untested).
Tested streaming servers: wowza, nginx
	 HLS, mpeg-dash : surround passthrough
Html5 players tested with live surround:
	 videojs, mediaelement, viblast (hls+dash), hls.js
Decklink: on win32, swap channels order for 5.1 7.1
         (due to different channel mapping on wav, mpeg, ffmpeg)
Audio filters: surround working.
Monitoring: surround working (win macOs linux (pulse-audio)).
VST:	 stereo plugins keep in general only the first two channels.
	 surround plugins should work (e.g. mcfx does).
OS: win, macOs, linux (alsa, pulse-audio).
Misc: larger audio bitrates unlocked to accommodate more channels
NB: mf-aac only supports mono and stereo + 5.1 on win 10
         (not implemented due to lack of usefulness)

Closes jp9000/obs-studio#968
2017-11-26 03:41:53 -08:00
jp9000 4330021617 decklink: Use unbuffered by default, and decouple
Use unbuffered async mode by default, and when in unbuffered mode,
decouple audio/video so that audio plays as soon as it's received.

This is a workaround for decklink device drivers having unreliable
video/audio timestamps (audio/video sync drifting over time).  From
testing, it seems that the handling of video and audio is completely
separate in the driver; along with the timestamp calculations.  For
example, when the thread of the decklink audio callback is stalled, it
would cause the timestamps of the audio alone to go out of sync, which
indicates timestamps are calculated more or less on the spot independent
of what video is doing (which is how we replicated the issue fixed by
b63e4b055e).  Because decklink drivers treats the audio and video as
essentially decoupled, we must also treat it as decoupled.  This is what
was causing video/audio to drift out of sync over time.
2017-10-10 07:04:21 -07:00
Gol-D-Ace 8d8c2e5a22 Update translations from Crowdin 2017-08-10 16:07:40 +02:00
mntone 41c2f5e13b decklink: Add feature to detect resolution/format
Closes jp9000/obs-studio#879
2017-06-29 15:42:04 -07:00
Gol-D-Ace 3d2cacd782 Update translations from Crowdin 2017-05-20 10:18:41 +02:00
jp9000 d13fa96851 libobs: Don't use source flags for async buffering
(This commit also modifies the decklink, linux-v4l2, mac-avcapture,
obs-ffmpeg, and win-dshow modules)

Originally, async buffering for sources was supposed to be a
user-controllable flag.  However, that turned out to be less than ideal
because sources (such as the win-dshow plugin) were programmed with
automatic control over their buffering (such as automatically detecting
USB 2.0 capture devices and then enabling in those cases).

The fact that it was a flag caused a design flaw to where buffering
values would be overwritten when a source is loaded from save data.

Because of that, this flag is being deprecated and replaced with a
specific function to enable unbuffered mode instead.
2017-05-13 23:32:40 -07:00
fryshorts 00cb0540a5 decklink: Remove unused variables to fix warning
Remove two unused variables that are causing a compiler warning on gcc.
The size was probably added in the past to calculate the the packet
size, but in the end was not actually needed.
2017-05-10 22:47:58 +02:00
fryshorts c8ce08d4b6 decklink: Add option to disable the plugin
Add an option to the cmake build system to disable the plugin. This is
needed on arm, as the plugin uses x86-intrinsics.
2017-05-10 22:43:15 +02:00
fryshorts 311cd6fb79 decklink: Fix compiler warning about ignored const
Fix a warning from gcc about one of the const keywords being ignored.
This happens because the returned type is not a reference contrary to
the methods above.
2017-05-10 22:43:15 +02:00
jp9000 b63e4b055e decklink: Add workaround for audio timestamp jump issue 2017-04-07 19:57:34 -07:00
mntone c459ade360 decklink: Add option to select channel format
Closes jp9000/obs-studio#867
2017-04-07 19:56:28 -07:00