Commit Graph

1787 Commits (47285c2ba664979e41510c0ae659b6918347a515)

Author SHA1 Message Date
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
Zachary Lund 698e6418ba obs-filters: Use double-precision where viable
We're expecting a variable with double precision. Since we don't read
the value of these doubles with a particular precision, it can often
lead to unpredictable results where the value set isn't the one
intended due to the loss of precision from float->double conversion.
2018-05-30 14:52:39 -07:00
Ryan Foster 1f592d12aa obs-ffmpeg: Set average framerate in video stream
This commit fixes an issue where videos created with OBS will appear as
having 1000 FPS in some media players.
2018-05-27 00:45:05 -04:00
jp9000 e5f1a93f87 text-freetype2: Remove trailing whitespace 2018-05-08 09:39:04 -07:00
Yvo 43713098d6 text-freetype2: Add chat line count property
Allows the ability to choose the number of chat lines when using the
"Chat log mode" feature.

Closes obsproject/obs-studio#1280
2018-05-08 09:37:39 -07:00
SuslikV a75724d8a5 win-capture: Fix cursor draw size with certain cursors
When drawing cursor to window capture area - use actual resource width
and height instead of system metric values for icons.  Fixes an issue
where under rare circumstances, certain cursors would not draw at the
correct size.

Closes obsproject/obs-studio#1284
2018-05-06 11:38:49 -07:00
Ilya Melamed db06a1c12a win-dshow: Allow synchronous create/update
Allows the ability to (optionally) synchronously create/update a
directshow device source rather than always asynchronously update the
device.  This is useful if creating/destroying scenes/sources very
quickly, and helps minimize the risk of creating new directshow sources
that use the same device, yet may not activate because an existing
source may already exist.  To use, set "synchronous_activate" to true in
its settings when updating or creating.  Note that this setting will be
erased after it's used, and will not be saved to user settings, so it
must be set each time in order to be used.

Closes obsproject/obs-studio#1228
2018-05-05 11:44:14 -07:00
Richard Stanway 4df7914767
win-capture: Update D3D9 signature for Win10 April 2018 Update 2018-05-02 14:00:44 +02:00
jp9000 cf35f15042 obs-browser: Use BGRA textures instead of RGBA 2018-05-01 12:08:46 -07:00
Jim dcbad4af89
Merge pull request #1278 from computerquip-streamlabs/win-capture-shutdown-fix2
win-capture: Avoid obs functions in init_hooks
2018-04-26 15:46:11 -07:00
Andrew Surzhynskyi 174ad29466 rtmp-services: Update ingest list for Restream.io 2018-04-26 19:28:25 +03:00
Jim 273482dbe9
Merge pull request #1265 from comex/aframe
obs-ffmpeg: fill in more fields on audio frames
2018-04-25 05:57:44 -07:00
Zachary Lund 6475a1c000 win-capture: Avoid obs functions in init_hooks 2018-04-24 14:17:28 -07:00
Jim 2ebcd49b08
Merge pull request #1246 from pkviet/onMeta
obs-outputs/flv: Fix ECMA array size
2018-04-20 22:27:37 -07:00
Jim 14b7b4790c
Merge pull request #1213 from TheMuso/vth264-fixes
Vth264 fixes
2018-04-19 22:24:35 -07:00
comex c54cc0bf5b obs-ffmpeg: fill in more fields on audio frames
After you call av_frame_alloc(), ffmpeg expects you to fill in certain
fields on the frame, depending on whether it's an audio or video frame.
obs-ffmpeg did this in the two places where it allocates video frames,
but not where it allocates audio frames.  On my system, using trunk
ffmpeg and the Opus codec, this causes OBS to crash while calling
avcodec_send_frame, ultimately because av_frame_copy fails due to
'dst->format < 0' (as 'format' stays at the default of -1), causing a
null pointer to be added to a buffer queue, which later gets
dereferenced.

Oddly, the fields in question can just be copied directly from
corresponding fields in the AVCodecContext, but I don't see any ffmpeg
API to automatically copy all relevant fields, and all the examples I've
seen do it by hand.  So this patch does the same.
2018-04-18 13:13:48 -07:00
jp9000 30d967eafa obs-browser: Update to browser source refactor 2018-04-14 03:45:07 -07:00
Kilian von Pflugk 531d4cd2a4 rtmp-services: Update recommended parameters for Nood.tv 2018-03-28 20:43:32 +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
Colin Edwards 483be6e57c obs-browser: Update submodule to latest version 2018-03-18 14:40:01 -05:00
jp9000 a0cb1f256c obs-browser: Update submodule to latest version 2018-03-17 21:16:30 -07:00
Jim 6eae0b284e
Merge pull request #1236 from subzerobo/rtmp-services-aparat-com
rtmp-services: Update ingest list for Aparat.com
2018-03-17 17:07:51 -07:00
Michael Fabian 'Xaymar' Dirks 7f0576bac6 enc-amf: Version 2.3.3 2018-03-17 19:31:00 +01:00
Ali Kaviani 643c35aa1b rtmp-services: Update ingest list for Aparat.com 2018-03-17 11:43:52 +03:30
jp9000 215589755c mac-capture: Fix bug where audio device couldn't be changed
If the user selected the "default" device for audio capture on mac, it
would no longer be able to be switched to another device due to the
"default_device" variable being set.
2018-03-16 21:13:40 -07:00
Jim 55e1865a73
Merge pull request #1183 from Xaymar/plugin-enc-amf
enc-amf: Version 2.3.2
2018-03-16 19:13:43 -07:00
Kilian von Pflugk 66f3fa2f74 rtmp-services: Update ingest list for Nood.tv
Closes obsproject/obs-studio#1211
2018-03-15 19:02:41 -07:00
Jim 68a51b87e9
Merge pull request #1208 from Dead133/master
rtmp-services: Update ingest list for Restream.io
2018-03-15 18:05:30 -07:00
Jim 47043b2566
Merge pull request #1220 from admshao/opengl-color-info
Opengl color info
2018-03-15 16:36:31 -07:00
Gol-D-Ace 88282c168c Update translations from Crowdin 2018-03-15 09:00:28 +01:00
Shaolin b452338f62 linux-capture: Request at least 8 bits for alpha
10bpc support is under active development all over the linux stack
so while we wait for it to mature, request an alpha size of 8.
2018-03-12 22:36:50 -03:00
jp9000 4b54bde426 cmake, libobs, win-capture: Fix VS2017 warnings 2018-03-12 16:16:38 -07:00
Luke Yelavich 2667ae3fc5 mac-vth264: Fix video info set logic
In the vt_h264_video_info function, the format of the video to be encoded is
always being set to VIDEO_FORMAT_NV12, dispite the presence of code to set
the video format to VIDEO_FORMAT_I420 or VIDEO_FORMAT_I444. This commit fixes
that function to respect the video format choice of the user.

In addition, whilst testing this fix initially, I also discovered that the
4:4:4 colour format is not supported by the VideoToolbox H264 encoder.
Looking at the VideoToolbox code in ffmpeg as a reference, the ffmpeg code
errors out if a color format other than NV12 or I420 is set. Therefore, this
commit also logs a warning about I444 not being supported, and uses the NV12
default.
2018-03-07 14:20:14 +11:00
Luke Yelavich 24d2346a1c mac-vth264: Set the fullrange variable before calling vt_h264_video_info
The fullrange variable is used to set appropriate video format information in
vt_h264_video_info. Set fullrange first so the video format data is correct in
all cases.
2018-03-07 11:59:40 +11:00
Gol-D-Ace 7337b7ffb8 obs-ffmpeg: Fix locale typo 2018-03-01 22:44:43 +01:00
Andrew Surzhynskyi f971e5bf55 rtmp-services: Update ingest list for Restream.io 2018-02-28 11:07:07 +02:00
Jim f3551ff5fa
Merge pull request #1199 from mixer/ftl-update
obs-output: Update ftl-sdk version and ftl logging values
2018-02-27 06:11:00 -08:00
sorayuki e00e081111 image-source: Fade to transparency if slideshow list is cleared
Fixes a bug where the last image would be permanently shown if the user
clears the file list of a slideshow source.

Closes jp9000/obs-studio#1206
2018-02-27 05:51:31 -08:00
Ben Stahl b8402daa2f rtmp-services: Add Vimeo to services list
This commit adds Vimeo RTMP ingest to services.json.

Closes jp9000/obs-studio#1178
2018-02-27 05:41:10 -08:00
jp9000 aa58b9cf5f obs-ffmpeg: Use FFmpeg's "fast" AAC encoder by default
FFmpeg has recently made their "fast" AAC encoder the default, which
uses less CPU and sounds better at common bitrates.
2018-02-26 00:11:30 -08:00
jp9000 a89470d2ea obs-ffmpeg: Remove cutoff hack for AAC encoder
The cutoff hack was added many, many years ago as recommended by
Konverter.  Since then, there has been much work on the AAC encoder, so
this hack should no longer be necessary.
2018-02-25 23:50:09 -08:00
jp9000 26595b58b9 win-mf: Deprecate plugin
The windows media foundation H264 encoders have been deprecated for over
a year, and microsoft's media foundation AAC encoder has had a continued
issue with occasional random audio glitches.  The FFmpeg AAC encoder has
had recent development, and is more than sufficient to be able to handle
the task of encoding in terms of both quality and performance, so it's
better just to use the FFmpeg encoder from here on out.

As this plugin is no longer needed, for the next year or two it'll still
be compiled and included, but as a blank plugin that does nothing.  The
reason why it's still being included as a blank no-operation plugin is
to overwrite older versions of the plugin.  That way if a user installs
a newer OBS version over an older one, it won't load up the older win-mf
plugin where the encoders still were enabled.

This also fixes some rarely reported media foundation crashes that can
happen on startup.
2018-02-25 22:37:56 -08:00
jp9000 8a16fa8341 win-capture/graphics-hook: Fix memory offset calculation
Fixes an issue where align_pos could be smaller than
sizeof(struct shmem_data), potentially overwriting memory of the header.

References jp9000/obs-studio#1202
2018-02-24 21:48:50 -08:00
Shaolin 7f3a6844b5 obs-filters: Clear unused parameter warning
Closes jp9000/obs-studio#1188
2018-02-20 01:33:19 -08:00
astudios123 ef7a64228f rtmp-services: Add SermonAudio to services list
This commit adds SermonAudio RTMP ingest to services.json

Closes jp9000/obs-studio#1190
2018-02-19 20:03:25 -08:00
Quinn Damerell 90d3732247 obs-output: Update ftl-sdk version and ftl logging values 2018-02-15 16:11:23 -08:00
Exeldro 277b664001 obs-ffmpeg: Add speed percentage option
(Note: This commit also modifies the deps/media-playback module.)

Allows modifying the speed of local file playback.

Closes jp9000/obs-studio#1091
2018-02-15 15:18:13 -08:00
jp9000 dc0363d3e8 deps/media-playback: Use a struct for media init data
Instead of using countless parameters for the media initialization data,
use a structure.
2018-02-15 13:32:35 -08:00
Colin Edwards 7b6da2c430 obs-vst: Add layout to QMacCocoaViewContainer (update submodule) 2018-02-06 20:54:46 -06:00
Colin Edwards 4109be4511 obs-vst: Link Qt5::MacExtras (update submodule) 2018-02-06 18:52:38 -06: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
Michael Fabian 'Xaymar' Dirks 2129448dee enc-amf: Version 2.3.2 2018-02-06 01:59:43 +01:00
jp9000 4eb5be4903 obs-filters: Fix hard cross-lock when using ducking 2018-01-22 16:44:22 -08:00
jp9000 bd30a0874d win-dshow: Fix decoding issues from encoded devices 2018-01-22 14:41:00 -08:00
jp9000 cee790a5c6 enc-amf: Prevent detect-amf from showing fail dialogs
Prevents the user when detect-amf piped program crashes due to driver
crash.
2018-01-22 07:29:55 -08:00
jp9000 cb47c61e42 Revert "obs-outputs: Fix FMS auth with query string"
This reverts commit 5cf11d6726.
2018-01-22 05:40:26 -08:00
Gol-D-Ace ae22886f67 Update translations from Crowdin 2018-01-22 04:55:52 +01:00
jp9000 d976bc94db enc-amf: Test for AMF support in separate process first
Adjusts the enc-amf submodule remote to the jp9000 fork, which tests AMF
support in a separate process before attempting to initialize AMF
in-process.  Reduces the possibility of driver crashes caused by AMF
initialization.
2018-01-20 11:20:24 -08:00
Jim b183b49b5e
Merge pull request #1077 from Xaymar/plugins-enc-amf
enc-amf: Version 2.3.1
2018-01-20 10:50:25 -08:00
jp9000 6774bbdb83 obs-ffmpeg: Remove NVENC detection code for now
The reason this code is being reverted/removed is because this code is a
risk to startup stability.  This check will be added again in the
future, however this code needs to be executed from a secondary piped
process instead of directly in the process to reduce risk of
driver/hardware issues impacting program startup.  The same needs to be
accomplished for the AMF plugin as well.
2018-01-20 05:31:58 -08:00
jp9000 f5c3af1bda obs-ffmpeg: Fix signed mismatch warning 2018-01-19 16:19:10 -08:00
Jim 77643cce1e
Merge pull request #1139 from takev/pulseaudio-surround-selection
linux-pulseaudio: Surround speaker map
2018-01-19 16:14:04 -08:00
jp9000 655288baec obs-ffmpeg: Do not return last replay path if currently muxing 2018-01-18 08:54:43 -08:00
jp9000 8fc486339c obs-ffmpeg: Add proc to get last replay buffer
Allows getting the path of the last replay buffer saved via the
procedure handler of the FFmpeg muxer output.
2018-01-18 05:34:26 -08:00
Lucian Poston ff45b7b119 obs-ffmpeg: Call av_register_all before nvenc check
Closes jp9000/obs-studio#1157
2018-01-18 01:36:46 -08:00
jp9000 653d3ceb33 obs-ffmpeg: Don't try to detect NVENC on mac 2018-01-18 01:36:46 -08:00
Michel 054d607c2d obs-ffmpeg: Improve NVENC detection
This improves detection by performing an actual check on encoder
capability directly with the NVENC/CUDA libraries.
2018-01-18 01:35:45 -08:00
Tjienta Vara 48a8e750bb linux-pulseaudio: Surround speaker map
When using more than two channels, the channel map of pulse-audio is incorrect.

Add an API for getting a speaker map based on OBS speaker layout. Then use the
speaker map when connecting to a pulse-audio device, for both source and
monitor output.
2018-01-17 13:05:04 +01:00
jp9000 ae259bf8d8 win-capture: Make minor clarification to locale string 2018-01-13 18:30:23 -08:00
jp9000 17560bf86a Revert "obs-ffmpeg: Improve NVENC detection"
This reverts commit 94b5982216.

Reverting this commit because it had some negative side effects, such as
adding 500 milliseconds to the startup time.  NVENC detection should
really be done through its proper API, and not via creating an encoder
on startup.
2018-01-12 05:35:01 -08: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
Joel Bethke 10b27723a3 win-capture: Change string for memory capture option
Makes it a bit more clear this option shouldn't be used unless you're on
SLI/crossfire.

In the future, something should be put in to the program that detects
laptops and warns on how to set up their adapter for efficient capture.

Closes jp9000/obs-studio#1138
2018-01-08 15:44:05 -08:00
Tjienta Vara 8f6d048817 linux-pulseaudio: Default sample format float32le
This pull request changes the fallback sample format for pulse-audio
to from PA_SAMPLE_S16LE to PA_SAMPLE_FLOAT32LE.

The pulseaudio plugin can handle the following sample format:
* PA_SAMPlE_U8
* PA_SAMPLE_S16LE
* PA_SAMPLE_S32LE
* PA_SAMPLE_FLOAT32LE

When an audio device advertises itself as another format, the pulseaudio-plugin
will ask pulse audio to convert to the fallback sample format.

The fallback PA_SAMPLE_S16LE is not ideal when your audio interface advertises
as PA_SAMPLE_S24LE since the conversion will lose precision.
With PA_SAMPLE_FLOAT32LE there is no precision loss and it is also equals OBS's
internal format.
2018-01-08 19:31:09 +01:00
derrod 9c8acf127b rtmp-services: Add Twitch Helsinki ingest 2018-01-06 22:16:32 +01:00
Jim 93a96a0603
Merge pull request #1117 from takev/v4l2-add-resolutions
linux-v4l2: Add 4k and 21:9 resolutions
2018-01-06 12:33:22 -08:00
Jim 05a8969439
Merge pull request #1120 from pkviet/ffmpeg
obs-ffmpeg: Fix ffmpeg output recording in x264
2018-01-05 16:47:07 -08:00
Matt Morrissette 5cf11d6726 obs-outputs: Fix FMS auth with query string
Fix FMS authentication to support RTMP connection URLs that have a
query string parameter already.

Closes jp9000/obs-studio#1105
2018-01-05 15:52:14 -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
Jim 2c20d42815
Merge pull request #1111 from derrod/update-ingests
rtmp-services: Add Twitch Salt Lake City ingest
2018-01-04 20:43:45 -08:00
J.D. Purcell 459da1c863 obs-filters: Fix heavy distortion in Noise Suppression filter
Noise Suppression: Clamp sample values before converting to integer.
This fixes an issue where samples exceeding full scale would overflow,
resulting in heavy distortion.

Closes jp9000/obs-studio#1113
2018-01-04 20:41:01 -08:00
jp9000 6634415e32 obs-filters: Fix minor leaks with LUT filter 2018-01-04 20:35:39 -08:00
Tjienta Vara a92bd6b99a linux-v4l2: Add 4k and 21:9 resolutions
Add the following 16:9 4k resolutions:
 - 2560x1440
 - 3840x2160

Add the following 21:9 2k and 4k resolutions:
 - 2560x1080
 - 3440x1440
 - 5120x2160
2018-01-02 18:44:27 +01: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
Richard Stanway 66ec96d52c
win-capture: Fix memory capture crash on new capture
If the target process re-creates its D3D context, the game capture tick
can trigger before the capture is setup, in which case OBS gets a
CAPTURE_RETRY message. However with the memory capture method, it
continues to try and copy from the shared memory pointer which is no
longer valid, resulting in a crash. The fix uses the old texture until
the next tick at which point the new capture should be ready for use.
2017-12-14 16:40:14 +01:00
Michael Fabian 'Xaymar' Dirks e7c2381651 enc-amf: Version 2.3.1
Code Changes:
- Removed flag BUILD_AMF_ENCODER.
- AMF SDK is now a submodule of the plugin, no longer requiring extra steps.

Plugin Changes:
- 'Bitrate.Target' has been renamed to 'bitrate' internally, improving support for "New Networking Code" and "Replay Buffer" which incorrectly rely on this value instead of taking the average bitrate of packets sent over the last second.
- Drivers with a runtime older than 1.4.6.0 are blacklisted now.
- All hidden and experimental options have been removed.
2017-12-13 23:14:54 +01:00
Richard Stanway cf9f016820
win-capture: Rename structs to avoid SDK conflict
Windows SDK 10.0.16299.0 defines these structures as part of winternl.h
but using different types and names. Unfortunately there's no macro to
detect the SDK version, so to avoid conflicting with newer / older SDKs
the OBS structs have been renamed.
2017-12-12 18:20:56 +01:00
derrod 4b3fa10cde rtmp-services: Add Twitch Salt Lake City ingest 2017-12-09 19:05:52 +01:00
jp9000 0497095f97 Fix a number of GCC warnings 2017-12-06 16:42:45 -08:00
jp9000 4704723759 Fix a number of MSVC warnings 2017-12-06 16:07:23 -08:00
jp9000 530266917d obs-ffmpeg: Use correct function with older FFmpeg vers.
When this was being fixed up, the incorrect function name was used --
however it still compiled because the author was using the newer FFmpeg
version at the time.
2017-12-06 10:10:03 -08:00
jp9000 0d6204c8af Fix a number of MSVC warnings
Fixes a number of warnings with all modules
2017-12-05 13:53:44 -08:00
jp9000 ffdecc34f4 obs-vst: Fix a few warnings (update submodule) 2017-12-05 13:52:47 -08:00
Jim 51bd92b20e
Merge pull request #1096 from SuslikV/patch-1
decklink: Rename 5.1 and 7.1 multi-channel formats
2017-12-02 16:39:27 -08:00
jp9000 60530c8206 obs-filters: Add sidechain source option to compressor
Adds a sidechain (ducking) option to the compression filter.
2017-12-02 13:59:26 -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
derrod 25dcb3fb4c rtmp-services: Remove Coderwall / Fix Livestream service name 2017-12-02 19:16:45 +01:00
Jim cf7a471370
Merge pull request #1092 from Mobcrush/jgh-/add-mobcrush-service
rtmp-services: Add Mobcrush to services list
2017-12-02 09:16:42 -08:00
Michel 94b5982216 obs-ffmpeg: Improve NVENC detection
Certain NVIDIA GPUs don't support NVENC, but ship with the NVENC
library, causing OBS to mistakenly think that NVENC is available when it
actually isn't.

Closes jp9000/obs-studio#1087
2017-12-02 08:08:52 -08:00
James Hurley bc91173999 rtmp-services: Add Mobcrush to services list
This commit adds Mobcrush RTMP ingest to services.json.
2017-12-02 10:13:31 -05:00
Thomas Schnitzler 09e79aba08 win-dshow: Improve automatic Elgato audio device selection
Implement automatic audio device selection for devices that use two
separate DirectShow filters for audio and video instead of having a
single filter with audio and video output pins.

Please note that this fix is currently only active for Elgato USB and
PCIe devices (e.g. Cam Link, HD60 S, HD60 Pro, 4K60 Pro) to avoid
unintentionally changing the behavior for any other devices (e.g.
webcams).

(Jim edit: This fixes an issue with newer Elgato devices where the
devices would not automatically have their audio coupled with the video;
users would have to manually select the audio device in order to get
audio functioning.)

Closes jp9000/obs-studio#1081
2017-11-29 04:04:53 -08:00
Ryan Foster 79c0f0105c linux-capture: Log window capture's target
Closes jp9000/obs-studio#983
2017-11-26 18:01:28 -08:00
Ryan Foster d6f6af3c54 mac-capture: Log window capture's target
Closes jp9000/obs-studio#983
2017-11-26 18:01:22 -08:00
Ryan Foster 1db301f907 win-capture: Log window capture's target
Closes jp9000/obs-studio#983
2017-11-26 18:00:51 -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
Ryan Foster 54ecfc8fe7 cmake: Add CMake option to disable building plugins
Closes jp9000/obs-studio#1070
2017-11-26 03:16:22 -08:00
Alcaros d33b36e460 rtmp-services: Add MyLive streaming platform
[MyLive](https://mylive.in.th) is a streaming platform in Thailand.
Website founded in 2013 and company established in 2017.

Closes jp9000/obs-studio#1073
2017-11-26 00:54:44 -08:00
Fazrad Karkhani f1dd048714 rtmp-services: Add Lahzenegar.com streaming platform
Closes jp9000/obs-studio#1063
2017-11-25 20:28:00 -08:00
Jim 9546a9b784
Merge pull request #1065 from damongant/master
rtmp-services: Add us-west1 Picarto ingress
2017-11-25 18:10:03 -08:00
Jim b744d55530
Merge pull request #1069 from alexandrevicenzi/evtservice
rtmp-services: Add Eventials streaming platform
2017-11-25 17:56:52 -08:00
jp9000 fc61e6ed69 win-wasapi: Fix timestamp calculation
When device timing is used, it shouldn't be modifying the timestamp.
Fixes an issue where certain devices with large audio segments would
seem a bit out of sync.
2017-11-24 23:56:55 -08:00
jp9000 edf34fdf25 obs-ffmpeg: Log bad muxer settings with FFmpeg output 2017-11-24 21:18:57 -08:00
jp9000 ee63fc69ac obs-ffmpeg: Use muxer settings with AVIOContext
In the FFmpeg output, it was not passing the muxer settings to the
AVIOContext, so some settings would not be properly passed to protocols.
2017-11-24 21:18:52 -08:00
jp9000 f0a2ef49cf obs-vst: Update to latest plugin version
Closes jp9000/obs-studio#1035
2017-11-23 18:08:25 -08:00
Jim 6778be17d9
Merge pull request #1033 from Sophira/alsa-custom-fix
linux-alsa: Display the "Custom" entry once only
2017-11-23 00:36:56 -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
Bazhenoff b9d044267d graphics-hook: blacklist OpenGL capture for "cm_client.exe"
Closes jp9000/obs-studio#1076
2017-11-16 17:57:11 -08:00
Alexandre Vicenzi d926492ec2 rtmp-services: Add Eventials streaming platform 2017-11-07 11:57:11 -02:00
Alexander Schittler 1a20e40d53 rtmp-services: Add us-west1 Picarto ingress 2017-11-03 10:49:03 +01:00
Alexandre Vicenzi b1ada2f975 linux-pulseaudio: Get correct default device
Closes jp9000/obs-studio#1030
2017-10-30 02:12:03 -07:00
Richard Stanway 95f20c84ba obs-ffmpeg: Use new ffmpeg constants 2017-10-26 19:17:53 +02:00
jeremiah 5d12c5a328 rtmp-services: Add stream.me streaming platform
Closes jp9000/obs-studio#1056
2017-10-25 11:39:42 -07:00
Alexander Schittler 966480e6e9 rtmp-services: Add Picarto eu-west1 ingress server
Closes jp9000/obs-studio#1054
2017-10-25 11:33:45 -07:00
Xaymar 331d7d8bbb enc-amf: Version 2.2.4
Updates the plugin to work better with the AMF Runtime version 1.4.6.0, which removed some experimental properties.
2017-10-23 01:08:03 +02:00
jp9000 7bd06e7f26 Update translations from Crowdin 2017-10-17 05:39:22 -07:00
jp9000 48a5f0e51a rtmp-services: Don't show "service not found" if name empty
Fixes an issue where the log could have "Could not find service" with an
empty service name when opening properties.
2017-10-15 05:26:11 -07:00
jp9000 5cfefce55e obs-outputs: Only set stop events if still active
The new code in 3032535f56 would signal that the output has stopped to
the back-end and front-end, but the event used in the outputs themselves
to shut down the send thread would still be signaled, causing the next
connection to immediately stop as soon as it had started.  This fixes it
so that the event does not get signaled unless the thread is active.
2017-10-12 09:56:47 -07:00
jp9000 3032535f56 obs-outputs: Signal stop if stop called when not active
Fixes a bug with reconnecting where the reconnecting would get stuck in
the "stopping" state.
2017-10-12 08:20:50 -07: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
jp9000 d768717b8c rtmp-services: Only update Twitch ingests when necessary
(This commit also modifies UI)

Instead of pinging Twitch every time the program starts up, only pings
for new servers when the ingests are actually being used, and when the
UI uses the auto-configuration dialog.

If ingests have not been cached when using the "Auto" server, it will
wait for 3 seconds max to query the Twitch ingest API.  If it takes
longer than 3 seconds or fails, it will defer to SF.  If ingests were
already cached, then it will use the existing cache immediately.
2017-10-09 10:10:59 -07:00
jp9000 a0e8c7a5c1 win-dshow: Fix video playback when default format is MJPEG
Video playback doesn't work if the default format is MJPEG and there are
other formats to use; this is because the useDefaultConfig variable is
still set to true, which overrides the format value that would normally
tell it to convert to RGB.
2017-10-04 15:58:06 -07:00
jp9000 9321b822bf vlc-video: Fix shuffle not being quite that random
This changes it so that the chooses indices at random from an index list
until the index list is exhausted.
2017-10-03 18:48:57 -07:00
jp9000 e5d660e944 graphics-hook: Blacklist specific game from GL capture
"Life is Feudal: Your Own" will use Direct3D to render the game, then
OpenGL to render its in-game menus, which causes a conflict with itself.
This specifically blacklists the game from capturing OpenGL to prevent
that from happening.
2017-10-02 15:29:04 -07:00
jp9000 c914c1c23b vlc-video: Set properties to defer update mode
Makes it so that the settings do not update every time the user touches
a property of the source, but instead update when the user is finished.
2017-10-02 07:36:02 -07:00
jp9000 5b20942247 win-wasapi: Subtract frame duration from timestamp
It would appear that the timestamp values returned by devices are not
perfectly accurate, and in some cases may be calculated on the spot --
to combat that, it's best to subtract the audio segment's duration from
the current audio segment's timestamp to ensure the timing is as
accurate as possible.
2017-10-02 07:36:02 -07:00
jp9000 008e38f5b6 win-capture: Remove buffering from window capture
Removes the unnecessary buffering from window capture to prevent window
capture from being one frame out of sync
2017-10-02 07:36:02 -07:00
jp9000 54e80661b6 obs-outputs: Fix up the internal FLV output
Fixes up the FLV output to ensure it functions properly.
2017-10-02 07:36:02 -07:00
jp9000 8d424cf1c7 obs-outputs: Fix FLV muxing bug
The end of an FLV tag would contain the size of the tag, but the code
was erroneously including the end size value in addition, which it's not
supposed to do normally.
2017-10-02 07:36:02 -07:00
jp9000 4a5ac39749 libobs: Fix starting video packet offset in outputs
(This commit also modifies the obs-outputs module)

The first video packet video offset (the value used to set the starting
point of video data) would be set to the DTS value of the first video
packet.  However, when b-frames are used, the first DTS value will be
negative.  This was originally done because FLV muxing requires that the
first packet's DTS start from 0.  Unfortunately, this would also
effectively cause the first packet's PTS/DTS value to be shifted forward
by the negative amount, which would cause video sync to be off by a
video frame or two.

This fixes it to start at the PTS value instead and preserve any
negative offsets.  Additionally, the FLV muxing code has been fixed to
ensure that it adjusts the starting video DTS to 0, and now correctly
adjusts the first audio packet's timestamp according to that DTS as well
(which it didn't do before).
2017-10-02 07:36:02 -07:00
Sophie Hamilton 3feea66d16 linux-alsa: Display the "Custom" entry once only
The "Custom" device entry was added inside the loop that runs for each
device; this causes "Custom" to be added once for each device detected,
or not at all if no device was detected. Moving this outside the loop
(as would appear to have been the original intent, judging by the
indentation) fixes this by adding the entry only after all devices have
been processed.
2017-09-26 13:12:57 +01:00
jp9000 c9182a9878 obs-ffmpeg: Fix potential seek issues with media source
(This commit also modifies deps/media-playback)

Before, the media-playback library would detect whether something was
seekable by checking the filename for "://", which is unideal because
there are other cases where targets may not be seekable.  So instead, an
explicit "seekable" property (off by default) is now in place in the
media source when not in "local file" mode.  Seeking will only be
enabled if local file mode is on, or if "seekable" is explicitly checked
by the user.

Closes jp9000/obs-studio#1022
2017-09-17 05:55:56 -07:00
jp9000 2386bd6556 obs-transitions: Fix integer conversion warning 2017-09-16 13:59:53 -07:00
Makeenon 006fc35a2d obs-transition: Add crossfade option to stinger
Add option in properties that let you choose how audio is mixed during
transition:
- Fade Out/Fade In (existing behavior, default)
- Crossfade

Closes jp9000/obs-studio#1028
2017-09-16 13:59:49 -07:00
Michel dab278e1b6 obs-transitions: Add audio monitoring to stinger
Closes jp9000/obs-studio#1001
2017-09-16 12:35:17 -07:00
chinasarft 1ef4de7ce3 obs-ffmpeg: Don't mark to destroy media unless valid
Closes jp9000/obs-studio#1021
2017-09-15 05:51:52 -07:00