diff --git a/obs/window-basic-filters.cpp b/obs/window-basic-filters.cpp index d58f968afd09dbed86c9be0b548282ae37478aac..e9eabd45eb7a0f66a90d03699107c7b43a5bf2bb 100644 --- a/obs/window-basic-filters.cpp +++ b/obs/window-basic-filters.cpp @@ -109,7 +109,14 @@ OBSBasicFilters::OBSBasicFilters(QWidget *parent, OBSSource source_) OBSBasicFilters::DrawPreview, this); }; - connect(ui->preview, &OBSQTDisplay::DisplayCreated, addDrawCallback); + enum obs_source_type type = obs_source_get_type(source); + uint32_t caps = obs_source_get_output_flags(source); + bool drawable_type = type == OBS_SOURCE_TYPE_INPUT || + type == OBS_SOURCE_TYPE_SCENE; + + if (drawable_type && (caps & OBS_SOURCE_VIDEO) != 0) + connect(ui->preview, &OBSQTDisplay::DisplayCreated, + addDrawCallback); } OBSBasicFilters::~OBSBasicFilters() diff --git a/obs/window-basic-properties.cpp b/obs/window-basic-properties.cpp index 456bf1af022e583f6709138a7b7f069d306143fa..4594b000697f4f9071fd81b6bbf542901cd8f690 100644 --- a/obs/window-basic-properties.cpp +++ b/obs/window-basic-properties.cpp @@ -103,7 +103,14 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_) OBSBasicProperties::DrawPreview, this); }; - connect(preview.data(), &OBSQTDisplay::DisplayCreated, addDrawCallback); + enum obs_source_type type = obs_source_get_type(source); + uint32_t caps = obs_source_get_output_flags(source); + bool drawable_type = type == OBS_SOURCE_TYPE_INPUT || + type == OBS_SOURCE_TYPE_SCENE; + + if (drawable_type && (caps & OBS_SOURCE_VIDEO) != 0) + connect(preview.data(), &OBSQTDisplay::DisplayCreated, + addDrawCallback); } OBSBasicProperties::~OBSBasicProperties()