Commit Graph

3780 Commits (71dc8d6407a83e1923e84cb10aaa2bdc98cc0c2f)

Author SHA1 Message Date
jp9000 71dc8d6407 obs-filters: Add comments to noise suppression filter
These comments have been added to clean up the code and make it more
clear of what the code is doing.  The code felt a bit messy, and this
should help prevent the original author of the noise suppression filter
from being lost in case he decides to modify/improve the filter.
2016-07-26 05:06:26 -07:00
jp9000 6fcb5372e9 obs-filters: Remove redundant code
This variable was always being set to that value regardless a few lines
below.
2016-07-26 04:53:46 -07:00
jp9000 155ddf8996 obs-filters: Handle timestamp jumps for noise sup. filter
When buffering audio data, we don't want to buffer audio data that may
be old.  If the audio timing jumps significant and old audio data is
buffered, clear that old data.
2016-07-26 04:50:18 -07:00
jp9000 55a5664363 obs-filters: Buffer noise suppression audio data
The noise suppression filter mistakenly operated on the assumption that
input audio data would always be in 10ms segments, and would crash if
audio data was larger than that size.

Because speexdsp operates on fixed audio frame sizes only, we must
buffer audio data to fit that frame processing size.  This creates a
troublesome situation where you must buffer around that specified frame
size.

The new steps for processing are:
1. Push audio data to input circular buffer.
2. Push number of audio frames and timestamp for that audio packet to an
   'info' circular buffer.
3. Check size of input circular buffer, and while it's equal to or above
   the speexdsp frame size (10ms for minimum latency), pop from the
   input buffer to a temporary buffer (10ms frames) and process it, then
   push that temporary buffer to the output circular buffer.
4. Peek at the front of the 'info' circular buffer.
5. If the output circular buffer frame size is equal or larger than next
   expected number of frames, pop both the info and output buffer, and
   return the audio data with the expected audio frames/timestamp.
2016-07-26 04:29:50 -07:00
jp9000 2c5aa87468 UI: Add ability to lock preview
Adds the ability to lock the preview so sources can't be edited.  This
feature is typically used in the case where the user wants to prevent
accidentally clicking and dragging on sources.
2016-07-26 01:32:43 -07:00
Simon f3d0272f57 obs-filters: Add speexdsp-based noise suppression filter 2016-07-25 20:17:13 -07:00
jp9000 0d294cc049 cmake: Add module to find libspeexdsp 2016-07-25 20:17:13 -07:00
John Bradley 26ec2dee44 obs-x264: Fix default value type of rate_control 2016-07-22 13:30:20 -05:00
jp9000 67ac11f40e vlc-video: Fix downmixing issue
libVLC doesn't seem to provide full speaker configuration info, so when
downmixing audio from a file that had more than 2 channels, the audio
would sound wrong.

This change makes it so that libVLC does the downmixing to stereo rather
than libobs, just due to that lack of speaker configuration info.
2016-07-20 15:12:04 -07:00
jp9000 ac4bd2aa80 libobs: Add long description to properties
Allows setting a "long" description for detailed explanation of certain
properties that may need them, but don't want to display them on the
user interface by default.
2016-07-20 08:09:45 -07:00
hwdro 938943e72b obs-transitions: Add 'Luma Wipe' transition
Closes jp9000/obs-studio#558
2016-07-20 07:05:27 -07:00
Jim e546c3fa0c Merge pull request #564 from cg2121/linux-fullscreen-projector-fix
UI: Fix fullscreen projector on Linux
2016-07-19 05:01:27 -07:00
Jim c5835a152e Merge pull request #570 from reboot/fix_xcomposite_source_duplication
linux-capture: Add OBS_SOURCE_DO_NOT_DUPLICATE to window capture sources
2016-07-18 09:11:41 -07:00
Christoph Hohmann 83aab23242 linux-capture: Add OBS_SOURCE_DO_NOT_DUPLICATE to window capture sources
It seems that it is not possible to create multiple OpenGL textures
for the same window. When sources are duplicated in studio mode this
causes window capture sources to become black. The
OBS_SOURCE_DO_NOT_DUPLICATE flag prevents that this happens.
2016-07-18 18:05:40 +02:00
Jim 0712d2e9a1 Merge pull request #569 from reboot/fix_test_compiler_warnings
test: Fix compiler warnings about incompatible pointer type
2016-07-18 08:58:34 -07:00
Christoph Hohmann 08dd7ecc37 test: Fix compiler warnings about incompatible pointer type 2016-07-18 17:53:31 +02:00
Andrew Surzhynskyi 8fc93f6b15 rtmp-services: Update Restream.io ingests/settings
Update Restream.io ingests list and set recommended keyframe interval to
2.

(Commit edited and formatted by Jim: Fixed commit message)

Closes jp9000/obs-studio#565
2016-07-18 07:23:28 -07:00
SuslikV 2d2ca06f6d obs-x264: Don't show buffer size if buffer size off
Whether buffer size is visible is determined by the value of the "Use
buffer size" property (the "use_bufsize" setting).

(Commit edited and formatted by Jim: separated this code from the
previous commit, and gave it a proper commit message)

Closes jp9000/obs-studio#567
2016-07-18 07:18:38 -07:00
SuslikV 2fb1d18056 obs-x264: Fix settings string typo
This is why macros should be used for settings strings.

(Commit edited and formatted by Jim: separated this code from the
following commit, and gave it a proper commit message)

Closes jp9000/obs-studio#567
2016-07-18 07:14:29 -07:00
jp9000 cf983b7ccf libobs: Update version to 0.15.2 2016-07-15 13:06:11 -07:00
jp9000 7feb21572f win-capture: Update D3D9 shared texture patches 2016-07-15 13:00:21 -07:00
Jim 0c415ee12c Merge pull request #562 from tgurr/vlc-video-linux
vlc-video: Enable building the plugin on Linux
2016-07-13 00:34:17 -07:00
cg2121 21a3c3505e UI: Fix fullscreen projector on Linux
This fixes a issue on Linux, at least on Ubuntu anyway, where the title bar and unity launcher is shown when the fullscreen projector is active.
2016-07-12 20:45:51 -05:00
jp9000 2732375dba rtmp-services: Update YouTube max bitrate 2016-07-10 01:07:33 -07:00
jp9000 6eec8dc90d libobs: Update version to 0.15.1 2016-07-10 00:47:52 -07:00
jp9000 d7ed0f1976 Revert "win-capture: Track gl "swap" invocations to prevent duplicate work"
This reverts commit 4c505e7030.

Reverting this for the time being due to issues with quakelive.  This
will be more thoroughly tested and hopefully added again.
2016-07-10 00:38:15 -07:00
jp9000 58265e6950 libobs: Fix null pointer dereference
How this was replicated:
- Create new VLC video source
- Add video in its properties
- Press cancel on the properties dialog to reset the settings
2016-07-09 08:14:42 -07:00
jp9000 50d98dceac UI: Don't do scene check when removing scene items
The scene check prevents the ability to remove scene items that have
been detached from their scene, which can happen when scenes are used as
scene items and the scene is deleted elsewhere.
2016-07-09 07:41:14 -07:00
jp9000 5fb9dcbaa7 libobs: Fix possible null pointer dereference 2016-07-09 07:41:13 -07:00
jp9000 6ac832fbb2 obs-filters: Fix scroll filter sampler state
When the crop filter was changed to a crop/pad filter, the sampler state
was changed to use a transparent border for the U/V addressing mode.
However, what was not realized at the time was that the scroll filter
also shared the crop effect file, and the scroll filter depended on the
old sampler state (wrap u/v).

This fixes the issue by simply setting a u/v wrap sampler state in the
scroll filter.
2016-07-08 03:03:23 -07:00
Jim 2cad0f34f7 Merge pull request #561 from dodgepong/latest-crowdin-translations
Add new Ukranian translations
2016-07-07 12:07:00 -07:00
Timo Gurr c086aac2ea vlc-video: Fix library name searched for on Linux 2016-07-07 16:42:14 +02:00
Timo Gurr a1ec0ecee3 vlc-video: Enable building the plugin on Linux 2016-07-07 16:24:09 +02:00
dodgepong 38a8b05e34 Add new Ukranian translations 2016-07-07 10:04:53 -04:00
jp9000 60c77d41a3 UI: Make third-party plugins use program data dirs
Makes it so third-party plugins are stored in system-local specific data
directories (except on linux, which will still use user-local data
directories for the time being)
2016-07-06 03:47:51 -07:00
jp9000 b3de68fa22 UI: Add helper functions for getting program data dir
Adds C++ functions for getting system-local specific data directories
rather than user-specific data directories
2016-07-06 03:47:51 -07:00
jp9000 4f4d7cde7e libobs/util: Add os_get_program_data_path* functions
Allows getting the system-local program data path.  Typically:

Windows:  C:\ProgramData
Mac:      /Library/Application Support
Linux:    /usr/local/share
2016-07-06 03:47:50 -07:00
Gol-D-Ace 81adb13f59 Update translations from Crowdin 2016-07-06 01:18:27 +02:00
jp9000 e29c7751e1 libobs: Update version to 0.15.0 2016-07-05 12:52:14 -07:00
jp9000 d7cf581b3a UI: Allow directories in file formatting settings
When configuring file formatting settings in advanced, allow the ability
to specify formatted directories.

For example, "%CCYY-%MM/%DD %hh-%mm-%ss"

would make the year and month a subdirectory, then the
day/hour/minute/seconds as the file name.  January 21st 2121 at 4pm
would end up being:

"21 04-00-00.mp4" in the subdirectory "2121-01".
2016-07-04 23:11:24 -07:00
jp9000 e9087cfdc9 UI: Fix window start pos when not inside a monitor
Commit 8932bd39 attempted to fix the starting position when the program
started up inside of a monitor that no longer exists, but it was
incorrectly assumed that it would cause the program to automatically
center its position.  Instead it set its position to {0,0}, which is a
really awkward position.

This fixes that commit and ensures the window starts up centered to the
primary display when its saved starting position is invalid.
2016-07-04 22:34:56 -07:00
jp9000 ee4febcd06 linux-capture: Don't find window via class if class empty 2016-07-03 22:27:38 -07:00
Palana 4c505e7030 win-capture: Track gl "swap" invocations to prevent duplicate work
Tested using FTL (steam): SwapBuffers ultimately calls wgl_swap_buffers
causing an additional copy which just isn't necessary

This also causes game capture to sometimes capture overlays even when
not intended
2016-07-03 13:18:23 -07:00
jp9000 f8fcba2fa2 Revert "obs-ffmpeg: Use core count for output threads by default"
This reverts commit bd70e73c25.

Turns out the commit was due to a miscommunication -- the commit it was
fixing actually worked fine, and this fix was unnecessary.
2016-07-02 23:54:43 -07:00
jp9000 e389ae8a75 linux-capture: Additionally search windows via WM_CLASS
If window capture fails to find a window with a matching title, search
for a window with the same window class additionally as a backup.

Replaces the third part of the internal window string with the class
name instead of the program path due to the fact that the program path
rarely seemed to work.
2016-07-02 23:49:19 -07:00
jp9000 23430a9221 UI: Allow removing multiple selected scene items 2016-07-02 15:44:24 -07:00
jp9000 a9caa99c5b libobs: Fix source active/show incrementing/decrementing
The active_refs and show_refs variable would only increment/decrement
their children if their values were 1 and 0, which means that in the
case of scenes within scenes, sub-sources of scenes within scenes would
end up having the wrong ref values.
2016-07-02 14:13:17 -07:00
jp9000 42d7bf1237 Revert "win-dshow: Reword "buffering" options to be more specific"
This reverts commit a6d7cbf221.
2016-07-02 12:05:10 -07:00
jp9000 a6d7cbf221 win-dshow: Reword "buffering" options to be more specific
Due to users inquiring what the "buffering" option does, it would be
best to have a bit more details in its wording as to its function.
2016-07-01 17:03:13 -07:00
jp9000 3d63096076 UI: Allow adding scenes as scene items
Allows adding scenes as scene items.  Note that you will not be able to
add scenes if it detects infinite recursion (i.e. adding scene A to
scene B, then adding scene B to scene A), in that case it will just fail
to create the scene item.
2016-07-01 15:23:06 -07:00