mirror of
https://github.com/Xaymar/obs-StreamFX
synced 2024-11-11 06:15:05 +00:00
source-mirror: Fix freeze introduced in OBS Studio v25.x
For an unknown reason, OBS Studio v25.x now causes a freeze to happen at this location. This should hopefully work around that issue by ensuring that we are in a location that does not cause an unusual lock order.
This commit is contained in:
parent
b54e9431c0
commit
03bee0aaf2
2 changed files with 10 additions and 3 deletions
|
@ -85,12 +85,12 @@ mirror::mirror_instance::~mirror_instance()
|
||||||
|
|
||||||
uint32_t mirror::mirror_instance::get_width()
|
uint32_t mirror::mirror_instance::get_width()
|
||||||
{
|
{
|
||||||
return obs_source_get_width(_source.get());
|
return _source_size.first;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t mirror::mirror_instance::get_height()
|
uint32_t mirror::mirror_instance::get_height()
|
||||||
{
|
{
|
||||||
return obs_source_get_height(_source.get());
|
return _source_size.second;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void convert_config(obs_data_t* data)
|
static void convert_config(obs_data_t* data)
|
||||||
|
@ -135,7 +135,13 @@ void mirror::mirror_instance::save(obs_data_t* data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void mirror::mirror_instance::video_tick(float time) {}
|
void mirror::mirror_instance::video_tick(float time)
|
||||||
|
{
|
||||||
|
if (_source) {
|
||||||
|
_source_size.first = obs_source_get_width(_source.get());
|
||||||
|
_source_size.second = obs_source_get_height(_source.get());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void mirror::mirror_instance::video_render(gs_effect_t* effect)
|
void mirror::mirror_instance::video_render(gs_effect_t* effect)
|
||||||
{
|
{
|
||||||
|
|
|
@ -57,6 +57,7 @@ namespace source::mirror {
|
||||||
std::shared_ptr<obs::tools::child_source> _source_child;
|
std::shared_ptr<obs::tools::child_source> _source_child;
|
||||||
std::shared_ptr<obs::source_signal_handler> _signal_rename;
|
std::shared_ptr<obs::source_signal_handler> _signal_rename;
|
||||||
std::shared_ptr<obs::audio_signal_handler> _signal_audio;
|
std::shared_ptr<obs::audio_signal_handler> _signal_audio;
|
||||||
|
std::pair<uint32_t, uint32_t> _source_size;
|
||||||
|
|
||||||
// Audio
|
// Audio
|
||||||
bool _audio_enabled;
|
bool _audio_enabled;
|
||||||
|
|
Loading…
Reference in a new issue