[idd] network: support software video capture

This commit is contained in:
Geoffrey McRae
2026-10-01 08:39:39 +10:00
parent 70bbf180be
commit b7f36f39a2
2 changed files with 8 additions and 6 deletions

View File

@@ -1352,18 +1352,20 @@ CfgResult CTransportManager::Cfg(const GraphCfg& cfg,
bool frameService = false;
bool required = false;
bool primary = false;
bool texture = false;
{
CSRWSharedLock entryLock(entry.lock);
frameService =
(entry.config.services & TRANSPORT_SERVICE_FRAME) != 0;
required = entry.required;
primary = entry.primary;
required = entry.required;
primary = entry.primary;
texture = entry.texSink != nullptr;
}
// Software capture writes directly into the primary frame target.
// Secondary routes add fan-out work and can require staging copies.
// Software capture writes legacy frames directly into the primary target.
// Texture routes fan out independently through the frame graph executor.
if (!frameService)
continue;
if (cfg.mode == GpuMode::SOFTWARE && !primary)
if (cfg.mode == GpuMode::SOFTWARE && !primary && !texture)
{
if (required)
{

View File

@@ -2421,7 +2421,7 @@ CfgResult CNetworkVideo::Probe(const FrameCfg& cfg) const
CSRWSharedLock lock(m_impl->m_lock);
if (m_impl->m_stopped || m_impl->m_failed)
return CfgResult::FAILED;
if (cfg.mode != GpuMode::HARDWARE || !cfg.width || !cfg.height ||
if (!Frame::Valid(cfg.mode) || !cfg.width || !cfg.height ||
cfg.width > MAX_WIDTH || cfg.height > MAX_HEIGHT ||
!SupportedProfile(cfg.profile))
return CfgResult::NEXT;