Browse Source

aja: Disable UHD/4K high-framerate for Output

A fix for UHD/4K HFR modes will be added in a future plugin release.
Paul Hindt 3 years ago
parent
commit
d2515170e1

+ 5 - 3
plugins/aja/aja-common.cpp

@@ -148,7 +148,7 @@ void populate_io_selection_output_list(const std::string &cardID,
 }
 
 void populate_video_format_list(NTV2DeviceID deviceID, obs_property_t *list,
-				NTV2VideoFormat genlockFormat)
+				NTV2VideoFormat genlockFormat, bool want4KHFR)
 {
 	VideoFormatList videoFormats = {};
 	VideoStandardList orderedStandards = {};
@@ -165,10 +165,12 @@ void populate_video_format_list(NTV2DeviceID deviceID, obs_property_t *list,
 	if (NTV2DeviceCanDo4KVideo(deviceID)) {
 		orderedStandards.push_back(NTV2_STANDARD_3840i);
 		orderedStandards.push_back(NTV2_STANDARD_3840x2160p);
-		orderedStandards.push_back(NTV2_STANDARD_3840HFR);
+		if (want4KHFR)
+			orderedStandards.push_back(NTV2_STANDARD_3840HFR);
 		orderedStandards.push_back(NTV2_STANDARD_4096i);
 		orderedStandards.push_back(NTV2_STANDARD_4096x2160p);
-		orderedStandards.push_back(NTV2_STANDARD_4096HFR);
+		if (want4KHFR)
+			orderedStandards.push_back(NTV2_STANDARD_4096HFR);
 	}
 
 	aja::GetSortedVideoFormats(deviceID, orderedStandards, videoFormats);

+ 2 - 1
plugins/aja/aja-common.hpp

@@ -41,7 +41,8 @@ extern void populate_io_selection_output_list(const std::string &cardID,
 					      obs_property_t *list);
 extern void
 populate_video_format_list(NTV2DeviceID deviceID, obs_property_t *list,
-			   NTV2VideoFormat genlockFormat = NTV2_FORMAT_UNKNOWN);
+			   NTV2VideoFormat genlockFormat = NTV2_FORMAT_UNKNOWN,
+			   bool want4KHFR = false);
 extern void populate_pixel_format_list(NTV2DeviceID deviceID,
 				       obs_property_t *list);
 extern void populate_sdi_transport_list(obs_property_t *list, IOSelection io);

+ 2 - 1
plugins/aja/aja-output.cpp

@@ -827,7 +827,8 @@ bool aja_output_device_changed(void *data, obs_properties_t *props,
 	}
 
 	obs_property_list_clear(vid_fmt_list);
-	populate_video_format_list(deviceID, vid_fmt_list, videoFormatChannel1);
+	populate_video_format_list(deviceID, vid_fmt_list, videoFormatChannel1,
+				   false);
 
 	obs_property_list_clear(pix_fmt_list);
 	populate_pixel_format_list(deviceID, pix_fmt_list);

+ 2 - 1
plugins/aja/aja-source.cpp

@@ -665,7 +665,8 @@ bool aja_source_device_changed(void *data, obs_properties_t *props,
 	obs_property_list_clear(vid_fmt_list);
 	obs_property_list_add_int(vid_fmt_list, obs_module_text("Auto"),
 				  kAutoDetect);
-	populate_video_format_list(deviceID, vid_fmt_list, videoFormatChannel1);
+	populate_video_format_list(deviceID, vid_fmt_list, videoFormatChannel1,
+				   true);
 
 	obs_property_list_clear(pix_fmt_list);
 	obs_property_list_add_int(pix_fmt_list, obs_module_text("Auto"),