p26001-store-acs-soc-fw-app/video/hisi/mpp5/ResourceManager.cpp
2026-09-28 21:33:04 +08:00

75 lines
1.9 KiB
C++

/*
*******************************************************************************
* INCLUDE
*******************************************************************************
*/
#include "ResourceManager.h"
#include <hi_mpi_vpss.h>
#include <hi_mpi_venc.h>
namespace Video
{
namespace MPP5
{
/*
*******************************************************************************
* CLASS DEFINE
*******************************************************************************
*/
Util::HandlesManager<uint32_t> ResourceManager::_vpssGroupIDManager(HI_VPSS_MAX_GRP_NUM);
Util::HandlesManager<uint32_t> ResourceManager::_vencChannelIDManager(HI_VENC_MAX_CHN_NUM);
Util::HandlesManager<uint32_t> ResourceManager::_vdecChannelIDManager(HI_VDEC_MAX_CHN_NUM);
Util::HandlesManager<uint32_t> ResourceManager::_aencChannelIDManager(HI_AENC_MAX_CHN_NUM);
Util::HandlesManager<uint32_t> ResourceManager::_rgnHandleManager(HI_RGN_HANDLE_MAX);
uint32_t ResourceManager::allocVPSSGroupID()
{
return _vpssGroupIDManager.allocHandle();
}
void ResourceManager::freeVPSSGroupID(uint32_t id)
{
_vpssGroupIDManager.freeHandle(id);
}
uint32_t ResourceManager::allocVENCChannelID()
{
return _vencChannelIDManager.allocHandle();
}
void ResourceManager::freeVENCChannelID(uint32_t id)
{
_vencChannelIDManager.freeHandle(id);
}
uint32_t ResourceManager::allocVDECChannelID()
{
return _vdecChannelIDManager.allocHandle();
}
void ResourceManager::freeVDECChannelID(uint32_t id)
{
_vdecChannelIDManager.freeHandle(id);
}
uint32_t ResourceManager::allocAENCChannelID()
{
return _aencChannelIDManager.allocHandle();
}
void ResourceManager::freeAENCChannelID(uint32_t id)
{
_aencChannelIDManager.freeHandle(id);
}
uint32_t ResourceManager::allocRGNHandle()
{
return _rgnHandleManager.allocHandle();
}
void ResourceManager::freeRGNHandle(uint32_t handle)
{
_rgnHandleManager.freeHandle(handle);
}
}
}