|
|
@@ -2,6 +2,9 @@
|
|
|
#include "y2k_time.h"
|
|
|
#include "capture.h"
|
|
|
#include "Event.h"
|
|
|
+#include "CommEntityUtil.hpp"
|
|
|
+#include "fileutil.h"
|
|
|
+
|
|
|
#ifdef RVC_OS_WIN
|
|
|
#include "iaudiorenderinterface.h"
|
|
|
#endif
|
|
|
@@ -12,6 +15,9 @@
|
|
|
#include "../mod_recorder/Event.h"
|
|
|
#include "../mod_counterconnector/Event.h"
|
|
|
#include "../mod_sipphone/Event.h"
|
|
|
+#include "../mod_SalesRecorder/Event.h"
|
|
|
+#include "../mod_evtconverter/Event.h"
|
|
|
+
|
|
|
|
|
|
#ifndef AUTOMATCH_CAMERA_ENV
|
|
|
#define AUTOMATCH_CAMERA_ENV "ENV_"
|
|
|
@@ -30,6 +36,9 @@
|
|
|
#define RVC_CAMERA_OFF_TIMER 3
|
|
|
#endif // !RVC_CAMERA_OFF_TIMER
|
|
|
|
|
|
+#ifndef RVC_CAMERA_CAP_PROCESS
|
|
|
+#define RVC_CAMERA_CAP_PROCESS 4
|
|
|
+#endif // !RVC_CAMERA_CAP_PROCESS
|
|
|
|
|
|
#ifdef RVC_OS_WIN
|
|
|
static void __audio_render_log(void* user_data, const char* fmt, va_list arg)
|
|
|
@@ -89,6 +98,15 @@ static int GetFormatString(char* strVala, size_t uValaLen, char* strValb, size_t
|
|
|
}
|
|
|
|
|
|
|
|
|
+static void LogTransToCMSEvt()
|
|
|
+{
|
|
|
+ static bool blogevt = false;
|
|
|
+ if (false == blogevt) {
|
|
|
+ LogWarn(Severity_Low, Error_Debug, LOG_EVT_JSOCCUPYCAMERA_REQUEST, "js occupy camera request evt.");
|
|
|
+ blogevt = true;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
CMediaControllerEntity::CMediaControllerEntity(): m_capture(NULL), m_salesaudio_capture(NULL), m_lCaptureEnvCount(0), m_lCaptureEnvOptCount(0), m_lCaptureOptCount(0),
|
|
|
m_pHMClient(NULL),m_pMediaControllerChannel(NULL),m_bIsRemoteRecord(false), m_bHasStartSpeakerRender(false), m_bConnectedAssist(false)
|
|
|
{
|
|
|
@@ -112,6 +130,14 @@ CMediaControllerEntity::CMediaControllerEntity(): m_capture(NULL), m_salesaudio_
|
|
|
m_nCameraErrorCode = Error_Succeed;
|
|
|
memset(&conf, 0, sizeof(capture_config_t));
|
|
|
memset(&m_sales_audio_conf, 0, sizeof(rvc_audio_capture_config_t));
|
|
|
+
|
|
|
+#ifdef DEVOPS_ON_PRD
|
|
|
+#else
|
|
|
+#ifdef RVC_OS_WIN
|
|
|
+#else
|
|
|
+ m_PhotoSaveDir = "";
|
|
|
+#endif
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
void CMediaControllerEntity::OnSysVarEvent(const char *pszKey, const char *pszValue,const char *pszOldValue,const char *pszEntityName)
|
|
|
@@ -199,14 +225,14 @@ void CMediaControllerEntity::OnPreStart(CAutoArray<CSimpleStringA> strArgs,CSmar
|
|
|
GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_None, Error_IgnoreAll, LOG_EVT_UI_RECORDFAILED,NULL,false);
|
|
|
GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_None, Error_IgnoreAll, LOG_EVT_UI_STARTREMOTERECORD,NULL,false);
|
|
|
GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_None, Error_IgnoreAll, LOG_EVT_UI_STOPREMOTERECORD,NULL,false);
|
|
|
- GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_None, Error_IgnoreAll, LOG_EVT_UI_STARTRECORD,NULL,false);
|
|
|
- GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_None, Error_IgnoreAll, LOG_EVT_UI_STOPRECORD,NULL,false);
|
|
|
GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_None, Error_IgnoreAll, LOG_EVT_MOD_SALESRECORDER_STARTED_SUCCESS, NULL, false);
|
|
|
GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_Middle, Error_IgnoreAll, LOG_EVT_BEGIN_HANDLE_BUSINESS, NULL, false);
|
|
|
GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_Middle, Error_IgnoreAll, LOG_EVT_END_HANDLE_BUSINESS, NULL, false);
|
|
|
GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_None, Error_IgnoreAll, LOG_EVT_MOD_FACETRACKING_STARTED_SUCCESS, NULL, false);
|
|
|
GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_Middle, Error_IgnoreAll, EVENT_MOD_CONNECT_BEGAIN_RECORD_CALL, NULL, false);
|
|
|
-
|
|
|
+ GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_None, Error_IgnoreAll, LOG_EVT_UI_STARTCAMERACAPTURE, NULL, false);
|
|
|
+ GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_None, Error_IgnoreAll, LOG_EVT_UI_STOPCAMERACAPTURE, NULL, false);
|
|
|
+
|
|
|
pTransactionContext->SendAnswer(Error_Succeed);
|
|
|
}
|
|
|
|
|
|
@@ -309,6 +335,25 @@ void CMediaControllerEntity::OnStarted()
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+#ifdef DEVOPS_ON_PRD
|
|
|
+#else
|
|
|
+#ifdef RVC_OS_WIN
|
|
|
+#else
|
|
|
+ Error = GetFunction()->GetPath("Temp", m_PhotoSaveDir);
|
|
|
+ if (Error != Error_Succeed) {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("get global record save path failed!");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (m_PhotoSaveDir.GetLength() > 0 && m_PhotoSaveDir[m_PhotoSaveDir.GetLength() - 1] != SPLIT_SLASH) {
|
|
|
+ m_PhotoSaveDir += SPLIT_SLASH_STR;
|
|
|
+ }
|
|
|
+ m_PhotoSaveDir += "CameraPhoto";
|
|
|
+ m_PhotoSaveDir += SPLIT_SLASH_STR;
|
|
|
+
|
|
|
+ DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("photo save dir is %s.", m_PhotoSaveDir.GetData());
|
|
|
+#endif
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -433,7 +478,7 @@ ErrorCodeEnum CMediaControllerEntity::GetMediaConfig()
|
|
|
table.AddEntryUInt("MediaController", "InterValTime", intervaltime, RVC_CAM_INTERVAL_TIME);
|
|
|
Error= table.Load(spConfig);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if (Error_Succeed != Error){
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("get entity config from config failed!");
|
|
|
}
|
|
|
@@ -539,7 +584,7 @@ void CMediaControllerEntity::OnTimeout(DWORD dwTimerID)
|
|
|
if (m_capture) {
|
|
|
GetFunction()->KillTimer(1);
|
|
|
capture_stop(m_capture);
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setLogCode("QLR0402208V5")("关闭摄像头");
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402208V5")("关闭摄像头");
|
|
|
capture_destroy(m_capture);
|
|
|
m_capture = NULL;
|
|
|
}
|
|
|
@@ -557,6 +602,15 @@ void CMediaControllerEntity::OnTimeout(DWORD dwTimerID)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+#ifdef DEVOPS_ON_PRD
|
|
|
+#else
|
|
|
+#ifdef RVC_OS_WIN
|
|
|
+#else
|
|
|
+ else if (RVC_CAMERA_CAP_PROCESS == dwTimerID) {
|
|
|
+ GetEnvCamCaptureProcess();
|
|
|
+ }
|
|
|
+#endif
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -824,20 +878,22 @@ void CMediaControllerEntity::OnReceivePkt(int sub_type, const char *buffer, int
|
|
|
{
|
|
|
if (m_bStartCamera)
|
|
|
{
|
|
|
- if (eStand2sType == m_eDeviceType)
|
|
|
+ if (eStand2sType == m_eDeviceType || eStand1SPlusType == m_eDeviceType)
|
|
|
{
|
|
|
//vamera bright adj
|
|
|
CCameraBrightValue num;
|
|
|
SpBuffer buf;
|
|
|
- buf.OpenRead(buffer,size);
|
|
|
+ buf.OpenRead(buffer, size);
|
|
|
num.Serialize(buf);
|
|
|
- if (capture_adj_brightness(m_capture,num.nValue,m_nCameraErrorCode) == true)
|
|
|
+ if (capture_adj_brightness(m_capture, num.nValue, m_nCameraErrorCode) == true)
|
|
|
{
|
|
|
SendCameraBright();
|
|
|
+ LogWarn(Severity_Low, Error_Debug, LOG_EVT_SET_CAMERA_BRIGHTNESS_INFO, CSimpleStringA::Format("set camera brightness to %d success.", num.nValue).GetData());
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("ACM_SET_CAMERABRIGHT fail!");
|
|
|
+ LogWarn(Severity_Low, Error_Debug, LOG_EVT_SET_CAMERA_BRIGHTNESS_FAILED, CSimpleStringA::Format("set camera brightness to %d failed.", num.nValue).GetData());
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
@@ -875,6 +931,40 @@ ErrorCodeEnum CMediaControllerEntity::RealSelfCheck()
|
|
|
}
|
|
|
|
|
|
|
|
|
+ErrorCodeEnum CMediaControllerEntity::GetEnvCamRawBrightnessInfo(int* iMin, int* iMax)
|
|
|
+{
|
|
|
+ ErrorCodeEnum Error = Error_Failed;
|
|
|
+
|
|
|
+#ifdef DEVOPS_ON_PRD
|
|
|
+
|
|
|
+#else
|
|
|
+ if (m_bStartCamera) {
|
|
|
+ if (0 == capture_get_env_rawbrightnessinfo(m_capture, m_nCameraErrorCode, iMin, iMax)) {
|
|
|
+ Error = Error_Succeed;
|
|
|
+ }
|
|
|
+ }
|
|
|
+#endif
|
|
|
+ return Error;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+ErrorCodeEnum CMediaControllerEntity::SetEnvCamRawBrightness(int iBrightness)
|
|
|
+{
|
|
|
+ ErrorCodeEnum Error = Error_Failed;
|
|
|
+
|
|
|
+#ifdef DEVOPS_ON_PRD
|
|
|
+
|
|
|
+#else
|
|
|
+ if (m_bStartCamera) {
|
|
|
+ if (0 == capture_set_env_rawbrightness(m_capture, m_nCameraErrorCode, iBrightness)) {
|
|
|
+ Error = Error_Succeed;
|
|
|
+ }
|
|
|
+ }
|
|
|
+#endif
|
|
|
+ return Error;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
void CMediaControllerEntity::SendCameraBright()
|
|
|
{
|
|
|
ChannelService_Send_Info Info;
|
|
|
@@ -893,7 +983,7 @@ void CMediaControllerEntity::SendCameraBright()
|
|
|
buf & nValue;
|
|
|
Info.data = buf.ToBlob();
|
|
|
m_pMediaControllerChannel->Send(Info);
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("send cur camera bright value is %d.", nValue);
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("send cur camera bright value is %d.", nValue);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
@@ -902,6 +992,32 @@ void CMediaControllerEntity::SendCameraBright()
|
|
|
}
|
|
|
|
|
|
|
|
|
+ErrorCodeEnum CMediaControllerEntity::GetEnvCameraVideoCaptureInfo(CSimpleStringA& strnotice, CSimpleStringA& strcmd)
|
|
|
+{
|
|
|
+ ErrorCodeEnum Error = Error_Failed;
|
|
|
+
|
|
|
+#ifdef DEVOPS_ON_PRD
|
|
|
+
|
|
|
+#else
|
|
|
+ int ienvid = capture_get_video_device_id(conf.strVideoEnv.GetData());
|
|
|
+
|
|
|
+ if (-1 != ienvid) {
|
|
|
+ #ifdef RVC_OS_WIN
|
|
|
+
|
|
|
+ #else
|
|
|
+ char strCmd[256] = { 0 };
|
|
|
+ snprintf(strCmd, 256, "v4l2-ctl -d%d --list-formats-ext", ienvid);
|
|
|
+ strnotice = "在终端输入以下命令获取摄像头支持的图像格式信息,检查输出图像格式是否包含YUYV,图像分辨率是否包含640*360,该分辨率对应的帧率是否包含15fps.";
|
|
|
+ strcmd = strCmd;
|
|
|
+ #endif
|
|
|
+#endif
|
|
|
+ Error = Error_Succeed;
|
|
|
+ }
|
|
|
+
|
|
|
+ return Error;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
ErrorCodeEnum CMediaControllerEntity::StartAllCameras()
|
|
|
{
|
|
|
ErrorCodeEnum Error = Error_Succeed;
|
|
|
@@ -926,7 +1042,7 @@ ErrorCodeEnum CMediaControllerEntity::StopAllCameras()
|
|
|
if (m_capture){
|
|
|
GetFunction()->KillTimer(1);
|
|
|
capture_stop(m_capture);
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setLogCode("QLR0402208V5")("关闭摄像头");
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402208V5")("关闭摄像头");
|
|
|
capture_destroy(m_capture);
|
|
|
m_capture = NULL;
|
|
|
}
|
|
|
@@ -1175,7 +1291,7 @@ ErrorCodeEnum CMediaControllerEntity::LoadConfig(capture_config_t *conf)
|
|
|
}
|
|
|
else {
|
|
|
LogWarn(Severity_Middle, Error_Debug, ERROR_MOD_MEDIACONTROLLER_VIDEO_AUTO_MATHED_FAILED, strInfo.GetData());
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode("QLR0402208V2").setResultCode("RTA2807")("摄像头名称不符合硬件要求,请联系厂商处理");
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR0402208V2").setResultCode("RTA2807")("摄像头名称不符合硬件要求,请联系厂商处理");
|
|
|
}
|
|
|
#endif // RVC_OS_WIN
|
|
|
|
|
|
@@ -1184,19 +1300,19 @@ ErrorCodeEnum CMediaControllerEntity::LoadConfig(capture_config_t *conf)
|
|
|
char strMessage[MAX_PATH*2] = {0};
|
|
|
get_camera_exception_message(strMessage, MAX_PATH*2, conf->strVideoEnv ,"env camera config error,please check config file or device.");
|
|
|
LogWarn(Severity_Middle,Error_DevMedia,ERROR_MOD_MEDIACONTROLLER_ENVCAM_INITFAIL,strMessage);
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode("QLR0402208V2").setResultCode("RTA2801")("上摄像头配置错误,请检查摄像头配置");
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR0402208V2").setResultCode("RTA2801")("上摄像头配置错误,请检查摄像头配置");
|
|
|
} else if (Error == Error_OptCamera){
|
|
|
char strMessage[MAX_PATH*2] = {0};
|
|
|
get_camera_exception_message(strMessage, MAX_PATH*2, conf->strVideoOpt, "operation camera config error,please check config file or device.");
|
|
|
LogWarn(Severity_Middle,Error_DevMedia,ERROR_MOD_MEDIACONTROLLER_OPTCAM_INITFAIL, strMessage);
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode("QLR0402208V2").setResultCode("RTA2802")("下摄像头配置错误,请检查摄像头配置");
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR0402208V2").setResultCode("RTA2802")("下摄像头配置错误,请检查摄像头配置");
|
|
|
}
|
|
|
else if (Error == Error_AllCamera) {
|
|
|
LogWarn(Severity_Middle, Error_DevMedia, ERROR_MOD_MEDIACONTROLLER_CONFIG_ALLERROR, "all config cameras error");
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode("QLR0402208V2").setResultCode("RTA280B")("上下摄像头配置都错误,请检查摄像头配置");
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR0402208V2").setResultCode("RTA280B")("上下摄像头配置都错误,请检查摄像头配置");
|
|
|
}
|
|
|
else {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setLogCode("QLR0402208V2")("摄像头配置正确");
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402208V2")("摄像头配置正确");
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
|
@@ -1226,6 +1342,86 @@ void CMediaControllerEntity::OnExternalCameraSwitchFailed(const char* pszFailedM
|
|
|
}
|
|
|
|
|
|
|
|
|
+#ifdef DEVOPS_ON_PRD
|
|
|
+#else
|
|
|
+#ifdef RVC_OS_WIN
|
|
|
+#else
|
|
|
+void CMediaControllerEntity::OnBrocastEnvCameraCapInfo(int icaptime, int irealframes, float frealfps, float fstable)
|
|
|
+{
|
|
|
+
|
|
|
+ EnvCameraCapInfo ret;
|
|
|
+ CSimpleStringA strMsg = CSimpleStringA::Format("摄像头已打开%d秒, 输出图像%d帧, 实际帧率为%.2ffps, 稳定性偏差为%.4f.", icaptime, irealframes, frealfps, fstable);
|
|
|
+ ret.cameracapmsg = CSimpleStringA2W(strMsg);
|
|
|
+ SpSendBroadcast(GetFunction(), eMsg_EnvCameraCapInfo, eMsgSig_EnvCameraCapInfo, ret);
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("spsendbroadcast envcamera cap info is %s", strMsg.GetData());
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum CMediaControllerEntity::GetEnvCamCaptureProcess()
|
|
|
+{
|
|
|
+ ErrorCodeEnum Error = Error_Failed;
|
|
|
+ if (m_bStartCamera) {
|
|
|
+ if (m_capture && m_capture->env_video) {
|
|
|
+ unsigned int istarttime = m_capture->env_video->ustarttime;
|
|
|
+ int irealframes = m_capture->env_video->frame_id;
|
|
|
+ unsigned int icaptime = y2k_time_now() - istarttime;
|
|
|
+ float fenvframerate = (float)((float)irealframes / (float)icaptime);
|
|
|
+ int icalcfps = icaptime * 15;
|
|
|
+ float fenvstable = (float)(irealframes - icalcfps) / (float)icalcfps;
|
|
|
+ OnBrocastEnvCameraCapInfo(icaptime, irealframes, fenvframerate, fenvstable);
|
|
|
+ Error = Error_Succeed;
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("env capture param is invalid.");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return Error;
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum CMediaControllerEntity::StartSaveEnvCamPhoto(const char* pname, const int interval)
|
|
|
+{
|
|
|
+ ErrorCodeEnum Error = Error_Failed;
|
|
|
+ if (m_bStartCamera) {
|
|
|
+ if (m_capture && m_capture->env_video) {
|
|
|
+ m_capture->env_video->bsavephoto = true;
|
|
|
+ snprintf(m_capture->env_video->strsavedir, MAX_PATH, "%s", m_PhotoSaveDir.GetData());
|
|
|
+ snprintf(m_capture->env_video->strphotoname, MAX_PATH, "%s", pname);
|
|
|
+ m_capture->env_video->isaveinterval = interval;
|
|
|
+
|
|
|
+ Error = Error_Succeed;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("env capture param is invalid.");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return Error;
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum CMediaControllerEntity::StopSaveEnvCamPhoto()
|
|
|
+{
|
|
|
+ ErrorCodeEnum Error = Error_Failed;
|
|
|
+ if (m_bStartCamera) {
|
|
|
+ if (m_capture && m_capture->env_video) {
|
|
|
+ m_capture->env_video->bsavephoto = false;
|
|
|
+ memset(m_capture->env_video->strphotoname, 0, MAX_PATH);
|
|
|
+ Error = Error_Succeed;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("env camera capture param is invalid.");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("env camera already stop.");
|
|
|
+ Error = Error_Succeed;
|
|
|
+ }
|
|
|
+
|
|
|
+ return Error;
|
|
|
+}
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+
|
|
|
+
|
|
|
void CMediaControllerEntity::OnLog( const CAutoArray<CUUID> &SubIDs, const CUUID nLogID,const LogTypeEnum eLogType, const SeverityLevelEnum eLevel,
|
|
|
const DWORD dwSysError,const DWORD dwUserCode,const DWORD dwEntityInstanceID, const WORD wEntityDevelID,
|
|
|
const CAutoArray<DWORD> &Param, const char *pszEntityName, const char *pszModuleName,const char *pszMessage, const linkContext& pLinkInfo)
|
|
|
@@ -1365,9 +1561,6 @@ void CMediaControllerEntity::OnLog( const CAutoArray<CUUID> &SubIDs, const CUUID
|
|
|
if (m_bIsRemoteRecord){
|
|
|
LogEvent(Severity_Middle, LOG_EVT_UI_STOPREMOTERECORD, NULL);
|
|
|
}
|
|
|
- else{
|
|
|
- LogEvent(Severity_Middle, LOG_EVT_UI_STOPRECORD, NULL);
|
|
|
- }
|
|
|
|
|
|
GetFunction()->SetTimer(1, this, 5000);
|
|
|
}
|
|
|
@@ -1390,6 +1583,7 @@ void CMediaControllerEntity::OnLog( const CAutoArray<CUUID> &SubIDs, const CUUID
|
|
|
if (Error_Succeed == StopSalesRecordAudioCapture()){
|
|
|
|
|
|
}
|
|
|
+
|
|
|
if (true == m_bHasStartSpeakerRender){
|
|
|
StopSpeakerAudioRender();
|
|
|
}
|
|
|
@@ -1412,6 +1606,32 @@ void CMediaControllerEntity::OnLog( const CAutoArray<CUUID> &SubIDs, const CUUID
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
+ case LOG_EVT_UI_STARTCAMERACAPTURE:
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("recv LOG_EVT_UI_STARTCAMERACAPTURE event");
|
|
|
+#ifdef DEVOPS_ON_PRD
|
|
|
+#else
|
|
|
+#ifdef RVC_OS_WIN
|
|
|
+#else
|
|
|
+ HandleStartCameraCapture(pszMessage);
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case LOG_EVT_UI_STOPCAMERACAPTURE:
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("recv LOG_EVT_UI_STOPCAMERACAPTURE event");
|
|
|
+#ifdef DEVOPS_ON_PRD
|
|
|
+#else
|
|
|
+#ifdef RVC_OS_WIN
|
|
|
+#else
|
|
|
+ HandleStopCameraCapture();
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
default:
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("unknown event.");
|
|
|
break;
|
|
|
@@ -1597,7 +1817,7 @@ void CMediaControllerEntity::SetCameraStateInfo(ErrorCodeEnum errorcode)
|
|
|
SetCameraSysVar(CAMERA_NO_ERROR);
|
|
|
m_bStartCamera = true;
|
|
|
m_nCameraErrorCode = Error_Succeed;
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setLogCode("QLR0402208V3")("摄像头打开成功");
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402208V3")("摄像头打开成功");
|
|
|
}
|
|
|
else {
|
|
|
if (Error_EnvCamera == errorcode) {
|
|
|
@@ -1605,27 +1825,27 @@ void CMediaControllerEntity::SetCameraStateInfo(ErrorCodeEnum errorcode)
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Camera State to CAMERA_ENV_ERROR");
|
|
|
m_bStartCamera = true;
|
|
|
m_nCameraErrorCode = Error_EnvCamera;
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode("QLR0402208V3").setResultCode("RTA2803")("上摄像头故障,打开失败");
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR0402208V3").setResultCode("RTA2803")("上摄像头故障,打开失败");
|
|
|
}
|
|
|
else if (Error_OptCamera == errorcode) {
|
|
|
SetCameraSysVar(CAMERA_OPT_ERROR);
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Camera State to CAMERA_OPT_ERROR");
|
|
|
m_bStartCamera = true;
|
|
|
m_nCameraErrorCode = Error_OptCamera;
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode("QLR0402208V3").setResultCode("RTA2804")("下摄像头故障,打开失败");
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR0402208V3").setResultCode("RTA2804")("下摄像头故障,打开失败");
|
|
|
}
|
|
|
else if (Error_AllCamera == errorcode) {
|
|
|
SetCameraSysVar(CAMERA_BOTH_ERROR);
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Camera State to CAMERA_BOTH_ERROR");
|
|
|
m_nCameraErrorCode = Error_AllCamera;
|
|
|
m_bStartCamera = false;
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode("QLR0402208V3").setResultCode("RTA2808")("上下摄像头都故障");
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR0402208V3").setResultCode("RTA2808")("上下摄像头都故障");
|
|
|
}
|
|
|
else {
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Camera State to Other Error");
|
|
|
m_nCameraErrorCode = errorcode;
|
|
|
m_bStartCamera = false;
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setLogCode("QLR0402208V3").setResultCode("RTA2809")("打开摄像头时出现其它异常");
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR0402208V3").setResultCode("RTA2809")("打开摄像头时出现其它异常");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1641,11 +1861,15 @@ ErrorCodeEnum CMediaControllerEntity::ReStartCamera(int nCamera)
|
|
|
{
|
|
|
if (m_capture != NULL)
|
|
|
{
|
|
|
- if((StopCamera(m_capture,nCamera)==-1)){
|
|
|
+ if((stopcamera(m_capture,nCamera)==-1)){
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("ReStartCamera %d,stop camera fail!", nCamera);
|
|
|
}
|
|
|
+#ifdef RVC_OS_WIN
|
|
|
Sleep(2000);
|
|
|
-
|
|
|
+#else
|
|
|
+ sleep(2);
|
|
|
+#endif
|
|
|
+
|
|
|
ErrorCodeEnum Error = Error_Succeed;
|
|
|
Error = capture_create(&conf, m_capture, nCamera);
|
|
|
if (Error == Error_Succeed)
|
|
|
@@ -1923,6 +2147,48 @@ void CMediaControllerEntity::LogTransactionRecordCtrEvt(int iEvtType)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+#ifdef DEVOPS_ON_PRD
|
|
|
+#else
|
|
|
+#ifdef RVC_OS_WIN
|
|
|
+#else
|
|
|
+void CMediaControllerEntity::HandleStartCameraCapture(const char* pszMessage)
|
|
|
+{
|
|
|
+ int local_view_x = 0;
|
|
|
+ int local_view_y = 0;
|
|
|
+ int local_view_cx = 0;
|
|
|
+ int local_view_cy = 0;
|
|
|
+ char strphotoname[256] = { 0 };
|
|
|
+ int isecond = 0;
|
|
|
+ sscanf(pszMessage, "%d@%d@%d@%d@%d@%s", &local_view_x, &local_view_y, &local_view_cx, &local_view_cy, &isecond, strphotoname);
|
|
|
+ DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("photo name is %s, picture interval time is %d.", strphotoname, isecond);
|
|
|
+ if (isecond <= 5) {
|
|
|
+ isecond = 5;
|
|
|
+ }
|
|
|
+ if (!ExistsDirA(m_PhotoSaveDir.GetData())) {
|
|
|
+ CreateDirA(m_PhotoSaveDir.GetData(), true);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Error_Succeed == StartSaveEnvCamPhoto(strphotoname, isecond)) {
|
|
|
+ DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("Start Save EnvCam Photo success.");
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("Start Save EnvCam Photo failed.");
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CMediaControllerEntity::HandleStopCameraCapture()
|
|
|
+{
|
|
|
+ if (Error_Succeed == StopSaveEnvCamPhoto()) {
|
|
|
+ DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("Stop Save EnvCam Photo success.");
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("Stop Save EnvCam Photo failed.");
|
|
|
+ }
|
|
|
+}
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+
|
|
|
ChannelMediaControllerClient::ChannelMediaControllerClient( CMediaControllerEntity *pEntity ) : ChannelService_ClientBase(pEntity)
|
|
|
{
|
|
|
|
|
|
@@ -2095,6 +2361,7 @@ void MediaServiceSession::Handle_ManipulateCameras(SpReqAnsContext<MediaService_
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("rvc Device Type is %s, and cmdType is %d.", Device_Type_Table[eType], ctx->Req.cmdType);
|
|
|
|
|
|
if (ctx->Req.cmdType == 0) {
|
|
|
+ LogTransToCMSEvt();
|
|
|
if (m_pEntity->m_bStartCamera) {
|
|
|
Error = m_pEntity->StopCamerasAndRecord();
|
|
|
#ifdef RVC_OS_WIN
|
|
|
@@ -2139,6 +2406,93 @@ void MediaServiceSession::Handle_IsCameraOnStatus(SpReqAnsContext<MediaService_I
|
|
|
ctx->Answer(Error_Succeed);
|
|
|
}
|
|
|
|
|
|
+void MediaServiceSession::Handle_GetEnvCameraVideoCaptureInfo(SpReqAnsContext<MediaService_GetEnvCameraVideoCaptureInfo_Req, MediaService_GetEnvCameraVideoCaptureInfo_Ans>::Pointer ctx)
|
|
|
+{
|
|
|
+ DbgToBeidou(ctx->link, __FUNCTION__)();
|
|
|
+
|
|
|
+ ErrorCodeEnum Error = Error_Succeed;
|
|
|
+#ifdef DEVOPS_ON_PRD
|
|
|
+
|
|
|
+#else
|
|
|
+ Error = m_pEntity->GetEnvCameraVideoCaptureInfo(ctx->Ans.strnotice, ctx->Ans.strcmd);
|
|
|
+ if (Error_Succeed != Error) {
|
|
|
+ Error = Error_Failed;
|
|
|
+ }
|
|
|
+#endif
|
|
|
+
|
|
|
+ ctx->Answer(Error);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void MediaServiceSession::Handle_GetEnvCamRawBrightnessInfo(SpReqAnsContext<MediaService_GetEnvCamRawBrightnessInfo_Req, MediaService_GetEnvCamRawBrightnessInfo_Ans>::Pointer ctx)
|
|
|
+{
|
|
|
+ DbgToBeidou(ctx->link, __FUNCTION__)();
|
|
|
+
|
|
|
+ ErrorCodeEnum Error = Error_Succeed;
|
|
|
+ int iMin = 0;
|
|
|
+ int iMax = 0;
|
|
|
+
|
|
|
+#ifdef DEVOPS_ON_PRD
|
|
|
+
|
|
|
+#else
|
|
|
+ if (Error_Succeed == m_pEntity->GetEnvCamRawBrightnessInfo(&iMin, &iMax)) {
|
|
|
+ ctx->Ans.iMinBrightness = iMin;
|
|
|
+ ctx->Ans.iMaxBrightness = iMax;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ ctx->Ans.iMinBrightness = 0;
|
|
|
+ ctx->Ans.iMaxBrightness = 0;
|
|
|
+ Error = Error_Failed;
|
|
|
+ }
|
|
|
+#endif
|
|
|
+ ctx->Answer(Error);
|
|
|
+}
|
|
|
+
|
|
|
+void MediaServiceSession::Handle_SetEnvCamRawBrightness(SpReqAnsContext<MediaService_SetEnvCamRawBrightness_Req, MediaService_SetEnvCamRawBrightness_Ans>::Pointer ctx)
|
|
|
+{
|
|
|
+ DbgToBeidou(ctx->link, __FUNCTION__)();
|
|
|
+ ErrorCodeEnum Error = Error_Succeed;
|
|
|
+#ifdef DEVOPS_ON_PRD
|
|
|
+
|
|
|
+#else
|
|
|
+ if (Error_Succeed != m_pEntity->SetEnvCamRawBrightness(ctx->Req.iBrightness)) {
|
|
|
+ Error = Error_Failed;
|
|
|
+ }
|
|
|
+#endif
|
|
|
+ ctx->Answer(Error);
|
|
|
+}
|
|
|
+
|
|
|
+void MediaServiceSession::Handle_TurnOnCamera(SpReqAnsContext<MediaService_TurnOnCamera_Req, MediaService_TurnOnCamera_Ans>::Pointer ctx)
|
|
|
+{
|
|
|
+ DbgToBeidou(ctx->link, __FUNCTION__)();
|
|
|
+
|
|
|
+ ErrorCodeEnum Error = m_pEntity->StartAllCameras();
|
|
|
+#ifdef DEVOPS_ON_PRD
|
|
|
+#else
|
|
|
+#ifdef RVC_OS_WIN
|
|
|
+#else
|
|
|
+ m_pEntity->GetFunction()->SetTimer(RVC_CAMERA_CAP_PROCESS, m_pEntity, 5 * 1000);
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+
|
|
|
+ ctx->Answer(Error);
|
|
|
+}
|
|
|
+
|
|
|
+void MediaServiceSession::Handle_TurnOffCamera(SpReqAnsContext<MediaService_TurnOffCamera_Req, MediaService_TurnOffCamera_Ans>::Pointer ctx)
|
|
|
+{
|
|
|
+ DbgToBeidou(ctx->link, __FUNCTION__)();
|
|
|
+#ifdef DEVOPS_ON_PRD
|
|
|
+#else
|
|
|
+#ifdef RVC_OS_WIN
|
|
|
+#else
|
|
|
+ m_pEntity->GetFunction()->KillTimer(RVC_CAMERA_CAP_PROCESS);
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+ ErrorCodeEnum CamRet = m_pEntity->StopAllCameras();
|
|
|
+
|
|
|
+ ctx->Answer(CamRet);
|
|
|
+}
|
|
|
+
|
|
|
SP_BEGIN_ENTITY_MAP()
|
|
|
SP_ENTITY(CMediaControllerEntity)
|
|
|
SP_END_ENTITY_MAP()
|