obs-studio/libobs
jpark37 3ea98b8b0d libobs: Improve timing of unbuffered deinterlacing
There are devices like the GV-USB2 that produce frames with smmoth
timestamps at an uneven pace, which causes OBS to stutter because the
unbuffered path is designed to aggressively operate on the latest frame.

We can make the unbuffered path work by making two adjustments:

- Don't discard the current frame until it has elapsed.
- Don't skip frames in the queue until they have elapsed.

The buffered path still has problems with deinterlacing GV-USB2 output,
but the unbuffered path is better anyway.

Testing:

GV-USB2, Unbuffered: Stuttering is gone!
GV-USB2, Buffered: No regression (still broken).
SC-512N1-L/DVI, Unbuffered: No regression (still works).
SC-512N1-L/DVI, Buffered: No regression (still works).
2019-07-20 21:00:59 -07:00
..
audio-monitoring clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
callback clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
data libobs: obs-filters: Area upscale shader 2019-07-17 21:11:18 -07:00
graphics clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
media-io clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
util Apply clang-format to objective c code 2019-07-09 13:39:13 -05:00
CMakeLists.txt libobs: Add texture-based encoding support 2019-02-07 17:00:46 -08:00
libobs.pc.in libobs: Add pkgconfig support 2018-09-24 14:25:41 -07:00
LibObsConfig.cmake.in cmake: Export plugin data destination 2014-09-27 09:41:32 -07:00
LibObsConfigVersion.cmake.in Export libobs cmake target, so external plugins can be built without ugly hacks 2014-05-08 14:43:16 +02:00
obs-audio-controls.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-audio-controls.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-audio.c libobs: Buffer-smoothing enhancements 2019-07-05 09:13:18 -07:00
obs-avc.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-avc.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-cocoa.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-config.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-data.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-data.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-defs.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-display.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-encoder.c libobs: Fix formatting 2019-07-13 19:01:48 -07:00
obs-encoder.h libobs: Call both get_defaults and get_defaults2 2019-07-13 00:49:18 +02:00
obs-ffmpeg-compat.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-hotkey-name-map.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-hotkey.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-hotkey.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-hotkeys.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-interaction.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-internal.h libobs: Implement pausing of outputs 2019-07-07 16:38:22 -07:00
obs-module.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-module.h libobs: Fix formatting 2019-07-12 11:48:41 -07:00
obs-nix.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-output-delay.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-output.c libobs: Implement pausing of outputs 2019-07-07 16:38:22 -07:00
obs-output.h libobs: Implement pausing of outputs 2019-07-07 16:38:22 -07:00
obs-properties.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-properties.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-scene.c libobs: obs-filters: Area upscale shader 2019-07-17 21:11:18 -07:00
obs-scene.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-service.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-service.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-source-deinterlace.c libobs: Improve timing of unbuffered deinterlacing 2019-07-20 21:00:59 -07:00
obs-source-transition.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-source.c Merge pull request #1951 from jpark37/audio-buffering 2019-07-20 17:05:27 -07:00
obs-source.h libobs: Call both get_defaults and get_defaults2 2019-07-13 00:49:18 +02:00
obs-ui.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-video-gpu-encode.c libobs: Implement pausing of outputs 2019-07-07 16:38:22 -07:00
obs-video.c libobs: obs-filters: Area upscale shader 2019-07-17 21:11:18 -07:00
obs-view.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-win-crash-handler.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-windows.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs.c libobs: UI: Remove DrawBackdrop() to save fullscreen pass 2019-07-18 19:58:29 -07:00
obs.h libobs: UI: Remove DrawBackdrop() to save fullscreen pass 2019-07-18 19:58:29 -07:00
obs.hpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obsconfig.h.in cmake: Add release candidate versions/cmake variables 2018-08-13 01:19:23 -07:00