整理代码
This commit is contained in:
commit
c7b4e178ec
364 changed files with 59691 additions and 0 deletions
135
video/hisi/mpp5/MPPChannel.cpp
Normal file
135
video/hisi/mpp5/MPPChannel.cpp
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
/*
|
||||
*******************************************************************************
|
||||
* INCLUDE
|
||||
*******************************************************************************
|
||||
*/
|
||||
#include "MPPChannel.h"
|
||||
#include "Logger.h"
|
||||
#include <hi_common.h>
|
||||
#include <hi_mpi_sys.h>
|
||||
#include <Poco/Format.h>
|
||||
|
||||
/*
|
||||
*******************************************************************************
|
||||
* MACROS
|
||||
*******************************************************************************
|
||||
*/
|
||||
#define HI_MPP_CHN_DECLARE(name, ref) \
|
||||
hi_mpp_chn name \
|
||||
{ \
|
||||
(hi_mod_id)(ref).moduleID(), (hi_s32)(ref).deviceID(), (hi_s32)(ref).channelID(), \
|
||||
}
|
||||
|
||||
namespace Video
|
||||
{
|
||||
namespace MPP5
|
||||
{
|
||||
/*
|
||||
*******************************************************************************
|
||||
* CLASS DEFINE
|
||||
*******************************************************************************
|
||||
*/
|
||||
static const char* moduleNames[] = {
|
||||
"CMPI", "VB", "SYS",
|
||||
"RGN", "CHNL", "VDEC",
|
||||
"AVS", "VPSS", "VENC",
|
||||
"SVP", "H264E", "JPEGE",
|
||||
"UNKNOWN", "H265E", "JPEGD",
|
||||
"VO", "VI", "DIS",
|
||||
"VALG", "RC", "AIO",
|
||||
"AI", "AO", "AENC",
|
||||
"ADEC", "VPU", "PCIV",
|
||||
"PCIVFMW", "ISP", "IVE",
|
||||
"USER", "UNKNOWN", "UNKNOWN",
|
||||
"PROC", "LOG", "VFMW",
|
||||
"UNKNOWN", "GDC", "PHOTO",
|
||||
"FB", "HDMI", "VOIE",
|
||||
"TDE", "HDR", "PRORES",
|
||||
"VGS", "UNKNOWN", "FD",
|
||||
"OD", "UNKNOWN", "LPR",
|
||||
"SVP_NNIE", "SVP_DSP", "DPU_RECT",
|
||||
"DPU_MATCH", "MOTIONSENSOR", "MOTIONFUSION",
|
||||
"GYRODIS", "PM", "SVP_ALG",
|
||||
"IVP", "MCF", "SVP_MAU",
|
||||
"VDA", "VPP", "KCF",
|
||||
"PQP", "NPUDEV", "AICPU",
|
||||
"NPUDFX", "TSFW", "CIPHER",
|
||||
"KLAD", "KEYSLOT", "OTP",
|
||||
"VDEC_ADAPT", "DCC", "VDEC_SERVER",
|
||||
"VFMW_MDC", "VB_LOG", "MCF_CALIBRATION",
|
||||
"SVP_NPU", "HNR", "SNAP",
|
||||
"LOG_MDC", "UVC", "FISHEYE_CALIBRATION",
|
||||
};
|
||||
|
||||
MPPChannel::MPPChannel(uint32_t moduleID, uint32_t deviceID, uint32_t channelID)
|
||||
: _moduleID(moduleID), _deviceID(deviceID), _channelID(channelID)
|
||||
{
|
||||
}
|
||||
|
||||
std::string MPPChannel::toString() const
|
||||
{
|
||||
const char* name = "UNKNOWN";
|
||||
if (moduleID() < HI_ID_FISHEYE_CALIBRATION)
|
||||
name = moduleNames[moduleID()];
|
||||
|
||||
return Poco::format("%s(%u:%u)", std::string(name), deviceID(), channelID());
|
||||
}
|
||||
|
||||
void MPPChannel::bind(const MPPChannel& next)
|
||||
{
|
||||
HI_MPP_CHN_DECLARE(from, *this);
|
||||
HI_MPP_CHN_DECLARE(to, next);
|
||||
|
||||
int rc = hi_mpi_sys_bind(&from, &to);
|
||||
if (rc < 0)
|
||||
logger().error("Bind: %s -> %s: %#x", this->toString(), next.toString(), (uint32_t)rc);
|
||||
else
|
||||
logger().debug("Bind: %s -> %s SUCCESS", this->toString(), next.toString());
|
||||
}
|
||||
|
||||
void MPPChannel::unbind(const MPPChannel& next)
|
||||
{
|
||||
HI_MPP_CHN_DECLARE(from, *this);
|
||||
HI_MPP_CHN_DECLARE(to, next);
|
||||
|
||||
int rc = hi_mpi_sys_unbind(&from, &to);
|
||||
if (rc < 0)
|
||||
logger().error("Unbind: %s -> %s: %#x", this->toString(), next.toString(), (uint32_t)rc);
|
||||
else
|
||||
logger().debug("Unbind: %s -> %s SUCCESS", this->toString(), next.toString());
|
||||
}
|
||||
|
||||
void MPPChannel::doLink(Core::Component::Ptr pPrevious)
|
||||
{
|
||||
auto pFrom = dynamic_cast<MPPChannel*>(pPrevious.get());
|
||||
if (pFrom)
|
||||
{
|
||||
pFrom->bind(*this);
|
||||
return;
|
||||
}
|
||||
|
||||
logger().error("MPPChannel: dolink FAIL: %s is not 'MPPChannel'", pPrevious->name());
|
||||
}
|
||||
|
||||
void MPPChannel::doUnlink(Core::Component::Ptr pPrevious)
|
||||
{
|
||||
auto pFrom = dynamic_cast<MPPChannel*>(pPrevious.get());
|
||||
if (pFrom)
|
||||
{
|
||||
pFrom->unbind(*this);
|
||||
return;
|
||||
}
|
||||
|
||||
logger().error("MPPChannel: doUnlink FAIL: %s is not 'MPPChannel'", pPrevious->name());
|
||||
}
|
||||
|
||||
hi_mpp_chn MPPChannel::raw()
|
||||
{
|
||||
return hi_mpp_chn{
|
||||
(hi_mod_id)moduleID(),
|
||||
(hi_s32)deviceID(),
|
||||
(hi_s32)channelID(),
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue