Browse Source

UI: Do not show media controls on network media source

jp9000 5 years ago
parent
commit
28f56c0201
1 changed files with 20 additions and 7 deletions
  1. 20 7
      UI/window-basic-main.cpp

+ 20 - 7
UI/window-basic-main.cpp

@@ -2902,6 +2902,18 @@ void OBSBasic::ClearContextBar()
 	}
 }
 
+static bool is_network_media_source(obs_source_t *source, const char *id)
+{
+	if (strcmp(id, "ffmpeg_source") != 0)
+		return false;
+
+	obs_data_t *s = obs_source_get_settings(source);
+	bool is_local_file = obs_data_get_bool(s, "is_local_file");
+	obs_data_release(s);
+
+	return !is_local_file;
+}
+
 void OBSBasic::UpdateContextBar()
 {
 	OBSSceneItem item = GetCurrentSceneItem();
@@ -2914,14 +2926,15 @@ void OBSBasic::UpdateContextBar()
 		uint32_t flags = obs_source_get_output_flags(source);
 
 		if (flags & OBS_SOURCE_CONTROLLABLE_MEDIA) {
-			MediaControls *mediaControls =
-				new MediaControls(ui->emptySpace);
-			mediaControls->SetSource(source);
-
-			ui->emptySpace->layout()->addWidget(mediaControls);
-		}
+			if (!is_network_media_source(source, id)) {
+				MediaControls *mediaControls =
+					new MediaControls(ui->emptySpace);
+				mediaControls->SetSource(source);
 
-		if (strcmp(id, "browser_source") == 0) {
+				ui->emptySpace->layout()->addWidget(
+					mediaControls);
+			}
+		} else if (strcmp(id, "browser_source") == 0) {
 			BrowserToolbar *c =
 				new BrowserToolbar(ui->emptySpace, source);
 			ui->emptySpace->layout()->addWidget(c);