Commit Graph

4209 Commits (afe37773bc744c6bbb846d8ab8c03708bfd06b81)

Author SHA1 Message Date
jp9000 afe37773bc obs-outputs: Free encoder packet data manually
These aren't referenced encoder packets, so they must be freed manually.
2016-12-24 03:01:52 -08:00
jp9000 50773499a1 libobs: Create referenced parsed AVC encoder packet
When creating an encoder packet via obs_parse_avc_packet, make sure to
create a proper referenced encoder packet
2016-12-24 03:01:50 -08:00
jp9000 cd7bc32388 libobs: Fix caption encoder packet reallocation
Captions do something unusual with encoder packets: they reallocate them
due to appending extra h.264 data.  Due to the way allocations are
handled with core encoder packets (they now store a reference in their
data), instead of modifying the encoder data directly, create a new
encoder packet instead and release the old packet.
2016-12-24 03:01:49 -08:00
jp9000 9e7daff511 frontend-tools: Set buddied controls for captions dialog 2016-12-24 03:01:48 -08:00
jp9000 5e19fa7cd9 frontend-tools: Don't include colon in "Audio Source"
Makes it consistent with how UI locale is with the rest of the program.
2016-12-23 20:23:38 -08:00
jp9000 950f677cc2 frontend-tools: Reset stop event before starting captions
In case the stop event has already been set and hasn't had a chance to
unset for whatever reason.
2016-12-23 20:21:56 -08:00
jp9000 d32f7c95a2 frontend-tools: Detach caption thread if critical failure
Prevents the thread from being considered "active" if a critical failure
occur, so calling the stop function won't be necessary.
2016-12-23 20:21:55 -08:00
jp9000 869692098a frontend-tools: Add ability to select caption language
Also, default to current user UI language.
2016-12-23 20:21:54 -08:00
Gol-D-Ace 69f0bc244a Update translations from Crowdin 2016-12-23 20:46:47 +01:00
jp9000 b8e078f2bf frontend-tools: Add caption generation tool (windows)
Allows generating captions via the windows speech recognition API
(SAPI).

This is currently marked as experimental due to speech recognition
technology still being less than ideal.  Speech recognition technology
in general is probably never going to be anywhere near perfect.
Microsoft's speech recognition in particular requires a bit of training
via the windows speech recognition tool to ensure it can dictate better.
Clear speech with a good mic is recognized fairly well, but casual
speech and/or speaking with a poor microphone will have some significant
issues.  Captions can often be way off when speaking casually rather
than with clear diction.
2016-12-23 10:37:13 -08:00
jp9000 2cbb3c2505 frontend-tools: Move source helper functions to a header 2016-12-23 10:37:10 -08:00
jp9000 04ae015a60 libobs: Add ability to insert captions into frames
Uses the libcaption library to allow insertion of caption data directly
in to H.264 frame data.
2016-12-23 10:37:09 -08:00
jp9000 4f7ea15f42 Add libcaption library
Manually merging/squashing from: https://github.com/szatmary/libcaption
2016-12-23 10:37:06 -08:00
jp9000 5868133587 libobs/util: Fix C++ compilation issue
When the C header circlebuf.h is used from a C++ source file, this
implicit cast from void to uint8_t* will cause an error unless changed
to an explicit cast.
2016-12-23 10:37:03 -08:00
jp9000 21be33805d win-capture: Release backbuffers immediately upon init
There's no need to keep a reference to the backbuffers.  That and the
backbuffer references weren't being released anyway, so that fixes that
bug.
2016-12-23 08:07:26 -08:00
jp9000 74a5bdf993 win-capture: If backbuffer count is 1, disable dxgi 1.4 use
Executing the dxgi 1.4 code causes it to cycle through backbuffers,
backbuffers which may not exist if in discard mode.
2016-12-23 08:02:35 -08:00
jp9000 414ff5ba14 win-capture: Refactor DX12 backbuffer code
It was undesirable to pass arrays via function parameters, so a
structure should be used instead.

Also increases total allowable backbuffers to 8.
2016-12-23 08:02:30 -08:00
jp9000 a4143be052 win-capture: Fix possible access of array beyond size
If the backbuffer count is larger than 3, it could still try to assign
backbuffers to pointers beyond the variable's array size when calling
swap->GetBuffer.
2016-12-23 07:49:13 -08:00
Alexandre Biny b276b1633e obs-qsv11: Use d3d9 allocator on Win7
Use a d3d9 device and allocator to encode in QSV.

This fixes a random crash that could only happen on Windows 7. The QSV
Deviced returned a DEVICE_FAILURE after a random amount of time with the
old method.

This fix is totally based on Shinck's QSVHelper.exe patch for OBS
Classic (see
https://obsproject.com/forum/threads/0-633b-qsvhelper-exe-was-killed-encode-failed.19230/page-3#post-161984
for more information)

This is more like a proof of concept, but that fix is currently stable
and tested more than 50 hours, with a single session of +14 hours.

That commit doesn't respect all OBS Guidelines. It is currently
recommended to wait for a more "cleaner" implementation.
2016-12-23 07:49:12 -08:00
Cephas Reis 2278782c19 obs-filters: Fix comment messages
Split commit for jp9000/obs-studio#733
2016-12-23 02:40:00 -08:00
Cephas Reis d231f40588 obs-filters: Add "Color" option to color correction filter
Closes jp9000/obs-studio#733
2016-12-23 02:39:44 -08:00
jp9000 2da7f3cb0e win-capture: Add a few new blacklisted game capture exes 2016-12-23 02:17:14 -08:00
jp9000 ad72194090 win-capture: Do not add certain windows to window lists
Due to using FindWindowEx to search for certain windows, certain windows
will show up that aren't usable/capturable.  Prevent these windows from
showing up in the window lists.
2016-12-23 02:15:59 -08:00
jp9000 4fe2ca0f75 win-capture: Fix possible null pointer dereference 2016-12-23 02:04:26 -08:00
jp9000 bd67c18c02 win-capture: Use FindWindowEx to traverse window list
For some unknown reason, GetWindow will not traverse the entire window
tree.  It could be due to Microsoft purposely hiding certain UWP
windows, though the reason is unknown.  For some equally unknown reason
FindWindowEx does work in its place.

This fixes the issue of not being able to find/capture certain windows,
such as halo 5: forge.
2016-12-23 01:53:44 -08:00
jp9000 3b5a30ce97 win-capture: Capture all D3D12 backbuffers
D3D12 capture does not take in to account when multiple backbuffers are
in used.  With previous versions of Direct3D there was no need to do
this, but with D3D12 you must explicitly capture each specific
backbuffer currently in use.
2016-12-23 01:53:15 -08:00
jp9000 fb60a5f1e9 UI: Fix settings window stacked widget index 2016-12-22 07:04:15 -08:00
jp9000 579a5019d8 UI: Fix video initialization failure error message
It incorrectly assumed windows systems before, now it uses an
appropriate platform-independent error message.  Also fixes a missing
word.
2016-12-22 06:57:26 -08:00
jp9000 a2c92b1c69 UI: Add default audio track bitrates
Closes jp9000/obs-studio#732
2016-12-22 06:54:44 -08:00
jp9000 94a4228904 UI: Fix buddy controls with new audio tracks 2016-12-22 06:53:01 -08:00
jp9000 e71137534c libobs: Process all scene audio actions if no audio playing
When there are audio sources in a scene and they've all stopped playing
their audio (audio is pending), all scene item audio actions (volume
changes, toggling visibility) will perpetually buffer and no longer be
processed until audio plays again.

So instead of that, if all audio sources have stopped playing in the
scene, just process all pending scene item audio actions immediately to
prevent them from never being processed while waiting for a scene item
to start playing audio.
2016-12-22 00:31:11 -08:00
jp9000 521c40460e libobs: Fix bug drawing RGB/BGR async sources
Commit 53955301a2 introduced a async source texture copy bug due to
creating a new case in a switch without adding a break to the one above
it, causing it to execute both cases by mistake.
2016-12-21 20:11:31 -08:00
jp9000 cef4cba576 obs-ffmpeg: Fix nvenc_h264 deprecated message
The encoder name was changed from "nvenc_h264" to "h264_nvenc", and will
throw a warning in the log file if you use the former, so try the latter
first, then the former.
2016-12-21 19:27:55 -08:00
jp9000 c11572fddf UI: Clarify startup error messages related to video 2016-12-21 19:22:16 -08:00
jp9000 2df7e16b44 UI: Use 64bit desktop link by default in installer 2016-12-21 18:43:52 -08:00
jp9000 005fd823cb UI: Fix endif in installer 2016-12-21 18:43:30 -08:00
jp9000 09a12fcf98 UI: Update locale for 6 tracks 2016-12-21 17:41:59 -08:00
jp9000 c4ec1bc28a UI: Increase maximum audio tracks to 6 2016-12-21 17:14:24 -08:00
jp9000 f10e2c6740 libobs: Increase maximum audio tracks to 6 2016-12-21 17:13:19 -08:00
jp9000 8cc5f8de55 libobs-d3d11: Don't crash if unable to rebuild shared texture
When rebuilding the graphics subsystem, it's possible a shared texture
may no longer be available.  In this case, just soft fail and allow the
texture to be rebuilt rather than crash the entire program over it.
2016-12-21 16:09:12 -08:00
jp9000 c4580ac6ba obs-text: Do not reset blend state
Similar to the parent commit, do not reset the blend state if the source
is not marked as a custom drawn source.  Filters applied won't have the
correct blend state and the alpha edges of the text will be partially
black.
2016-12-21 15:31:13 -08:00
jp9000 922e1d23f9 image-source: Do not change blend state
The blend state does not need to (and should not) be changed.  This
fixes an issue where if filters are applied to an image source, the
image source will paint incorrectly.
2016-12-21 15:26:33 -08:00
Cephas Reis d4cd14b05c obs-filters: Improve "Color Correction" filter
Replaces the "Color Correction" filter with a newer version that uses a
matrix, adds hue and saturation, and improves the contrast option.

Closes jp9000/obs-studio#708
2016-12-20 23:08:00 -08:00
Jim 94a1b0eaef Merge pull request #710 from Xaymar/feature_amd-encoder
enc-amf: Update to version 1.4.3.4 for AMD Driver 16.12.1
2016-12-20 22:46:28 -08:00
Michael Fabian Dirks 6bf1a033af enc-amf: Update to 1.4.3.4 for AMD Driver 16.12.1 2016-12-21 04:47:41 +01:00
cg2121 9f0c48d9c7 UI: Add import/export of scene collections & profiles
Closes jp9000/obs-studio#721
2016-12-19 04:44:57 -08:00
Ryan Foster 42a646f28e UI: Add ability to copy-paste scene item transforms
This commit adds the ability to copy a scene item's transform and crop
settings and paste those settings onto another scene item in any scene
or scene collection. It also changes the menu shortcut key for the
Transform action "Center to screen" from "C" to "n" because "C" is the
standard shortcut key for "Copy" in most other applications.

Closes jp9000/obs-studio#719
2016-12-18 17:21:58 -08:00
SuslikV ee019c7761 UI: Make close button default in transform dialog
Improves ease of use.

Closes jp9000/obs-studio#731
2016-12-18 06:28:08 -08:00
Autumin 0ff4feab02 libobs/graphics: Fix the 2D vector dot product func
The operators were unintentionally reversed.

Closes jp9000/obs-studio#724
2016-12-18 06:20:24 -08:00
shiina424 0d5a23d5f7 obs-ffmpeg: Don't allow 32kb/s with FFmpeg AAC encoder
FFmpeg's AAC encoder is unideal at very low bitrates.

Closes jp9000/obs-studio#722
2016-12-18 06:16:16 -08:00