Commit Graph

1894 Commits (1c4a6ca6c67d723d6729c357f59e5b2db768096f)

Author SHA1 Message Date
Wahaj Dar 2b0a728722 rtmp-services: Adding Castr.io ingests to service list 2018-07-04 10:29:18 +05:00
Luke Yelavich ec366cfa3d vlc-video: Load libvlccore.dylib on macOS
As of version 3, libvlc on macOS is linked against libvlccore
differently. Previously libvlccore was referred to via the @loader_path
macro, now @rpath is used. As such, dlopen is no longer able to find
libvlccore. Explicitly load libvlccore so that the symbols that
libvlc needs can be found.

Tested against VLC versions 2.2.8 and 3.0.3.
2018-07-03 20:08:40 +10:00
jp9000 3caf5d04d3 Revert "obs-x264: Specify x264 color space for BT.601"
This reverts commit 958167c4f7.

This caused certain transcoders (specifically Twitch's transcoders) to
misinterpret the data and transcode the video incorrectly.
2018-06-24 15:42:53 -07:00
Jim cd70c2e037
Merge pull request #1292 from pkviet/leaks
Fix several mem leaks
2018-06-17 20:54:10 -07:00
jp9000 0bd2e23d14 obs-transitions: Fix potential stinger divide by 0
If the transition point was above or equal to 1.0, it would cause a
divide by 0 error a few lines down.  This could cause audio data to
become corrupted with NAN audio data when mixing, which can cause
certain audio encoders (namely the FFmpeg AAC encoder) to fail.

It was possible for the transition point to be above or equal to 1.0 if
the stinger media file was no longer loadable for whatever reason.
2018-06-11 19:34:07 -07:00
Bjorn 958167c4f7 obs-x264: Specify x264 color space for BT.601
Back in an older commit, the default YUV colorspace was changed to 601
in order to ensure correct playback in video players that ignore the
contents of the H264 header.
x264's "undef" is unfortunately not what players that don't ignore the
header expect for BT.601, resulting in incorrect colors when played
back. Setting it to "bt470bg", similar to what is specified in ffmpeg
outputs, remedies this issue.
2018-06-08 14:40:13 +02:00
Jim d8a1398466
Merge pull request #1308 from RytoEX/fix-mkv-fps
obs-ffmpeg: Set average framerate in video stream
2018-06-06 15:52:12 -07: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
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
Jim dde03af95e Merge pull request #987 from seirl/master
Add fix to watch for VisibilityNotify events.
2017-09-12 05:30:36 -07:00
Christoph Hohmann 5813a4bfbf linux-pulseaudio: Use actual sink device names
Uses the sink device names rather than the "Monitor of" names.

Closes jp9000/obs-studio#990
2017-09-12 04:01:06 -07:00
pkuznetsov 03659d8706 rtmp-services: Add looch.tv streaming platform 2017-09-11 16:43:39 +03:00
Andrew Surzhynskyi c830f919d7 rtmp-services: Update ingest list for Restream.io 2017-09-11 13:29:26 +03:00
Jim e8f66d6c18 Merge pull request #998 from ErunamoJAZZ/master
rtmp-services: Fix misspelled country name
2017-09-11 02:47:52 -07:00
cg2121 be77b13e58 vlc-source: Add media control hotkeys
This adds play/pause, restart, stop, next, and previous hotkeys to the
VLC source.

Closes jp9000/obs-studio#972
2017-09-11 01:13:59 -07:00
C. Daniel Sanchez R 06bbd2667f rtmp-services: Fixing misspell in a country name
That had a misspell in a Twitch ingest server:
Col_u_mbia instead Col**o**mbia.
Incremented version.
2017-09-09 13:06:41 -05:00
Richard Stanway 41a1b09988
obs-outputs: Improve new netcode if encoder reports 0 bitrate
Some encoders such as the AMD AMF encoder don't set their bitrate
property, so it gets returned as 0. This causes the new network code to
allocate a tiny buffer, resulting in output starvation and throttling
to the point of uselessness if low latency mode is also enabled.
2017-08-30 00:09:05 +02:00
derrod 48fc0fc120 rtmp-services: Add new twitch ingest servers 2017-08-25 16:11:18 +02:00
Quinn Damerell 1151c6cede obs-outputs: Fix invalid stream key error
Fixes an issue where it would show the wrong error when the user entered
an invalid stream key, and logs it

Closes jp9000/obs-studio#1015
2017-08-25 02:03:13 -07:00
Quinn Damerell 8111f99854 obs-outputs: Enable FTL logging and reduce verbosity
Closes jp9000/obs-studio#1015
2017-08-25 02:02:50 -07:00
Jim b2055f0566 Merge pull request #1009 from Dead133/master
rtmp-services: Update ingest list for Restream.io
2017-08-24 14:41:23 -07:00
Andrew Surzhynskyi 354f337e42 rtmp-services: Update ingest list for Restream.io 2017-08-24 12:39:13 +03:00
Colin Edwards 86cea3f48f obs-browser: version 1.30.1 2017-08-18 22:26:47 -05:00
Colin Edwards 23ea91976f Build with CEF 3112 on OSX 2017-08-18 21:41:31 -05:00
jp9000 00f6bbe99c image-source: Fix potential crash with slideshow
If there are no slideshow items and this function is called, it would
cause a null pointer dereference.
2017-08-10 21:30:03 -07:00
jp9000 8b315186a7 rtmp-services: Always check service updates on non-windows
This is a workaround for build server cmake build issues on mac/linux.
In the future, the build servers should specify the cmake variable.
2017-08-10 08:11:27 -07:00
Gol-D-Ace 8d8c2e5a22 Update translations from Crowdin 2017-08-10 16:07:40 +02:00
jp9000 0cae0439ff obs-transitions: Rename stinger ID to prevent conflict
Prevents a conflict with potentially existing plugins
2017-08-10 07:04:56 -07:00
jp9000 a4b361de00 rtmp-services: Require cmake var to enable ingest updates
Prevents an issue where forks would continually request data from the
obsproject server for ingest updates.
2017-08-09 12:34:27 -07:00
jp9000 a625448d97 rtmp-services: Initialize mutex/dynamic array
The Twitch ingest lookup file did not initialize the dynamic array or
mutex before using.
2017-08-09 12:33:16 -07:00
Michael Fabian Dirks e74eb6491a enc-amf: Update to 2.2.2
Hotfix 2: Fixed an at-exit crash caused by an AMF trace function.
2017-08-08 23:24:02 +02:00
derrod 512f041bed obs-outputs: Change loglevel of ftl status thread to debug
The ftl output gets very spammy (3-6 lines every 5 seconds),
this commit changes the loglevel of those messages to debug
so they do not clutter up the logs of users.

In case these messages are needed they can be re-enabled using
the '--verbose' flag.

(also fixes minor formatting issues)
2017-08-08 17:47:39 +02:00
jp9000 4821ab8ae8 obs-transitions: Fix stinger transition locale
Changes "TransitionPoint" back to "Transition Point (milliseconds)" and
adds "TransitionPointFrame" locale when frame index mode is selected.
2017-08-08 08:13:45 -07:00
derrod aa6bd58ce3 obs-transitions: Add frame transition point option to stinger
Allows the user to specify a frame instead of a timestamp for
the transition point.
2017-08-08 10:08:23 +02:00
derrod 8b3921ffbf obs-ffmpeg: Add proc handler for getting number of frames in video
Allows getting (approximate) number of frames in a media file.
2017-08-08 10:06:56 +02:00
Aidan Epstein f4a8137412 linux-capture: Watch for VisibilityNotify events
Some window managers like i3 don't issue Expose events when switching
between workspaces, but send VisibilityNotify events. This causes the
stream to freeze even when the workspace is switched back.

Related issue: #863
2017-08-07 12:33:29 +02:00
Richard Stanway ca5f123030
obs-ffmpeg: Improved output error handling
Checks the output path is writable and checks for failure to start the
ffmpeg-mux subprocess.
2017-08-07 00:32:49 +02:00
jp9000 da3e1d974e rtmp-services: Update Switchboard ingests 2017-08-05 21:28:07 -07:00
jp9000 a2d7aa3563 vlc-video: Don't allow VLC sources to be cloned 2017-08-05 21:24:39 -07:00
jp9000 7ec07cf82d obs-x264: Remove VFR mode as an advanced option
VFR encoding mode was originally added experimentally, but in truth,
it's nothing but a detriment because it can cause wild bitrate
fluctuations.  It's still a constant framerate even when VFR mode is on
anyway.
2017-08-05 21:22:51 -07:00
cg2121 7549b3a092 image-source: Add "manual (hotkey)" mode to image slideshow
Allows traversing/stopping the slideshow via hotkeys.

Split from jp9000/obs-studio#976
2017-08-04 21:16:44 -07:00
cg2121 1666abe8e6 image-source: Add activate/deactivate behavior to slideshow
When the slideshow is deactivated (not shown to the stream), makes it so
that it can either continue playing regardless, pause, or restart the
slideshow when the source is activated (shown to the stream) again.

Split from jp9000/obs-studio#976
2017-08-04 21:15:23 -07:00
cg2121 7b8a56b933 image-source: Add 'loop' and 'hide on stop' to slideshow
Allows the ability to make it so that a slideshow can stop when all
items have been shown.

Split from jp9000/obs-studio#976
2017-08-04 21:12:07 -07:00
Michael Fabian Dirks eecf366f80 enc-amf: Update to 2.2.1
With the newly released Driver 17.7.2, AMD fixed many reported issues and added some much wanted features:

- Pre-Pass and VBAQ are finally working,
- H265/HEVC content can distinguish between IDR- and I- Frames
- and also supports Color Range and Color Space now,
- and the 32-bit only text log crash was fixed.

And now it's time for the plugin to also be updated! This release primarily aims at adding support for AMF 1.4.4 and improving support for older drivers, with some of the recently discovered bugs and crashes fixed.

Hotfix 1: Fixed VBAQ and Pre-Pass being used with Constant QP, causing significant corruption issues and changed some default values for H265.

## Changelog
### 2.2.1
* Fixed a frame corruption bug with Constant QP caused by toggling VBAQ and Pre-Pass after it had already been applied.
* Changed the default value of 'Enforce HRD' to 'Enabled' for H265/HEVC encoding.
* Changed the default value of 'Deblocking Filter' to 'Disabled' for H265/HEVC encoding to fix corruption in strict decoders. (Premiere Pro, After Effects, Vegas, VLC (Software))

### 2.2.0
* Added support for AMF 1.4.4 and improved support for older drivers like 16.11.5 and 16.12.1.
* Fixed a memory corruption crash due to misuse of managed DirectX 11 objects.
* Fixed a frame corruption bug caused by applying 'VBAQ' and 'Pre-Pass' when using 'Constant QP' Rate Control Method.
* Fixed a string comparison bug causing Simple Output Mode to always use the Profile 'Constrained Baseline'
* Fixed a crash when enabling 'Debug' on 32-bit OBS caused by different type sizes.
* Fixed a crash with H265/HEVC caused by use of the undocumented Intra-Refresh properties.
* Changed the default value for 'Profile' to 'High'.
* Changed the default value for 'VBAQ' to 'Disabled' for improved performance.
* Changed the default value for 'Queue Size' to 8 for improved stability in spontaneous load situations.
* Changed the log crash work around to only apply to older AMF versions than 1.4.4.
* Removed unnecessary configuration changes.
* Removed unsupported Pre-Pass options 'Half Size' and 'Quarter Size'.
2017-08-04 20:00:51 -07:00
jp9000 9add73f656 rtmp-services: Remove Twtich "Auto" if API down and not cached
Prevents new users from having a poor user experience if the Twitch API
for getting the closest servers is currently down.
2017-08-02 15:13:09 -07:00
Jim 02b4ea028e Merge pull request #975 from RytoEX/update-picarto
rtmp-services: Update Picarto maximum audio bitrate
2017-08-01 03:02:47 -07:00
jp9000 2b2956ae98 rtmp-services: Add "Auto" server option for Twitch
Automatically selects the server closest to the user based upon the
Twitch ingest API.
2017-08-01 02:50:26 -07:00
jp9000 435e251809 rtmp-services: Add Twitch ingest update API
Updates ingests via Twitch's ingest API.  The servers are ordered by
closest to farthest from the user via the API.  It's probably still good
to keep the services.json Twitch ingests updated in case there are
issues with the Twitch ingest API, but otherwise the ingests will update
from Twitch itself every time the program is opened automatically.
2017-08-01 02:50:26 -07:00
jp9000 3786a203c7 rtmp-services: Fix ingest update request user agent
The user agent for the obsproject.com ingest update request would have
the version string baked in to the plugin, so if the plugin library
wasn't updated with the rest of the project, it would return the
incorrect version.  This makes sure it returns the correct version by
requesting the version string from libobs itself.
2017-08-01 02:38:42 -07:00
Quinn Damerell 535f4a7fcf rtmp-services: Add Mixer FTL service
Adds "Mixer FTL" service and renames the original service with RTMP
servers to "Mixer RTMP".

Closes jp9000/obs-studio#980
2017-08-01 02:27:34 -07:00
Quinn Damerell 6f8e38e0a0 obs-outputs: Add FTL output
Closes jp9000/obs-studio#980
2017-08-01 02:27:34 -07:00
jp9000 fa611dcd76 obs-ffmpeg: Add Opus audio encoder 2017-08-01 02:14:58 -07:00
jp9000 d2ffd0fdd2 obs-ffmpeg: Ensure sample rate is supported in audio encoder
Ensures that the sample rate is supported in the audio encoders, and if
not, then make it automatically resample to the closest sample rate.
2017-07-31 14:51:21 -07:00
jp9000 0089d379b0 obs-ffmpeg: Make FFmpeg audio encoder abstractable
Abstracts the FFmpeg audio encoder to allow other codecs to use the same
code, and makes the AAC encoder derived from it.
2017-07-31 14:48:20 -07:00
jp9000 58c4f0ac91 obs-ffmpeg: Rename obs-ffmpeg-aac.c file
Renames obs-ffmpeg-aac.c to obs-ffmpeg-audio-encoders.c due to the fact
that it can be abstracted for multiple audio encoders.
2017-07-31 14:29:50 -07:00
Ryan Foster 29e0d5bd4f rtmp-services: Update Picarto maximum audio bitrate
Remove the limit on maximum audio bitrate for Picarto.
http://help.picarto.tv/knowledge_base/topics/how-to-configure-open-broadcaster-software
2017-07-25 01:09:51 -04:00
Jim fd3791a57d Merge pull request #971 from canbal/master
rtmp-services: Add Twitter / Periscope as a service
2017-07-21 09:08:33 -07:00
Jim ab5a2ef6bf Merge pull request #967 from derrod/update-ingests
rtmp-services: Update Twitch ingests
2017-07-21 07:43:48 -07:00
Can Bal 79fb64fdc2 rtmp-services: Add Twitter / Periscope as a service 2017-07-20 20:55:46 -07:00
jp9000 1dab263403 obs-transitions: Add stinger transition
Allows using a video file as a means of transitioning, transitioning two
targets at a specific time during the video playback.  Audio for target
A fades out to the transition point, and then audio for target B fades
in after the transition point.
2017-07-19 16:23:06 -07:00
jp9000 cffbdd6408 obs-ffmpeg: Add proc handler function to get media duration
Allows getting the duration of a video via the proc handler of the
source.
2017-07-19 16:23:06 -07:00
derrod a6f289a128 rtmp-services: Update Twitch ingests
* Update URL of SFO ingest and moved it to proper position in list
* Added Portland
2017-07-18 02:33:20 +02:00
jp9000 d68eff6bf6 rtmp-services: Fix incorrect RTMP output ID 2017-07-17 16:44:42 -07:00
jp9000 6b66630198 rmtp-services: Don't display warning for invalid file ver.
The invalid format version warning for service files is an unnecessary
warning which isn't necessary to display because it'll automatically
fall back to the distributed version over the cached remote version.
2017-07-14 12:44:12 -07:00
jp9000 1cff1e40e6 obs-outputs: Fix a few issues with CMakeLists.txt
It's erroneously including an entire directory, including a file that no
longer exists, and the obs-outputs_HEADERS variable had a typo when used
in the add_library call.
2017-07-14 12:44:12 -07:00
jp9000 4d1672719f rtmp-services: Allow services to override bframe count 2017-07-14 12:39:59 -07:00
jp9000 339a0686f6 rtmp-services: Add ability to specify different outputs
Allows the ability for services to specify a different output if needed.

NOTE: This should probably be considered temporary, and services within
this file that use this functionality should probably be moved out of
the file and in to a separate service.
2017-07-14 12:39:20 -07:00
jp9000 e230f77311 obs-qsv11, obs-x264: Allow bframe count overriding
Allows the ability to override bframes (useful for specific protocols)
2017-07-14 12:39:20 -07:00
jp9000 d839c77824 libobs: Add API to specify codec support on encoded outputs
(This commit also modifies obs-outputs)
2017-07-14 08:15:16 -07:00
Gol-D-Ace 353a4bc824 rtmp-services: Update twitch.tv ingests 2017-07-08 00:14:49 +02:00
Cephas Reis f53a595ea2 obs-filters: Optimize and fix alpha in color grade filter
Closes jp9000/obs-studio#945
2017-07-02 15:45:51 -07:00
jp9000 bb8e019c36 rtmp-services: Add LiveEdu (accidentally removed) 2017-07-02 12:50:56 -07:00
Richard Stanway bc3a5cb832
win-capture: Log when game capture compatibilty mode is set 2017-07-01 21:39:20 +02:00
Jim daaa2741a7 Merge pull request #959 from sorayuki/patch-1
obs-qsv11: change re-enter lock implementation
2017-07-01 11:36:06 -07:00
Jim 127b1ca858 Merge pull request #955 from Skid-Inc/master
obs-text: Fix file reader occasionally not updating
2017-07-01 11:10:58 -07:00
Jim cfe77fdaae Merge pull request #938 from admshao/incompatible-pointer-types
plugins: Clear warnings about -Wincompatible-pointer-types
2017-07-01 10:37:32 -07:00
mntone 41c2f5e13b decklink: Add feature to detect resolution/format
Closes jp9000/obs-studio#879
2017-06-29 15:42:04 -07:00
sorayuki be2dc31ad1 obs-qsv11: change re-enter locker implementation
Change re-enter lock from mutex to atomic variable.
2017-06-29 12:10:14 +08:00
Shaolin e5756a922a libobs/plugins/UI: Suppress unused variables warnings
Closes jp9000/obs-studio#937
2017-06-27 21:55:37 -07:00
notmark 43885111cd rtmp-services: Update servers for Vaughn Live/Breakers.tv
Removed LAX server, added new NYC server for Vaughn Live & Breakers.TV

Closes jp9000/obs-studio#933
2017-06-27 18:54:46 -07:00
Skid-Inc baebfd0ce8 text-freetype2: Fix file reader occasionally not updating 2017-06-27 11:15:00 +01:00
Skid-Inc 2b085da63a obs-text: Fix file reader occasionally not updating
Delayed reading the text file till the update after the timestamp
changes, this should fix a minor issue where if the file updates twice
in one second, only the first change it displayed.
2017-06-27 11:14:26 +01:00
jp9000 5026d26b85 vlc-video: Fix integer conversion warning 2017-06-26 07:28:59 -07:00
Gol-D-Ace 6028b63487 rtmp-services: Rename beam.pro to Mixer.com 2017-06-26 16:15:03 +02:00
Jim 076d25bca9 Merge pull request #951 from chaturbatecom/addchaturbatesources
rtmp-services: Add Chaturbate Streaming Service
2017-06-26 07:03:23 -07:00
John Cheng 31c67d83a6 vlc-video: Add network caching property
Allows having a bit more buffering for network-based video to prevent
things such as artifacting.

Closes jp9000/obs-studio#786
2017-06-24 16:11:39 -07:00
Chaturbate 807e21da07 rtmp-services: Add Chaturbate Streaming Service 2017-06-22 14:05:25 -07:00
jp9000 d295ad3ed3 obs-ffmpeg: Remove "Buffering (MS)" property
There's no need to display this property at the moment, the default
amount is more than sufficient for most cases.  That and most people
wouldn't know what to do with it anyway.
2017-06-22 00:58:45 -07:00
Jim 71e3cce377 Merge pull request #928 from Xaymar/feature-enc-amf
enc-amf: Version 2.1.6
2017-06-21 20:26:39 -07:00
Michael Fabian Dirks e4e1145135 enc-amf: Version 2.1.6
This version fixes the code applying the streaming services settings, which would incorrectly always be applied due to left over obs_data_set_* lines. It also adds a safety check into SetIDRPeriod for H264 that fixes being able to set an IDR Period of 0 which is simply not supported (we would never be able to stop streaming or recording).
2017-06-21 19:31:53 +02:00
Richard Stanway 20cc8e6ab7
inject-helper: Set error mode to SEM_FAILCRITICALERRORS
This prevents spurious dialog boxes appearing, such as "No disk is in the
drive" if the application attempts to access an invalid drive.
2017-06-21 17:42:05 +02:00
Richard Stanway 8ad8e18d04
get-graphics-offsets: Set error mode to SEM_FAILCRITICALERRORS
This prevents spurious dialog boxes appearing, such as "No disk is in the
drive" if the application attempts to access an invalid drive.
2017-06-21 17:41:26 +02:00
Richard Stanway cef0689a36
ffmpeg-mux: Set error mode to SEM_FAILCRITICALERRORS
This prevents spurious dialog boxes appearing, such as "No disk is in the
drive" if the application attempts to access an invalid drive.
2017-06-21 17:41:08 +02:00
jp9000 b787c796cd obs-ffmpeg: Do not precache if set to close when inactive
In the media source, do not pre-cache frames if the source is set to
close the file when inactive because that setting is designed to allow
the file to be replaced by the user.  If it's replaced, it can
unintentionally keep the old precache frame, playing the frame from the
older video when it starts up.
2017-06-19 22:58:01 -07:00
jp9000 603825ee39 win-capture: Use PROCESS_QUERY_INFORMATION for game capture
PROCESS_QUERY_LIMITED_INFORMATION might be a bit insufficient for what
we need to do.
2017-06-19 16:02:02 -07:00
jp9000 1ca9f8872e win-capture: Add IDXGISwapChain1::Present1 hook support
Allows capturing games/programs that may be using Present1 instead of
the regular Present call for rendering.
2017-06-19 15:45:00 -07:00
jp9000 c4036b18bb win-capture/graphics-hook: Fix D3D10/D3D11 detection
When hooking DXGI-based graphics programs in the hook, the first hook
point is IDXGISwapChain::Present.  To be able to initiate a capture, a
pointer to the device context that created the swap chain is required,
which can be retrieved via IDXGISwapChain::GetDevice.  Determining
whether the device context was D3D10 or D3D11 has always been somewhat
of an issue due to D3D10 and D3D11 being nearly identical, as well as
their interoperability/interchangeability.  The GetDevice function would
first be called with the UUID of ID3D10Device, then if that failed,
the UUID of ID3D11Device.

However, with certain specific D3D11 games, GetDevice would for some
unknown reason succeed with the UUID of ID3D10Device, which would cause
capture to fail.  (Conversely, attempting to call GetDevice with the
UUID of ID3D11Device on a device that's actually ID3D10Device would
always succeed, so reversing the order of the test was not an option).
There were originally three known D3D11 games that would erroneously
succeed when querying a D3D10 device interface:  Call of Duty: Ghosts,
Just Cause 3, and theHunter: Call of the Wild.  All other known D3D11
games would work correctly.  Because it was only these three games, a
hack was originally implemented in the form of an executable exception
list that would force them to capture D3D11.

Unfortunately, Oculus games are now failing under the same circumstance
as well, so a simple hack will no longer work.  To fix this, a more
reliable method of detecting which context it is had to be discovered:
simply check the feature level using ID3D11Device::GetFeatureLevel.  If
the feature level is D3D_FEATURE_LEVEL_11_0 or D3D_FEATURE_LEVEL_11_1,
the device is definitely a D3D11 device.  Otherwise, continue the tests
as they were before.  Successfully tested with many D3D10 games, many
D3D11 games, and especially those three D3D11 games that previously were
detected as D3D10 erroneously.
2017-06-15 03:48:43 -07:00
jp9000 054148a0af obs-ffmpeg: Don't preload media frames if set to pause on end
Preloading is designed to overwrite the current internal render texture
of the source so it'll be ready to play the first frame right when the
source is first displayed.

However, When the media source is set to pause on the last frame, it
keeps that current render texture visible, so preloading it with the
first frame will essentially overwrite the current render, causing it to
inadvertently show and pause on the first frame rather than the last
frame.  So instead, just disable preloading when the user has it set to
pause on the last frame.
2017-06-14 08:30:44 -07:00
Gol-D-Ace b105f60911 rtmp-services: Add new twitch.tv ingests 2017-06-09 04:17:41 +02:00
Gol-D-Ace a4f9ce93fe Revert "rtmp-services: Rename Beam to Mixer"
This reverts commit 8a0b38d84e.
The new Mixer URL's aren't valid yet.
2017-06-04 18:04:19 +02:00
Shaolin cfcb2f4f39 plugins: Clear warnings about -Wincompatible-pointer-types
Signed-off-by: Shaolin <admshao@gmail.com>
2017-06-01 05:25:55 -03:00
Jim daee6e0759 Merge pull request #935 from admshao/implicit-fallthrough
Suppress -Wimplicit-fallthrough in GCC 7
2017-05-30 01:23:27 -07:00