obs-studio/plugins
Richard Stanway 898256d416 obs-ffmpeg: Add a circlebuf to buffer output in ffmpeg-mux
This adds a circular buffer to ffmpeg-mux when writing to a file.
Output from ffmpeg is buffered so that slow disk I/O does not block
ffmpeg writes, as this causes the pipe to become full and OBS stops
sending frames with a misleading "Encoding overloaded!" warning. The
buffer may grow to 256 MB depending on the rate of data coming in and
out, if the buffer is full OBS will start waiting in ffmpeg writes.

A separate I/O thread is responsible for processing the contents of
the buffer and writing them to the output file. It tries to process 1 MB
at a time to minimize small I/O.

Complicating things considerably, some formats in ffmpeg require seeking
on the output, so we can't just treat everything as a stream of bytes.
To handle this, we record offsets of each write and try to buffer as
many contiguous writes as possible. This unfortunately makes the code
quite complicated, but hopefully well commented.
2022-05-30 10:06:09 -07:00
..
aja aja: Fix UHD/4K HDMI output on Kona5-8K firmware 2022-04-30 16:29:56 -07:00
coreaudio-encoder cmake: Fix diverging prefix padding for OBS status outputs 2022-03-26 09:44:23 -04:00
decklink libobs,plugins: Replace video matrix function 2022-04-07 19:28:51 -07:00
enc-amf@f057617ea2 Update translations from Crowdin 2022-02-11 00:34:08 +00:00
image-source image-source: Support JXR on Windows 2022-05-08 15:25:43 -07:00
linux-alsa cmake: Fix diverging prefix padding for OBS status outputs 2022-03-26 09:44:23 -04:00
linux-capture linux-capture: Drop GLX code paths 2022-05-24 14:30:14 -03:00
linux-jack cmake: Fix diverging prefix padding for OBS status outputs 2022-03-26 09:44:23 -04:00
linux-pipewire Drop GLX renderer 2022-05-24 14:31:48 -03:00
linux-pulseaudio cmake: Fix enabling PulseAudio monitoring 2022-05-28 18:36:36 -04:00
linux-v4l2 linux-v4l2: Fix camera reconnecting issue 2022-05-16 13:29:52 -04:00
mac-avcapture mac-avcapture: Capture audio if supported 2022-05-23 08:59:24 -04:00
mac-capture mac-capture: Improve window capture performance 2022-05-07 16:21:25 -07:00
mac-syphon plugins: Update CMakeLists.txt for included plugins 2022-03-16 23:11:08 +01:00
mac-virtualcam mac-virtualcam: Fix compiler warnings 2022-05-04 12:09:04 -04:00
mac-vth264 mac-vth264: Fix compiler warnings 2022-05-04 12:09:04 -04:00
obs-browser@b798763ae7 obs-browser: Update submodule to pull in CMake changes 2022-03-17 14:28:34 +01:00
obs-ffmpeg obs-ffmpeg: Add a circlebuf to buffer output in ffmpeg-mux 2022-05-30 10:06:09 -07:00
obs-filters Fix indent on multiline comments 2022-04-30 16:06:23 -07:00
obs-libfdk obs-libfdk: Enable 7.1 channel surround for Linux 2022-04-30 16:28:45 -07:00
obs-outputs obs-output: Fix compiler warnings 2022-05-04 01:37:10 -07:00
obs-qsv11 cmake: Fix diverging prefix padding for OBS status outputs 2022-03-26 09:44:23 -04:00
obs-text plugins: Update CMakeLists.txt for included plugins 2022-03-16 23:11:08 +01:00
obs-transitions obs-transitions: Remove unused shader functions 2022-04-23 16:24:27 -07:00
obs-vst@937ba7952d obs-vst: Update submodule to pull in CMake changes 2022-03-17 14:28:59 +01:00
obs-x264 obs-x264: Use period for localized sentence 2022-05-28 18:31:55 -04:00
oss-audio cmake: Fix diverging prefix padding for OBS status outputs 2022-03-26 09:44:23 -04:00
rtmp-services rtmp-services: Apply automatic formatting to JSON 2022-05-20 08:55:56 -04:00
sndio cmake: Fix diverging prefix padding for OBS status outputs 2022-03-26 09:44:23 -04:00
text-freetype2 cmake: Fix diverging prefix padding for OBS status outputs 2022-03-26 09:44:23 -04:00
vlc-video vlc-video: Fix sign-compare warning 2022-05-19 17:10:47 -04:00
win-capture win-capture: Rename Rec. 2020 to Rec. 2100 2022-05-27 04:38:02 -07:00
win-dshow win-dshow: Removed used UNUSED_PARAMETER 2022-05-27 14:56:47 -07:00
win-ivcam cmake: Fix diverging prefix padding for OBS status outputs 2022-03-26 09:44:23 -04:00
win-mf plugins: Update CMakeLists.txt for included plugins 2022-03-16 23:11:08 +01:00
win-wasapi win-wasapi: Log source name when showing device errors 2022-05-17 02:47:08 -07:00
CMakeLists.txt cmake: Fix diverging prefix padding for OBS status outputs 2022-03-26 09:44:23 -04:00