#include "DvppSourceManager.h" #include "dvpp_headers.h" #include "depend_headers.h" using namespace std; DvppSourceManager::~DvppSourceManager() { m_channelMap.clear(); // aclFinalize(); } int DvppSourceManager::getChannel(int devId){ std::lock_guard l(m_channelMap_mtx); // channel 最大值暂定为32, 华为没有接口获取最大channel,只有文档说明 for(int iChannel = 0; iChannel < 32; iChannel++){ string channelKey = "channel_" + to_string(devId) + "_" + to_string(iChannel) ; auto it = m_channelMap.find(channelKey); if(it == m_channelMap.end()){ m_channelMap[channelKey] = iChannel; return iChannel; } } return -1; } void DvppSourceManager::releaseChannel(int devId, int iChannel){ std::lock_guard l(m_channelMap_mtx); string channelKey = "channel_" + to_string(devId) + "_" + to_string(iChannel) ; auto it = m_channelMap.find(channelKey); if(it != m_channelMap.end()){ m_channelMap.erase(channelKey); } }