Hi, TIers
I'm using DM8168 with RDK 3.0.
The diagram of my usecase is depicted in file
4111.Chain_0.05.03.1_HotCh_withRemoteRecv_try.pdf
my usecase file:
/************************************************************************************
* Copyright(C), 20130411, TsingTao EastSoft *
* FileName: Chain_ES_ITC_0_02_00_1.c *
* Author: MA Dong-Mei, YU Ri-Ping *
* Version: 0.02.00.1 *
* Date: 20130411 *
* Description: Main LINK Chain *
* Function List: *
* History: *
************************************************************************************/
#include <demos/link_api_demos/common/chains_common.h>
#include <demos/link_api_demos/common/Channels.h>
#include <demos/link_api_demos/common/swms.h>
#include <demos/link_api_demos/common/log.h>
#include <demos/link_api_demos/common/ipcBits.h>
#include <demos/link_api_demos/common/chains_ipcFrames.h>
#include <demos/link_api_demos/interface/ControllingInterface.h>
#include <demos/link_api_demos/common/esvoiceStimulate.h>
#include <demos/link_api_demos/interface/set_osd.h>
#include <demos/link_api_demos/common/esvoiceStimulate.h>
#include <demos/link_api_demos/vpss_chains/demo_text.h>
#include <mcfw/interfaces/link_api/system_common.h>
#include <demos/link_api_demos/common/system_param.h>
#include <demos/link_api_demos/common/ipcFrame.h>
#include <osa.h>
#include <link_api/system.h>
#include <link_api/captureLink.h>
#include <link_api/deiLink.h>
#include <link_api/nsfLink.h>
#include <link_api/algLink.h>
#include <link_api/displayLink.h>
#include <link_api/nullLink.h>
#include <link_api/grpxLink.h>
#include <link_api/dupLink.h>
#include <link_api/swMsLink.h>
#include <link_api/selectLink.h>
#include <link_api/sclrLink.h>
#include <link_api/mergeLink.h>
#include <link_api/nullSrcLink.h>
#include <link_api/ipcLink.h>
#include <link_api/systemLink_m3vpss.h>
#include <link_api/systemLink_m3video.h>
#include <link_api/encLink.h>
#include <link_api/decLink.h>
#include <ti/xdais/xdas.h>
#include <ti/xdais/dm/xdm.h>
#include <ti/xdais/dm/ivideo.h>
#include <ih264enc.h>
#include <ih264vdec.h>
static OSD_WinTextInfoM font = {
SYSTEM_DF_YUV422I_YUYV,
{100,32},
FONTSIZE48_48_24,
YELLOW,
TRANSPARENTBACKGROUND,
720
};
static OSD_WinTextInfoM Ip_font = {
SYSTEM_DF_YUV422I_YUYV,
{100,128},
FONTSIZE48_48_24,
WHITE,
TRANSPARENTBACKGROUND,
720
};
Ptr osdWinSrAddr[ALG_LINK_OSD_MAX_CH][CHAINS_OSD_NUM_WINDOWS];
Ptr osdWinBuPtr[ALG_LINK_OSD_MAX_CH][CHAINS_OSD_NUM_WINDOWS];
Ptr osdWinSrAddr1[ALG_LINK_OSD_MAX_CH][CHAINS_OSD_NUM_WINDOWS];
Ptr osdWinBuPtr1[ALG_LINK_OSD_MAX_CH][CHAINS_OSD_NUM_WINDOWS];
static SystemVideo_Ivahd2ChMap_Tbl systemVid_encDecIvaChMapTbl =
{
.isPopulated = 1,
.ivaMap[0] =
{
.EncNumCh = 1,
.EncChList = {4},
.DecNumCh = 1,
.DecChList = {0},
},
.ivaMap[1] =
{
.EncNumCh = 2,
.EncChList = {0, 2},
.DecNumCh = 0,
.DecChList = {0},
},
.ivaMap[2] =
{
.EncNumCh = 2,
.EncChList = {1, 3},
.DecNumCh = 0,
.DecChList = {0},
},
};
IpcBitsOutLinkHLOS_CreateParams esipcBitsOutHostPrm0;
IpcBitsInLinkRTOS_CreateParams esipcBitsInVideoPrm0;
DecLink_CreateParams esdecPrm0;
IpcLink_CreateParams esipcOutVideoPrm0;
IpcLink_CreateParams esipcInVpssPrm0;
SwMsLink_CreateParams esswMsPrm3;
IpcFramesOutLinkHLOS_CreateParams esipcFramesOutHostPrm0;
IpcFramesInLinkRTOS_CreateParams esipcFramesInVpssPrm0;
CaptureLink_CreateParams escapturePrm;
CaptureLink_VipInstParams * espCaptureInstPrm;
CaptureLink_OutParams * espCaptureOutPrm;
MergeLink_CreateParams esmergePrm0;
IpcFramesOutLinkRTOS_CreateParams esipcFramesOutVpssPrm0;
IpcFramesInLinkRTOS_CreateParams esipcFramesInDspPrm0;
AlgLink_CreateParams esosdPrm0;
DupLink_CreateParams esdupPrm2;
SwMsLink_CreateParams esswMsPrm[HD_DISPLAY_NUMBER];
IpcFramesOutLinkRTOS_CreateParams esipcFramesOutVpssPrm1;
IpcFramesInLinkRTOS_CreateParams esipcFramesInDspPrm1;
AlgLink_CreateParams esosdPrm1;
DupLink_CreateParams esdupPrm[HD_DISPLAY_NUMBER];
DisplayLink_CreateParams esdisplayPrm[HD_DISPLAY_NUMBER];
MergeLink_CreateParams esmergePrm1;
DupLink_CreateParams esdupPrm3;
SelectLink_CreateParams esselPrm0;
SelectLink_CreateParams esselPrm1;
SclrLink_CreateParams essclrPrm0;
SelectLink_CreateParams esselPrm3;
MergeLink_CreateParams esmergePrm2;
SelectLink_CreateParams esselPrm2;
SwMsLink_CreateParams esswMsPrm2;
DisplayLink_CreateParams esdisplayPrm2;
NsfLink_CreateParams esnsfPrm0;
IpcLink_CreateParams esipcOutVpssPrm0;
IpcLink_CreateParams esipcInVideoPrm0;
EncLink_CreateParams esencPrm0;
IpcBitsOutLinkRTOS_CreateParams esipcBitsOutVideoPrm0;
IpcBitsInLinkHLOS_CreateParams esipcBitsInHostPrm0;
SwMsLink_CreateParams * swMsPrmList[2] = { esswMsPrm, esswMsPrm + 1 };
//////////////////////////////////////////////////////////////////////////////////////////////////////
UInt32 esipcBitsOutHostId0;
UInt32 esipcBitsInVideoId0;
UInt32 esdecId0;
UInt32 esipcOutVideoId0;
UInt32 esipcInVpssId0;
UInt32 esswMsId3;
UInt32 esipcFramesOutHostId0;
UInt32 esipcFramesInVpssId0;
UInt32 escaptureId, esvipInstId;
UInt32 esmergeId0;
UInt32 esipcFramesOutVpssId0, esipcFramesInDspId0, esosdId0;
UInt32 esdupId2;
UInt32 esswMsId[HD_DISPLAY_NUMBER];
UInt32 esipcFramesOutVpssId1, esipcFramesInDspId1, esosdId1;
UInt32 esdupId[HD_DISPLAY_NUMBER];
UInt32 esdisplayId[HD_DISPLAY_NUMBER];
UInt32 esmergeId1;
UInt32 esdupId3;
UInt32 esselId0;
UInt32 esselId1;
UInt32 essclrId0;
UInt32 esselId3;
UInt32 esmergeId2;
UInt32 esselId2;
UInt32 esswMsId2;
UInt32 esdisplayId2;
UInt32 esnsfId0;
UInt32 esipcOutVpssId0;
UInt32 esipcInVideoId0;
UInt32 esencId0;
UInt32 esipcBitsOutVideoId0;
UInt32 esipcBitsInHostId0;
//add by ningbo 20131205 begin
#include <demos/link_api_demos/interface/CI_xml.h>
OSD_DATETIME_PARAM osdDatetimeParam={1};
//add by ningbo 20131205 end
static void Demo_updateTime(int signo)
{
static struct tm tmCur;
time_t timeval;
char osdStr[40];
Int32 chId;
AlgLink_OsdWindowPrm TimeWindowPrm;
static int count =15;
for(chId = 0; chId < 1 ;chId ++)
{
switch(signo)
{
case SIGALRM:
if (count >= 0)
{
count --;
}
if (count == 0)
{
AlgLink_OsdChWinParams *chWinPrm = &esosdPrm1.osdChCreateParams[chId].chDefaultParams;
chWinPrm->winPrm[4].globalAlpha = FALSE;
System_linkControl(esosdId1, ALG_LINK_OSD_CMD_SET_CHANNEL_WIN_PRM, chWinPrm, sizeof(AlgLink_OsdChWinParams), TRUE);
}
time(&timeval);
localtime_r(&timeval, &tmCur);
sprintf(osdStr,"%04d-%02d-%02d %02d:%02d:%02d",
tmCur.tm_year+1900, tmCur.tm_mon+1, tmCur.tm_mday, tmCur.tm_hour, tmCur.tm_min, tmCur.tm_sec);
osdDrawText(osdStr,font,(char*)osdWinBuPtr1[chId][3],&TimeWindowPrm,0);
//if (voiceStimulateThr.hndl)
if( uart_commu_info.voiceStimulate_flag == TRUE )
{
if (vsResetDownCounter > 0)
{
vsResetDownCounter --;
if (0 == vsResetDownCounter)
{
UInt8 win;
for (win = 0; win < GetLayoutWinNUM(layoutidAtStartup); win ++)
{
SwMsMapChtoWin(esswMsId[0], win, win2chlistAtStartup[win], &esswMsPrm[0]);
}
}
}
}
if ((osdSupInfo.bOnDisplay) && (osdSupInfo.lDurationTimeSec > 0))
{
osdSupInfo.lDurationTimeSec --;
if (0 == osdSupInfo.lDurationTimeSec)
{
AlgLink_OsdChWinParams * chWinPrm = &esosdPrm1.osdChCreateParams[0].chDefaultParams;
int i;
for (i = 0; i < 3; i ++)
{
chWinPrm->winPrm[i].globalAlpha = FALSE;
System_linkControl(esosdId1, ALG_LINK_OSD_CMD_SET_CHANNEL_WIN_PRM,
chWinPrm, sizeof(AlgLink_OsdChWinParams), TRUE);
}
osdSupInfo.bOnDisplay = FALSE;
osdSupInfo.lDurationTimeSec = -1;
}
}
break;
default:
break;
}
}
}
Void Chain_ES_ITC_0_02_00_1(P_CHANNEL_DISCRIPTOR pChannels)
{
UInt32 chId,winId;
unsigned char test[MAX_INPUT_STR_SIZE];
OSD_WinTextInfoM font2 = {
SYSTEM_DF_YUV422I_YUYV,
{400,96},
FONTSIZE32_32_16,
YELLOW,
TRANSPARENTBACKGROUND,
720
};
OSD_WinTextInfoM dynamicFont,swmsFont;
Position OSDposition[4] =
{
{100,32},
{1800,32},
{100,600},
{2000,600}
};
unsigned int length;
struct itimerval oneSec;
UInt32 displayVector[LEN_DISPLAY_VECTOR];
P_HCHANNEL_NODE pHChannelNode = NULL;
P_HENCODER_NODE pHEncoderNode = NULL;
GLOBE_CHANNEL_MATRIX gChMat;
UInt32 i;
Char ch;
//////////////////////////////////////////////////////////////////////////////////////////////////////
CI_Start();
IpcFramesInit();
IPCBitsOutDataStructInit(&ipc_ctrl);
IPCBitsOutCoreThreadsStart(&ipc_ctrl);
IPCBitsInDataStructInit(&ipc_ctrl);
IPCBitsEnvironmentInit(&ipc_ctrl);
PeripheralProcessEncodedDataStart();
IPCBitsInCoreCopyThreadsStart();
uart_init(&uart_commu_info);
voiceStimulateCreate(&uart_commu_info);
UartVolumCreate(&uart_commu_info);
PeripheralGetStreamsStart();
// startAudioDecPlay(channels.hAudio);
audio_createDecode(pChannels);
CHAINS_INIT_STRUCT(IpcBitsOutLinkHLOS_CreateParams,esipcBitsOutHostPrm0);
CHAINS_INIT_STRUCT(IpcBitsInLinkRTOS_CreateParams,esipcBitsInVideoPrm0);
CHAINS_INIT_STRUCT(DecLink_CreateParams,esdecPrm0);
CHAINS_INIT_STRUCT(IpcLink_CreateParams,esipcOutVideoPrm0);
CHAINS_INIT_STRUCT(IpcLink_CreateParams,esipcInVpssPrm0);
CHAINS_INIT_STRUCT(SwMsLink_CreateParams,esswMsPrm3);
CHAINS_INIT_STRUCT(IpcFramesOutLinkHLOS_CreateParams,esipcFramesOutHostPrm0);
CHAINS_INIT_STRUCT(IpcFramesInLinkRTOS_CreateParams,esipcFramesInVpssPrm0);
CaptureLink_CreateParams_Init(&escapturePrm);
CHAINS_INIT_STRUCT(IpcFramesInLinkRTOS_CreateParams,esipcFramesInDspPrm0);
CHAINS_INIT_STRUCT(IpcFramesOutLinkRTOS_CreateParams,esipcFramesOutVpssPrm0);
CHAINS_INIT_STRUCT(IpcFramesInLinkRTOS_CreateParams,esipcFramesInDspPrm1);
CHAINS_INIT_STRUCT(IpcFramesOutLinkRTOS_CreateParams,esipcFramesOutVpssPrm1);
for (i=0; i<HD_DISPLAY_NUMBER; i++)
{
CHAINS_INIT_STRUCT(SwMsLink_CreateParams,esswMsPrm[i]);
CHAINS_INIT_STRUCT(DisplayLink_CreateParams,esdisplayPrm[i]);
}
CHAINS_INIT_STRUCT(SelectLink_CreateParams,esselPrm0);
CHAINS_INIT_STRUCT(SelectLink_CreateParams,esselPrm1);
SclrLink_CreateParams_Init (&essclrPrm0);
CHAINS_INIT_STRUCT(SelectLink_CreateParams,esselPrm3);
CHAINS_INIT_STRUCT(SelectLink_CreateParams,esselPrm2);
CHAINS_INIT_STRUCT(SwMsLink_CreateParams,esswMsPrm2);
CHAINS_INIT_STRUCT(DisplayLink_CreateParams,esdisplayPrm2);
CHAINS_INIT_STRUCT(NsfLink_CreateParams,esnsfPrm0);
CHAINS_INIT_STRUCT(IpcLink_CreateParams,esipcOutVpssPrm0);
CHAINS_INIT_STRUCT(IpcLink_CreateParams,esipcInVideoPrm0);
CHAINS_INIT_STRUCT(EncLink_CreateParams,esencPrm0);
CHAINS_INIT_STRUCT(IpcBitsOutLinkRTOS_CreateParams,esipcBitsOutVideoPrm0);
CHAINS_INIT_STRUCT(IpcBitsInLinkHLOS_CreateParams,esipcBitsInHostPrm0);
//////////////////////////////////////////////////////////////////////////////////////////////////////
esipcBitsOutHostId0 = SYSTEM_HOST_LINK_ID_IPC_BITS_OUT_0;
esipcBitsInVideoId0 = SYSTEM_VIDEO_LINK_ID_IPC_BITS_IN_0;
esdecId0 = SYSTEM_LINK_ID_VDEC_0;
esipcOutVideoId0 = SYSTEM_VIDEO_LINK_ID_IPC_OUT_M3_0;
esipcInVpssId0 = SYSTEM_VPSS_LINK_ID_IPC_IN_M3_0;
esswMsId3 = SYSTEM_LINK_ID_SW_MS_MULTI_INST_3;
esipcFramesOutHostId0 = SYSTEM_HOST_LINK_ID_IPC_FRAMES_OUT_0;
esipcFramesInVpssId0 = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_IN_0;
escaptureId = SYSTEM_LINK_ID_CAPTURE;
esmergeId0 = SYSTEM_VPSS_LINK_ID_MERGE_0;
esipcFramesOutVpssId0 = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_OUT_0;
esipcFramesInDspId0 = SYSTEM_DSP_LINK_ID_IPC_FRAMES_IN_0;
esosdId0 = SYSTEM_LINK_ID_ALG_0;
esdupId2 = SYSTEM_VPSS_LINK_ID_DUP_2;
esswMsId[0] = SYSTEM_LINK_ID_SW_MS_MULTI_INST_0;
esswMsId[1] = SYSTEM_LINK_ID_SW_MS_MULTI_INST_1;
esipcFramesOutVpssId1 = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_OUT_1;
esipcFramesInDspId1 = SYSTEM_DSP_LINK_ID_IPC_FRAMES_IN_1;
esosdId1 = SYSTEM_LINK_ID_ALG_1;
esdupId[0] = SYSTEM_VPSS_LINK_ID_DUP_0;
esdupId[1] = SYSTEM_VPSS_LINK_ID_DUP_1;
esdisplayId[0] = SYSTEM_LINK_ID_DISPLAY_0;
esdisplayId[1] = SYSTEM_LINK_ID_DISPLAY_1;
esmergeId1 = SYSTEM_VPSS_LINK_ID_MERGE_1;
esdupId3 = SYSTEM_VPSS_LINK_ID_DUP_3;
esselId0 = SYSTEM_VPSS_LINK_ID_SELECT_0;
esselId1 = SYSTEM_VPSS_LINK_ID_SELECT_1;
essclrId0 = SYSTEM_LINK_ID_SCLR_INST_0;
esselId3 = SYSTEM_VPSS_LINK_ID_SELECT_3;
esmergeId2 = SYSTEM_VPSS_LINK_ID_MERGE_2;
esselId2 = SYSTEM_VPSS_LINK_ID_SELECT_2;
esswMsId2 = SYSTEM_LINK_ID_SW_MS_MULTI_INST_2;
esdisplayId2 = SYSTEM_LINK_ID_DISPLAY_2;
esnsfId0 = SYSTEM_LINK_ID_NSF_0;
esipcOutVpssId0 = SYSTEM_VPSS_LINK_ID_IPC_OUT_M3_0;
esipcInVideoId0 = SYSTEM_VIDEO_LINK_ID_IPC_IN_M3_0;
esencId0 = SYSTEM_LINK_ID_VENC_0;
esipcBitsOutVideoId0 = SYSTEM_VIDEO_LINK_ID_IPC_BITS_OUT_0;
esipcBitsInHostId0 = SYSTEM_HOST_LINK_ID_IPC_BITS_IN_0;
//////////////////////////////////////////////////////////////////////////////////////////////////////
System_linkControl(
SYSTEM_LINK_ID_M3VIDEO,
SYSTEM_COMMON_CMD_SET_CH2IVAHD_MAP_TBL,
&systemVid_encDecIvaChMapTbl,
sizeof(SystemVideo_Ivahd2ChMap_Tbl),
TRUE
);
//////////////////////////////////////////////////////////////////////////////////////////////////////
GetDisplayVector(pChannels, displayVector);
Chains_displayCtrlInit(displayVector);
//////////////////////////////////////////////////////////////////////////////////////////////////////
System_LinkQueInfo queInfo;
queInfo.numCh = GetStreamNum(pChannels);
for (pHChannelNode = pChannels->hChannelList[CHANNEL_CLS_STREAM]->next, i = 0;
pHChannelNode && (i < GetStreamNum(pChannels));
pHChannelNode = pHChannelNode->next, i ++)
{
queInfo.chInfo[i].bufType = SYSTEM_BUF_TYPE_VIDBITSTREAM;
queInfo.chInfo[i].codingformat = pHChannelNode->body.hChannel->entity.stream.format;
queInfo.chInfo[i].height = pHChannelNode->body.hChannel->entity.stream.height;
queInfo.chInfo[i].width = pHChannelNode->body.hChannel->entity.stream.width;
queInfo.chInfo[i].memType = SYSTEM_MT_TILEDMEM;
queInfo.chInfo[i].dataFormat = SYSTEM_DF_YUV420P;
queInfo.chInfo[i].scanFormat = Vsys_isStdInterlaced(pHChannelNode->body.hChannel->entity.stream.std) ?
SYSTEM_SF_INTERLACED : SYSTEM_SF_PROGRESSIVE;
}
esipcBitsOutHostPrm0.baseCreateParams.numOutQue = 1;
esipcBitsOutHostPrm0.baseCreateParams.numChPerOutQue[0] = GetStreamNum(pChannels);
esipcBitsOutHostPrm0.baseCreateParams.outQueParams[0].nextLink = esipcBitsInVideoId0;
esipcBitsOutHostPrm0.bufPoolPerCh = FALSE;
esipcBitsOutHostPrm0.numBufPerCh[0] = 16;
IPCBitsOutHLOS_Params_Init(&esipcBitsOutHostPrm0, &queInfo);
esipcBitsInVideoPrm0.baseCreateParams.inQueParams.prevLinkId = esipcBitsOutHostId0;
esipcBitsInVideoPrm0.baseCreateParams.inQueParams.prevLinkQueId = 0;
esipcBitsInVideoPrm0.baseCreateParams.numOutQue = 1;
esipcBitsInVideoPrm0.baseCreateParams.numChPerOutQue[0] = GetStreamNum(pChannels);
esipcBitsInVideoPrm0.baseCreateParams.outQueParams[0].nextLink = esdecId0;
IPCBitsInRTOS_Params_Init(&esipcBitsInVideoPrm0);
for (pHChannelNode = pChannels->hChannelList[CHANNEL_CLS_STREAM]->next, i = 0;
pHChannelNode && (i < GetStreamNum(pChannels));
pHChannelNode = pHChannelNode->next, i ++)
{
esdecPrm0.chCreateParams[i].format = pHChannelNode->body.hChannel->entity.stream.format;
esdecPrm0.chCreateParams[i].profile = IH264VDEC_PROFILE_ANY;
esdecPrm0.chCreateParams[i].targetMaxWidth = pHChannelNode->body.hChannel->entity.stream.width;
esdecPrm0.chCreateParams[i].targetMaxHeight = pHChannelNode->body.hChannel->entity.stream.height;
esdecPrm0.chCreateParams[i].fieldMergeDecodeEnable = FALSE;
esdecPrm0.chCreateParams[i].algCreateStatus = DEC_LINK_ALG_CREATE_STATUS_CREATE;
esdecPrm0.chCreateParams[i].defaultDynamicParams.targetFrameRate = pHChannelNode->body.hChannel->entity.stream.frameRate;
esdecPrm0.chCreateParams[i].defaultDynamicParams.targetBitRate = pHChannelNode->body.hChannel->entity.stream.targetBitRate;
esdecPrm0.chCreateParams[i].numBufPerCh = 16;
esdecPrm0.chCreateParams[i].algCreateStatus = TRUE;
}
esdecPrm0.inQueParams.prevLinkId = esipcBitsInVideoId0;
esdecPrm0.inQueParams.prevLinkQueId = 0;
esdecPrm0.outQueParams.nextLink = esipcOutVideoId0;
esdecPrm0.tilerEnable = TRUE;
esipcOutVideoPrm0.inQueParams.prevLinkId = esdecId0;
esipcOutVideoPrm0.inQueParams.prevLinkQueId = 0;
esipcOutVideoPrm0.numOutQue = 1;
esipcOutVideoPrm0.outQueParams[0].nextLink = esipcInVpssId0;
esipcOutVideoPrm0.notifyNextLink = TRUE;
esipcOutVideoPrm0.notifyPrevLink = FALSE;
esipcOutVideoPrm0.noNotifyMode = FALSE;
esipcInVpssPrm0.inQueParams.prevLinkId = esipcOutVideoId0;
esipcInVpssPrm0.inQueParams.prevLinkQueId = 0;
esipcInVpssPrm0.numOutQue = 1;
esipcInVpssPrm0.outQueParams[0].nextLink = esswMsId3;
esipcInVpssPrm0.notifyNextLink = TRUE;
esipcInVpssPrm0.notifyPrevLink = TRUE;
esipcInVpssPrm0.noNotifyMode = FALSE;
////////////////////////////////////////////////////////////////////////////////
esswMsPrm3.numSwMsInst = 1;
esswMsPrm3.swMsInstId[0] = SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI;
esswMsPrm3.inQueParams.prevLinkId = esipcInVpssId0;
esswMsPrm3.inQueParams.prevLinkQueId = 0;
esswMsPrm3.outQueParams.nextLink = esmergeId0;
esswMsPrm3.lineSkipMode = FALSE;
esswMsPrm3.enableLayoutGridDraw = FALSE;
esswMsPrm3.layoutPrm.outputFPS = 60;
esswMsPrm3.maxInputQueLen = SYSTEM_SW_MS_DEFAULT_INPUT_QUE_LEN;
esswMsPrm3.maxOutRes = VSYS_STD_720P_60;
esswMsPrm3.numOutBuf = 0;
SwMsSetLayoutParams(esswMsId3, SWMS_LAYOUT_PATTERN_1, &esswMsPrm3);
////////////////////////////////////////////////////////////////////////////////
esipcFramesOutHostPrm0.baseCreateParams.inQueParams.prevLinkId = SYSTEM_LINK_ID_INVALID;
esipcFramesOutHostPrm0.baseCreateParams.inQueParams.prevLinkQueId = 0;
esipcFramesOutHostPrm0.baseCreateParams.numOutQue = 1;
esipcFramesOutHostPrm0.baseCreateParams.numChPerOutQue[0] = 1;
esipcFramesOutHostPrm0.baseCreateParams.outQueParams[0].nextLink = esipcFramesInVpssId0;
esipcFramesOutHostPrm0.baseCreateParams.inputFrameRate = 60; ////****~~~~
esipcFramesOutHostPrm0.baseCreateParams.outputFrameRate = 60; ////****~~~~
//esipcFramesOutHostPrm0.baseCreateParams.notifyNextLink = FALSE;//TRUE;//suggested by Badri on 20130611
esipcFramesOutHostPrm0.baseCreateParams.notifyNextLink = TRUE;
esipcFramesOutHostPrm0.baseCreateParams.notifyPrevLink = FALSE;
esipcFramesOutHostPrm0.baseCreateParams.notifyProcessLink = FALSE;
//esipcFramesOutHostPrm0.baseCreateParams.noNotifyMode = TRUE;//FALSE;//suggested by Badri on 20130611
esipcFramesOutHostPrm0.baseCreateParams.noNotifyMode = FALSE;
esipcFramesOutHostPrm0.inQueInfo.numCh = 1;
esipcFramesOutHostPrm0.inQueInfo.chInfo[0].startX = 0;
esipcFramesOutHostPrm0.inQueInfo.chInfo[0].startY = 0;
esipcFramesOutHostPrm0.inQueInfo.chInfo[0].height = 720;
esipcFramesOutHostPrm0.inQueInfo.chInfo[0].width = 1280;
esipcFramesOutHostPrm0.inQueInfo.chInfo[0].pitch[0] = 2560;
esipcFramesOutHostPrm0.inQueInfo.chInfo[0].bufType = SYSTEM_BUF_TYPE_VIDFRAME;
esipcFramesOutHostPrm0.inQueInfo.chInfo[0].bufferFmt = 1;//0;
esipcFramesOutHostPrm0.inQueInfo.chInfo[0].codingformat = IVIDEO_H264HP;//0;
esipcFramesOutHostPrm0.inQueInfo.chInfo[0].memType = SYSTEM_MT_NONTILEDMEM;
esipcFramesOutHostPrm0.inQueInfo.chInfo[0].dataFormat = SYSTEM_DF_YUV422I_YUYV;
// esipcFramesOutHostPrm0.inQueInfo.chInfo[0].scanFormat = /*SYSTEM_SF_PROGRESSIVE;*/SYSTEM_SF_INTERLACED;
esipcFramesOutHostPrm0.inQueInfo.chInfo[0].scanFormat = SYSTEM_SF_PROGRESSIVE;
System_linkCreate(esipcFramesOutHostId0, &esipcFramesOutHostPrm0, sizeof(esipcFramesOutHostPrm0));
esipcFramesInVpssPrm0.baseCreateParams.inQueParams.prevLinkId = esipcFramesOutHostId0;
esipcFramesInVpssPrm0.baseCreateParams.inQueParams.prevLinkQueId = 0;
esipcFramesInVpssPrm0.baseCreateParams.inputFrameRate = 60;
//esipcFramesInVpssPrm0.baseCreateParams.noNotifyMode = TRUE;//FALSE;//suggested by Badri on 20130611
esipcFramesInVpssPrm0.baseCreateParams.noNotifyMode = FALSE;
esipcFramesInVpssPrm0.baseCreateParams.notifyNextLink = TRUE;
//esipcFramesInVpssPrm0.baseCreateParams.notifyPrevLink = FALSE;//TRUE;//suggested by Badri on 20130611
esipcFramesInVpssPrm0.baseCreateParams.notifyPrevLink = TRUE;
esipcFramesInVpssPrm0.baseCreateParams.numOutQue = 1;
esipcFramesInVpssPrm0.baseCreateParams.numChPerOutQue[0] = 1;
esipcFramesInVpssPrm0.baseCreateParams.outQueParams[0].nextLink = esmergeId0;
esipcFramesInVpssPrm0.baseCreateParams.outputFrameRate = 60;
escapturePrm.numVipInst = GetCameraNum(pChannels);
escapturePrm.tilerEnable = FALSE;
escapturePrm.numBufsPerCh = 4 ; //16; //zhoushuai
escapturePrm.numExtraBufs = 16; //0; //zhoushuai
escapturePrm.maxBlindAreasPerCh = 0;
escapturePrm.isPalMode = FALSE;
escapturePrm.enableSdCrop = FALSE;
escapturePrm.doCropInCapture = FALSE;
for (pHChannelNode = pChannels->hChannelList[CHANNEL_CLS_CAMERA]->next, i = 0;
pHChannelNode && (i < GetCameraNum(pChannels));
pHChannelNode = pHChannelNode->next, i ++)
{
esvipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA + i;
espCaptureInstPrm = &escapturePrm.vipInst[i];
espCaptureInstPrm->vipInstId = esvipInstId % SYSTEM_CAPTURE_INST_MAX;
//pCaptureInstPrm->videoDecoderId = SYSTEM_DEVICE_VID_DEC_SII9233A_DRV;
espCaptureInstPrm->videoDecoderId = 0;
espCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;
espCaptureInstPrm->standard = pHChannelNode->body.hChannel->entity.camera.std;
espCaptureInstPrm->numOutput = 1;
espCaptureInstPrm->numChPerOutput = 1;
espCaptureInstPrm->frameCaptureMode = FALSE;
espCaptureInstPrm->fieldsMerged = FALSE;
espCaptureOutPrm = &espCaptureInstPrm->outParams[0];
espCaptureOutPrm->dataFormat = SYSTEM_DF_YUV422I_YUYV;
espCaptureOutPrm->scEnable = FALSE;
espCaptureOutPrm->outQueId = 0;
}
escapturePrm.outQueParams[0].nextLink = esmergeId0;
//////////////////////////////////////////////////////////////////////////////////////////////////////
System_linkCreate(escaptureId, &escapturePrm, sizeof(escapturePrm));
//////////////////////////////////////////////////////////////////////////////////////////////////////
esmergePrm0.numInQue = 3;
esmergePrm0.inQueParams[0].prevLinkId = escaptureId;
esmergePrm0.inQueParams[0].prevLinkQueId = 0;
esmergePrm0.inQueParams[1].prevLinkId = esipcFramesInVpssId0;
esmergePrm0.inQueParams[1].prevLinkQueId = 0;
esmergePrm0.inQueParams[2].prevLinkId = esswMsId3;
esmergePrm0.inQueParams[2].prevLinkQueId = 0;
esmergePrm0.outQueParams.nextLink = esipcFramesOutVpssId0;
esmergePrm0.notifyNextLink = TRUE;
/////////////////////////////////////////////////// O S D //////////////////////////////////////////////////////////////////////////
esipcFramesOutVpssPrm0.baseCreateParams.inQueParams.prevLinkId = esmergeId0;
esipcFramesOutVpssPrm0.baseCreateParams.inQueParams.prevLinkQueId = 0;
esipcFramesOutVpssPrm0.baseCreateParams.numOutQue = 1;
esipcFramesOutVpssPrm0.baseCreateParams.outQueParams[0].nextLink = esdupId2;
esipcFramesOutVpssPrm0.baseCreateParams.processLink = esipcFramesInDspId0;
esipcFramesOutVpssPrm0.baseCreateParams.noNotifyMode = FALSE;
esipcFramesOutVpssPrm0.baseCreateParams.notifyPrevLink = FALSE;
esipcFramesOutVpssPrm0.baseCreateParams.notifyNextLink = TRUE;
esipcFramesOutVpssPrm0.baseCreateParams.notifyProcessLink = TRUE;
esipcFramesInDspPrm0.baseCreateParams.inQueParams.prevLinkId = esipcFramesOutVpssId0;
esipcFramesInDspPrm0.baseCreateParams.inQueParams.prevLinkQueId = 0;
esipcFramesInDspPrm0.baseCreateParams.numOutQue = 1;
esipcFramesInDspPrm0.baseCreateParams.outQueParams[0].nextLink = esosdId0;
esipcFramesInDspPrm0.baseCreateParams.noNotifyMode = FALSE;
esipcFramesInDspPrm0.baseCreateParams.notifyPrevLink = FALSE;
esipcFramesInDspPrm0.baseCreateParams.notifyNextLink = TRUE;
esosdPrm0.enableOSDAlg = TRUE;
esosdPrm0.enableSCDAlg = FALSE;
esosdPrm0.inQueParams.prevLinkId = esipcFramesInDspId0;
esosdPrm0.inQueParams.prevLinkQueId = 0;
////////////////////////////////////////////////// O S D ///////////////////////////////////////////////////////////////////////////////
esdupPrm2.inQueParams.prevLinkId = esipcFramesOutVpssId0;
esdupPrm2.inQueParams.prevLinkQueId = 0;
esdupPrm2.numOutQue = 4;
esdupPrm2.outQueParams[0].nextLink = esswMsId[0];
esdupPrm2.outQueParams[1].nextLink = esswMsId[1];
esdupPrm2.outQueParams[2].nextLink = esmergeId1;
esdupPrm2.outQueParams[3].nextLink = esselId3;
esdupPrm2.notifyNextLink = TRUE;
for (pHChannelNode = pChannels->hChannelList[CHANNEL_CLS_SWMS]->next, i = 0;
pHChannelNode && (i < 2);
pHChannelNode = pHChannelNode->next, i ++)
{
esswMsPrm[i].numSwMsInst = 2;
esswMsPrm[i].swMsInstId[0] = SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI;
esswMsPrm[i].swMsInstStartWin[0] = 0;
esswMsPrm[i].swMsInstId[1] = SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI;
esswMsPrm[i].swMsInstStartWin[1] = 3;
esswMsPrm[i].inQueParams.prevLinkId = esdupId2;
esswMsPrm[i].inQueParams.prevLinkQueId = i;
if (0 == i)
{
esswMsPrm[i].outQueParams.nextLink = esipcFramesOutVpssId1;
}
else
{
esswMsPrm[i].outQueParams.nextLink = esdupId[i];
}
esswMsPrm[i].lineSkipMode = FALSE;
esswMsPrm[i].enableLayoutGridDraw = TRUE;
esswMsPrm[i].layoutPrm.outputFPS = pHChannelNode->body.hChannel->entity.swms.frameRate;
// esswMsPrm[i].maxInputQueLen = 64;
esswMsPrm[i].maxInputQueLen = 8+i*8; //zhoushaui
esswMsPrm[i].maxOutRes = pHChannelNode->body.hChannel->entity.swms.std;
///esswMsPrm[i].numOutBuf = 256;
esswMsPrm[i].numOutBuf = 5+i*3;//zhoushaui
SwMsSetLayoutParams(esswMsId[i], pHChannelNode->body.hChannel->entity.swms.info.hd_info.currlayout, &esswMsPrm[i]);
if (0 == i)
{
esdupPrm[i].inQueParams.prevLinkId = esipcFramesOutVpssId1;
esdupPrm[i].inQueParams.prevLinkQueId = 0;
}
else
{
esdupPrm[i].inQueParams.prevLinkId = esswMsId[i];
esdupPrm[i].inQueParams.prevLinkQueId = 0;
}
esdupPrm[i].numOutQue = 2;
esdupPrm[i].outQueParams[0].nextLink = esdisplayId[i];
esdupPrm[i].outQueParams[1].nextLink = esmergeId1;
esdupPrm[i].notifyNextLink = TRUE;
esipcFramesOutVpssPrm1.baseCreateParams.inQueParams.prevLinkId = esswMsId[0];
esipcFramesOutVpssPrm1.baseCreateParams.inQueParams.prevLinkQueId = 0;
esipcFramesOutVpssPrm1.baseCreateParams.numOutQue = 1;
esipcFramesOutVpssPrm1.baseCreateParams.outQueParams[0].nextLink = esdupId[0];
esipcFramesOutVpssPrm1.baseCreateParams.processLink = esipcFramesInDspId1;
esipcFramesOutVpssPrm1.baseCreateParams.noNotifyMode = FALSE;
esipcFramesOutVpssPrm1.baseCreateParams.notifyPrevLink = TRUE;
esipcFramesOutVpssPrm1.baseCreateParams.notifyNextLink = TRUE;
esipcFramesOutVpssPrm1.baseCreateParams.notifyProcessLink = TRUE;
esipcFramesInDspPrm1.baseCreateParams.inQueParams.prevLinkId = esipcFramesOutVpssId1;
esipcFramesInDspPrm1.baseCreateParams.inQueParams.prevLinkQueId = 0;
esipcFramesInDspPrm1.baseCreateParams.numOutQue = 1;
esipcFramesInDspPrm1.baseCreateParams.outQueParams[0].nextLink = esosdId1;
esipcFramesInDspPrm1.baseCreateParams.noNotifyMode = FALSE;
esipcFramesInDspPrm1.baseCreateParams.notifyPrevLink = TRUE;
esipcFramesInDspPrm1.baseCreateParams.notifyNextLink = TRUE;
esosdPrm1.enableOSDAlg = TRUE;
esosdPrm1.enableSCDAlg = FALSE;
esosdPrm1.inQueParams.prevLinkId = esipcFramesInDspId1;
esosdPrm1.inQueParams.prevLinkQueId = 0;
for(chId = 0; chId < 1; chId++)
{
esosdPrm1.osdChCreateParams[chId].maxWidth = CHAINS_OSD_WIN_MAX_WIDTH;
esosdPrm1.osdChCreateParams[chId].maxHeight = CHAINS_OSD_WIN_MAX_HEIGHT;
AlgLink_OsdChWinParams * chWinPrm1 = &esosdPrm1.osdChCreateParams[chId].chDefaultParams;
chWinPrm1->chId = chId;
chWinPrm1->numWindows = 5;
chWinPrm1->colorKey[0] = COLORKEY;
chWinPrm1->colorKey[1] = COLORKEY;
chWinPrm1->colorKey[2] = COLORKEY;
for(winId = 0; winId < chWinPrm1->numWindows ;winId++)
{
chWinPrm1->winPrm[winId].format = SYSTEM_DF_YUV422I_YUYV;
chWinPrm1->winPrm[winId].transperencyEnable = CHAINS_OSD_TRANSPARENCY;
chWinPrm1->winPrm[winId].enableWin = FALSE;
chWinPrm1->winPrm[winId].globalAlpha = CHAINS_OSD_GLOBAL_ALPHA;
Chains_createBuf(&chWinPrm1->winPrm[winId].addr[0][0],
&osdWinBuPtr1[chId][winId], &osdWinSrAddr1[chId][winId],
MAX_YUVBUF_SIZE, 0);
if (winId == 3)
{
//modify by ningbo 20131205 begin
//use CurrentConf_sim.xml/Channels/ChannelList/channel6/osd_datetime to control datetime show or not
//chWinPrm1->winPrm[winId].enableWin = CHAINS_OSD_ENABLE_WIN;
chWinPrm1->winPrm[winId].enableWin = osdDatetimeParam.show;
//modify by ningbo 20131205 end
if (SWMS_LAYOUT_PATTERN_1PLUS3 == layoutidAtStartup)
{
font.winposition.StartX = 350;
}
osdDrawText("1999-12-23 00:00:00",font,(char*)osdWinBuPtr1[chId][winId],&chWinPrm1->winPrm[winId],FALSE);
}
if (winId == 4)
{
system_get_ip();
char OSDIP[30] = "IP: ";
strcat(OSDIP,set_ip_param_conf->address);
chWinPrm1->winPrm[winId].enableWin = CHAINS_OSD_ENABLE_WIN;
if (SWMS_LAYOUT_PATTERN_1PLUS3 == layoutidAtStartup)
{
Ip_font.winposition.StartX = 350;
}
osdDrawText(OSDIP,Ip_font,(char*)osdWinBuPtr1[chId][winId],&chWinPrm1->winPrm[winId],FALSE);
}
}
}
{
signal(SIGALRM, Demo_updateTime);
oneSec.it_value.tv_sec = 1;
oneSec.it_value.tv_usec = 0;
oneSec.it_interval.tv_sec = 1;
oneSec.it_interval.tv_usec = 0;
setitimer(ITIMER_REAL, &oneSec, NULL);
}
////////////////////////////////////////////////// O S D ///////////////////////////////////////////////////////////////////////////////
esdisplayPrm[i].numInputQueues = 1;
esdisplayPrm[i].activeQueue = 0;
esdisplayPrm[i].inQueParams[0].prevLinkId = esdupId[i];
esdisplayPrm[i].inQueParams[0].prevLinkQueId = 0;
esdisplayPrm[i].displayRes = pHChannelNode->body.hChannel->entity.swms.std;
esdisplayPrm[i].forceFieldSeparatedInputMode = FALSE;
}
esmergePrm1.numInQue = 3;
esmergePrm1.inQueParams[0].prevLinkId = esdupId2;
esmergePrm1.inQueParams[0].prevLinkQueId = 2;
esmergePrm1.inQueParams[1].prevLinkId = esdupId[0];
esmergePrm1.inQueParams[1].prevLinkQueId = 1;
esmergePrm1.inQueParams[2].prevLinkId = esdupId[1];
esmergePrm1.inQueParams[2].prevLinkQueId = 1;
esmergePrm1.outQueParams.nextLink = esdupId3;
esmergePrm1.notifyNextLink = TRUE;
esdupPrm3.inQueParams.prevLinkId = esmergeId1;
esdupPrm3.inQueParams.prevLinkQueId = 0;
esdupPrm3.numOutQue = 3;
esdupPrm3.outQueParams[0].nextLink = esselId0;
esdupPrm3.outQueParams[1].nextLink = esselId1;
esdupPrm3.outQueParams[2].nextLink = esselId2;
esdupPrm3.notifyNextLink = TRUE;
esselPrm0.inQueParams.prevLinkId = esdupId3;
esselPrm0.inQueParams.prevLinkQueId = 0;
esselPrm0.numOutQue = 1;
esselPrm0.outQueParams[0].nextLink = esmergeId2;
esselPrm0.outQueChInfo[0].outQueId = 0;
esselPrm0.outQueChInfo[0].numOutCh = GetRawEncoderNum(pChannels) - 1; // to modified...
GetGlobeChannelSelMatrixRawEnc(pChannels, &gChMat);
for (i=0; i<gChMat.encChNum; i++)
{
esselPrm0.outQueChInfo[0].inChNum[i] = gChMat.channel[0][i];
}
esselPrm1.inQueParams.prevLinkId = esdupId3;
esselPrm1.inQueParams.prevLinkQueId = 1;
esselPrm1.numOutQue = 1;
esselPrm1.outQueParams[0].nextLink = essclrId0;
esselPrm1.outQueChInfo[0].outQueId = 0;
esselPrm1.outQueChInfo[0].numOutCh = GetSCEncoderNum(pChannels);
UInt8 gChScEnc = GetGlobeChannel(GetHCHANNELFromHENCODER(GetHANDLESCEnc(pChannels)));
UInt8 gChannel = 0;
UInt8 selSCEncChIdx = 0;
UInt8 selNonSCEncChIdx = 0;
for (gChannel = 0; gChannel <= (GetChannelsNum(pChannels) - 1) - 1; gChannel ++)
{
if (gChannel == gChScEnc)
{
esselPrm1.outQueChInfo[0].inChNum[selSCEncChIdx ++] = gChannel;
}
else
{
// esselPrm1.outQueChInfo[1].inChNum[selNonSCEncChIdx ++] = gChannel;
}
}
essclrPrm0.inQueParams.prevLinkId = esselId1;
essclrPrm0.inQueParams.prevLinkQueId = 0;
essclrPrm0.outQueParams.nextLink = esmergeId2;
essclrPrm0.pathId = SCLR_LINK_SC5;
essclrPrm0.scaleMode = SCLR_SCALE_MODE_ABSOLUTE;
essclrPrm0.outScaleFactor.absoluteResolution.outWidth = 720;
essclrPrm0.outScaleFactor.absoluteResolution.outHeight = 576;
essclrPrm0.inputFrameRate = GetChannelFrameRate(GetHCHANNELFromHENCODER(GetHANDLESCEnc(pChannels)));
essclrPrm0.outputFrameRate = GetChannelFrameRate(GetHCHANNELFromHENCODER(GetHANDLESCEnc(pChannels)));
essclrPrm0.tilerEnable = FALSE;
essclrPrm0.enableLineSkipSc = FALSE;
///////////////////////////////////////////////////////////////////////////////////////
esselPrm3.inQueParams.prevLinkId = esdupId2;
esselPrm3.inQueParams.prevLinkQueId = 3;
esselPrm3.numOutQue = 1;
esselPrm3.outQueParams[0].nextLink = esmergeId2;
esselPrm3.outQueChInfo[0].outQueId = 0;
esselPrm3.outQueChInfo[0].numOutCh = 1;
HCHANNEL hChannelswms0 = channels.hChannelList[CHANNEL_CLS_SWMS]->next->body.hChannel;
UInt8 currPhyChannelID = MapIDFromUsrToPhy(hChannelswms0->entity.swms.info.hd_info.ch2win[hChannelswms0->entity.swms.info.hd_info.currlayout][0]);
UInt8 swmsChannel = GetSwmsChannel(GetHCHANNELFromID(&channels, currPhyChannelID));
esselPrm3.outQueChInfo[0].inChNum[0] = swmsChannel;
///////////////////////////////////////////////////////////////////////////////////////
esmergePrm2.numInQue = 3;
esmergePrm2.inQueParams[0].prevLinkId = esselId0;
esmergePrm2.inQueParams[0].prevLinkQueId = 0;
esmergePrm2.inQueParams[1].prevLinkId = essclrId0;
esmergePrm2.inQueParams[1].prevLinkQueId = 0;
esmergePrm2.inQueParams[2].prevLinkId = esselId3;
esmergePrm2.inQueParams[2].prevLinkQueId = 0;
esmergePrm2.outQueParams.nextLink = esnsfId0;
esmergePrm2.notifyNextLink = TRUE;
esselPrm2.inQueParams.prevLinkId = esdupId3;
esselPrm2.inQueParams.prevLinkQueId = 2;
esselPrm2.numOutQue = 1;
esselPrm2.outQueParams[0].nextLink = esswMsId2;
esselPrm2.outQueChInfo[0].outQueId = 0;
esselPrm2.outQueChInfo[0].numOutCh = 1;
gChannel = 0;
UInt8 selSDChIdx = 0;
UInt8 selNonSDChIdx = 0;
for (gChannel = 0; gChannel <= (GetChannelsNum(pChannels) - 1) - 1; gChannel ++)
{
if (gChannel == GetGlobeChannel(GetHCHANNELFromID(pChannels, GENERATE_ID(CHANNEL_CLS_SWMS, 0))))
{
esselPrm2.outQueChInfo[0].inChNum[selSDChIdx ++] = gChannel;
}
else
{
//esselPrm2.outQueChInfo[1].inChNum[selNonSDChIdx ++] = gChannel;
}
}
pHChannelNode = pChannels->hChannelList[CHANNEL_CLS_SWMS]->next->next->next;
esswMsPrm2.numSwMsInst = 1;
esswMsPrm2.swMsInstId[0] = SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI;
esswMsPrm2.inQueParams.prevLinkId = esselId2;
esswMsPrm2.inQueParams.prevLinkQueId = 0;
esswMsPrm2.outQueParams.nextLink = esdisplayId2;
esswMsPrm2.lineSkipMode = FALSE;
esswMsPrm2.enableLayoutGridDraw = FALSE;
esswMsPrm2.layoutPrm.outputFPS = pHChannelNode->body.hChannel->entity.swms.frameRate;
esswMsPrm2.maxInputQueLen = SYSTEM_SW_MS_DEFAULT_INPUT_QUE_LEN;
//esswMsPrm2.maxInputQueLen = 3;
esswMsPrm2.maxOutRes = pHChannelNode->body.hChannel->entity.swms.std;
esswMsPrm2.numOutBuf = 0;
//esswMsPrm2.numOutBuf = 3;
SwMsSetLayoutParams(esswMsId2, SWMS_LAYOUT_PATTERN_1, &esswMsPrm2);
esdisplayPrm2.numInputQueues = 1;
esdisplayPrm2.activeQueue = 0;
esdisplayPrm2.inQueParams[0].prevLinkId = esswMsId2;
esdisplayPrm2.inQueParams[0].prevLinkQueId = 0;
esdisplayPrm2.displayRes = pHChannelNode->body.hChannel->entity.swms.std;
esdisplayPrm2.forceFieldSeparatedInputMode = FALSE;
esnsfPrm0.inQueParams.prevLinkId = esmergeId2;
esnsfPrm0.inQueParams.prevLinkQueId = 0;
esnsfPrm0.outQueParams[0].nextLink = esipcOutVpssId0;
esnsfPrm0.bypassNsf = TRUE;
esnsfPrm0.tilerEnable = TRUE;
esnsfPrm0.numOutQue = 1;
esnsfPrm0.numBufsPerCh = 0;
esipcOutVpssPrm0.inQueParams.prevLinkId = esnsfId0;
esipcOutVpssPrm0.inQueParams.prevLinkQueId = 0;
esipcOutVpssPrm0.numOutQue = 1;
esipcOutVpssPrm0.numChPerOutQue[0] = 1;
esipcOutVpssPrm0.outQueParams[0].nextLink = esipcInVideoId0;
esipcOutVpssPrm0.notifyNextLink = TRUE;
esipcOutVpssPrm0.notifyPrevLink = FALSE;
esipcOutVpssPrm0.noNotifyMode = FALSE;
esipcOutVpssPrm0.numChPerOutQue[0] = 0;
esipcOutVpssPrm0.equallyDivideChAcrossOutQues = FALSE;
esipcInVideoPrm0.inQueParams.prevLinkId = esipcOutVpssId0;
esipcInVideoPrm0.inQueParams.prevLinkQueId = 0;
esipcInVideoPrm0.numOutQue = 1;
esipcInVideoPrm0.numChPerOutQue[0] = 1;
esipcInVideoPrm0.outQueParams[0].nextLink = esencId0;
esipcInVideoPrm0.notifyNextLink = TRUE;
esipcInVideoPrm0.notifyPrevLink = FALSE;
esipcInVideoPrm0.noNotifyMode = FALSE;
esipcInVideoPrm0.numChPerOutQue[0] = 0;
esipcInVideoPrm0.equallyDivideChAcrossOutQues = FALSE;
for (pHEncoderNode = pChannels->encoderList->next, i = 0; pHEncoderNode; pHEncoderNode = pHEncoderNode->next, i ++)
{
HCHANNEL hChannel = GetHCHANNELFromHENCODER(pHEncoderNode->body.hEncoder);
esencPrm0.chCreateParams[i].format = pHEncoderNode->body.hEncoder->format;
esencPrm0.chCreateParams[i].profile = pHEncoderNode->body.hEncoder->profile;
esencPrm0.chCreateParams[i].dataLayout = IVIDEO_FIELD_SEPARATED;
esencPrm0.chCreateParams[i].fieldMergeEncodeEnable = FALSE;
esencPrm0.chCreateParams[i].enableAnalyticinfo = FALSE;
esencPrm0.chCreateParams[i].enableWaterMarking = FALSE;
esencPrm0.chCreateParams[i].encodingPreset = XDM_USER_DEFINED;
esencPrm0.chCreateParams[i].rateControlPreset = IVIDEO_USER_DEFINED;
esencPrm0.chCreateParams[i].enableHighSpeed = FALSE;
esencPrm0.chCreateParams[i].defaultDynamicParams.interFrameInterval = 1;
esencPrm0.chCreateParams[i].defaultDynamicParams.intraFrameInterval = pHEncoderNode->body.hEncoder->intraFrameInterval;
esencPrm0.chCreateParams[i].defaultDynamicParams.inputFrameRate = (hChannel) ? GetChannelFrameRate(hChannel) : 30;
esencPrm0.chCreateParams[i].defaultDynamicParams.targetFrameRate = (hChannel) ? GetChannelFrameRate(hChannel) : 30;
esencPrm0.chCreateParams[i].defaultDynamicParams.targetBitRate = pHEncoderNode->body.hEncoder->targetBitRate;
esencPrm0.chCreateParams[i].defaultDynamicParams.mvAccuracy = IVIDENC2_MOTIONVECTOR_QUARTERPEL;
esencPrm0.chCreateParams[i].defaultDynamicParams.rcAlg = pHEncoderNode->body.hEncoder->rcAlg;
esencPrm0.chCreateParams[i].defaultDynamicParams.qpMin = 0;
esencPrm0.chCreateParams[i].defaultDynamicParams.qpMax = 51;
esencPrm0.chCreateParams[i].defaultDynamicParams.qpInit = -1;
esencPrm0.chCreateParams[i].defaultDynamicParams.vbrDuration = 8;
esencPrm0.chCreateParams[i].defaultDynamicParams.vbrSensitivity = 0;
EncLink_ChDynamicParams *dynamicParams = &esencPrm0.chCreateParams[i].defaultDynamicParams;
dynamicParams->intraCodingParams.intraCodingPreset = IH264_INTRACODING_USERDEFINED;
dynamicParams->intraCodingParams.intraRefreshMethod = IH264_INTRAREFRESH_GDR;
dynamicParams->intraCodingParams.intraRefreshRate = (hChannel) ? GetChannelFrameRate(hChannel) : 30;
}
esencPrm0.inQueParams.prevLinkId = esipcInVideoId0;
esencPrm0.inQueParams.prevLinkQueId= 0;
esencPrm0.outQueParams.nextLink = esipcBitsOutVideoId0;
esencPrm0.numBufPerCh[0] = 0;
esipcBitsOutVideoPrm0.baseCreateParams.inQueParams.prevLinkId = esencId0;
esipcBitsOutVideoPrm0.baseCreateParams.inQueParams.prevLinkQueId = 0;
esipcBitsOutVideoPrm0.baseCreateParams.numOutQue = 1;
esipcBitsOutVideoPrm0.baseCreateParams.numChPerOutQue[0] = 1;
esipcBitsOutVideoPrm0.baseCreateParams.outQueParams[0].nextLink = esipcBitsInHostId0;
esipcBitsOutVideoPrm0.baseCreateParams.notifyNextLink = FALSE;
esipcBitsOutVideoPrm0.baseCreateParams.notifyPrevLink = FALSE;
esipcBitsOutVideoPrm0.baseCreateParams.noNotifyMode = TRUE;
IPCBitsOutRTOS_Params_Init(&esipcBitsOutVideoPrm0);
esipcBitsInHostPrm0.baseCreateParams.inQueParams.prevLinkId = esipcBitsOutVideoId0;
esipcBitsInHostPrm0.baseCreateParams.inQueParams.prevLinkQueId = 0;
esipcBitsInHostPrm0.baseCreateParams.numOutQue = 1;
esipcBitsInHostPrm0.baseCreateParams.numChPerOutQue[0] = 1;
esipcBitsInHostPrm0.baseCreateParams.notifyNextLink = FALSE;
esipcBitsInHostPrm0.baseCreateParams.notifyPrevLink = FALSE;
esipcBitsInHostPrm0.baseCreateParams.noNotifyMode = TRUE;
IPCBitsInHLOS_Params_Init(&esipcBitsInHostPrm0);
//////////////////////////////////////////////////////////////////////////////////////////////////////
System_linkCreate(esipcBitsOutHostId0,&esipcBitsOutHostPrm0,sizeof(esipcBitsOutHostPrm0));
System_linkCreate(esipcBitsInVideoId0,&esipcBitsInVideoPrm0,sizeof(esipcBitsInVideoPrm0));
System_linkCreate(esdecId0, &esdecPrm0, sizeof(esdecPrm0));
System_linkCreate(esipcOutVideoId0, &esipcOutVideoPrm0, sizeof(esipcOutVideoPrm0));
System_linkCreate(esipcInVpssId0, &esipcInVpssPrm0, sizeof(esipcInVpssPrm0));
System_linkCreate(esswMsId3, &esswMsPrm3, sizeof(esswMsPrm3));
System_linkCreate(esipcFramesInVpssId0, &esipcFramesInVpssPrm0, sizeof(esipcFramesInVpssPrm0));
System_linkCreate(esmergeId0, &esmergePrm0, sizeof(esmergePrm0));
System_linkCreate(esipcFramesOutVpssId0, &esipcFramesOutVpssPrm0, sizeof(esipcFramesOutVpssPrm0));
System_linkCreate(esipcFramesInDspId0, &esipcFramesInDspPrm0, sizeof(esipcFramesInDspPrm0));
System_linkCreate(esosdId0, &esosdPrm0, sizeof(esosdPrm0));
System_linkCreate(esdupId2, &esdupPrm2, sizeof(esdupPrm2));
for (i=0; i<2; i++)
{
System_linkCreate(esswMsId[i], &esswMsPrm[i], sizeof(esswMsPrm[i]));
if (0 == i)
{
System_linkCreate(esipcFramesOutVpssId1, &esipcFramesOutVpssPrm1, sizeof(esipcFramesOutVpssPrm1));
System_linkCreate(esipcFramesInDspId1, &esipcFramesInDspPrm1, sizeof(esipcFramesInDspPrm1));
System_linkCreate(esosdId1, &esosdPrm1, sizeof(esosdPrm1));
}
System_linkCreate(esdupId[i], &esdupPrm[i], sizeof(esdupPrm[i]));
System_linkCreate(esdisplayId[i], &esdisplayPrm[i], sizeof(esdisplayPrm[i]));
}
System_linkCreate(esmergeId1, &esmergePrm1, sizeof(esmergePrm1));
System_linkCreate(esdupId3, &esdupPrm3, sizeof(esdupPrm3));
System_linkCreate(esselId0, &esselPrm0, sizeof(esselPrm0));
System_linkCreate(esselId1, &esselPrm1, sizeof(esselPrm1));
System_linkCreate(essclrId0, &essclrPrm0, sizeof(essclrPrm0));
System_linkCreate(esselId3, &esselPrm3, sizeof(esselPrm3));
System_linkCreate(esmergeId2, &esmergePrm2, sizeof(esmergePrm2));
System_linkCreate(esselId2, &esselPrm2, sizeof(esselPrm2));
System_linkCreate(esswMsId2, &esswMsPrm2, sizeof(esswMsPrm2));
System_linkCreate(esdisplayId2, &esdisplayPrm2, sizeof(esdisplayPrm2));
System_linkCreate(esnsfId0, &esnsfPrm0, sizeof(esnsfPrm0));
System_linkCreate(esipcOutVpssId0, &esipcOutVpssPrm0, sizeof(esipcOutVpssPrm0));
System_linkCreate(esipcInVideoId0, &esipcInVideoPrm0, sizeof(esipcInVideoPrm0));
System_linkCreate(esencId0, &esencPrm0, sizeof(esencPrm0));
System_linkCreate(esipcBitsOutVideoId0, &esipcBitsOutVideoPrm0, sizeof(esipcBitsOutVideoPrm0));
System_linkCreate(esipcBitsInHostId0, &esipcBitsInHostPrm0, sizeof(esipcBitsInHostPrm0));//*/
//////////////////////////////////////////////////////////////////////////////////////////////////////
Chains_memPrintHeapStatus();
//////////////////////////////////////////////////////////////////////////////////////////////////////
{
System_linkStart(esencId0);
System_linkStart(esnsfId0);
System_linkStart(esdisplayId2);
System_linkStart(esswMsId2);
System_linkStart(esmergeId2);
System_linkStart(esselId3);
System_linkStart(essclrId0);
System_linkStart(esselId2);
System_linkStart(esselId1);
System_linkStart(esselId0);
System_linkStart(esdupId3);
System_linkStart(esmergeId1);
for (i=0; i<2; i++)
{
System_linkStart(esdisplayId[i]);
System_linkStart(esdupId[i]);
if (0 == i)
{
System_linkStart(esipcFramesOutVpssId1);
System_linkStart(esipcFramesInDspId1);
System_linkStart(esosdId1);
}
System_linkStart(esswMsId[i]);
}
System_linkStart(esdupId2);
System_linkStart(esipcFramesOutVpssId0);
System_linkStart(esipcFramesInDspId0);
System_linkStart(esosdId0);
System_linkStart(esmergeId0);
System_linkStart(esipcFramesInVpssId0);
System_linkStart(esipcFramesOutHostId0);
System_linkStart(escaptureId);
System_linkStart(esswMsId3);
System_linkStart(esipcInVpssId0);
System_linkStart(esipcOutVideoId0);
System_linkStart(esdecId0);
System_linkStart(esipcBitsInVideoId0);
System_linkStart(esipcBitsOutHostId0);
startAudioCaptEnc(pChannels);
IPCFrameInit();
//////////////////////////////////////////////////////////////////////////////////////////////////////
while(1)
{
ch = Chains_menuRunTime();
if (ch=='0'){
exit(0);
break;
}
if (ch == 'r'){
system("reboot");
}
if(ch == 'd'){
System_linkControl( SYSTEM_LINK_ID_VENC_0,
ENC_LINK_CMD_PRINT_IVAHD_STATISTICS,
NULL, 0, TRUE);
}
if (ch=='l')
{
UInt32 dispid = Chains_menuSelectDisplayNumber();
UInt32 swmslayoutid = Chains_menuSelectSwMsLayoutId();
SwMsSetLayout(esswMsId[dispid], swmslayoutid, &esswMsPrm[dispid]);
}
if (ch=='c')
{
UInt32 dispid = Chains_menuSelectDisplayNumber();
UInt32 winid = Chains_getIntValue("Window Id : ", 0, 255, 0);
UInt32 chId = Chains_getIntValue("Channel Id : ", 0, 255, 0);
switch (SwMsMapChtoWin(esswMsId[dispid], winid, chId, &esswMsPrm[dispid]))
{
case ERR_CHNUM_INVALID:
printf("\n Invalid channel ID!!! \n");
break;
case ERR_CHNUM_INVISIBLE:
printf("\n Channel cannot be visible!!! \n");
break;
case ERR_WINNUM_INVALID:
printf("\n Invalid Window ID!!! \n");
break;
case SUCCEED:
break;
default:
break;
}
}
if (ch=='x')
{
UInt32 dispid = Chains_menuSelectDisplayNumber();
UInt32 winid1 = Chains_getIntValue("Window Id 1 : ", 0, 255, 0);
UInt32 winid2 = Chains_getIntValue("Window Id 2 : ", 0, 255, 0);
switch (SwMsExchangeWin(esswMsId[dispid], winid1, winid2, &esswMsPrm[dispid]))
{
case ERR_WINNUM_SAME:
printf("\n Window to be exchanged are same!!! \n");
break;
case ERR_WINNUM_INVALID:
printf("\n Invalid window ID!!! \n");
break;
case ERR_WINNUM_BLANK:
printf("\n Blank window!!! \n");
break;
default:
break;
}
}
if (ch=='s')
{
UInt32 channel = Chains_getIntValue("channel Id : ", 0, 255, 0);
UInt32 enable = Chains_getIntValue("On/Off (1/0) : ", 0, 1, 1);
switch (SwMsSwitchChannel(channel, enable, swMsPrmList))
{
case ERR_CHNUM_INVALID:
printf("\n channel to be on/off is invalid!!! \n");
break;
default:
break;
}
}
if (ch == 'm')
{
chId = 0;
winId = Chains_getIntValue("Window Id : ", 0, CHAINS_OSD_NUM_WINDOWS-1, 0);
swmsFont = font2;
printf("\nInput OSD Window Position:\n");
swmsFont.winposition.StartX = Chains_getIntValue("StartX : ", 0,1280, 96);
swmsFont.winposition.StartY = Chains_getIntValue("StartY : ", 0,720, 96);
printf("\nInput character display in osd:\n");
fflush(stdin);
scanf("%s",&test);
UInt32 fontcolor = Chains_menuSelectOSDFontColor();
UInt32 fontcsize = Chains_menuSelectOSDFontSize();
swmsFont.fontcolor = fontcolor;
swmsFont.fontsize = fontcsize;
AlgLink_OsdChWinParams *chWinPrm = &esosdPrm1.osdChCreateParams[chId].chDefaultParams;
chWinPrm->chId = chId;
chWinPrm->colorKey[0] = 0x60;
chWinPrm->colorKey[1] = 0x60;
chWinPrm->colorKey[2] = 0x60;
chWinPrm->winPrm[winId].format = SYSTEM_DF_YUV422I_YUYV;
chWinPrm->winPrm[winId].globalAlpha = CHAINS_OSD_GLOBAL_ALPHA;
chWinPrm->winPrm[winId].transperencyEnable = CHAINS_OSD_TRANSPARENCY;
chWinPrm->winPrm[winId].enableWin = CHAINS_OSD_ENABLE_WIN;
osdDrawText(test,swmsFont,(char*)osdWinBuPtr1[chId][winId],
&chWinPrm->winPrm[winId],FALSE);
System_linkControl(esosdId1, ALG_LINK_OSD_CMD_SET_CHANNEL_WIN_PRM,
chWinPrm, sizeof(AlgLink_OsdChWinParams), TRUE);
}
if (ch == 'e')
{
winId = Chains_getIntValue("Window Id: ", 0, 1, 0);
AlgLink_OsdChWinParams * chWinPrm =
&esosdPrm1.osdChCreateParams[0].chDefaultParams;
chWinPrm->winPrm[winId].globalAlpha = FALSE;
System_linkControl(esosdId1, ALG_LINK_OSD_CMD_SET_CHANNEL_WIN_PRM,
chWinPrm, sizeof(AlgLink_OsdChWinParams), TRUE);
}
if (ch == 'n')
{
UInt32 syslinkctrl_status;
SelectLink_OutQueChInfo selqueinfo;
selqueinfo.outQueId = 0;
syslinkctrl_status = System_linkControl(esselId3, SELECT_LINK_CMD_GET_OUT_QUE_CH_INFO,
&selqueinfo, sizeof(SelectLink_OutQueChInfo), TRUE);
printf("======================================== get status = %d\n", syslinkctrl_status);
printf("Que ID = %d\n", selqueinfo.outQueId);
unsigned char quechindex;
for (quechindex = 0; quechindex < selqueinfo.numOutCh; quechindex ++)
{
printf("\t[%d] = %d\n", quechindex, selqueinfo.inChNum[quechindex]);
}
selqueinfo.outQueId = 0;
selqueinfo.inChNum[0] = Chains_getIntValue("Window Id: ", 0, 6, 0);
syslinkctrl_status = System_linkControl(esselId3, SELECT_LINK_CMD_SET_OUT_QUE_CH_INFO,
&selqueinfo, sizeof(SelectLink_OutQueChInfo), TRUE);
printf("======================================== set status = %d\n", syslinkctrl_status);
}
if (ch == 't')
{
EncLink_ChannelInfo encch;
encch.chId = 3;
unsigned char opt = Chains_getIntValue("Window Id: ", 0, 1, 1);
if (0 == opt)
System_linkControl(esencId0, ENC_LINK_CMD_DISABLE_CHANNEL, &encch, sizeof(EncLink_ChannelInfo), TRUE);
else if(1 == opt)
System_linkControl(esencId0, ENC_LINK_CMD_ENABLE_CHANNEL, &encch, sizeof(EncLink_ChannelInfo), TRUE);
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
PeripheralProcessEncodedDataStop();
sleep(1);
PeripheralGetStreamsStop();
PutFullOutStop(&ipc_ctrl);
GetEmptyOutStop(&ipc_ctrl);
uart_communicate_stop();
uart_volum_stop();
PeripheralGetStreamsStop();
// stopAudioDecPlay(channels.hAudio);
System_linkStop(escaptureId);
System_linkStop(esipcBitsOutHostId0);
System_linkStop(esipcBitsInVideoId0);
System_linkStop(esdecId0);
System_linkStop(esipcOutVideoId0);
System_linkStop(esipcInVpssId0);
System_linkStop(esswMsId3);
System_linkStop(esipcFramesOutHostId0);
System_linkStop(esipcFramesInVpssId0);
System_linkStop(esmergeId0);
System_linkStop(esipcFramesOutVpssId0);
System_linkStop(esipcFramesInDspId0);
System_linkStop(esosdId0);
System_linkStop(esdupId2);
for (i=0; i<2; i++)
{
System_linkStop(esswMsId[i]);
if (0 == i)
{
System_linkStop(esipcFramesOutVpssId1);
System_linkStop(esipcFramesInDspId1);
System_linkStop(esosdId1);
}
System_linkStop(esdupId[i]);
System_linkStop(esdisplayId[i]);
}
System_linkStop(esmergeId1);
System_linkStop(esdupId3);
System_linkStop(esselId0);
System_linkStop(esselId1);
System_linkStop(esselId2);
System_linkStop(essclrId0);
System_linkStop(esselId3);
System_linkStop(esmergeId2);
System_linkStop(esswMsId2);
System_linkStop(esdisplayId2);
System_linkStop(esnsfId0);
System_linkStop(esencId0);
System_linkStop(esipcBitsOutVideoId0);
System_linkStop(esipcBitsInHostId0);
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
System_linkDelete(escaptureId);
System_linkDelete(esipcBitsOutHostId0);
System_linkDelete(esipcBitsInVideoId0);
System_linkDelete(esdecId0);
System_linkDelete(esipcOutVideoId0);
System_linkDelete(esipcInVpssId0);
System_linkDelete(esswMsId3);
System_linkDelete(esipcFramesOutHostId0);
System_linkDelete(esipcFramesInVpssId0);
System_linkDelete(esmergeId0);
System_linkDelete(esipcFramesOutVpssId0);
System_linkDelete(esipcFramesInDspId0);
System_linkDelete(esosdId0);
System_linkDelete(esdupId2);
for (i=0; i<2; i++)
{
System_linkDelete(esswMsId[i]);
if (0 == i)
{
System_linkDelete(esipcFramesOutVpssId1);
System_linkDelete(esipcFramesInDspId1);
System_linkDelete(esosdId1);
}
System_linkDelete(esdupId[i]);
System_linkDelete(esdisplayId[i]);
}
System_linkDelete(esmergeId1);
System_linkDelete(esdupId3);
System_linkDelete(esselId0);
System_linkDelete(esselId1);
System_linkDelete(esselId2);
System_linkDelete(essclrId0);
System_linkDelete(esselId3);
System_linkDelete(esmergeId2);
System_linkDelete(esswMsId2);
System_linkDelete(esdisplayId2);
System_linkDelete(esnsfId0);
System_linkDelete(esipcOutVpssId0);
System_linkDelete(esipcInVideoId0);
System_linkDelete(esencId0);
System_linkDelete(esipcBitsOutVideoId0);
System_linkDelete(esipcBitsInHostId0);
Chains_displayCtrlDeInit();
}
I used 4 Swms, Fault occured while the last SwmsLINK is creating, with printed information
[m3vpss ] 14169: Assertion @ Line: 103 in links_m3vpss/swMs/swMsLink_drv.c: status==FVID2_SOK : failed !!!
full info in the file
root@dm816x:~# ./demo.nfs.yrp.sh *** Bootargs Validated for mem param *** *** Bootargs Validated for notifyk.vpssm3 params *** Kernel bootargs validated numid=1,iface=MIXER,name='PCM Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=48,step=0 : values=48,48 | dBscale-min=0.00dB,step=0.50dB,mute=0 [c6xdsp ] Remote Debug Shared Memory @ 0xbf000000 [m3video] Remote Debug Shared Memory @ 0xbf005020 [m3vpss ] Remote Debug Shared Memory @ 0xbf00a040 Setting DMM priority for [DUCATI ] to [0] ( 0x4e000624 = 0x08000000 ) Setting DMM priority for [HDVICP0 ] to [2] ( 0x4e000634 = 0x0000000a ) Setting DMM priority for [HDVICP1 ] to [2] ( 0x4e000634 = 0x000a0000 ) Setting DMM priority for [HDVICP2 ] to [2] ( 0x4e000634 = 0x00a00000 ) Attached to slave procId 2. Loaded file ../firmware/dvr_rdk_fw_m3vpss.xem3 on slave procId 2. Started slave procId 2. After Ipc_loadcallback status [0x00000000] [m3vpss ] ***** SYSTEM : Frequency <ORG> - 250000000, <NEW> - 280000000 [m3vpss ] notify_attach rtnVal 0 [m3vpss ] initProxyServer rtnVal 0 [m3vpss ] [m3vpss ] *** UTILS: CPU KHz = 560000 Khz *** [m3vpss ] [m3vpss ] 43: SYSTEM : System Common Init in progress !!! [m3vpss ] 44: SYSTEM: IPC init in progress !!! [m3vpss ] 44: SYSTEM: Attaching to [HOST] ... [m3vpss ] 1043: SYSTEM: Attaching to [HOST] ... [m3vpss ] 1045: SYSTEM: Attaching to [HOST] ... SUCCESS !!! [m3vpss ] 1045: SYSTEM: Attaching to [DSP] ... After Ipc_startcallback status [0x097d2000] Attached to slave procId 1. Loaded file ../firmware/dvr_rdk_fw_m3video.xem3 on slave procId 1. Started slave procId 1. After Ipc_loadcallback status [0x00000000] [m3video] ***** SYSTEM : Frequency <ORG> - 250000000, <NEW> - 280000000 [m3vpss ] 2045: SYSTEM: Attaching to [DSP] ... [m3video] [m3video] *** UTILS: CPU KHz = 560000 Khz *** [m3video] [m3video] 1493: SYSTEM : System Common Init in progress !!! [m3video] 1493: SYSTEM: IPC init in progress !!! [m3video] 1493: SYSTEM: Attaching to [HOST] ... [m3video] 2493: SYSTEM: Attaching to [HOST] ... [m3video] 2495: SYSTEM: Attaching to [HOST] ... SUCCESS !!! [m3video] 2495: SYSTEM: Attaching to [DSP] ... After Ipc_startcallback status [0x00000000] Attached to slave procId 0. Loaded file ../firmware/dvr_rdk_fw_c6xdsp.xe674 on slave procId 0. Started slave procId 0. After Ipc_loadcallback status [0x00000000] [c6xdsp ] ***** SYSTEM : Frequency <ORG> - 800000000, <NEW> - 800000000 [m3video] 3495: SYSTEM: Attaching to [DSP] ... [m3vpss ] 3045: SYSTEM: Attaching to [DSP] ... [c6xdsp ] [c6xdsp ] *** UTILS: CPU KHz = 800000 Khz *** [c6xdsp ] [c6xdsp ] 5: SYSTEM : System Common Init in progress !!! [c6xdsp ] 5: SYSTEM: IPC init in progress !!! [c6xdsp ] 5: SYSTEM: Attaching to [HOST] ... [c6xdsp ] 1029: SYSTEM: Attaching to [HOST] ... [c6xdsp ] 1031: SYSTEM: Attaching to [HOST] ... SUCCESS !!! [c6xdsp ] 1031: SYSTEM: Attaching to [VIDEO-M3] ... After Ipc_startcallback status [0x00000000] [c6xdsp ] Remote Debug Shared Memory @ 0xbf000000 [m3video] Remote Debug Shared Memory @ 0xbf005020 [m3vpss ] Remote Debug Shared Memory @ 0xbf00a040 [m3vpss ] 4045: SYSTEM: Attaching to [DSP] ... [m3video] 4495: SYSTEM: Attaching to [DSP] ... [c6xdsp ] 2055: SYSTEM: Attaching to [VIDEO-M3] ... [m3vpss ] 5045: SYSTEM: Attaching to [DSP] ... [c6xdsp ] 2808: SYSTEM: Attaching to [VIDEO-M3] ... SUCCESS !!! [m3video] 5495: SYSTEM: Attaching to [DSP] ... [c6xdsp ] 2808: SYSTEM: Attaching to [VPSS-M3] ... [m3video] 5495: SYSTEM: Attaching to [DSP] ... SUCCESS !!! [m3video] 5495: SYSTEM: Attaching to [VPSS-M3] ... [m3vpss ] 6045: SYSTEM: Attaching to [DSP] ... [m3video] 6495: SYSTEM: Attaching to [VPSS-M3] ... [c6xdsp ] 3832: SYSTEM: Attaching to [VPSS-M3] ... [c6xdsp ] 4385: SYSTEM: Attaching to [VPSS-M3] ... SUCCESS !!! [m3vpss ] 7045: SYSTEM: Attaching to [DSP] ... [c6xdsp ] 4385: SYSTEM: Opening MsgQ Heap [IPC_MSGQ_MSG_HEAP] ... [m3vpss ] 7046: SYSTEM: Attaching to [DSP] ... SUCCESS !!! [m3vpss ] 7046: SYSTEM: Attaching to [VIDEO-M3] ... [m3video] 7495: SYSTEM: Attaching to [VPSS-M3] ... [m3video] 8046: SYSTEM: Attaching to [VPSS-M3] ... SUCCESS !!! [m3vpss ] 8045: SYSTEM: Attaching to [VIDEO-M3] ... [m3video] 8046: SYSTEM: Opening MsgQ Heap [IPC_MSGQ_MSG_HEAP] ... [m3vpss ] 8046: SYSTEM: Attaching to [VIDEO-M3] ... SUCCESS !!! [m3video] 8046: SYSTEM: Creating MsgQ [VIDEO-M3_MSGQ] ... [m3vpss ] 8046: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP] ... [m3video] 8046: SYSTEM: Creating MsgQ [VIDEO-M3_ACK_MSGQ] ... [m3vpss ] 8046: SYSTEM: Creating MsgQ [VPSS-M3_MSGQ] ... [m3video] 8048: SYSTEM: Notify register to [HOST] line 0, event 15 ... [m3vpss ] 8046: SYSTEM: Creating MsgQ [VPSS-M3_ACK_MSGQ] ... [m3video] 8048: SYSTEM: Notify register to [DSP] line 0, event 15 ... [m3vpss ] 8048: SYSTEM: Notify register to [HOST] line 0, event 15 ... [m3video] 8048: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ... [m3vpss ] 8048: SYSTEM: Notify register to [DSP] line 0, event 15 ... [m3video] 8048: SYSTEM: IPC init DONE !!! [m3vpss ] 8048: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ... [m3vpss ] 8048: SYSTEM: IPC init DONE !!! [c6xdsp ] 5408: SYSTEM: Opening MsgQ Heap [IPC_MSGQ_MSG_HEAP] ... [m3video] 8055: MEM: Shared Region 2: Base = 0xb0000000, Length = 0x0e9c0000 (233 MB) [m3vpss ] 8055: MEM: Shared Region 2: Base = 0xb0000000, Length = 0x0e9c0000 (233 MB) [c6xdsp ] 5408: SYSTEM: Creating MsgQ [DSP_MSGQ] ... [m3video] 8055: MEM: Shared Region 1: Base = 0x88000000, Length = 0x14a80000 (330 MB) [m3vpss ] 8055: MEM: Shared Region 1: Base = 0x88000000, Length = 0x14a80000 (330 MB) [c6xdsp ] 5408: SYSTEM: Creating MsgQ [DSP_ACK_MSGQ] ... [m3video] 8057: SYSTEM : System Common Init Done !!! [m3vpss ] 8057: SYSTEM : System Common Init Done !!! [c6xdsp ] 5409: SYSTEM: Notify register to [HOST] line 0, event 15 ... [m3video] 8057: SYSTEM : System Video Init in progress !!! [m3vpss ] 8057: SYSTEM : System VPSS Init in progress !!! [c6xdsp ] 5409: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ... [m3video] 8057: SYSTEM : System Video Init Done !!! [m3vpss ] === HDVPSS Clocks are enabled === [c6xdsp ] 5409: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ... [m3video] 8058: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_0] in region 0 ... [m3vpss ] === HDVPSS is fully functional === [c6xdsp ] 5409: SYSTEM: IPC init DONE !!! [m3video] 8058: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_0] in region 0 ... [m3vpss ] === HDVPSS module is not in standby === [c6xdsp ] 5411: MEM: Shared Region 2: Base = 0xb0000000, Length = 0x0e9c0000 (233 MB) [m3video] 8058: SYSTEM: ListElem Shared Addr = 0xbf18b680 [c6xdsp ] 5411: MEM: Shared Region 1: Base = 0x88000000, Length = 0x14a80000 (330 MB) [m3video] 8060: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_1] in region 0 ... [c6xdsp ] 5412: SYSTEM : System Common Init Done !!! [m3video] 8060: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_1] in region 0 ... [c6xdsp ] 5281: SYSTEM : System DSP Init in progress !!! [m3video] 8060: SYSTEM: ListElem Shared Addr = 0xbf1ae580 [c6xdsp ] 5281: SYSTEM : RpeServer_init() done... Ret Val 0!!! [c6xdsp ] 5415: SYSTEM: Creating ListMP [DSP_IPC_OUT_19] in region 0 ... [c6xdsp ] 5415: SYSTEM: Creating ListMP [DSP_IPC_IN_19] in region 0 ... [c6xdsp ] 5415: SYSTEM: ListElem Shared Addr = 0xbf18eb80 [c6xdsp ] 5416: SYSTEM: Creating ListMP [DSP_IPC_OUT_20] in region 0 ... [c6xdsp ] 5416: SYSTEM: Creating ListMP [DSP_IPC_IN_20] in region 0 ... [c6xdsp ] 5416: SYSTEM: ListElem Shared Addr = 0xbf1b1a80 [c6xdsp ] 5417: SYSTEM: Creating ListMP [DSP_IPC_OUT_21] in region 0 ... [m3video] 8066: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_19] in region 0 ... [m3vpss ] === I2C1 Clk is active === [c6xdsp ] 5417: SYSTEM: Creating ListMP [DSP_IPC_IN_21] in region 0 ... [m3video] 8066: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_19] in region 0 ... [m3vpss ] PLATFORM: UNKNOWN CPU detected, defaulting to VPS_PLATFORM_CPU_REV_2_0 [c6xdsp ] 5417: SYSTEM: ListElem Shared Addr = 0xbf1d1700 [m3video] 8066: SYSTEM: ListElem Shared Addr = 0xbf232e80 [m3vpss ] 8062: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_0] in region 0 ... [c6xdsp ] 5418: SYSTEM: Creating ListMP [DSP_IPC_OUT_24] in region 0 ... [m3video] 8068: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_20] in region 0 ... [m3vpss ] 8062: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_0] in region 0 ... [c6xdsp ] 5418: SYSTEM: Creating ListMP [DSP_IPC_IN_24] in region 0 ... [m3video] 8068: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_20] in region 0 ... [m3vpss ] 8062: SYSTEM: ListElem Shared Addr = 0xbf1f0e80 [c6xdsp ] 5418: SYSTEM: ListElem Shared Addr = 0xbf1f4380 [m3video] 8068: SYSTEM: ListElem Shared Addr = 0xbf252880 [m3vpss ] 8064: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_1] in region 0 ... [c6xdsp ] 5419: SYSTEM: Creating ListMP [DSP_IPC_OUT_25] in region 0 ... [m3video] 8071: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_21] in region 0 ... [m3vpss ] 8064: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_1] in region 0 ... [c6xdsp ] 5419: SYSTEM: Creating ListMP [DSP_IPC_IN_25] in region 0 ... [m3video] 8071: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_21] in region 0 ... [m3vpss ] 8065: SYSTEM: ListElem Shared Addr = 0xbf22f980 [c6xdsp ] 5419: SYSTEM: ListElem Shared Addr = 0xbf211e80 [m3video] 8071: SYSTEM: ListElem Shared Addr = 0xbf272280 [c6xdsp ] !!WARNING.Resource already registered:2 [c6xdsp ] 5289: SYSTEM : Initializing Links !!! [c6xdsp ] 5420: SYSTEM : FREE SPACE : System Heap = 10268448 B, Mbx = 10240 msgs) [m3vpss ] 8076: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_19] in region 0 ... [m3video] 8082: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_24] in region 0 ... [m3vpss ] 8076: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_19] in region 0 ... [c6xdsp ] 5303: SYSTEM : Initializing Links ... DONE !!! [m3vpss ] 8076: SYSTEM: ListElem Shared Addr = 0xbf291c80 [m3vpss ] 8078: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_20] in region 0 ... [c6xdsp ] 5304: SYSTEM : System DSP Init Done !!! [m3vpss ] 8079: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_20] in region 0 ... [m3vpss ] 8079: SYSTEM: ListElem Shared Addr = 0xbf2b1680 [m3vpss ] 8081: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_21] in region 0 ... [m3vpss ] 8081: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_21] in region 0 ... [m3vpss ] 8081: SYSTEM: ListElem Shared Addr = 0xbf2d1080 [m3video] 8082: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_24] in region 0 ... [m3vpss ] 8083: SYSTEM : HDVPSS Drivers Version: HDVPSS_01_00_01_37 [m3video] 8082: SYSTEM: ListElem Shared Addr = 0xbf2f0a80 [m3vpss ] 8083: SYSTEM : FVID2 Init in progress !!! [m3video] 8084: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_25] in region 0 ... [m3video] 8084: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_25] in region 0 ... [m3video] 8084: SYSTEM: ListElem Shared Addr = 0xbf30e580 [m3video] 8086: HDVICP: Doing PRCM for IVAHD[0] ... [m3video] 8086: HDVICP: PRCM for IVAHD[0] ... DONE. [m3video] 8086: HDVICP: Doing PRCM for IVAHD[1] ... [m3video] 8086: HDVICP: PRCM for IVAHD[1] ... DONE. [m3video] 8086: HDVICP: Doing PRCM for IVAHD[2] ... [m3video] 8087: HDVICP: PRCM for IVAHD[2] ... DONE. [m3video] 8087: SYSTEM : Initializing Links !!! [m3video] 8087: SYSTEM : FREE SPACE : System Heap = 6280232 B, Mbx = 10240 msgs) [m3video] 8087: SYSTEM : FREE SPACE : SR0 Heap = 13452672 B (12 MB) [m3video] 8087: SYSTEM : FREE SPACE : Frame Buffer = 245104512 B (233 MB) [m3video] 8088: SYSTEM : FREE SPACE : Bitstream Buffer = 346554240 B (330 MB) [m3video] 8088: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ... [m3vpss ] 8139: SYSTEM : FVID2 Init in progress DONE !!! [m3video] 8088: SYSTEM : FREE SPACE : Tiler 8-bit = 134217728 B (128 MB) - TILER ON [m3vpss ] 8139: SYSTEM : Device Init in progress !!! [m3video] 8089: SYSTEM : FREE SPACE : Tiler 16-bit = 134217728 B (128 MB) - TILER ON [m3vpss ] initPrms.isI2cInitReq = 0 [m3video] 8110: SYSTEM : Initializing Links ... DONE !!! [m3vpss ] initPrms.isI2cInitReq = 0 [m3vpss ] 8142: SYSTEM : Device Init in progress DONE !!! [m3vpss ] 8263: SYSTEM : System VPSS Init Done !!! [m3vpss ] 8263: UTILS: DMA: HWI Create for INT63 !!! [m3vpss ] 8263: SYSTEM : Initializing Links !!! [m3vpss ] 8263: SYSTEM : FREE SPACE : System Heap = 13112 B, Mbx = 10240 msgs) [m3vpss ] 8264: SYSTEM : FREE SPACE : SR0 Heap = 13452672 B (12 MB) [m3vpss ] 8264: SYSTEM : FREE SPACE : Frame Buffer = 240794496 B (229 MB) [m3vpss ] 8264: SYSTEM : FREE SPACE : Bitstream Buffer = 346554240 B (330 MB) [m3vpss ] 8264: SYSTEM : FREE SPACE : Tiler 8-bit = 134217728 B (128 MB) - TILER ON [m3vpss ] 8264: SYSTEM : FREE SPACE : Tiler 16-bit = 134217728 B (128 MB) - TILER ON [m3vpss ] 8348: SYSTEM : Initializing Links ... DONE !!! [m3vpss ] Received character 's' [m3vpss ] 8348: SYSTEM : Set Static L3 pressure for HDVPSS as High [c6xdsp ] Remote Debug Shared Memory @ 0xbf000000 [m3video] Remote Debug Shared Memory @ 0xbf005020 [m3vpss ] Remote Debug Shared Memory @ 0xbf00a040 [m3video] Received character 's' [c6xdsp ] Remote Debug Shared Memory @ 0xbf000000 [m3video] Remote Debug Shared Memory @ 0xbf005020 [m3vpss ] Remote Debug Shared Memory @ 0xbf00a040 [c6xdsp ] Received character 's' /mnt/opt/dvr_rdk/ti816x ORG 0x46c00524: 0 NEW 0x46c00524: 2 ATsha204 -1.0 check success 0: SYSTEM: System Common Init in progress !!! 0: SYSTEM: IPC init in progress !!! 18: SYSTEM: Opening MsgQ Heap [IPC_MSGQ_MSG_HEAP] ... 20: SYSTEM: Creating MsgQ [HOST_MSGQ] ... 21: SYSTEM: Creating MsgQ [HOST_ACK_MSGQ] ... 22: SYSTEM: Opening MsgQ [DSP_MSGQ] ... 23: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ... 23: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ... 24: SYSTEM: Notify register to [DSP] line 0, event 15 ... 25: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ... 25: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ... 26: SYSTEM: IPC init DONE !!! 27: SYSTEM: Creating ListMP [HOST_IPC_OUT_24] in region 0 ... 29: SYSTEM: Creating ListMP [HOST_IPC_IN_24] in region 0 ... 30: SYSTEM: ListElem Shared Addr = 0x4085c080 32: SYSTEM: Creating ListMP [HOST_IPC_OUT_25] in region 0 ... 34: SYSTEM: Creating ListMP [HOST_IPC_IN_25] in region 0 ... 36: SYSTEM: ListElem Shared Addr = 0x40879b80 38: SYSTEM: Creating ListMP [HOST_IPC_OUT_19] in region 0 ... 40: SYSTEM: Creating ListMP [HOST_IPC_IN_19] in region 0 ... 41: SYSTEM: ListElem Shared Addr = 0x40897680 43: SYSTEM: Creating ListMP [HOST_IPC_OUT_20] in region 0 ... 45: SYSTEM: Creating ListMP [HOST_IPC_IN_20] in region 0 ... 46: SYSTEM: ListElem Shared Addr = 0x408b7080 47: SYSTEM: Creating ListMP [HOST_IPC_OUT_21] in region 0 ... 49: SYSTEM: Creating ListMP [HOST_IPC_IN_21] in region 0 ... 51: SYSTEM: ListElem Shared Addr = 0x408d6a80 68: SYSTEM: System Common Init Done !!! sii9233 init start sii9233 init done MDIN325 Init Done! pcie video channel Init Done! 1734: CHAINS : CPU Revision [ES2.0] !!! 1734: CHAINS : Detected [UNKNOWN] Board !!! 1734: CHAINS : Base Board Revision [REV A] !!! [host] 1958: IPC_FRAMES_OUT : Create in progress !!! [host] 1959: IPC_FRAMES_OUT : Create Done !!! [m3vpss ] 13177: CAPTURE: Create in progress !!! [m3vpss ] 13208: CAPTURE: VIP0 PortA capture mode is [ 8-bit, Non-mux Discrete Sync - ACTVID_VSYNC] !!! [m3vpss ] CAPTURE:Create args numBufsPerCh[4] < min[6]Overriding create args [m3vpss ] 13261: CAPTURE: VIP0 PortB capture mode is [ 8-bit, Non-mux Discrete Sync - ACTVID_VSYNC] !!! [m3vpss ] 13314: CAPTURE: VIP1 PortA capture mode is [ 8-bit, Non-mux Discrete Sync - ACTVID_VSYNC] !!! [m3vpss ] 13367: CAPTURE: VIP1 PortB capture mode is [ 8-bit, Non-mux Discrete Sync - ACTVID_VSYNC] !!! [m3vpss ] 13559: CAPTURE: 0: 0xb32b1480, 1280 x 720, 001c2000 B --> Extra Frames [m3vpss ] 13559: CAPTURE: 1: 0xb3473480, 1280 x 720, 001c2000 B --> Extra Frames [m3vpss ] 13559: CAPTURE: 2: 0xb3635480, 1280 x 720, 001c2000 B --> Extra Frames [m3vpss ] 13559: CAPTURE: 3: 0xb37f7480, 1280 x 720, 001c2000 B --> Extra Frames [m3vpss ] 13559: CAPTURE: 4: 0xb39b9480, 1280 x 720, 001c2000 B --> Extra Frames [m3vpss ] 13559: CAPTURE: 5: 0xb3b7b480, 1280 x 720, 001c2000 B --> Extra Frames [m3vpss ] 13559: CAPTURE: 6: 0xb3d3d480, 1280 x 720, 001c2000 B --> Extra Frames [m3vpss ] 13559: CAPTURE: 7: 0xb3eff480, 1280 x 720, 001c2000 B --> Extra Frames [m3vpss ] 13560: CAPTURE: 8: 0xb40c1480, 1280 x 720, 001c2000 B --> Extra Frames [m3vpss ] 13560: CAPTURE: 9: 0xb4283480, 1280 x 720, 001c2000 B --> Extra Frames [m3vpss ] 13560: CAPTURE: 10: 0xb4445480, 1280 x 720, 001c2000 B --> Extra Frames [host] CHAINS_IPCALLOCBUF:Translated Addr Virt:0x40ab1900 To Phy:0xbf581900 Shared:0x481900 [host] CHAINS_IPCALLOCBUF:Translated Addr Virt:0x40ade900 To Phy:0xbf5ae900 Shared:0x4ae900 [host] CHAINS_IPCALLOCBUF:Translated Addr Virt:0x40b0b900 To Phy:0xbf5db900 Shared:0x4db900 [host] CHAINS_IPCALLOCBUF:Translated Addr Virt:0x40b38900 To Phy:0xbf608900 Shared:0x508900 [m3vpss ] 13560: CAPTURE: 11: 0xb4607480, 1280 x 720, 001c2000 B --> Extra Frames [m3vpss ] 13560: CAPTURE: 12: 0xb47c9480, 1280 x 720, 001c2000 B --> Extra Frames [m3vpss ] 13560: CAPTURE: 13: 0xb498b480, 1280 x 720, 001c2000 B --> Extra Frames [m3vpss ] 13560: CAPTURE: 14: 0xb4b4d480, 1280 x 720, 001c2000 B --> Extra Frames [m3vpss ] 13560: CAPTURE: 15: 0xb4d0f480, 1280 x 720, 001c2000 B --> Extra Frames [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 58 (58) [host] CHAINS_IPCALLOCBUF:Translated Addr Virt:0x40b65900 To Phy:0xbf635900 Shared:0x535900DST:0x0080a8c0,FLAGS:0x00000001,GW:0x00000000,MASK:0x00ffffff DST:0x00000000,FLAGS:0x00000003,GW:0xfe80a8c0,MASK:0x00000000 [host] CHAINS_IPCALLOCBUF:Translated Addr Virt:0x40b92900 To Phy:0xbf662900 Shared:0x562900 [host] CHAINS_IPCALLOCBUF:Translated Addr Virt:0x40bbf900 To Phy:0xbf68f900 Shared:0x58f900 [host] CHAINS_IPCALLOCBUF:Translated Addr Virt:0x40bec900 To Phy:0xbf6bc900 Shared:0x5bc900 [host] CHAINS_IPCALLOCBUF:Translated Addr Virt:0x40c19900 To Phy:0xbf6e9900 Shared:0x5e9900 [m3vpss ] CAPTURE::HEAPID:0 USED:992 [m3vpss ] CAPTURE::HEAPID:4 USED:78336000 [m3vpss ] 13561: CAPTURE: Create Done !!! [host] CHAINS_IPCALLOCBUF:Translated Addr Virt:0x40c46900 To Phy:0xbf716900 Shared:0x616900DST:0x0080a8c0,FLAGS:0x00000001,GW:0x00000000,MASK:0x00ffffff DST:0x00000000,FLAGS:0x00000003,GW:0xfe80a8c0,MASK:0x00000000 [host] 2389: IPC_BITS_OUT : Create in progress !!! ###Bit buff of size from the SR # 1 : 33177600 [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:0,Size:0x1FA4000 [host] IPCBITSOUTLINK:Translated Addr Virt:0x41754d80 To Phy:0x88160d80 [host] 2390: IPC_BITS_OUT : Create Done !!! [m3video] 13607: IPC_BITS_IN : Create in progress !!! [m3video] 13608: SYSTEM: Opening ListMP [HOST_IPC_OUT_24] ... [m3video] 13608: SYSTEM: Opening ListMP [HOST_IPC_IN_24] ... [m3video] 13609: SYSTEM: Opening MsgQ [HOST_MSGQ] ... [m3video] 13611: IPC_BITS_IN : Create Done !!! [m3video] 13612: DECODE: Create in progress ... !!! [m3vpss ] 13759: IPC_IN_M3 : Create in progress !!! [m3video] DECLINK_H264:HEAPID:0 USED:4264 [m3vpss ] 13760: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_0] ... [m3video] DECLINK_H264:HEAPID:3 USED:29274112 [m3vpss ] 13760: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_0] ... [m3video] 13754: DECODE: Creating CH0 of 1920 x 1080 [PROGRESSIVE] [TILED ],target bitrate = 1000 Kbps ... [m3vpss ] 13761: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ... [m3video] 13755: DECODE: All CH Create ... DONE !!! [m3vpss ] 13762: IPC_IN_M3 : Create Done !!! [m3vpss ] 13763: SWMS: Create in progress !!! [m3video] DECLINK:HEAPID:0 USED:4384 [m3video] DECLINK:HEAPID:3 USED:29274112 [m3video] 13757: DECODE: Create ... DONE !!! [m3video] 13758: IPC_OUT_M3 : Create in progress !!! [m3video] 13758: IPC_OUT_M3 : Create Done !!! [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 59 (59) [m3vpss ] SWMS: instance 0, sc id 6, start win 0 end win 17 [m3vpss ] 13810: SWMS : VipScReq is FALSE!!! [m3vpss ] 13813: SWMS3 : Loading Vertical Co-effs (UPSCALE)x ... [m3vpss ] 13813: SWMS3 : Loading Horizontal Co-effs (UPSCALE)x ... [m3vpss ] 13813: SWMS : Co-effs Loading ... DONE !!! [m3vpss ] [m3vpss ] 13832: SWMS : ******* Configuring clock 16 secs... [m3vpss ] 13832: SWMS3 : Loading Vertical Co-effs (10/16)x ... [m3vpss ] 13832: SWMS3 : Loading Horizontal Co-effs (11/16)x ... [m3vpss ] 13832: SWMS : Co-effs Loading ... DONE !!! [m3vpss ] [m3vpss ] *** [SWMS3] Mosaic Parameters *** [m3vpss ] [m3vpss ] Output FPS: 60 [m3vpss ] [m3vpss ] Win | Ch | Input | Input | Input | Input | Output | Output | Output | Output | Low Cost | SWMS | Data | Blank | [m3vpss ] Num | Num | Start X, Y | Width x Height | Pitch Y / C | Memory Type | Start X, Y | Width x Height | Pitch Y / C | Memory Type | ON / OFF | Inst | Format| Frame | [m3vpss ] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- [m3vpss ] 0 | 0 | 0, 0 | 1920 x 1080 | 16384 / 32768 | TILED | 0, 0 | 1280 x 720 | 2560 / 0 | NON-TILED | ON | 0 | 420SP | OFF | [m3vpss ] [c6xdsp ] 11294: IPC_FRAMES_IN : Create in progress !!! [c6xdsp ] 11294: SYSTEM: Opening ListMP [VPSS-M3_IPC_OUT_19] ... [m3vpss ] SWMS:HEAPID:0 USED:360 [c6xdsp ] 11294: SYSTEM: Opening ListMP [VPSS-M3_IPC_IN_19] ... [m3vpss ] SWMS:HEAPID:1 USED:19360 [c6xdsp ] 11295: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ... [m3vpss ] SWMS:HEAPID:4 USED:9216000 [m3vpss ] 13834: SWMS: Create Done !!! [m3vpss ] 13835: IPC_FRAMES_IN : Create in progress !!! [m3vpss ] 13835: SYSTEM: Opening ListMP [HOST_IPC_OUT_19] ... [m3vpss ] 13835: SYSTEM: Opening ListMP [HOST_IPC_IN_19] ... [m3vpss ] 13837: SYSTEM: Opening MsgQ [HOST_MSGQ] ... [m3vpss ] IPC_FRAMES_IN:HEAPID:0 USED:304 [c6xdsp ] IPC_FRAMES_IN:HEAPID:0 USED:304 [m3vpss ] 13839: IPC_FRAMES_IN : Create Done !!! [c6xdsp ] 11296: IPC_FRAMES_IN : Create Done !!! [m3vpss ] 13840: MERGE : Create Done !!! [c6xdsp ] 11298: ALG : Create in progress !!! [m3vpss ] 13841: IPC_FRAMES_OUT : Create in progress !!! [c6xdsp ] 11305: ALG : Create Done !!! [m3vpss ] 13843: IPC_FRAMES_OUT : Create Done !!! [m3vpss ] 13860: DUP : Create Done !!! [m3vpss ] 13860: SWMS: Create in progress !!! [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 60 (60) [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 61 (61) [m3vpss ] SWMS: instance 0, sc id 6, start win 0 end win 2 [m3vpss ] 13962: SWMS : VipScReq is FALSE!!! [m3vpss ] 13963: SWMS0 : Loading Vertical Co-effs (UPSCALE)x ... [m3vpss ] 13963: SWMS0 : Loading Horizontal Co-effs (UPSCALE)x ... [m3vpss ] 13963: SWMS : Co-effs Loading ... DONE !!! [m3vpss ] SWMS: instance 1, sc id 7, start win 3 end win 20 [m3vpss ] 13963: SWMS : VipScReq is FALSE!!! [m3vpss ] 13967: SWMS0 : Loading Vertical Co-effs (UPSCALE)x ... [m3vpss ] 13967: SWMS0 : Loading Horizontal Co-effs (UPSCALE)x ... [m3vpss ] 13967: SWMS : Co-effs Loading ... DONE !!! [m3vpss ] [m3vpss ] 13986: SWMS : ******* Configuring clock 33 secs... [m3vpss ] 13986: SWMS0 : Loading Vertical Co-effs (UPSCALE)x ... [m3vpss ] 13986: SWMS0 : Loading Horizontal Co-effs (UPSCALE)x ... [m3vpss ] 13986: SWMS : Co-effs Loading ... DONE !!! [m3vpss ] [m3vpss ] *** [SWMS0] Mosaic Parameters *** [m3vpss ] [m3vpss ] Output FPS: 30 [m3vpss ] [m3vpss ] Win | Ch | Input | Input | Input | Input | Output | Output | Output | Output | Low Cost | SWMS | Data | Blank | [m3vpss ] Num | Num | Start X, Y | Width x Height | Pitch Y / C | Memory Type | Start X, Y | Width x Height | Pitch Y / C | Memory Type | ON / OFF | Inst | Format| Frame | [m3vpss ] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- [m3vpss ] 0 | 3 | 0, 0 | 1280 x 360 | 5120 / 5120 | NON-TILED | 0, 0 | 1280 x 720 | 3840 / 0 | NON-TILED | ON | 0 | 422I | OFF | [m3vpss ] 1 | 1 | 0, 0 | 1280 x 360 | 5120 / 5120 | NON-TILED | 1280, 0 | 640 x 360 | 3840 / 0 | NON-TILED | ON | 0 | 422I | OFF | [m3vpss ] 2 | 2 | 0, 0 | 1280 x 360 | 5120 / 5120 | NON-TILED | 1280, 360 | 640 x 360 | 3840 / 0 | NON-TILED | ON | 0 | 422I | OFF | [m3vpss ] 3 | 0 | 0, 0 | 1280 x 360 | 5120 / 5120 | NON-TILED | 0, 720 | 640 x 360 | 3840 / 0 | NON-TILED | ON | 1 | 422I | OFF | [m3vpss ] 4 | 4 | 0, 0 | 1280 x 720 | 2560 / 0 | NON-TILED | 640, 720 | 640 x 360 | 3840 / 0 | NON-TILED | OFF | 1 | 422I | OFF | [m3vpss ] 5 | 5 | 0, 0 | 1280 x 360 | 5120 / 0 | NON-TILED | 1280, 720 | 640 x 360 | 3840 / 0 | NON-TILED | ON | 1 | 422I | OFF | [m3vpss ] [c6xdsp ] 11450: ALG : Create in progress !!! [m3vpss ] SWMS:HEAPID:0 USED:792 [m3vpss ] SWMS:HEAPID:1 USED:19696 [c6xdsp ] ALGLINK:HEAPID:0 USED:2616 [m3vpss ] SWMS:HEAPID:4 USED:20736000 [c6xdsp ] ALGLINK:HEAPID:1 USED:12304 [m3vpss ] 13989: SWMS: Create Done !!! [c6xdsp ] 11458: ALG : Create Done !!! [m3vpss ] 13990: IPC_FRAMES_OUT : Create in progress !!! [m3vpss ] 13992: IPC_FRAMES_OUT : Create Done !!! [m3vpss ] 14011: DUP : Create Done !!! [m3vpss ] 14011: DISPLAY: Create in progress !!! [m3vpss ] 14012: DISPLAY: Create Done !!! [m3vpss ] 14012: SWMS: Create in progress !!! [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 62 (62) [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 63 (63) [m3vpss ] SWMS: instance 0, sc id 6, start win 0 end win 2 [m3vpss ] 14086: SWMS : VipScReq is FALSE!!! [m3vpss ] 14087: SWMS1 : Loading Vertical Co-effs (UPSCALE)x ... [m3vpss ] 14087: SWMS1 : Loading Horizontal Co-effs (UPSCALE)x ... [m3vpss ] 14087: SWMS : Co-effs Loading ... DONE !!! [m3vpss ] SWMS: instance 1, sc id 7, start win 3 end win 20 [m3vpss ] 14087: SWMS : VipScReq is FALSE!!! [m3vpss ] 14090: SWMS1 : Loading Vertical Co-effs (UPSCALE)x ... [m3vpss ] 14090: SWMS1 : Loading Horizontal Co-effs (UPSCALE)x ... [m3vpss ] 14090: SWMS : Co-effs Loading ... DONE !!! [m3vpss ] [m3vpss ] 14109: SWMS : ******* Configuring clock 16 secs... [m3vpss ] 14109: SWMS1 : Loading Vertical Co-effs (UPSCALE)x ... [m3vpss ] 14109: SWMS1 : Loading Horizontal Co-effs (UPSCALE)x ... [m3vpss ] 14109: SWMS : Co-effs Loading ... DONE !!! [m3vpss ] [m3vpss ] *** [SWMS1] Mosaic Parameters *** [m3vpss ] [m3vpss ] Output FPS: 60 [m3vpss ] [m3vpss ] Win | Ch | Input | Input | Input | Input | Output | Output | Output | Output | Low Cost | SWMS | Data | Blank | [m3vpss ] Num | Num | Start X, Y | Width x Height | Pitch Y / C | Memory Type | Start X, Y | Width x Height | Pitch Y / C | Memory Type | ON / OFF | Inst | Format| Frame | [m3vpss ] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- [m3vpss ] 0 | 4 | 0, 0 | 1280 x 720 | 2560 / 0 | NON-TILED | 0, 0 | 1280 x 720 | 2560 / 0 | NON-TILED | OFF | 0 | 422I | OFF | [m3vpss ] [m3vpss ] SWMS:HEAPID:0 USED:792 [m3vpss ] SWMS:HEAPID:1 USED:16176 [m3vpss ] SWMS:HEAPID:4 USED:14745600 [m3vpss ] 14111: SWMS: Create Done !!! [m3vpss ] 14114: DUP : Create Done !!! [m3vpss ] 14115: DISPLAY: Create in progress !!! [m3vpss ] 14115: DISPLAY: Create Done !!! [m3vpss ] 14117: MERGE : Create Done !!! [m3vpss ] 14120: DUP : Create Done !!! [m3vpss ] 14121: SELECT: OUT QUE0: OUT CH0: IN CH4: 1280 x 720, pitch = (2560, 0) [PROGRESSIVE] [NON-TILED ] [m3vpss ] 14121: SELECT: OUT QUE0: OUT CH1: IN CH6: 1920 x 1080, pitch = (3840, 0) [PROGRESSIVE] [NON-TILED ] [m3vpss ] 14122: SELECT : Create Done !!! [m3vpss ] 14122: SELECT: OUT QUE0: OUT CH0: IN CH6: 1920 x 1080, pitch = (3840, 0) [PROGRESSIVE] [NON-TILED ] [m3vpss ] 14123: SELECT : Create Done !!! [m3vpss ] 14123: SCLR: Create in progress !!! [m3vpss ] 14144: SCLR : Loading Up-scaling Co-effs ... [m3vpss ] 14144: SCLR : Co-effs Loading ... DONE !!! [m3vpss ] SCLR:HEAPID:0 USED:64 [m3vpss ] SCLR:HEAPID:1 USED:5952 [m3vpss ] SCLR:HEAPID:4 USED:4147200 [m3vpss ] 14144: SCLR: Create Done !!! [m3vpss ] 14145: SELECT: OUT QUE0: OUT CH0: IN CH3: 1280 x 720, pitch = (2560, 2560) [PROGRESSIVE] [NON-TILED ] [m3vpss ] 14145: SELECT : Create Done !!! [m3vpss ] 14147: MERGE : Create Done !!! [m3vpss ] 14147: SELECT: OUT QUE0: OUT CH0: IN CH6: 1920 x 1080, pitch = (3840, 0) [PROGRESSIVE] [NON-TILED ] [m3vpss ] 14148: SELECT : Create Done !!! [m3vpss ] 14148: SWMS: Create in progress !!! [m3vpss ] 14169: Assertion @ Line: 103 in links_m3vpss/swMs/swMsLink_drv.c: status==FVID2_SOK : failed !!! 2954:!!!SLAVE CORE [VPSS-M3] DOWN!!! SystemLink_copySlaveCoreExceptionContext:146 mmap of [0xbe9e0000:36864] mmap virt addresss:0x4006b000 munmap of [0x4006b000:36864] SystemLink_copySlaveCoreExceptionContext:153
But if I used 3 Swms LINK, SYSTEM_LINK_ID_SW_MS_MULTI_INST_0, SYSTEM_LINK_ID_SW_MS_MULTI_INST_1 are required, then select one from SYSTEM_LINK_ID_SW_MS_MULTI_INST_2 and SYSTEM_LINK_ID_SW_MS_MULTI_INST_3(of course if one SwmsLINK is removed, relative branch will be removed completely), it works properly.
How can I fixed this issue?
Best Regards!