From 9c9efcd04df1a1a977983c99228e052541d8f55c Mon Sep 17 00:00:00 2001 From: Paul Hindt Date: Fri, 14 Jan 2022 19:37:12 -0800 Subject: [PATCH] aja: Fix erroneous HDMI input selection for certain cards --- plugins/aja/aja-common.cpp | 15 ++++++++++++++- plugins/aja/aja-common.hpp | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/plugins/aja/aja-common.cpp b/plugins/aja/aja-common.cpp index 2a31b176c..2b2d6bf95 100644 --- a/plugins/aja/aja-common.cpp +++ b/plugins/aja/aja-common.cpp @@ -418,7 +418,15 @@ bool CardCanDoSDIMonitorOutput(NTV2DeviceID id) return (id == DEVICE_ID_IO4K || id == DEVICE_ID_IO4KPLUS); } -// Cards with a dedicated HDMI Monitor Output tie it to "Framestore 4". +// Cards with a dedicated HDMI Monitor Input, tied to "Framestore 4". +bool CardCanDoHDMIMonitorInput(NTV2DeviceID id) +{ + return (id == DEVICE_ID_IO4K || id == DEVICE_ID_IO4KUFC || + id == DEVICE_ID_IO4KPLUS || id == DEVICE_ID_IOXT || + id == DEVICE_ID_IOX3 || id == DEVICE_ID_KONALHI); +} + +// Cards with a dedicated HDMI Monitor Output, tied to "Framestore 4". bool CardCanDoHDMIMonitorOutput(NTV2DeviceID id) { return (id == DEVICE_ID_IO4K || id == DEVICE_ID_IO4KPLUS || @@ -847,6 +855,11 @@ void IOSelectionToOutputDests(IOSelection io, bool DeviceCanDoIOSelectionIn(NTV2DeviceID id, IOSelection io) { + // Hide "HDMI1" list selection on devices which have a discrete "HDMI IN" port. + if (io == IOSelection::HDMI1 && CardCanDoHDMIMonitorInput(id)) { + return false; + } + NTV2InputSourceSet inputSources; if (io != IOSelection::Invalid) { IOSelectionToInputSources(io, inputSources); diff --git a/plugins/aja/aja-common.hpp b/plugins/aja/aja-common.hpp index 578e245bc..183432ffd 100644 --- a/plugins/aja/aja-common.hpp +++ b/plugins/aja/aja-common.hpp @@ -69,6 +69,7 @@ HandleSpecialCaseFormats(IOSelection io, NTV2VideoFormat vf, NTV2DeviceID id); extern uint32_t CardNumFramestores(NTV2DeviceID id); extern uint32_t CardNumAudioSystems(NTV2DeviceID id); extern bool CardCanDoSDIMonitorOutput(NTV2DeviceID id); +extern bool CardCanDoHDMIMonitorInput(NTV2DeviceID id); extern bool CardCanDoHDMIMonitorOutput(NTV2DeviceID id); extern bool CardCanDo1xSDI12G(NTV2DeviceID id); extern bool Is3GLevelB(CNTV2Card *card, NTV2Channel channel);