Commit Graph

3786 Commits (383c96744e5d325f50ec83da3ecd9cc191054303)

Author SHA1 Message Date
jp9000 997f05f10e win-capture: Don't draw window if minimized 2016-05-15 04:35:29 -07:00
jp9000 5a5b8b20e3 win-capture: Clear window capture if window no longer exists 2016-05-15 04:35:01 -07:00
jp9000 d24a81868e win-capture: Do not render game capture if not active 2016-05-15 04:20:39 -07:00
jp9000 c5008e9c65 libobs: Update version to 0.14.2 2016-05-13 23:00:07 -07:00
jp9000 5329542434 UI: When upgrading encoders, always replace "cbr"
Previously it wouldn't necessarily remove the "cbr" setting when
switching the program to use "rate_control".
2016-05-13 23:00:07 -07:00
Gol-D-Ace fe56a12867 Update translations from Crowdin 2016-05-14 00:27:59 +02:00
jp9000 2707f05c46 Revert "win-capture: Allow window capturing of current process"
This reverts commit 8d520b970d.

This can actually cause a hard lock due to the windows API when
destroying window capture.  When the graphics thread locks the source
list for doing tick or render, and then the UI thread tries to destroy a
source, the UI thread will wait for the graphics thread to complete
rendering/ticking of sources.  The video_tick of window capture would
then check windows in the same process and try to query the window's
name via GetWindowText.  However, GetWindowText is synchronous, and will
not return until the window event has been processed by the UI thread,
so it will perpetually lock because the two threads are waiting for each
other to finish.
2016-05-13 04:21:39 -07:00
jp9000 8d520b970d win-capture: Allow window capturing of current process
Allows window capture to capture windows of the current process, and
adds windows of the current process to the end of the window list.
2016-05-13 02:14:24 -07:00
jp9000 a140d749f2 obs-ffmpeg: Fix type size mismatch warning 2016-05-12 23:01:45 -07:00
jp9000 e73b025533 obs-ffmpeg: Fix ffmpeg-mux unicode file saving (win32)
On windows, if you were saving a file name or directory with characters
that are not of the current windows character set, it could cause the
file saving process to fail.  This fixes it so that on windows it uses
wmain and converts the unicode command line to a UTF-8 command line,
which works with FFmpeg.
2016-05-12 20:20:49 -07:00
jp9000 bd9980a206 win-capture: Reset game cap. wait_for_target_startup on update
This flag should be reset when the user changes the game capture
settings.
2016-05-12 19:42:00 -07:00
jp9000 94e22dae49 win-capture: Instantly capture already-hooked processes
If a process is already hooked, immediately initialize the capture
rather than wait for the processes to initialize or wait for the timer
to trigger.
2016-05-12 19:38:46 -07:00
jp9000 8681baeec3 win-capture: Shut down game cap. when not showing
Prevents game capture from acting as a global source.  This fixes an
issue where a game capture in another scene could capture a window and
prevent a separate game capture in the current scene from being able to
capture that same window.
2016-05-12 19:36:33 -07:00
jp9000 9493095c25 win-capture: Shut down win8 monitor capture when not showing
Completely shut down monitor capture when it's not being shown in the
program (for example in a different scene).  This fixes an issue where
it would cause lag when a game enters fullscreen mode.
2016-05-12 17:59:01 -07:00
jp9000 5103aba23a UI: Use regular ICQ for simple output mode QSV
After testing, LA_ICQ may not always be supported, so use regular ICQ
for recordings instead.  Also fixes a bug where simple output mode
wouldn't even use LA_ICQ.
2016-05-11 13:25:15 -07:00
jp9000 b567a02150 UI: Allow remuxing to/from different formats
Instead of just remuxing from FLV to MP4, allow remuxing to/from the
various container formats that are available.
2016-05-11 13:12:35 -07:00
jp9000 50e1ec585d UI: Use defaults when changing to different encoders
In the advanced output section of settings, when a different encoder is
set, it would try to pass over settings from the other encoder, which
may or may not be fully compatible with different encoders.  Instead,
just set it to defaults if it's on an encoder that's different from the
currently loaded encoder.
2016-05-11 13:12:34 -07:00
jp9000 df04dd077b UI: Don't create encoder property views twice on load
When settings are being loaded in to the settings dialog, it would
recreate the encoder property views more than once unnecessarily.
2016-05-11 13:12:34 -07:00
jp9000 1f8fc8e8ef UI: Convert all encoder settings to use "rate_control"
The "cbr" setting has been deprecated, so if the user is using that
setting for any of the encoders, convert it to set "rate_control" to
"CBR".

Additionally, if an encoder is using x264 with VBR and the buffer size
is set to 0, change the rate control mode to CRF.
2016-05-11 13:12:33 -07:00
jp9000 e4f142b0de UI: Use CQP for NVENC when using simple output mode
When using simple output mode, previously NVENC did not support a
constant quality rate control method, and you'd have to use VBR with
bitrate.  However CQP has since been added to NVENC, and it's preferable
to use for recording when available instead of using VBR.
2016-05-11 13:12:33 -07:00
jp9000 8706e137d7 UI: Use "rate_control" instead of deprecated "cbr"
For setting CBR on encoders, use "rate_control" set to "CBR" instead of
setting the "cbr" setting (which is now deprecated) to true.
2016-05-11 13:12:32 -07:00
jp9000 2801cf0f37 rtmp-common: Use "rate_control" to set CBR mode
Instead of using "cbr" to set the rate control mode for encoders (which
is now considered deprecated for all encoders), set "rate_control" to
"CBR".
2016-05-11 13:12:32 -07:00
jp9000 7f1cabd81b obs-x264: Add rate control, deprecate "use cbr" setting
Instead of having a "cbr" setting that turns CBR on and off, adds a
"rate_control" parameter that sets the rate control method, which can be
one of the following: CBR, ABR, VBR, CRF.

If the "cbr" setting is used, it will throw a deprecation warning to the
log.
2016-05-11 13:12:31 -07:00
jp9000 c7923bcbe4 obs-qsv11: Add deprecated warning for forced CBR mode
Using the "cbr" parameter is now considered deprecated in favor of using
"rate_control" to set the rate control method.
2016-05-11 13:12:31 -07:00
jp9000 978e607522 obs-ffmpeg: Change NVENC to use rate control
Instead of using an option that turns CBR on/off, adds rate control
methods: VBR, CBR, CQP, Lossless.

This moves lossless from being a preset to being a rate control method.
2016-05-11 13:12:30 -07:00
jp9000 8fdd041e87 Revert "UI: Add CoInitializeEx to main() startup"
This reverts commit cb24080d76.

This commit is being reverted due to the fact that it breaks common
dialogs such as the open/save file dialogs, the dialogs would cause the
UI thread to lock up.

The plugin that required this will have to be modified to accommodate
this situation.
2016-05-07 00:12:59 -07:00
jp9000 84429e58df UI: Fix bug where transition refs would not release
When clicking the transition properties button and creating the
context menu with properties/rename, it would create actions that also
included a source reference, but the parent of those actions was the
main window instead of the menu, so those actions would stay created
until the main window was destroyed.

This would cause bugs with saving/loading scenes where children of that
transition would also be perpetually referenced.

So instead of using the main window, just use a pointer to the menu
itself as the parent so that when the menu is destroyed, the actions are
also destroyed, and the source refs released.
2016-05-07 00:11:53 -07:00
jp9000 8932bd39d1 UI: Check to ensure window starts up inside a monitor
Fixes an issue where the main window would load off-screen if its last
saved position was inside a monitor that no longer exists.
2016-05-05 15:31:35 -07:00
jp9000 0157d02564 obs-ffmpeg: Add lossless mode to NVENC encoder 2016-05-05 15:24:32 -07:00
jp9000 0288ea66af UI: Don't allow lossless preset when streaming NVENC 2016-05-05 00:19:38 -07:00
jp9000 ff38176c60 obs-ffmpeg: Increase upper NVENC bitrate limit
The bitrate for the properties was capped at 90000, which is a bit low.
2016-05-04 20:31:12 -07:00
jp9000 2741624fbe libobs: Log when a filter is added/removed from a source 2016-05-04 20:29:26 -07:00
jp9000 068b9904ea UI: Adjust simple output mode preset NVENC bitrates
The bitrates were a bit higher than they probably should be.
2016-05-03 15:33:17 -07:00
jp9000 75e43069cc UI: Fix alt-crop not working with X/Y flipped sources 2016-05-02 17:09:07 -07:00
jp9000 3cb36bbd51 libobs: Fix deinterlacing discarding flipped status
When rendering the deinterlaced surface, it would not take in to account
whether the async surfaces were marked as flipped or not.
2016-05-01 16:56:21 -07:00
jp9000 7af9c2d882 libobs: Don't prematurely stop transition audio
Transition audio was programmed to stop if there is no queued audio from
both sources.  Because of that, when a source's audio started after the
transition started, it would cause audio from the source to be excluded
from the transition until the transition had completed because the audio
had already been marked as stopped.

Instead, if there's no audio from the transition sources, the audio
should only be marked as stopped when video has stopped.  This allows
the to/from sources to have an opportunity to start/restart audio during
the transition safely.
2016-05-01 15:22:27 -07:00
Gol-D-Ace f507d70033 rtmp-services: Bump version for services.json to 20 2016-05-01 22:54:59 +02:00
CallumHoward cab2819033 rtmp-services: Add Facebook Live as a service
Closes jp9000/obs-studio#539
2016-05-01 13:08:32 -07:00
jp9000 61ab648bac obs-qsv11: Fix QSV rescaling
When using per-encoder rescaling, QSV would overwrite the current
encoder scale value in the get_video_info callback with the base video
width/height instead of using the current encoder width/height.
2016-04-28 16:01:38 -07:00
Richard Stanway 65fcd20242
libff: Improved handling of EOF in the decoder threads
(Also modifies obs-ffmpeg to handle empty frames on EOF)

Previously the demuxer could hit EOF before the decoder threads are
finished, resulting in truncated output. In the worse case scenario the
demuxer could read small files before ff_decoder_refresh even has a chance
to start the clocks, resulting in no output at all.
2016-04-28 23:58:28 +02:00
jp9000 ea851b1351 UI: Don't minimize projectors w/ main window
Projectors should be considered their own windows, not child windows.
Fixes the issue where projectors would minimize whenever the program
was.
2016-04-27 16:00:28 -07:00
jp9000 b16557371c obs-outputs: Improve error handling when sending headers
There was no error checking when sending headers/metadata, so what would
happen is that if a header/metadata send failed (meaning the socket was
disconnected), it would continue to act as if it was still connected,
and it would block and lock up on the next send/recv call.
2016-04-26 20:14:31 -07:00
jp9000 cb24080d76 UI: Add CoInitializeEx to main() startup
Fixes an issue with a certain upcoming as-of-yet-unreleased plugin that
relies on COM
2016-04-26 15:02:41 -07:00
jp9000 49ba7412df UI: Fix projector connecting the wrong source signal
The signal name is "remove" for when a source is removed, not "removed".

This is proof that I should never have relied on strings for signals.
The original intention for string-based signals was to make them
programmable and scriptable, but honestly that use-case (that never
happened and will likely never happen) was foolish to program around.
These should have been fixed macros from the beginning.
2016-04-26 15:02:41 -07:00
jp9000 ce4960c89c UI: Don't alert user of encode lag if skip count < 10
Sometimes encoders might have a tiny insignificant amount of lag
unintentionally for whatever reason (for example VP9 sometimes lags on
startup by a frame or two), so don't warn the user if the skip count is
below 10.
2016-04-26 15:02:40 -07:00
jp9000 6014d4dc6d cmake: Also copy libvpx library for MSVC if available 2016-04-26 15:02:40 -07:00
Richard Stanway e5e5189c7b
win-capture: Make sure we don't try to hook ourselves
Can trigger when using "Hook any fullscreen application" is enabled and
the projector is active.
2016-04-25 23:46:20 +02:00
jp9000 853ec3cba0 libobs: Update to 0.14.1 2016-04-24 16:40:58 -07:00
Richard Stanway dd6f8120b3
libff: Seek to frame 0 for sources with no duration 2016-04-25 01:05:32 +02:00
jp9000 5edc0c9580 obs-filters: Fix more chroma key shader code
In aa4e18740a I mistakenly thought that I could add the variables
back in and that it would automatically cull variables that aren't used,
but that wasn't the case -- the shader parser always checks to see
whether parameters were set, and if they're not, it'll fail.  This fixes
an issue where the shader would try to access parameters that are no
longer needed and fail due to the shader parameter check.

YUV-based shader support has been removed (due to the fact that no
sources ever use YUV shading) so there's no reason to keep around the
YUV processing code.
2016-04-24 15:57:46 -07:00