Commit Graph
28 Commits
Author SHA1 Message Date
pkviet d5fbb97990 UI: Revert default tab in Settings > Output: Advanced to Stream tab
Commit 2fedcab987 changed the default index for widget "advOutTabs"
in OBSBasicSettings.ui; revert to index 0 (stream tab).
2018-12-20 03:27:21 +01:00
pkviet 736b7f0d35 UI: Fix display of mono source with surround output
A mono input with surround output is upmixed by swresampler by routing
it to FC (front center) by default which corresponds to third channel
for 3.0, 4.0, 4.1, 5.0, 5.1, 7.1. (The other channels are muted.)
But the volume meters are set to show the first channel for mono sources.
Therefore although audio is processed, it would not show on the meter.
This fixes this display issue.

Closes obsproject/obs-studio#1540
2018-12-07 12:38:17 -08:00
pkviet 1002f9b695 libobs: Log audio source when buffering is added
Closes obsproject/obs-studio#1521
2018-12-03 09:23:38 -08:00
pkviet 5cf2b5fbf9 obs-libfdk: Compatibility fix for new API
fdk-aac v2.0.0 (aacenc 4.0.0) changes the AACENC_InfoStruct:
the encoderDelay parameter is replaced by two, nDelay and
nDelayCore. This patch checks the lib version and adjust the parameter
accordingly.
2018-11-30 12:12:29 +01:00
pkviet 6e8758aa28 obs-filters: Add limiter filter
This adds a hard limiter (based on compressor).
2018-11-28 14:20:06 +01:00
pkviet 9b252b1268 libobs: Fix audio offset not reset for all tracks
Track 1 offset is reset but not the offset for other tracks.
This caused sync issues in between tracks (with track 1 and others).
(bug found by EposVox)
2018-11-16 03:56:49 +01:00
pkviet 047e586eaf UI: Add multi-track FFmpeg output support 2018-10-04 20:32:35 -07:00
pkviet 340fb9d669 obs-ffmpeg: Enable multiple audio tracks for FFmpeg output
This allows multiple audio tracks for the FFmpeg output.

Closes obsproject/obs-studio#1351
2018-10-04 20:32:35 -07: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
pkviet fdb622a069 UI: Fix path for File > Show Recordings
In main menu, File > Show Recordings does not show the path for ffmpeg
custom output when it is selected in Settings.
This fixes the issue.
2018-08-20 01:36:23 +02:00
pkviet c1e01b2b22 image-source: Add psd and *.* to file filter
Add psd (photoshop) to file filter and more generally enable display
of all files (*.*).
2018-08-19 00:09:34 +02:00
pkviet f1f49bc197 librtmp: Fix memory leak
A leak was introduced by commit 1682d77 (July 11 2015).
This is a fix.
2018-06-07 00:44:29 +02:00
pkviet 15a642291e UI: Fix mem leak with QCompleter 2018-06-07 00:44:29 +02:00
pkviet 7f3464c8ce UI: Fix mem leak with multiview projector menu 2018-06-07 00:44:28 +02:00
pkviet 340c2e5fb7 UI: Fix mem leak with tray menu 2018-06-07 00:44:28 +02:00
pkviet 732617251c UI: Fix mem leak with volume meter 2018-06-07 00:44:28 +02:00
pkviet ce339ce613 obs-outputs/flv: Fix ECMA array size
Fixes the size of the ECMA array storing onMetadata in flv.
(from 14 to 20).
Fixes ticket 1204.
2018-03-23 19:43:48 +01:00
pkviet 645d6ae8dd libobs/media-io: Change speaker layout to match FFmpeg aac.
(This commit also modifies the obs-ffmpeg module)

The default channel layouts from aac spec are implemented in FFmpeg
native aac encoder as follows:

    AV_CH_LAYOUT_MONO,
    AV_CH_LAYOUT_STEREO,
    AV_CH_LAYOUT_SURROUND,
    AV_CH_LAYOUT_4POINT0,
    AV_CH_LAYOUT_5POINT0_BACK,
    AV_CH_LAYOUT_5POINT1_BACK,
    AV_CH_LAYOUT_7POINT1,

The correspondence of speaker layouts to AV_CH_LAYOUT from FFmpeg is
changed to reflect the previous table.

Although FFmpeg native aac encoder can now encode all the layouts listed
in avutil channel_layout.h (on master), there might be issues with older
FFmpeg binaries.

Note that 2.1 speaker layout will be encoded as AV_CH_LAYOUT_SURROUND
(FL FR FC) because it is not listed as the default layout for three
channels.

This just means some optimizations for LFE channel will not be used by
the encoder which will treat it as an SCE (single channel element).

Closes jp9000/obs-studio#1182
2018-02-06 06:14:24 -08:00
pkviet d5140e9206 mac-capture: Update fix for Soundflower
Some audio devices do not have a fixed number of channels.  For example,
Soundflower.  This was previously fixed by defaulting the speaker layout
to stereo.  With surround sound support, the default has been changed to
the output speaker layout as set in Settings > Audio.

Closes jp9000/obs-studio#1110
2018-01-05 13:48:52 -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 292ad0fe97 coreaudio-encoder: Surround sound improvements
The core audio aac encoder has bitrates maps specific to speaker
layouts.  Previously, the bitrate map maxed at 320 kbs and was the map
for stereo.  The bitrate map is now tailored to the speaker layout.  In
practice this unlocks higher bitrates.  For instance up to 960 kbs for
7.1.  Additionally the commit fixes a bug with 2.1 with channels not
ordered correctly.
2018-01-05 13:44:57 -08:00
pkviet c5e14456ca obs-libdk: Unlock bitrates for surround layouts
Bitrate map was previously maxed at 256 kbs which is OK for stereo.
This commit enables up to 1024 kbs which can be used for surround
channel layouts.
2018-01-05 13:44:22 -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
pkviet 520a91323b obs-ffmpeg: Fix ffmpeg output recording in x264
Fixes ticket 1070.
See also
https://obsproject.com/forum/threads/ffmpeg-recording.77378/#post-330473
(related bugs).
The ffmpeg constant AVFMT_RAWPICTURE was deprecated in october 2015
and marked for removal at avformat major bump to version 58
(ffmpeg commit 34ed5c2 , oct 12, 2015).
The bump occured with commit 69b5ce6 (oct21, 2017).
The constant was subsequently removed (commit 693a11b, oct 26 2017).
It was removed from obs-studio with commit d670d7b (from me).
But the code block which was executed with this constant was not
removed, causing issues with ffmpeg output.
The commit fixes the issue for old ffmpeg builds as well as new ones.
The constant is reintegrated for avformat major version < 58 and removed
for version >= 58 (along with its accompanying code).
Thanks to J Lowe for help in solving the bug.
(tested on win 10, macos 10.13, ubuntu 17.10 with ffmpeg head & ffmpeg
3.4.1)
2017-12-21 23:28:35 +01:00
pkviet 89bc6bdc03 deps/media-playback: Fix compilation with older FFmpeg versions
Fixes an issue where media-playback would not compile with older FFmpeg
versions due to the fact that the AV_PIX_FMT_VIDEOTOOLBOX was
unavailable until version 54.31.100 of libavutil (FFmpeg 2.8).

Fixes mantis issue 1045.

Closes jp9000/obs-studio#1089
2017-12-02 09:09:26 -08: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
pkviet d670d7badb libobs: Fix FFmpeg constants
(This commit also modifies the deps/media-playback, obs-ffmpeg, and
win-dshow modules)

More fixes due to ffmpeg renaming some constants and deprecating
AVFMT_RAWPICTURE and AV_PIX_FMT_VDA_VLD.
Latter replaced by AV_PIX_FMT_VIDEOTOOLBOX per ffmpeg dev advice.

Closes jp9000/obs-studio#1061
2017-11-16 21:38:37 -08:00