libobs: Don't use source flags for async buffering
(This commit also modifies the decklink, linux-v4l2, mac-avcapture, obs-ffmpeg, and win-dshow modules) Originally, async buffering for sources was supposed to be a user-controllable flag. However, that turned out to be less than ideal because sources (such as the win-dshow plugin) were programmed with automatic control over their buffering (such as automatically detecting USB 2.0 capture devices and then enabling in those cases). The fact that it was a flag caused a design flaw to where buffering values would be overwritten when a source is loaded from save data. Because of that, this flag is being deprecated and replaced with a specific function to enable unbuffered mode instead.
This commit is contained in:
@@ -834,8 +834,8 @@ EXPORT bool obs_source_active(const obs_source_t *source);
|
||||
*/
|
||||
EXPORT bool obs_source_showing(const obs_source_t *source);
|
||||
|
||||
/** Specifies that async video frames should be played as soon as possible */
|
||||
#define OBS_SOURCE_FLAG_UNBUFFERED (1<<0)
|
||||
/** Unused flag */
|
||||
#define OBS_SOURCE_FLAG_UNUSED_1 (1<<0)
|
||||
/** Specifies to force audio to mono */
|
||||
#define OBS_SOURCE_FLAG_FORCE_MONO (1<<1)
|
||||
|
||||
@@ -1100,6 +1100,10 @@ EXPORT uint64_t obs_source_get_audio_timestamp(const obs_source_t *source);
|
||||
EXPORT void obs_source_get_audio_mix(const obs_source_t *source,
|
||||
struct obs_source_audio_mix *audio);
|
||||
|
||||
EXPORT void obs_source_set_async_unbuffered(obs_source_t *source,
|
||||
bool unbuffered);
|
||||
EXPORT bool obs_source_async_unbuffered(const obs_source_t *source);
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Transition-specific functions */
|
||||
enum obs_transition_target {
|
||||
|
Reference in New Issue
Block a user