4865 Commits

Author SHA1 Message Date
jp9000
8a5cf99aa7 UI: Test first 3 closest Twitch ingests in auto-config
If auto is available, test the first 3 closest Twitch ingests rather
than using a region-based selection.
2017-08-02 15:13:09 -07:00
jp9000
c0b8bdf89e libobs: Log output frame count instead of encoded count
Instead of logging the relative encoded count (which is susceptible to
integer overflow), log the output frame count instead.  If there's an
issue with encoding, it'll show up when all encoding stops regardless.
2017-08-02 15:13:09 -07:00
jp9000
ba33bb7745 Revert "libobs: Fix an int underflow in log_frame_info"
This reverts commit 4e3e67bb8cf6cb508b4d30b85451c0c4f20b7539.

The way this is handled will erroneously report 0 frames encoded when
frames have actually been properly encoded, which is best avoided.
Additionally, and overflow would be generated for drawn frames where
none occurred before.  The encoded value should probably not even be
present in the log for the output due to the way it's handled.
2017-08-02 15:13:09 -07:00
jp9000
72d20de8e7 Revert "UI: Add support for Twitch "Auto" server in auto-config"
This reverts commit 2604db6e404cc1719ae779961ca12ed27fd06e89.

The API to get the closest server can be down occasionally, so instead
just revert to its previous behavior.
2017-08-02 15:13:09 -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
Michael Fabian Dirks
fbefa080b0 UI: Fix incorrect properties set for Hardware (AMD)
Due to an oversight in enc-amf with strcmp, the code currently causes
certain weirdness to appear.  This fixes it so it will use "High"
Profile instead of attempting to use "Constrained Baseline" and also
changes it to actually set things up for "Constant Bitrate" instead of
"Variable Bitrate (Latency Constrained)".  Finally I've added a slight
change that always makes it set the B-Frame Pattern to 0 in order to
work better with VCE2.0 and VCE3.0 cards.

Closes jp9000/obs-studio#978
2017-08-01 03:00:42 -07:00
jp9000
2604db6e40 UI: Add support for Twitch "Auto" server in auto-config
Uses the "Auto" server automatically for Twitch rather than doing a
region-based test on multiple servers.
2017-08-01 02:50:26 -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
jp9000
c5b26fe75c UI: Return false if audio encoder creation fails 2017-08-01 02:27:35 -07:00
jp9000
d98bda8fee UI: Remove trailing whitespace 2017-08-01 02:27:35 -07:00
Quinn Damerell
4581a8164a UI: Update Mixer (formerly Beam) in auto configuration
Closes jp9000/obs-studio#980
2017-08-01 02:27:34 -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
jp9000
81fa5179cd deps/file-updater: Add func to get single remote file 2017-07-31 13:56:20 -07:00
jp9000
e423492d61 libobs: Add API function to get version string
Some plugins are using the OBS_VERSION macro obs-config.h to specify the
current version, which will bake the string in to the plugin, making it
so that if the plugin is not replaced for a patch, it could potentially
have the incorrect version.  This makes it so that a plugin/frontend can
get the current version string that's baked in to libobs itself.
2017-07-31 13:52:08 -07:00
jp9000
8b68ccdc13 UI: Fix build issue with older linux Qt5 packages
QMainWindow::resizeDocks isn't supported on certain long-term support
distros (ubuntu trusty in particular), so instead just restore the
starting state and don't try to recalculate the ideal positioning.
2017-07-27 22:50:25 -07:00
jp9000
25bb8a444f UI: Add modular UI
Changes the UI to an adjustable user interface, allowing the user to
fully customize how the scenes list, sources list, the mixer,
transitions, and the buttons are oriented on the main window window.
2017-07-27 12:17:18 -07:00
Richard Stanway
d69652503b
UI: Add "Below Normal" priority option 2017-07-26 23:45:40 +02:00
jp9000
960958a4ca UI: Fix potential crash when outputs change
If the service settings change and the output type changes, the previous
signals would attempt to disconnect after the output has been destroyed,
and subsequently that would cause a crash.
2017-07-25 19:01:29 -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
Dmitry Odintsov
2a53d03d5f libobs: Fix item copying during scene duplication
When item in the old scene had only Scale Filter, texture renderer
was not created for an item in the new scene. However if the item also
had Crop set, the texture renderer was created.

Now after copying the data, texture renderer is created for the item in
the new scene when needed.

Closes jp9000/obs-studio#969
2017-07-21 08:48:05 -07:00
Michael Fabian Dirks
f8b14bdb46 libobs: Ensure scene items don't have pre-multiplied alpha
Scene items would incorrectly have pre-multiplied alpha when they were
scaled with different scale filtering, when they were cropped, or when
the item itself was a scene.  This happens because the scene renders the
items to a texture in those cases, and when they are rendered to a
texture the blend function would be the default srcalpha/invsrcalpha
blend function, which would cause alpha to become pre-multiplied in the
texture's result rather than straight alpha.

This changes the behavior to directly copy the color/alpha to the
texture using the one/zero blend function instead, which makes the
resulting texture straight alpha.  (Note that you do not want to turn
off the blend mode for the same result because certain sources can have
custom drawing that may rely on blending being available)

Related Issue: https://obsproject.com/mantis/view.php?id=954

Closes jp9000/obs-studio#966
2017-07-21 08:30:14 -07:00
SammyJames
4fd66d4d1e libobs: Add post-load module callback
This allows the ability for certain types of modules (particularly
scripting-related modules) to initialize extra data when all other
modules have loaded.  Because front-ends may wish to have custom
handling for loading modules, the front-end must manually call
obs_post_load_modules after it has completed loading all plug-in
modules.

Closes jp9000/obs-studio#965
2017-07-21 08:27:31 -07:00
derrod
c354551484 UI: Add --multi flag to suppress multi-instance warning
Addresses Mantis issue 927 by adding the --multi/-m flag to suppress the
warning dialog.

Closes jp9000/obs-studio#964
2017-07-21 07:51:31 -07:00
Michel
609334e427 UI: Fix problem with exporting scene collections/profiles
When exporting scene collections/profiles existing files are
not overwritten.

Closes jp9000/obs-studio#963
2017-07-21 07:46:39 -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
jp9000
3a06cb25df libobs: Add ability for transitions to render sources directly
For specific types of transitions (stingers in this case), there is no
blending done of the two targets, so wasting GPU resources rendering
them to textures is unnecessary.
2017-07-19 16:23:06 -07:00
jp9000
cb42f08d1e libobs: Add function to get current transition time 2017-07-19 16:23:06 -07:00
jp9000
e801c766c9 libobs: Add transition callbacks for starting/stopping 2017-07-19 16:23:06 -07:00
jp9000
e37f6b3bd6 libobs: Do not save hotkeys for private sources 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
753bf20ed7 UI: Allow outputs to use different audio codecs
Allows an output to automatically specify which audio codec it requires
and use it instead of AAC.  This change is intended to be
behind-the-scenes and seamless to the user.
2017-07-14 12:44:12 -07:00
jp9000
3491487c71 UI: Allow services to use different outputs
Allows a service to specify the output it needs in order to function as
configured.

NOTE: This functionality should be considered temporary as a seamless
means of implementing support for different output types within the same
service.  Ideally, different services should be used for this
functionality.
2017-07-14 12:43:04 -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