3578 Commits

Author SHA1 Message Date
jp9000
5429832675 UI: Don't display x264 warning if using hardware
Don't display the warning for using two software encoders at the same
time if the stream encoder is not x264
2016-04-23 16:35:22 -07:00
jp9000
350855a2e7 UI: Show warning if using multiple separate QSV encoders
Warns users that two separate QSV encoders can't be active at the same
time.

This should be considered a temporary solution to two issues:
1.) Encoders need to be able to report these errors themselves
2.) If the QSV encoder is ever changed to allow more than one encoder at
    the same time this should be removed
2016-04-23 16:35:06 -07:00
jp9000
448ae26e64 obs-qsv11: Prevent more than one active QSV encoders
Currently, multiple QSV encoders cannot be active at the same time
(otherwise it will crash).  This is a temporary solution to prevent
crashes from occurring when more than one QSV encoder tries to start up
at the same time.

Additionally, in the future there should be a way for encoders to be
able to communicate with the front-end when an error such as this
occurs.
2016-04-23 16:18:02 -07:00
jp9000
6f02d33673 obs-qsv11: Remove unused global variable 2016-04-23 14:55:40 -07:00
jp9000
5349bbf633 obs-filters: Skip scroll filter if parent has no cx/cy
There's no point in the filter continuing its processing if there's
nothing to draw.
2016-04-23 14:39:38 -07:00
jp9000
a23d8e3f2c obs-filters: Fix scroll filter offsets becoming non-finite
If the parent source of a scroll filter has a 0 width or 0 height, the
scroll filter would do a division by zero on the size_i variable, which
would then cause the offset variable to perpetually have a non-finite
value, thus preventing the scroll filter from rendering properly after
that due to the non-finite offset value being uploaded to the shader.
2016-04-23 14:39:37 -07:00
Richard Stanway
215f2441e2
text-freetype2: Don't create vertex buffer if text is empty 2016-04-23 17:49:04 +02:00
jp9000
672d0b3716 file-updater: Only use SSL ALPN opt if curl version up to date 2016-04-23 08:17:47 -07:00
jp9000
bc38427862 obs-qsv11: Rename encoder 2016-04-23 07:34:12 -07:00
Gol-D-Ace
5ed7081213 Update translations from Crowdin 2016-04-23 10:29:21 +02:00
jp9000
ff99ba7818 libobs: Allow filter processing function to return false
(Note: this commit also modifies the obs-filters and test-input modules)

Changes the obs_source_process_filter_begin return type so that it
returns true/false to indicate that filter processing should or should
not continue (for example if the filter is bypassed or if there's some
other sort of issue that causes the filtering to fail)
2016-04-22 10:18:12 -07:00
Richard Stanway
15bec2a4d2
file-updater: Add missing dstr_free calls 2016-04-22 18:16:53 +02:00
jp9000
42305f1c98 text-freetype2: Don't draw anything if no text to draw
Under certain circumstances (when there's no text and a filter is
applied for example) the freetype 2 text source would still draw.
2016-04-22 08:23:44 -07:00
jp9000
737a66cb39 libobs: Update version to 0.14.0 2016-04-21 06:19:21 -07:00
jp9000
8a9f1bc7c1 libobs: Fix discard/retro deinterlace equations 2016-04-20 20:13:49 -07:00
jp9000
82a7d795db libobs: Always prune excessive starting audio packets
On outputs that use already-active video/audio encoder, the audio
pruning to sync up audio packets with video packets doesn't always get
called (for example if the video pruning function was called).  Always
prune excess starting audio packets.
2016-04-20 20:13:49 -07:00
jp9000
84ad6b563e libobs: Improve output packet pruning debug message
Specifies whether packets were pruned or not
2016-04-20 20:13:48 -07:00
Gol-D-Ace
674706ac6e Merge pull request #533 from sorayuki/patch-1
libff: Fix a race condition crash when handling clocks
2016-04-21 04:18:55 +02:00
sorayuki
a9b9b26afd libff: Fix a race condition crash when handling clocks
How to crash:
1. Use recent ffmpeg shared libraries.
2. Add a ffmpeg_source, a small static picture (e.g. jpeg) with loop
3. After a while of high cpu usage, it crashed. Seems reproduced more
easily on faster computer

Closes #533
2016-04-21 04:12:27 +02:00
Richard Stanway
5ddc3d258e
file-updater: Fix format string 2016-04-21 02:06:23 +02:00
Richard Stanway
f7fce1c802
file-updater: Add support for HTTP 304 Not Modified using ETag, disable ALPN 2016-04-21 02:03:14 +02:00
Richard Stanway
65094eefe4
libobs: Don't try to keep rendering if a texture wasn't allocated
Fixes issues with invalid textures causing huge output or large black
regions to be rendered.
2016-04-21 00:21:07 +02:00
Richard Stanway
ccf36b68fc obs: Remove draw callbacks when closing various windows
Fixes a race condition during shutdown where the dialogs aren't deleted
before another render attempt occurs, by which time the sources are
already freed, resulting in a crash.
2016-04-20 20:30:27 +02:00
jp9000
92af243a27 libobs-opengl: Fix bug with texelFetch shader intrinsic
This is supposed to assign -1 to the sampler_id to indicate that no
sampler need be assigned for the texture, but instead it was leaving the
variable with uninitialized data, resulting in a crash when used.
2016-04-19 19:42:27 -07:00
Richard Stanway
1f39b6a612
libobs: Don't use was_down for hotkey detection
From MSDN: "The behavior of the least significant bit of the return value
is retained strictly for compatibility with 16-bit Windows applications
(which are non-preemptive) and should not be relied upon."

This caused problems with hotkeys firing if the user pressed a hotkey key
in another application, followed by the modifier keys at any other time.
OBS would then think the hotkey key was just pressed based on the was_down
behavior and incorrectly trigger a hotkey event.

Fixes 0000443.
2016-04-20 03:46:30 +02:00
jp9000
86a41f844f obs-ffmpeg: Remove unused variable 2016-04-19 18:21:15 -07:00
jp9000
febceb3add UI: Add collection/profile command line parameters
--collection [name] allows setting the starting scene collection
--profile [name] allows setting the starting profile
2016-04-19 18:19:55 -07:00
Richard Stanway
e6c465de84
obs: Make debug break on error optional via preprocessor definition 2016-04-20 03:05:28 +02:00
Richard Stanway
4c0b316130
libff: Small audio decoder loop refactor 2016-04-20 03:05:18 +02:00
Richard Stanway
bebaeaeaa9
libff: Fix heap corruption caused by unnecessary av_dup_packet call
There's no need to duplicate the packet as the reference count will be 1
after the av_read_frame call. Duplicating causes heap corruption when a
synthetic clock packet is duplicated and assigned the buffer from the
stack-based temporary packet which is then double-freed by the decoder
thread.
2016-04-20 03:05:04 +02:00
jp9000
ba70b44152 obs-ffmpeg: Also remove 'tier' from locale text 2016-04-19 16:14:03 -07:00
jp9000
ad0ee4d2d8 libobs-opengl: Bind index buffers to VAO
To be able to use index buffers, they must also be bound to a vertex
array object along with the vertex buffers.

Ideally, if there are multiple index buffers for a vertex buffer,
separate VAOs should be created for each combination.
2016-04-19 15:35:05 -07:00
jp9000
8e4fdbbc20 libobs-opengl: Fix type when binding index buffers
GL_ARRAY_BUFFER is for vertex buffers, GL_ELEMENT_ARRAY_BUFFER is for
index buffers.
2016-04-19 15:29:32 -07:00
jp9000
98cc538776 obs-ffmpeg: Remove 'tier' from FFmpeg NVENC encoder
The 'tier' parameter is used with the NVENC HEVC encoder, not with the
AVC encoder.
2016-04-19 14:45:46 -07:00
jp9000
a39cde9d08 obs-qsv11: Fix win7 crash when fake monitor isn't forced
When using QSV is used on a windows 7 machine with a dedicated card, you
have to fake a monitor connection to your Intel graphics to be able to
use QSV.  If you do not, the initialization will fail with an error.
The error for that situation is not handled properly, and a variable
will be used while null.  Instead, the function should safely return
after that error is received.

Also, do not call ClearData in the destructor unless QSV has been
properly initialized (if m_pmfxENC is null).
2016-04-19 12:29:50 -07:00
jp9000
43eba49a50 obs-ffmpeg: Fix warning and remove unnecessary null checks
The if statement erroneously ended with a ';', which means that the code
is always executed, but there's no reason to even have these if checks
in the first place as the functions themselves return safely with null
pointers.
2016-04-19 10:29:34 -07:00
jp9000
17132ba27f win-mf: Deprecate MF NVENC encoder 2016-04-19 09:20:27 -07:00
jp9000
e3fbdb9293 UI: Add NVENC support to simple output 2016-04-19 09:20:27 -07:00
jp9000
8e1943065c obs-ffmpeg: Add FFmpeg NVENC encoder 2016-04-19 09:20:26 -07:00
jp9000
caa5723c21 libobs: Don't parse sei if sei callback returns 0/NULL 2016-04-19 08:29:25 -07:00
jp9000
1a38d779c9 libobs: Add function to extract AVC header/sei
Allows extraction of headers/sei from a frame so that an encoder can
separate those headers and provide them for later use.
2016-04-19 08:29:24 -07:00
jp9000
60ec56b2c6 UI: Add support for QSV encoder to simple output 2016-04-19 08:29:24 -07:00
jp9000
81313dfd35 win-mf: Deprecate MF QSV encoder 2016-04-19 08:29:23 -07:00
Seung-Woo Kim
3e4bcf06bc obs-qsv11: Add native obs-studio QSV encoder 2016-04-19 08:29:22 -07:00
jp9000
d56dc4791d win-capture: Fix cursor corruption bug (typo) 2016-04-18 18:34:41 -07:00
jp9000
cbd13063c6 libobs: Fix another sync issue with encoder sharing
If audio buffering is very high, the audio packets built up in the
interleaved buffer would be significantly before the first video packet,
causing the offset between the starting video/audio packet pairs to be
significantly off, leading to desync.

This issue was not spotted until recently because it only happens when
streaming/recording with same encoders while audio buffering is very
high.
2016-04-18 14:02:57 -07:00
jp9000
bef1b37ae2 win-capture: Fix case where hook only captures one frame
When using a chain hook method (forward or reverse), it was unwisely
assumed that the previous hook in the chain would not overwrite new
hooks when it's called.  When the game capture hook calls the previous
hook in the chain, certain other programs that hook (in this case,
rivatuner on-screen display) would overwrite the hook with older data
and erase the game capture hook, causing it to only capture the first
frame and then never capture again.

This patch ensures that the hook is always saved before calling the next
hook in the chain and then restored after the call returns.  It also
preserves any new hooks that may be added on top of it at any point.
2016-04-14 23:45:19 -07:00
Jim
3fec8e236e Merge pull request #537 from Gol-D-Ace/vcredist
UI: Change message regarding vcredist
2016-04-14 18:58:16 -07:00
Jim
06889b77ed Merge pull request #536 from AnthonySuper/master
libobs: remove duplicated determinant calculation
2016-04-14 18:57:12 -07:00
jp9000
b28b165d06 UI: Make minor text adjustment to bitrate warnings
Specify that it's the streaming bitrate and not just "bitrate" so users
hopefully realize that it's not referring to the recording settings.
2016-04-14 18:41:26 -07:00