obs-studio/plugins
pkv e7d097cab8
obs-ffmpeg: Native SRT/RIST for mpegts output
Currently the ffmpeg_mpegts_muxer output is integrated with ffmpeg-mux.
Both use obs native encoders in contrast with obs-ffmpeg-output which
relies on avcodec library.
This allowed easy implementation of SRT, RIST & HLS protocols through
avformat library.
The main drawback is that obs-ffmpeg-mux exe doesn't allow for easy
debugging nor logging of the protocols.
It was written initially as a separate binary designed for recording so
that if obs fails for some reason, the recording can still terminate
gracefully.

In this commit the ffmpeg_mpegts_muxer is rewritten so that a pipe to
the ffmpeg-mux binary is not used any more.
The muxing to mpegts is still delegated to avformat.
But it can be traced more easily in all its steps.
Also the protocol part for SRT & RIST is implemented natively.
Custom avio_contexts for SRT & RIST are used to that end.
This allows to pass our own implementation of librist and libsrt
libraries instead of relying on avformat. This is very advantageous :
- this allows better logging.
- this allows better bug fixing and maintainance without having to rely
on hypothetical upstream fixes.

One immediate bonus of native implementation is that fixes bugs which
were not previously fixable.

Fixes: SRT & RIST auto-reconnect partly broken  #6749
Fixes: SRT: OBS unusable and uncloseable after starting stream to
invalid srt server #5791

Signed-off-by: pkv <pkv@obsproject.com>
2022-07-30 17:03:10 +02:00
..
aja aja: Remove unused parameters 2022-07-20 08:22:08 +02:00
coreaudio-encoder cmake: Fix diverging prefix padding for OBS status outputs 2022-03-26 09:44:23 -04:00
decklink decklink: Avoid sending 0x0 frame to libobs 2022-06-11 16:22:22 -07:00
enc-amf@f057617ea2 Update translations from Crowdin 2022-02-11 00:34:08 +00:00
image-source image-source: Correctly assign hotkey to next instead of prev 2022-07-30 17:14:50 +10:00
linux-alsa cmake: Fix diverging prefix padding for OBS status outputs 2022-03-26 09:44:23 -04:00
linux-capture Use property suffixes for units everywhere 2022-07-22 08:24:51 -04:00
linux-jack cmake: Fix diverging prefix padding for OBS status outputs 2022-03-26 09:44:23 -04:00
linux-pipewire plugins: Cleanup unused-parameters 2022-07-19 11:01:00 -04:00
linux-pulseaudio cmake: Fix enabling PulseAudio monitoring 2022-05-28 18:36:36 -04:00
linux-v4l2 v4l2,scripting: Add more thread names 2022-07-24 09:21:58 +10:00
mac-avcapture mac-avcapture: Fix null-conversion warning 2022-07-19 12:46:42 +02:00
mac-capture mac-capture: Don't exclude desktop windows in SCK display capture 2022-07-30 15:24:35 +02:00
mac-syphon mac-syphon: Disable inject functionality on macOS 10.15+ 2022-07-24 19:51:41 +02:00
mac-videotoolbox Use property suffixes for units everywhere 2022-07-22 08:24:51 -04:00
mac-virtualcam mac-virtualcam: Fix IOSurface memory leak 2022-06-25 16:12:26 -07:00
obs-browser@39517c9ea0 CI: Use VS2022 and clang-format 13 2022-07-27 11:09:59 -04:00
obs-ffmpeg obs-ffmpeg: Native SRT/RIST for mpegts output 2022-07-30 17:03:10 +02:00
obs-filters obs-filters: Add HDR bypass for various filters 2022-07-25 13:55:22 -07:00
obs-libfdk obs-libfdk: Enable 7.1 channel surround for Linux 2022-04-30 16:28:45 -07:00
obs-outputs obs-outputs: Improve librtmp timeouts on Linux 2022-07-23 17:24:11 -07:00
obs-qsv11 Use property suffixes for units everywhere 2022-07-22 08:24:51 -04:00
obs-text plugins: Update CMakeLists.txt for included plugins 2022-03-16 23:11:08 +01:00
obs-transitions plugins: Cleanup unused-parameters 2022-07-19 11:01:00 -04:00
obs-vst obs-vst: Remove submodule in favour of direct merge 2/2 2022-07-26 22:12:23 -04:00
obs-websocket@8bf8995ad8 plugins: Add obs-websocket submodule 2022-07-28 12:36:17 -07:00
obs-x264 Use property suffixes for units everywhere 2022-07-22 08:24:51 -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: Add Streamvi service 2022-07-30 12:41:58 +02:00
sndio cmake: Fix diverging prefix padding for OBS status outputs 2022-03-26 09:44:23 -04:00
text-freetype2 text-freetype2: Don't read / write empty size arrays 2022-07-18 23:23:12 +02:00
vlc-video Use property suffixes for units everywhere 2022-07-22 08:24:51 -04:00
win-capture win-capture: Bump graphics hook version to 1.8.0 2022-07-29 23:22:39 -07:00
win-dshow virtualcam-module: Return S_FALSE if locks non-zero 2022-07-26 07:40:11 -07:00
win-ivcam cmake: Fix diverging prefix padding for OBS status outputs 2022-03-26 09:44:23 -04:00
win-mf Use property suffixes for units everywhere 2022-07-22 08:24:51 -04:00
win-wasapi win-wasapi: Add support for capturing a process 2022-07-23 17:41:34 -07:00
CMakeLists.txt plugins: Add obs-websocket submodule 2022-07-28 12:36:17 -07:00