#include "aja-common.hpp" #include "aja-presets.hpp" #include #include namespace aja { RoutingConfigurator::RoutingConfigurator() { build_preset_table(); } void RoutingConfigurator::AddPreset(const std::string &name, const RoutingPreset &preset) { if (m_presets.find(name) != m_presets.end()) return; m_presets.insert(RoutingPresetPair{name, preset}); } bool RoutingConfigurator::PresetByName(const std::string &name, RoutingPreset &preset) const { if (m_presets.find(name) != m_presets.end()) { preset = m_presets.at(name); return true; } return false; } void RoutingConfigurator::build_preset_table() { static const RoutingPresetMap kRoutingPresets = { /* * HDMI RGB Capture */ {"HDMI_HD_RGB_LFR_RGB_Capture", {"HDMI_HD_RGB_LFR_RGB_Capture", ConnectionKind::HDMI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::SD_HD_RGB, VPIDStandard_Unknown, 1, 1, 0, "hdmi[{ch1}][0]->fb[{ch1}][0];", {}, true, false}}, {"HDMI_HD_RGB_HFR_RGB_Capture", {"HDMI_HD_RGB_HFR_RGB_Capture", ConnectionKind::HDMI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::SD_HD_RGB, VPIDStandard_Unknown, 1, 1, 0, "hdmi[{ch1}][0]->fb[{ch1}][0];", {}, true, false}}, {"HDMI_UHD_4K_RGB_Capture (io4K+)", {"HDMI_UHD_4K_RGB_Capture (io4K+)", ConnectionKind::HDMI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::UHD_4K_RGB, VPIDStandard_Unknown, 1, 2, kEnable4KTSI, "hdmi[{ch1}][4]->tsi[{ch1}][0];" "hdmi[{ch1}][5]->tsi[{ch1}][1];" "hdmi[{ch1}][6]->tsi[{ch2}][0];" "hdmi[{ch1}][7]->tsi[{ch2}][1];" "tsi[{ch1}][2]->fb[{ch1}][0];" "tsi[{ch1}][3]->fb[{ch1}][1];" "tsi[{ch2}][2]->fb[{ch2}][0];" "tsi[{ch2}][3]->fb[{ch2}][1];", {DEVICE_ID_IO4KPLUS}, true, false}}, /* * HDMI RGB Display */ {"HDMI_HD_RGB_LFR_RGB_Display", {"HDMI_HD_RGB_LFR_RGB_Display", ConnectionKind::HDMI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::SD_HD_RGB, VPIDStandard_Unknown, 1, 1, 0, "fb[{ch1}][0]->hdmi[0][0];", {}, true, false}}, {"HDMI_HD_RGB_HFR_RGB_Display", {"HDMI_HD_RGB_HFR_RGB_Display", ConnectionKind::HDMI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::SD_HD_RGB, VPIDStandard_Unknown, 1, 1, 0, "fb[{ch1}][0]->hdmi[0][0];", {}, true, false}}, {"HDMI_RGB_LFR_RGB_Display (TTap Pro)", {"HDMI_RGB_LFR_RGB_Display (TTap Pro)", ConnectionKind::HDMI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::SD_HD_RGB, VPIDStandard_Unknown, 1, 1, kEnable3GOut, "fb[{ch1}][2]->dlo[{ch1}][0];" "dlo[{ch1}][0]->sdi[{ch1}][0];" "dlo[{ch1}][1]->sdi[{ch1}][1];" "fb[{ch1}][2]->hdmi[{ch1}][0];", {DEVICE_ID_TTAP_PRO}, true, false}}, {"HDMI_RGB_HFR_RGB_Display (TTap Pro)", {"HDMI_RGB_HFR_RGB_Display (TTap Pro)", ConnectionKind::HDMI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::SD_HD_RGB, VPIDStandard_Unknown, 1, 1, kConvert3GaRGBOut, "fb[{ch1}][2]->dlo[{ch1}][0];" "dlo[{ch1}][0]->sdi[{ch1}][0];" "dlo[{ch1}][1]->sdi[{ch1}][1];" "fb[{ch1}][2]->hdmi[{ch1}][0];", {DEVICE_ID_TTAP_PRO}, true, false}}, /* * HDMI YCbCr Capture */ {"HDMI_HD_LFR_YCbCr_Capture", {"HDMI_HD_LFR_YCbCr_Capture", ConnectionKind::HDMI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::SD_HD_YCBCR, VPIDStandard_Unknown, 1, 1, 0, "hdmi[{ch1}][0]->fb[{ch1}][0];", {}, false, false}}, {"HDMI_UHD_4K_YCbCr_Capture (io4K+)", {"HDMI_UHD_4K_YCbCr_Capture (io4K+)", ConnectionKind::HDMI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::UHD_4K_YCBCR, VPIDStandard_Unknown, 1, 2, kEnable4KTSI, "hdmi[{ch1}][0]->tsi[{ch1}][0];" "hdmi[{ch1}][1]->tsi[{ch1}][1];" "hdmi[{ch1}][2]->tsi[{ch2}][0];" "hdmi[{ch1}][3]->tsi[{ch2}][1];" "tsi[{ch1}][0]->fb[{ch1}][0];" "tsi[{ch1}][1]->fb[{ch1}][1];" "tsi[{ch2}][0]->fb[{ch2}][0];" "tsi[{ch2}][1]->fb[{ch2}][1];", {DEVICE_ID_IO4KPLUS}, false, false}}, {"HDMI_UHD_4K_YCbCr_Capture", {"HDMI_UHD_4K_YCbCr_Capture", ConnectionKind::HDMI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::UHD_4K_YCBCR, VPIDStandard_Unknown, 1, 2, kEnable4KTSI, "hdmi[{ch1}][0]->tsi[{ch1}][0];" "hdmi[{ch1}][1]->tsi[{ch1}][1];" "hdmi[{ch1}][2]->tsi[{ch2}][0];" "hdmi[{ch1}][3]->tsi[{ch2}][1];" "tsi[{ch1}][0]->fb[{ch1}][0];" "tsi[{ch1}][1]->fb[{ch1}][1];" "tsi[{ch2}][0]->fb[{ch2}][0];" "tsi[{ch2}][1]->fb[{ch2}][1];", {}, false, false}}, /* * HDMI YCbCr Display */ {"HDMI_HD_LFR_YCbCr_Display", {"HDMI_HD_LFR_YCbCr_Display", ConnectionKind::HDMI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::SD_HD_YCBCR, VPIDStandard_Unknown, 1, 1, 0, "fb[{ch1}][0]->hdmi[0][0];", {}, false, false}}, {"HDMI_UHD_4K_LFR_YCbCr_Display", {"HDMI_UHD_4K_LFR_YCbCr_Display", ConnectionKind::HDMI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::UHD_4K_YCBCR, VPIDStandard_Unknown, 1, 2, kEnable4KTSI, "fb[{ch1}][0]->tsi[{ch1}][0];" "fb[{ch1}][1]->tsi[{ch1}][1];" "fb[{ch2}][0]->tsi[{ch2}][0];" "fb[{ch2}][1]->tsi[{ch2}][1];" "tsi[{ch1}][0]->hdmi[{ch1}][0];" "tsi[{ch1}][1]->hdmi[{ch1}][1];" "tsi[{ch2}][0]->hdmi[{ch1}][2];" "tsi[{ch2}][1]->hdmi[{ch1}][3];", {}, false, false}}, {"HDMI_UHD_4K_LFR_YCbCr_Display_Kona5_8K", {"HDMI_UHD_4K_LFR_YCbCr_Display_Kona5_8K", ConnectionKind::HDMI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::UHD_4K_YCBCR, VPIDStandard_Unknown, 1, 1, kEnable4KTSI, "fb[{ch1}][0]->hdmi[{ch1}][0];", {DEVICE_ID_KONA5_8K}, false, false}}, {"HDMI_HD_LFR_YCbCr_Display (TTap Pro)", {"HDMI_HD_LFR_YCbCr_Display (TTap Pro)", ConnectionKind::HDMI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::SD_HD_YCBCR, VPIDStandard_Unknown, 1, 1, 0, "fb[{ch1}][0]->sdi[{ch1}][0];" "fb[{ch1}][0]->hdmi[{ch1}][0];", {DEVICE_ID_TTAP_PRO}, false, false}}, {"HDMI_HD_HFR_YCbCr_Display (TTap Pro)", {"HDMI_HD_HFR_YCbCr_Display (TTap Pro)", ConnectionKind::HDMI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::SD_HD_YCBCR, VPIDStandard_Unknown, 1, 1, kEnable3GOut, "fb[{ch1}][0]->sdi[{ch1}][0];" "fb[{ch1}][0]->hdmi[{ch1}][0];", {DEVICE_ID_TTAP_PRO}, false, false}}, {"HDMI_UHD_4K_LFR_YCbCr_Display (TTap Pro)", {"HDMI_UHD_4K_LFR_YCbCr_Display (TTap Pro)", ConnectionKind::HDMI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::UHD_4K_YCBCR, VPIDStandard_Unknown, 1, 1, kEnable4KTSI | kEnable6GOut, "fb[{ch1}][0]->sdi[{ch1}][0];" "fb[{ch1}][0]->hdmi[{ch1}][0];", {DEVICE_ID_TTAP_PRO}, false, false}}, {"HDMI_UHD_4K_HFR_YCbCr_Display (TTap Pro)", {"HDMI_UHD_4K_HFR_YCbCr_Display (TTap Pro)", ConnectionKind::HDMI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::UHD_4K_YCBCR, VPIDStandard_Unknown, 1, 1, kEnable4KTSI | kEnable12GOut, "fb[{ch1}][0]->sdi[{ch1}][0];" "fb[{ch1}][0]->hdmi[{ch1}][0];", {DEVICE_ID_TTAP_PRO}, false, false}}, /* * SDI RGB Capture */ {"HD_720p_ST292_RGB_Capture", {"HD_720p_ST292_RGB_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_720, 1, 1, 0, "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch1}][1]->dli[{ch1}][1];" "dli[{ch1}][0]->fb[{ch1}][0];", {}, true, false}}, {"HD_1080_ST292_RGB_Capture", {"HD_1080_ST292_RGB_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080, 1, 1, 0, "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch1}][1]->dli[{ch1}][1];" "dli[{ch1}][0]->fb[{ch1}][0];", {}, true, false}}, {"HD_1080_ST372_Dual_RGB_Capture", {"HD_1080_ST372_Dual_RGB_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_DualLink, 2, 1, 0, "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch2}][0]->dli[{ch1}][1];" "dli[{ch1}][0]->fb[{ch1}][0];", {}, true, false}}, {"HD_720p_ST425_3Ga_RGB_Capture", {"HD_720p_ST425_3Ga_RGB_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_720_3Ga, 1, 1, 0, "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch1}][1]->dli[{ch1}][1];" "dli[{ch1}][0]->fb[{ch1}][0];", {}, true, false}}, {"HD_1080p_ST425_3Ga_RGB_Capture", {"HD_1080p_ST425_3Ga_RGB_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_3Ga, 1, 1, 0, "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch1}][1]->dli[{ch1}][1];" "dli[{ch1}][0]->fb[{ch1}][0];", {}, true, false}}, {"HD_1080p_ST425_3Gb_DL_RGB_Capture", {"HD_1080p_ST425_3Gb_DL_RGB_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_DualLink_3Gb, 1, 1, 0, "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch1}][1]->dli[{ch1}][1];" "dli[{ch1}][0]->fb[{ch1}][0];", {}, true, false}}, {"HD_720p_ST425_3Gb_RGB_Capture", {"HD_720p_ST425_3Gb_RGB_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_720_3Gb, 1, 2, 0, "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch1}][1]->dli[{ch1}][1];" "dli[{ch1}][0]->fb[{ch1}][0];", {}, true, false}}, {"HD_1080p_ST425_3Gb_RGB_Capture", {"HD_1080p_ST425_3Gb_RGB_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_3Gb, 1, 2, 0, "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch1}][1]->dli[{ch1}][1];" "dli[{ch1}][0]->fb[{ch1}][0];", {}, true, false}}, {"HD_1080p_ST425_Dual_3Ga_RGB_Capture", {"HD_1080p_ST425_Dual_3Ga_RGB_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_Dual_3Ga, 2, 2, 0, "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch1}][1]->dli[{ch1}][1];" "sdi[{ch2}][0]->dli[{ch2}][0];" "sdi[{ch2}][1]->dli[{ch2}][1];" "dli[{ch1}][0]->fb[{ch1}][0];" "dli[{ch2}][0]->fb[{ch2}][0];", {}, true, false}}, {"HD_1080p_ST425_Dual_3Gb_RGB_Capture", {"HD_1080p_ST425_Dual_3Gb_RGB_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_Dual_3Gb, 2, 2, kConvert3GIn, "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch1}][1]->dli[{ch1}][1];" "sdi[{ch2}][0]->dli[{ch2}][0];" "sdi[{ch2}][1]->dli[{ch2}][1];" "dli[{ch1}][0]->fb[{ch1}][0];" "dli[{ch2}][0]->fb[{ch2}][0];", {}, true, false}}, {"UHD4K_ST425_Quad_3Ga_Squares_RGB_Capture", {"UHD4K_ST425_Quad_3Ga_Squares_RGB_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_1080_3Ga, 4, 4, kEnable4KSquares, // SDIs -> Dual-Links "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch1}][1]->dli[{ch1}][1];" "sdi[{ch2}][0]->dli[{ch2}][0];" "sdi[{ch2}][1]->dli[{ch2}][1];" "sdi[{ch3}][0]->dli[{ch3}][0];" "sdi[{ch3}][1]->dli[{ch3}][1];" "sdi[{ch4}][0]->dli[{ch4}][0];" "sdi[{ch4}][1]->dli[{ch4}][1];" // Dual-Links -> Framestores "dli[{ch1}][0]->fb[{ch1}][0];" "dli[{ch2}][0]->fb[{ch2}][0];" "dli[{ch3}][0]->fb[{ch3}][0];" "dli[{ch4}][0]->fb[{ch4}][0];", {}, true, false}}, {"UHD4K_ST425_Quad_3Gb_Squares_RGB_Capture", {"UHD4K_ST425_Quad_3Gb_Squares_RGB_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_1080_DualLink_3Gb, 4, 4, kEnable4KSquares, // SDIs -> Dual-Links "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch1}][1]->dli[{ch1}][1];" "sdi[{ch2}][0]->dli[{ch2}][0];" "sdi[{ch2}][1]->dli[{ch2}][1];" "sdi[{ch3}][0]->dli[{ch3}][0];" "sdi[{ch3}][1]->dli[{ch3}][1];" "sdi[{ch4}][0]->dli[{ch4}][0];" "sdi[{ch4}][1]->dli[{ch4}][1];" // Dual-Links -> Framestores "dli[{ch1}][0]->fb[{ch1}][0];" "dli[{ch2}][0]->fb[{ch2}][0];" "dli[{ch3}][0]->fb[{ch3}][0];" "dli[{ch4}][0]->fb[{ch4}][0];", {}, true, false}}, {"UHD4K_ST425_Quad_3Ga_2SI_RGB_Capture", {"UHD4K_ST425_Quad_3Ga_2SI_RGB_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_QuadLink_3Ga, 4, 4, kEnable4KTSI, // SDIs -> Dual-Links "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch1}][1]->dli[{ch1}][1];" "sdi[{ch2}][0]->dli[{ch2}][0];" "sdi[{ch2}][1]->dli[{ch2}][1];" "sdi[{ch3}][0]->dli[{ch3}][0];" "sdi[{ch3}][1]->dli[{ch3}][1];" "sdi[{ch4}][0]->dli[{ch4}][0];" "sdi[{ch4}][1]->dli[{ch4}][1];" // Dual-Links -> TSI Mux "dli[{ch1}][0]->tsi[{ch1}][0];" "dli[{ch2}][0]->tsi[{ch1}][1];" "dli[{ch3}][0]->tsi[{ch2}][0];" "dli[{ch4}][0]->tsi[{ch2}][1];" // TSI Mux -> Framestores "tsi[{ch1}][0]->fb[{ch1}][0];" "tsi[{ch1}][1]->fb[{ch1}][1];" "tsi[{ch2}][0]->fb[{ch2}][0];" "tsi[{ch2}][1]->fb[{ch2}][1];", {}, true, false}}, {"UHD4K_ST425_Quad_3Gb_2SI_RGB_Capture", {"UHD4K_ST425_Quad_3Gb_2SI_RGB_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_QuadDualLink_3Gb, 4, 4, (kEnable3GOut | kEnable3GbOut | kEnable4KTSI), // SDIs -> Dual-Links "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch1}][1]->dli[{ch1}][1];" "sdi[{ch2}][0]->dli[{ch2}][0];" "sdi[{ch2}][1]->dli[{ch2}][1];" "sdi[{ch3}][0]->dli[{ch3}][0];" "sdi[{ch3}][1]->dli[{ch3}][1];" "sdi[{ch4}][0]->dli[{ch4}][0];" "sdi[{ch4}][1]->dli[{ch4}][1];" // Dual-Links -> TSI Mux "dli[{ch1}][0]->tsi[{ch1}][0];" "dli[{ch2}][0]->tsi[{ch1}][1];" "dli[{ch3}][0]->tsi[{ch2}][0];" "dli[{ch4}][0]->tsi[{ch2}][1];" // TSI Mux -> Framestores "tsi[{ch1}][0]->fb[{ch1}][0];" "tsi[{ch1}][1]->fb[{ch1}][1];" "tsi[{ch2}][0]->fb[{ch2}][0];" "tsi[{ch2}][1]->fb[{ch2}][1];", {}, true, false}}, ///////////////////////////////// {"UHD4K_ST2018_6G_Squares_2SI_RGB_Capture", {"UHD4K_ST2018_6G_Squares_2SI_RGB_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_Single_6Gb, 1, 1, kEnable4KTSI, "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch1}][1]->dli[{ch1}][1];" "dli[{ch1}][0]->fb[{ch1}][0];", {}, true, false}}, {"UHD4K_ST2018_6G_Squares_2SI_RGB_Capture (Kona5/io4K+)", {"UHD4K_ST2018_6G_Squares_2SI_RGB_Capture (Kona5/io4K+)", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_Single_6Gb, 4, 4, kEnable4KTSI, "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch1}][1]->dli[{ch1}][1];" "sdi[{ch2}][0]->dli[{ch2}][0];" "sdi[{ch2}][1]->dli[{ch2}][1];" "sdi[{ch3}][0]->dli[{ch3}][0];" "sdi[{ch3}][1]->dli[{ch3}][1];" "sdi[{ch4}][0]->dli[{ch4}][0];" "sdi[{ch4}][1]->dli[{ch4}][1];" "dli[{ch1}][0]->tsi[{ch1}][0];" "dli[{ch2}][0]->tsi[{ch1}][1];" "dli[{ch3}][0]->tsi[{ch2}][0];" "dli[{ch4}][0]->tsi[{ch2}][1];" "tsi[{ch1}][2]->fb[{ch1}][0];" "tsi[{ch1}][3]->fb[{ch1}][1];" "tsi[{ch2}][2]->fb[{ch2}][0];" "tsi[{ch2}][3]->fb[{ch2}][1];", {DEVICE_ID_KONA5, DEVICE_ID_IO4KPLUS}, true, true}}, {"UHD4K_ST2018_12G_Squares_2SI_RGB_Capture", {"UHD4K_ST2018_12G_Squares_2SI_RGB_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_Single_12Gb, 1, 1, kEnable4KTSI, "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch1}][1]->dli[{ch1}][1];" "dli[{ch1}][0]->fb[{ch1}][0];", {}, true, false}}, {"UHD4K_ST2018_12G_Squares_2SI_RGB_Capture (Kona5/io4K+)", {"UHD4K_ST2018_12G_Squares_2SI_RGB_Capture (Kona5/io4K+)", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_Single_12Gb, 4, 4, kEnable4KTSI, "sdi[{ch1}][0]->dli[{ch1}][0];" "sdi[{ch1}][1]->dli[{ch1}][1];" "sdi[{ch2}][0]->dli[{ch2}][0];" "sdi[{ch2}][1]->dli[{ch2}][1];" "sdi[{ch3}][0]->dli[{ch3}][0];" "sdi[{ch3}][1]->dli[{ch3}][1];" "sdi[{ch4}][0]->dli[{ch4}][0];" "sdi[{ch4}][1]->dli[{ch4}][1];" "dli[{ch1}][0]->tsi[{ch1}][0];" "dli[{ch2}][0]->tsi[{ch1}][1];" "dli[{ch3}][0]->tsi[{ch2}][0];" "dli[{ch4}][0]->tsi[{ch2}][1];" "tsi[{ch1}][2]->fb[{ch1}][0];" "tsi[{ch1}][3]->fb[{ch1}][1];" "tsi[{ch2}][2]->fb[{ch2}][0];" "tsi[{ch2}][3]->fb[{ch2}][1];", {DEVICE_ID_KONA5, DEVICE_ID_IO4KPLUS}, true, true}}, ///////////////////////////////// /* * SDI RGB Display */ {"HD_720p_ST292_RGB_Display", {"HD_720p_ST292_RGB_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_720, 1, 1, 0, "fb[{ch1}][2]->dlo[{ch1}][0];" "dlo[{ch1}][0]->sdi[{ch1}[0];" "dlo[{ch1}][1]->sdi[{ch2}][0];", {}, true, false}}, {"HD_1080_ST292_RGB_Display", {"HD_1080_ST292_RGB_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080, 1, 1, 0, "fb[{ch1}][2]->dlo[{ch1}][0];" "dlo[{ch1}][0]->sdi[{ch1}[0];" "dlo[{ch1}][1]->sdi[{ch2}][0];", {}, true, false}}, {"HD_1080_ST372_Dual_RGB_Display", {"HD_1080_ST372_Dual_RGB_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_DualLink, 2, 1, 0, "fb[{ch1}][2]->dlo[{ch1}][0];" "dlo[{ch1}][0]->sdi[{ch1}[0];" "dlo[{ch1}][1]->sdi[{ch2}][0];", {}, true, false}}, {"HD_720p_ST425_3Ga_RGB_Display", {"HD_720p_ST425_3Ga_RGB_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_720_3Ga, 1, 1, (kEnable3GOut | kConvert3GaRGBOut), "fb[{ch1}][2]->dlo[{ch1}][0];" "dlo[{ch1}][0]->sdi[{ch1}][0];" "dlo[{ch1}][1]->sdi[{ch1}][1];", {}, true, false}}, {"HD_1080p_ST425_3Ga_RGB_Display", {"HD_1080p_ST425_3Ga_RGB_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_3Ga, 1, 1, (kEnable3GOut | kConvert3GaRGBOut), "fb[{ch1}][2]->dlo[{ch1}][0];" "dlo[{ch1}][0]->sdi[{ch1}][0];" "dlo[{ch1}][1]->sdi[{ch1}][1];", {}, true, false}}, {"HD_1080p_ST425_3Gb_DL_RGB_Display", {"HD_1080p_ST425_3Gb_DL_RGB_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_DualLink_3Gb, 1, 1, (kEnable3GOut | kEnable3GbOut), "fb[{ch1}][2]->dlo[{ch1}][0];" "dlo[{ch1}][0]->sdi[{ch1}][0];" "dlo[{ch1}][1]->sdi[{ch1}][1];", {}, true, false}}, {"HD_720p_ST425_3Gb_RGB_Display", {"HD_720p_ST425_3Gb_RGB_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_720_3Gb, 1, 2, (kEnable3GOut | kEnable3GbOut), "fb[{ch1}][2]->dlo[{ch1}][0];" "dlo[{ch1}][0]->sdi[{ch1}][0];" "dlo[{ch1}][1]->sdi[{ch1}][1];", {}, true, false}}, {"HD_1080p_ST425_3Gb_RGB_Display", {"HD_1080p_ST425_3Gb_RGB_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_3Gb, 1, 2, (kEnable3GOut | kEnable3GbOut), "fb[{ch1}][2]->dlo[{ch1}][0];" "dlo[{ch1}][0]->sdi[{ch1}][0];" "dlo[{ch1}][1]->sdi[{ch1}][1];", {}, true, false}}, // { "HD_1080p_ST425_Dual_3Ga_RGB_Display", { // "HD_1080p_ST425_Dual_3Ga_RGB_Display", // ConnectionKind::SDI, // NTV2_MODE_DISPLAY, // 2, 2, // kEnable3GOut, // "", // {}, // RasterDefinition::HD, // HDMIWireFormat::Unknown, // VPIDStandard_1080_Dual_3Ga, true, false}}, // { "HD_1080p_ST425_Dual_3Gb_RGB_Display", { // "HD_1080p_ST425_Dual_3Gb_RGB_Display", // ConnectionKind::SDI, // NTV2_MODE_DISPLAY, // 2, 2, // (kEnable3GOut | kEnable3GbOut), // "", // {}, // RasterDefinition::HD, // HDMIWireFormat::Unknown, // VPIDStandard_1080_Dual_3Gb, true, false}}, // { "UHD4K_ST292_Quad_1_5_Squares_RGB_Display", { // "UHD4K_ST292_Quad_1_5_Squares_RGB_Display", // ConnectionKind::SDI, // NTV2_MODE_DISPLAY, // 4, 4, // kEnable4KSquares, // "", // {}, // RasterDefinition::UHD_4K, // HDMIWireFormat::Unknown, // VPIDStandard_1080, true, false}}, // { "UHD4K_ST425_Quad_3Ga_Squares_RGB_Display", { // "UHD4K_ST425_Quad_3Ga_Squares_RGB_Display", // ConnectionKind::SDI, // NTV2_MODE_DISPLAY, // 4, 4, // (kEnable3GOut | kEnable4KSquares), // "", // {}, // RasterDefinition::UHD_4K, // HDMIWireFormat::Unknown, // VPIDStandard_1080_3Ga, true, false}}, {"UHD4K_ST425_Quad_3Gb_Squares_RGB_Display", {"UHD4K_ST425_Quad_3Gb_Squares_RGB_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_1080_DualLink_3Gb, 4, 4, (kEnable3GOut | kEnable3GbOut | kEnable4KSquares), // Framestores -> Dual-Links "fb[{ch1}][2]->dlo[{ch1}][0];" "fb[{ch2}][2]->dlo[{ch2}][0];" "fb[{ch3}][2]->dlo[{ch3}][0];" "fb[{ch4}][2]->dlo[{ch4}][0];" // Dual-Links -> SDIs "dlo[{ch1}][0]->sdi[{ch1}][0];" "dlo[{ch1}][1]->sdi[{ch1}][1];" "dlo[{ch2}][0]->sdi[{ch2}][0];" "dlo[{ch2}][1]->sdi[{ch2}][1];" "dlo[{ch3}][0]->sdi[{ch3}][0];" "dlo[{ch3}][1]->sdi[{ch3}][1];" "dlo[{ch4}][0]->sdi[{ch4}][0];" "dlo[{ch4}][1]->sdi[{ch4}][1];", {}, true, false}}, // { "UHD4K_ST425_Dual_3Gb_2SI_RGB_Display", { // "UHD4K_ST425_Dual_3Gb_2SI_RGB_Display", // ConnectionKind::SDI, // NTV2_MODE_DISPLAY, // 2, 4, // (kEnable3GOut | kEnable3GbOut | kEnable4KSquares), // "", // {}, // RasterDefinition::UHD_4K, // HDMIWireFormat::Unknown, // VPIDStandard_2160_DualLink, true, false}}, {"UHD4K_ST425_Quad_3Ga_2SI_RGB_Display", {"UHD4K_ST425_Quad_3Ga_2SI_RGB_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_QuadLink_3Ga, 4, 4, (kEnable3GOut | kEnable4KTSI), "fb[{ch1}][2]->tsi[{ch1}][0];" "fb[{ch1}][3]->tsi[{ch1}][1];" "fb[{ch2}][2]->tsi[{ch2}][0];" "fb[{ch2}][3]->tsi[{ch2}][1];" "tsi[{ch1}][2]->dlo[{ch1}][0];" "tsi[{ch1}][3]->dlo[{ch2}][0];" "tsi[{ch2}][2]->dlo[{ch3}][0];" "tsi[{ch2}][3]->dlo[{ch4}][0];" "dlo[{ch1}][0]->sdi[{ch1}][0];" "dlo[{ch1}][1]->sdi[{ch1}][1];" "dlo[{ch2}][0]->sdi[{ch2}][0];" "dlo[{ch2}][1]->sdi[{ch2}][1];" "dlo[{ch3}][0]->sdi[{ch3}][0];" "dlo[{ch3}][1]->sdi[{ch3}][1];" "dlo[{ch4}][0]->sdi[{ch4}][0];" "dlo[{ch4}][1]->sdi[{ch4}][1];", {}, true, false}}, {"UHD4K_ST425_Quad_3Gb_2SI_RGB_Display", {"UHD4K_ST425_Quad_3Gb_2SI_RGB_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_QuadDualLink_3Gb, 4, 4, (kEnable3GOut | kEnable4KTSI), "fb[{ch1}][2]->tsi[{ch1}][0];" "fb[{ch1}][3]->tsi[{ch1}][1];" "fb[{ch2}][2]->tsi[{ch2}][0];" "fb[{ch2}][3]->tsi[{ch2}][1];" "tsi[{ch1}][2]->dlo[{ch1}][0];" "tsi[{ch1}][3]->dlo[{ch2}][0];" "tsi[{ch2}][2]->dlo[{ch3}][0];" "tsi[{ch2}][3]->dlo[{ch4}][0];" "dlo[{ch1}][0]->sdi[{ch1}][0];" "dlo[{ch1}][1]->sdi[{ch1}][1];" "dlo[{ch2}][0]->sdi[{ch2}][0];" "dlo[{ch2}][1]->sdi[{ch2}][1];" "dlo[{ch3}][0]->sdi[{ch3}][0];" "dlo[{ch3}][1]->sdi[{ch3}][1];" "dlo[{ch4}][0]->sdi[{ch4}][0];" "dlo[{ch4}][1]->sdi[{ch4}][1];", {}, true, false}}, // TODO(paulh): Find out proper settings for this route // { "UHD4K_ST2018_6G_Squares_2SI_RGB_Display", { // "UHD4K_ST2018_6G_Squares_2SI_RGB_Display", // ConnectionKind::SDI, // NTV2_MODE_DISPLAY, // 2, 4, // (kEnable6GOut | kEnable4KTSI), // "", // {}, // RasterDefinition::UHD_4K, // HDMIWireFormat::Unknown, // VPIDStandard_2160_Single_6Gb, true, false}}, // TODO(paulh): Find out proper settings for this route // { "UHD4K_ST2018_12G_Squares_2SI_RGB_Display", { // "UHD4K_ST2018_12G_Squares_2SI_RGB_Display", // ConnectionKind::SDI, // NTV2_MODE_DISPLAY, // 2, 4, // (kEnable12GOut | kEnable4KTSI), // "", // {}, // RasterDefinition::UHD_4K, // HDMIWireFormat::Unknown, // VPIDStandard_2160_Single_12Gb, true, false}}, // { "UHD28K_ST2082_Dual_12G_RGB_Display", { // "UHD28K_ST2082_Dual_12G_RGB_Display", // ConnectionKind::SDI, // NTV2_MODE_DISPLAY, // 2, 4, // (kEnable12GOut | kEnable4KTSI), // "", // {}, // RasterDefinition::UHD_4K, // HDMIWireFormat::Unknown, // VPIDStandard_4320_DualLink_12Gb, true, false}}, // { "UHD28K_ST2082_RGB_Dual_12G_RGB_Display", { // "UHD28K_ST2082_RGB_Dual_12G_RGB_Display", // ConnectionKind::SDI, // NTV2_MODE_DISPLAY, // 2, 4, // (kEnable12GOut | kEnable4KTSI), // "", // {}, // RasterDefinition::UHD_4K, // HDMIWireFormat::Unknown, // VPIDStandard_2160_DualLink_12Gb, true, false}}, // { "UHD28K_ST2082_Quad_12G_RGB_Display", { // "UHD28K_ST2082_Quad_12G_RGB_Display", // ConnectionKind::SDI, // NTV2_MODE_DISPLAY, // 2, 4, // (kEnable12GOut | kEnable4KTSI), // "", // {}, // RasterDefinition::UHD_4K, // HDMIWireFormat::Unknown, // VPIDStandard_4320_QuadLink_12Gb, true, false}}, /* * SDI YCbCr Capture */ {"SD_ST352_YCbCr_Capture", {"SD_ST352_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::SD, HDMIWireFormat::Unknown, VPIDStandard_483_576, 1, 1, 0, "sdi[{ch1}][0]->fb[{ch1}][0]", {}, false, false}}, {"HD_720p_ST292_YCbCr_Capture", {"HD_720p_ST292_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_720, 1, 1, 0, "sdi[{ch1}][0]->fb[{ch1}][0]", {}, false, false}}, {"HD_1080_ST292_YCbCr_Capture", {"HD_1080_ST292_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080, 1, 1, 0, "sdi[{ch1}][0]->fb[{ch1}][0]", {}, false, false}}, {"HD_1080_ST372_Dual_YCbCr_Capture", {"HD_1080_ST372_Dual_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_DualLink, 2, 2, 0, "sdi[{ch1}][0]->fb[{ch1}][0];" "sdi[{ch2}][0]->fb[{ch2}][0]", {}, false, false}}, {"HD_720p_ST425_3Ga_YCbCr_Capture", {"HD_720p_ST425_3Ga_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_720_3Ga, 1, 1, kEnable3GOut, "sdi[{ch1}][0]->fb[{ch1}][0]", {}, false, false}}, {"HD_1080p_ST425_3Ga_YCbCr_Capture", {"HD_1080p_ST425_3Ga_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_3Ga, 1, 1, kEnable3GOut, "sdi[{ch1}][0]->fb[{ch1}][0]", {}, false, false}}, {"HD_1080p_ST425_3Gb_DL_YCbCr_Capture", {"HD_1080p_ST425_3Gb_DL_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_DualLink_3Gb, 1, 1, (kEnable3GOut | kConvert3GIn | kConvert3GOut), "sdi[{ch1}][0]->fb[{ch1}][0]", {}, false, false}}, {"HD_720p_ST425_3Gb_YCbCr_Capture", {"HD_720p_ST425_3Gb_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_720_3Gb, 1, 2, kEnable3GOut, "sdi[{ch1}][0]->fb[{ch1}][0];" "sdi[{ch1}][1]->fb[{ch2}][0];", {}, false, false}}, {"HD_1080p_ST425_3Gb_YCbCr_Capture", {"HD_1080p_ST425_3Gb_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_3Gb, 1, 2, kEnable3GOut, "sdi[{ch1}][0]->fb[{ch1}][0];" "sdi[{ch1}][1]->fb[{ch2}][0];", {}, false, false}}, {"HD_1080p_ST425_Dual_3Ga_YCbCr_Capture", {"HD_1080p_ST425_Dual_3Ga_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_Dual_3Ga, 2, 2, 0, "sdi[{ch1}][0]->fb[{ch1}][0];" "sdi[{ch2}][0]->fb[{ch2}][0];", {}, false, false}}, {"HD_1080p_ST425_Dual_3Gb_YCbCr_Capture", {"HD_1080p_ST425_Dual_3Gb_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_Dual_3Gb, 2, 2, 0, "sdi[{ch1}][0]->fb[{ch1}][0];" "sdi[{ch2}][0]->fb[{ch2}][0];", {}, false, false}}, {"UHD4K_ST292_Quad_1_5_Squares_YCbCr_Capture", {"UHD4K_ST292_Quad_1_5_Squares_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_1080, 4, 4, kEnable4KSquares, "sdi[{ch1}][0]->fb[{ch1}][0];" "sdi[{ch2}][0]->fb[{ch2}][0];" "sdi[{ch3}][0]->fb[{ch3}][0];" "sdi[{ch4}][0]->fb[{ch4}][0];", {}, false, false}}, {"UHD4K_ST425_Quad_3Ga_Squares_YCbCr_Capture", {"UHD4K_ST425_Quad_3Ga_Squares_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_1080_3Ga, 4, 4, kEnable4KSquares, "sdi[{ch1}][0]->fb[{ch1}][0];" "sdi[{ch2}][0]->fb[{ch2}][0];" "sdi[{ch3}][0]->fb[{ch3}][0];" "sdi[{ch4}][0]->fb[{ch4}][0];", {}, false, false}}, {"UHD4K_ST425_Quad_3Gb_Squares_YCbCr_Capture", {"UHD4K_ST425_Quad_3Gb_Squares_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_1080_DualLink_3Gb, 4, 4, kEnable4KSquares | kConvert3GIn, "sdi[{ch1}][0]->fb[{ch1}][0];" "sdi[{ch2}][0]->fb[{ch2}][0];" "sdi[{ch3}][0]->fb[{ch3}][0];" "sdi[{ch4}][0]->fb[{ch4}][0];", {}, false, false}}, {"UHD4K_ST425_Dual_3Gb_2SI_YCbCr_Capture", {"UHD4K_ST425_Dual_3Gb_2SI_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_DualLink, 2, 2, kEnable4KTSI, "sdi[{ch1}][0]->tsi[{ch1}][0];" "sdi[{ch1}][1]->tsi[{ch1}][1];" "sdi[{ch2}][0]->tsi[{ch2}][0];" "sdi[{ch2}][1]->tsi[{ch2}][1];" "tsi[{ch1}][0]->fb[{ch1}][0];" "tsi[{ch1}][1]->fb[{ch1}][1];" "tsi[{ch2}][0]->fb[{ch2}][0];" "tsi[{ch2}][1]->fb[{ch2}][1];", {}, false, false}}, {"UHD4K_ST425_Quad_3Ga_2SI_YCbCr_Capture", {"UHD4K_ST425_Quad_3Ga_2SI_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_QuadLink_3Ga, 4, 4, kEnable4KTSI, "sdi[{ch1}][0]->tsi[{ch1}][0];" "sdi[{ch2}][0]->tsi[{ch1}][1];" "sdi[{ch3}][0]->tsi[{ch2}][0];" "sdi[{ch4}][0]->tsi[{ch2}][1];" "tsi[{ch1}][0]->fb[{ch1}][0];" "tsi[{ch1}][1]->fb[{ch1}][1];" "tsi[{ch2}][0]->fb[{ch2}][0];" "tsi[{ch2}][1]->fb[{ch2}][1];", {}, false, false}}, {"UHD4K_ST425_Quad_3Gb_2SI_YCbCr_Capture", {"UHD4K_ST425_Quad_3Gb_2SI_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_QuadDualLink_3Gb, 4, 4, (kConvert3GIn | kEnable4KTSI), "sdi[{ch1}][0]->tsi[{ch1}][0];" "sdi[{ch2}][0]->tsi[{ch1}][1];" "sdi[{ch3}][0]->tsi[{ch2}][0];" "sdi[{ch4}][0]->tsi[{ch2}][1];" "tsi[{ch1}][0]->fb[{ch1}][0];" "tsi[{ch1}][1]->fb[{ch1}][1];" "tsi[{ch2}][0]->fb[{ch2}][0];" "tsi[{ch2}][1]->fb[{ch2}][1];", {}, false, false}}, {"UHD4K_ST2018_6G_Squares_2SI_YCbCr_Capture", {"UHD4K_ST2018_6G_Squares_2SI_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_Single_6Gb, 1, 1, (kEnable6GOut | kEnable4KTSI), "sdi[{ch1}][0]->fb[{ch1}][0];", {}, false, false}}, {"UHD4K_ST2018_6G_Squares_2SI_YCbCr_Capture (Kona5/io4K+)", {"UHD4K_ST2018_6G_Squares_2SI_YCbCr_Capture (Kona5/io4K+)", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_Single_6Gb, 4, 4, (kEnable6GOut | kEnable4KTSI), "sdi[{ch1}][0]->tsi[{ch1}][0];" "sdi[{ch2}][0]->tsi[{ch1}][1];" "sdi[{ch3}][0]->tsi[{ch2}][0];" "sdi[{ch4}][0]->tsi[{ch2}][1];" "tsi[{ch1}][0]->fb[{ch1}][0];" "tsi[{ch1}][1]->fb[{ch1}][1];" "tsi[{ch2}][0]->fb[{ch2}][0];" "tsi[{ch2}][1]->fb[{ch2}][1];", {DEVICE_ID_KONA5, DEVICE_ID_IO4KPLUS}, false, false}}, {"UHD4K_ST2018_12G_Squares_2SI_YCbCr_Capture", {"UHD4K_ST2018_12G_Squares_2SI_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_Single_12Gb, 1, 1, (kEnable12GOut | kConvert3GaRGBOut | kEnable4KTSI), "sdi[{ch1}][0]->fb[{ch1}][0];", {}, false, false}}, {"UHD4K_ST2018_12G_Squares_2SI_YCbCr_Capture (Kona5/io4K+)", {"UHD4K_ST2018_12G_Squares_2SI_YCbCr_Capture (Kona5/io4K+)", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_Single_12Gb, 4, 4, (kEnable6GOut | kEnable4KTSI), "sdi[{ch1}][0]->tsi[{ch1}][0];" "sdi[{ch2}][0]->tsi[{ch1}][1];" "sdi[{ch3}][0]->tsi[{ch2}][0];" "sdi[{ch4}][0]->tsi[{ch2}][1];" "tsi[{ch1}][0]->fb[{ch1}][0];" "tsi[{ch1}][1]->fb[{ch1}][1];" "tsi[{ch2}][0]->fb[{ch2}][0];" "tsi[{ch2}][1]->fb[{ch2}][1];", {DEVICE_ID_KONA5, DEVICE_ID_IO4KPLUS}, false, false}}, // TODO {"UHD28K_ST2082_Dual_12G_YCbCr_Capture", {"UHD28K_ST2082_Dual_12G_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_4320_DualLink_12Gb, 2, 2, (kEnable12GOut | kConvert3GaRGBOut | kEnable4KTSI), "sdi[{ch1}][0]->fb[{ch1}][0];", {}, false, false}}, // TODO {"UHD28K_ST2082_Quad_12G_YCbCr_Capture", {"UHD28K_ST2082_Quad_12G_YCbCr_Capture", ConnectionKind::SDI, NTV2_MODE_CAPTURE, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_4320_QuadLink_12Gb, 4, 4, (kEnable12GOut | kConvert3GaRGBOut | kEnable4KTSI), "sdi[{ch1}][0]->fb[{ch1}][0];", {}, false, false}}, /* * SDI YCbCr Display */ {"SD_ST352_YCbCr_Display", {"SD_ST352_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::SD, HDMIWireFormat::Unknown, VPIDStandard_483_576, 1, 1, 0, "fb[{ch1}][0]->sdi[{ch1}][0];", {}, false, false}}, {"HD_720p_ST292_YCbCr_Display", {"HD_720p_ST292_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_720, 1, 1, 0, "fb[{ch1}][0]->sdi[{ch1}][0];", {}, false, false}}, {"HD_1080_ST292_YCbCr_Display", {"HD_1080_ST292_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080, 1, 1, 0, "fb[{ch1}][0]->sdi[{ch1}][0];", {}, false, false}}, {"HD_1080_ST372_Dual_YCbCr_Display", {"HD_1080_ST372_Dual_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_DualLink, 2, 2, 0, "fb[{ch1}][0]->sdi[{ch1}][0];" "fb[{ch2}][0]->sdi[{ch2}][0]", {}, false, false}}, {"HD_720p_ST425_3Ga_YCbCr_Display", {"HD_720p_ST425_3Ga_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_720_3Ga, 1, 1, kEnable3GOut, "fb[{ch1}][0]->sdi[{ch1}][0];", {}, false, false}}, {"HD_1080p_ST425_3Ga_YCbCr_Display", {"HD_1080p_ST425_3Ga_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_3Ga, 1, 1, kEnable3GOut, "fb[{ch1}][0]->sdi[{ch1}][0];", {}, false, false}}, {"HD_1080p_ST425_3Gb_DL_YCbCr_Display", {"HD_1080p_ST425_3Gb_DL_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_DualLink_3Gb, 1, 1, (kEnable3GOut | kConvert3GIn | kConvert3GOut), "fb[{ch1}][0]->sdi[{ch1}][0];", {}, false, false}}, {"HD_720p_ST425_3Gb_YCbCr_Display", {"HD_720p_ST425_3Gb_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_720_3Gb, 1, 2, kEnable3GOut, "fb[{ch1}][0]->sdi[{ch1}][0];" "fb[{ch2}][0]->sdi[{ch1}][1];", {}, false, false}}, {"HD_1080p_ST425_3Gb_YCbCr_Display", {"HD_1080p_ST425_3Gb_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_3Gb, 1, 2, kEnable3GOut, "fb[{ch1}][0]->sdi[{ch1}][0];" "fb[{ch2}][0]->sdi[{ch1}][1];", {}, false, false}}, {"HD_1080p_ST425_Dual_3Ga_YCbCr_Display", {"HD_1080p_ST425_Dual_3Ga_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_Dual_3Ga, 2, 2, kEnable3GOut, "fb[{ch1}][0]->sdi[{ch1}][0];" "fb[{ch2}][0]->sdi[{ch1}][1];", {}, false, false}}, {"HD_1080p_ST425_Dual_3Gb_YCbCr_Display", {"HD_1080p_ST425_Dual_3Gb_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::HD, HDMIWireFormat::Unknown, VPIDStandard_1080_Dual_3Gb, 2, 2, kEnable3GOut, "fb[{ch1}][0]->sdi[{ch1}][0];" "fb[{ch2}][0]->sdi[{ch1}][1];", {}, false, false}}, {"UHD4K_ST292_Quad_1_5_Squares_YCbCr_Display", {"UHD4K_ST292_Quad_1_5_Squares_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_1080, 4, 4, (kEnable3GbOut | kEnable4KSquares), "fb[{ch1}][0]->sdi[{ch1}][0];" "fb[{ch2}][0]->sdi[{ch2}][0];" "fb[{ch3}][0]->sdi[{ch3}][0];" "fb[{ch4}][0]->sdi[{ch4}][0];", {}, false, false}}, {"UHD4K_ST425_Quad_3Ga_Squares_YCbCr_Display", {"UHD4K_ST425_Quad_3Ga_Squares_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_1080_3Ga, 4, 4, (kEnable3GOut | kEnable3GbOut), "fb[{ch1}][0]->sdi[{ch1}][0];" "fb[{ch2}][0]->sdi[{ch2}][0];" "fb[{ch3}][0]->sdi[{ch3}][0];" "fb[{ch4}][0]->sdi[{ch4}][0];", {}, false, false}}, {"UHD4K_ST425_Quad_3Gb_Squares_YCbCr_Display", {"UHD4K_ST425_Quad_3Gb_Squares_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_1080_DualLink_3Gb, 4, 4, (kEnable3GOut | kEnable3GbOut | kEnable4KSquares), "fb[{ch1}][0]->sdi[{ch1}][0];" "fb[{ch2}][0]->sdi[{ch2}][0];" "fb[{ch3}][0]->sdi[{ch3}][0];" "fb[{ch4}][0]->sdi[{ch4}][0];", {}, false, false}}, {"UHD4K_ST425_Dual_3Gb_2SI_YCbCr_Display", {"UHD4K_ST425_Dual_3Gb_2SI_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_DualLink, 2, 2, (kEnable3GOut | kEnable4KTSI), "fb[{ch1}][0]->tsi[{ch1}][0];" "fb[{ch1}][1]->tsi[{ch1}][1];" "fb[{ch2}][0]->tsi[{ch2}][0];" "fb[{ch2}][1]->tsi[{ch2}][1];" "tsi[{ch1}][0]->sdi[{ch1}][0];" "tsi[{ch1}][1]->sdi[{ch1}][1];" "tsi[{ch2}][0]->sdi[{ch2}][0];" "tsi[{ch2}][1]->sdi[{ch2}][1];", {}, false, false}}, {"UHD4K_ST425_Quad_3Ga_2SI_YCbCr_Display", {"UHD4K_ST425_Quad_3Ga_2SI_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_QuadLink_3Ga, 4, 4, (kEnable3GOut | kEnable4KTSI), "fb[{ch1}][0]->tsi[{ch1}][0];" "fb[{ch1}][1]->tsi[{ch1}][1];" "fb[{ch2}][0]->tsi[{ch2}][0];" "fb[{ch2}][1]->tsi[{ch2}][1];" "tsi[{ch1}][0]->sdi[{ch1}][0];" "tsi[{ch1}][1]->sdi[{ch2}][0];" "tsi[{ch2}][0]->sdi[{ch3}][0];" "tsi[{ch2}][1]->sdi[{ch4}][0];", {}, false, false}}, {"UHD4K_ST425_Quad_3Gb_2SI_YCbCr_Display", {"UHD4K_ST425_Quad_3Gb_2SI_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_QuadDualLink_3Gb, 4, 4, (kEnable3GOut | kConvert3GaRGBOut | kEnable4KTSI), "fb[{ch1}][0]->tsi[{ch1}][0];" "fb[{ch1}][1]->tsi[{ch1}][1];" "fb[{ch2}][0]->tsi[{ch2}][0];" "fb[{ch2}][1]->tsi[{ch2}][1];" "tsi[{ch1}][0]->sdi[{ch1}][0];" "tsi[{ch1}][1]->sdi[{ch2}][0];" "tsi[{ch2}][0]->sdi[{ch3}][0];" "tsi[{ch2}][1]->sdi[{ch4}][0];", {}, false, false}}, {"UHD4K_ST2018_6G_Squares_2SI_YCbCr_Display", {"UHD4K_ST2018_6G_Squares_2SI_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_Single_6Gb, 1, 1, (kEnable6GOut | kEnable4KTSI), "fb[{ch1}][0]->sdi[{ch1}][0];", {}, false, false}}, {"UHD4K_ST2018_6G_Squares_2SI_YCbCr_Display (Kona5/io4K+)", {"UHD4K_ST2018_6G_Squares_2SI_YCbCr_Display (Kona5/io4K+)", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_Single_6Gb, 4, 4, (kEnable6GOut | kEnable4KTSI), "fb[{ch3}][0]->tsi[{ch3}][0];" "fb[{ch3}][1]->tsi[{ch3}][1];" "fb[{ch4}][0]->tsi[{ch4}][0];" "fb[{ch4}][1]->tsi[{ch4}][1];" "tsi[{ch3}][0]->sdi[{ch1}][0];" "tsi[{ch3}][1]->sdi[{ch2}][0];" "tsi[{ch4}][0]->sdi[{ch3}][0];" "tsi[{ch4}][1]->sdi[{ch4}][0];", {DEVICE_ID_KONA5, DEVICE_ID_IO4KPLUS}, false, true}}, {"UHD4K_ST2018_12G_Squares_2SI_YCbCr_Display", {"UHD4K_ST2018_12G_Squares_2SI_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_Single_12Gb, 1, 1, (kEnable12GOut | kEnable4KTSI), "fb[{ch1}][0]->sdi[{ch1}][0];", {}, false, false}}, {"UHD4K_ST2018_12G_Squares_2SI_YCbCr_Display (Kona5/io4K+)", {"UHD4K_ST2018_12G_Squares_2SI_YCbCr_Display (Kona5/io4K+)", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_2160_Single_12Gb, 4, 4, (kEnable12GOut | kConvert3GOut | kEnable4KTSI), "fb[{ch3}][0]->tsi[{ch3}][0];" "fb[{ch3}][1]->tsi[{ch3}][1];" "fb[{ch4}][0]->tsi[{ch4}][0];" "fb[{ch4}][1]->tsi[{ch4}][1];" "tsi[{ch3}][0]->sdi[{ch1}][0];" "tsi[{ch3}][1]->sdi[{ch2}][0];" "tsi[{ch4}][0]->sdi[{ch3}][0];" "tsi[{ch4}][1]->sdi[{ch4}][0];", {DEVICE_ID_KONA5, DEVICE_ID_IO4KPLUS}, false, true}}, // TODO {"UHD28K_ST2082_Dual_12G_YCbCr_Display", {"UHD28K_ST2082_Dual_12G_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_4320_DualLink_12Gb, 2, 2, (kEnable12GOut | kConvert3GOut | kEnable4KTSI), "", {}, false, false}}, // TODO {"UHD28K_ST2082_Quad_12G_YCbCr_Display", {"UHD28K_ST2082_Quad_12G_YCbCr_Display", ConnectionKind::SDI, NTV2_MODE_DISPLAY, RasterDefinition::UHD_4K, HDMIWireFormat::Unknown, VPIDStandard_4320_QuadLink_12Gb, 4, 4, (kEnable12GOut | kConvert3GOut | kEnable4KTSI), "", {}, false, false}}, }; for (auto &&rp : kRoutingPresets) AddPreset(std::move(rp.first), std::move(rp.second)); } RoutingPresetMap RoutingConfigurator::GetPresetTable() const { return m_presets; } bool RoutingConfigurator::FindFirstPreset(ConnectionKind kind, NTV2DeviceID id, NTV2Mode mode, NTV2VideoFormat vf, NTV2PixelFormat pf, VPIDStandard standard, HDMIWireFormat hwf, RoutingPreset &preset) { if (NTV2DeviceCanDoVideoFormat(id, vf) && NTV2DeviceCanDoFrameBufferFormat(id, pf)) { const auto &rd = DetermineRasterDefinition(vf); bool is_rgb = NTV2_IS_FBF_RGB(pf); std::vector query; for (const auto &p : m_presets) { if (p.second.kind == kind && p.second.mode == mode && p.second.raster_def == rd && p.second.is_rgb == is_rgb && p.second.vpid_standard == standard && p.second.hdmi_wire_format == hwf) { query.push_back(p); } } RoutingPresets device_presets; RoutingPresets non_device_presets; for (auto &q : query) { if (q.second.device_ids.size() == 0) non_device_presets.push_back(q.second); for (const auto &device_id : q.second.device_ids) { if (device_id == id) { device_presets.push_back(q.second); break; } } } if (device_presets.size() > 0) { preset = device_presets.at(0); return true; } if (non_device_presets.size() > 0) { preset = non_device_presets.at(0); return true; } } return false; } } // namespace aja