diff --git a/obs/window-basic-filters.cpp b/obs/window-basic-filters.cpp index d58f968af..e9eabd45e 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 456bf1af0..4594b0006 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()