0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00
obs-studio/plugins/obs-filters
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
..
data obs-filters: Add speexdsp-based noise suppression filter 2016-07-25 20:17:13 -07:00
async-delay-filter.c obs-filters: Change async delay filter max delay to 20 sec 2016-05-30 10:42:16 -07:00
chroma-key-filter.c libobs: Allow filter processing function to return false 2016-04-22 10:18:12 -07:00
CMakeLists.txt obs-filters: Add speexdsp-based noise suppression filter 2016-07-25 20:17:13 -07:00
color-filter.c libobs: Allow filter processing function to return false 2016-04-22 10:18:12 -07:00
color-key-filter.c libobs: Allow filter processing function to return false 2016-04-22 10:18:12 -07:00
crop-filter.c obs-filters: Change 'Crop' filter to 'Crop/Pad' filter 2016-06-28 02:46:36 -07:00
gain-filter.c (API Change) libobs: Pass type data to get_name callbacks 2015-09-16 09:21:12 -07:00
mask-filter.c libobs: Allow filter processing function to return false 2016-04-22 10:18:12 -07:00
noise-gate-filter.c (API Change) libobs: Pass type data to get_name callbacks 2015-09-16 09:21:12 -07:00
noise-suppress-filter.c obs-filters: Buffer noise suppression audio data 2016-07-26 04:29:50 -07:00
obs-filters-config.h.in obs-filters: Add speexdsp-based noise suppression filter 2016-07-25 20:17:13 -07:00
obs-filters.c obs-filters: Add speexdsp-based noise suppression filter 2016-07-25 20:17:13 -07:00
scale-filter.c obs-filters: Add scaling/aspect ratio filter 2016-06-29 08:00:52 -07:00
scroll-filter.c obs-filters: Fix scroll filter sampler state 2016-07-08 03:03:23 -07:00
sharpness-filter.c libobs: Allow filter processing function to return false 2016-04-22 10:18:12 -07:00