- 16 6月, 2016 3 次提交
- 12 6月, 2016 3 次提交
-
-
由 jp9000 提交于
Fixes a bug where if a D3D9 program recreates its device the capture would become invalid. Certain games (especially blizzard games) will completely recreate their Direct3D device if a critical D3D9 error occurs.
-
由 jp9000 提交于
-
由 jp9000 提交于
Fixes an issue where the audio meter/fader would call an obs function and lock another mutex, potentially causing a mutual inverted lock in another thread.
-
- 07 6月, 2016 3 次提交
-
-
由 jp9000 提交于
Adds the ability to add video playlists via libvlc instead of via the media source. This is mostly just being added as a secondary option to the media source to reduce maintenance costs and save time. Currently libff cannot pause/unpause/seek, and isn't programmed to handle playlists yet. If VLC is installed on the computer (with the same architecture) it will allow video playback via libVLC. In the future, users should be able to optionally download VLC libraries via the installer as well if they don't want to necessarily install VLC to get the plugin working. This plugin performs runtime linking instead of compile-time linking; compiling VLC is not required, only its headers are required. To compile, clone the VLC repository and set the VLCPath cmake variable to point to the VLC repository directory.
-
由 jp9000 提交于
When using GPU conversion for 4:2:0 frames on async video sources, it would create a texture bigger than necessary and try to copy too much data from the frame, resulting in a crash.
-
由 jp9000 提交于
-
- 06 6月, 2016 3 次提交
-
-
由 Jim 提交于
win-dshow: Fix audio output mode not showing up
-
由 jp9000 提交于
The UI expects everything to be in UTF-8, so convert all window strings to UTF-8 whenever getting a window name.
-
由 jp9000 提交于
The internal data of a property value would be converted to QString and Qt would inevitably try to convert the characters to another encoding, causing the internal data to possibly become invalid. Instead, use QByteArray to treat it as nothing more than a byte array.
-
- 05 6月, 2016 1 次提交
-
-
由 jp9000 提交于
The xcomposite window capture crashes were due to a few factors: ------------------------------- 1.) The source's X error handler was possibly being overwritten by another part of the program despite us locking the display, presumably something in Qt which isn't locking the display when pushing/popping its own error handler (though this is not yet certain). The source's calls to X functions happen in the graphics thread, which is separate from the UI thread, and it was noticed that somehow the error handler would be overwritten almost seemingly at random, indicating that something else in the program outside of OBS code was not locking the display while pushing/popping the error handler. To replicate this, make it so that the source cannot find the target window and so it continually searches for it each video_tick call, then resize the main OBS window continually (which causes Qt to push/pop its own error handlers). A crash will almost always occur due to BadWindow despite our error handling. 2.) Calling X functions with a window ID that no longer exists, particularly XGetWindowAttributes, in conjunction the unknown error handler set in case #1 would cause the program to outright crash because that error handler is programmed to crash on BadWindow for whatever reason. The source would call X functions without even checking if 'win' was 0. 3.) The source stored window IDs (in JSON, even if they've long since become invalid/pointless, such as system restarts). This is a bad practice and will result in more cases of BadWindow. Fixing the problem (reducing the possibility of getting BadWindow): ------------------------------- Step 1.) Deprecate and ignore window IDs in stored settings. Instead of using window IDs to find the window, we now must always search the windows and find the target window via the window name exclusively. This helps ensure that we actually consistently have a working window ID. Step 2.) Do not call any X functions if the window ID is 0. Step 3.) Reset the window ID to 0 any time the window has updated, and make the source find the window again to ensure it still exists before attempting to use any X functions on the window ID again.
-
- 04 6月, 2016 1 次提交
-
-
由 Kazuki Oishi 提交于
-
- 31 5月, 2016 2 次提交
- 29 5月, 2016 2 次提交
- 28 5月, 2016 2 次提交
-
-
由 fryshorts 提交于
Add checks to make sure the pulseaudio operation objects are actually valid and the request did not fail right away. Other pulseaudio functions dealing with the objects expect them not to be NULL, otherwise they will kill the application with a failing assert.
-
由 jp9000 提交于
For some reason in the FFmpeg output, this AVCodecContext variable is being set to 1 by FFmpeg itself somewhere, and it's causing a massive slowdown when encoding with FFmpeg directly. This should be set to 0 to specify to use as many threads as necessary.
-
- 27 5月, 2016 10 次提交
-
-
由 hwdro 提交于
-
由 hwdro 提交于
-
由 jp9000 提交于
Fixes a crash with audio format enumeration
-
由 jp9000 提交于
When randomizing the image slide show, do not repeat the same image more than once in a row
-
由 jp9000 提交于
-
由 jp9000 提交于
-
由 jp9000 提交于
(Note: This commit also modifies the UI) The editable list only had two types: A type that allows both files and URLS, and a type that only allows strings. This changes it so the editable list can have a "files only" type, a "files and URLs" type, and a "strings only" type.
-
由 jp9000 提交于
-
由 jp9000 提交于
It's annoying when you can't see more than 10 items in a combo box and are forced to use a scroll bar on a combo box.
-
由 jp9000 提交于
-
- 26 5月, 2016 4 次提交
-
-
由 jp9000 提交于
This had the possibility of leaving the rc variable uninitialized.
-
由 jp9000 提交于
-
由 jp9000 提交于
When a transition is a sub-source of another source, it would not call the transition's active source enum function, meaning that any sources the transition had would not increment their active/showing refs (it would only be called when activating the transition directly before). That would result in negative/invalid active/showing refs on its sub-sources, causing them to become permanently active/inactive and/or permanently showing/hidden.
-
由 jp9000 提交于
Under certain circumstances it's necessary to seek, but if the frame isn't loaded for the position that's being seeked to, it won't update the texture. This just ensures the texture will update when seeking.
-
- 24 5月, 2016 6 次提交
-
-
由 jp9000 提交于
If custom transforms were used, the very first frame after starting would always render with the previous transform before calculating the new transform.
-
由 jp9000 提交于
-
由 jp9000 提交于
Sometimes windows will report 2 gigs instead of 4 gigs max.
-
由 jp9000 提交于
If a transition had a fixed size, it would not render itself or its sub-sources according to that fixed size. The fixed size value was essentially being ignored.
-
由 jp9000 提交于
When a transition is not in the state of transitioning from one source to another, it would not use the sub-source's assigned matrix to render.
-
由 jp9000 提交于
This fixes a bug where the sub-sources on a transition wouldn't render with the expected size when the transition had a different size from its sub-sources
-