提交 534c553b 编写于 作者: J James Park

win-dshow: Decouple audio from video

If a device produces video and audio timestamps atdifferent rates,
this divergence can cause massive buffering on the audio side, leading
to a capped audio buffer, and total sound loss. This change allows a
hardcoded list of devices to use the existing decoupling logic. For
now, only "GV-USB2" has been added.

When combined with another fix, 5+ hours of stable audio without any
buffering on my GV-USB2 where it used to drop sound completely after
an hour or so.

Partially fixes https://obsproject.com/mantis/view.php?id=1269
上级 ad233330
......@@ -800,6 +800,11 @@ static inline bool IsEncoded(const VideoConfig &config)
wstrstri(config.name.c_str(), L"stream engine") != NULL;
}
static inline bool IsDecoupled(const VideoConfig &config)
{
return wstrstri(config.name.c_str(), L"GV-USB2") != NULL;
}
inline void DShowInput::SetupBuffering(obs_data_t *settings)
{
BufferingType bufType;
......@@ -813,6 +818,7 @@ inline void DShowInput::SetupBuffering(obs_data_t *settings)
useBuffering = bufType == BufferingType::On;
obs_source_set_async_unbuffered(source, !useBuffering);
obs_source_set_async_decoupled(source, IsDecoupled(videoConfig));
}
static DStr GetVideoFormatName(VideoFormat format);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册