some problems in video quality detect

1.淮安服务器视频质量检测cpu 使用率高
myvideo
{return;}
只拉流不检测
2.本机正常运行的videodetect,在苏州服务器运行一段时间推出
parseTask打印信息:
starTim[32];
CString p_H264Stream->StaTim;//"2013-12-11 14:17:12"
memcpy(starTim,p_H264Stream->StaTim,32);
//change to
memcpy(starTim,p_H264Stream->StaTim,p_H264Stream->StaTim.GetLength());
代码移植可能存在优化问题
3.
http://10.20.90.242:8080/TN3:[parTask]:DeletePic return -1
每三段时间保村图片时,由于周期设置过短<15,而判断文件是否存在的函数有*延时*,导致三段时间有部分段没保存图片
0324-1.
m_Frame=NULL;
p_H264Stream->m_streamlock.Lock();
if (p_H264Stream->p_Array.GetSize()>0)
{
 m_Frame=p_H264Stream->p_Array.ElementAt(0);
 p_H264Stream->p_Array.RemoveAt(0);
}
p_H264Stream->m_streamlock.Unlock();
//end get data from p_Array
if (m_Frame!=NULL)
{
}
是否会出现检测过程视频由在线变为不在线,若出现则阻塞;
该情况不需要考虑因为在服务器状态检测线程里,循环监测视频是否在线,若不在线则,发出结束三个线程的命令
0324-2.
16路检测异常时不易定位改为1路测试
0325-1.
change server state tcp-connect from normal(block) to none-block

0325-2.
TRACE("[parseTask]:resOldTim:%d,resTestOldTim:%d,Updata:%d,coeInd:%d\n",resOldTim,resTestOldTim,Updata,coeInd);
only Updata==1;else ==0 ;
and m_Frame frequently ==null;
原因:部分在线的视频无法观看,解决办法:在发送线程加判断条件,如果超过检测周期无发送数据则结束相关线程
0325-3.
多线程:1.线程运行状态打印2.线程退出打印3.线程异常阻塞的退出
0325-4.
multiThread:
exit before CheckUrlOnline  == exit suE_JB098 before recHttpBody
maybe:
 HttpData=(char*)malloc(dataLen+1);//did not init
 ret=strstr(pBuf,serch);
so add:
 memset(HttpData,0,sizeof(dataLen+1));
0326-1.
add mutexLock before close stream
in multiThread,if more threads execute close(m_a)(m_a is shared member),must add mutexlock,but m_a=1 do not must add lock;
0326-2.
 if(HttpData)
  free(HttpData);
0327-1.
之前每次读取配置文件都new16路对象,会内存泄露
改为仅第一次new16路对象,以后如构造函数一样reset成员变量
0327-2.
todo:netTsk 考虑p_H264Stream->Istask
0328-1.
typedef struct
{
 char DiuShi[16];
 char ZheDang[16];
 char DuiJiao[16];
 char LiangDu[16];
 char DongJie[16];
 char XueHua[16];
 char ShanShuo[16];
 char GunWen[16];

 char CmdId[64];
 char SrvIP[64];
 char SrvPort[16];
 char StreamName[64];
 char StreamProtocol[64];
}_YiChang;//information of post
old code memset each member but ignore to memset of GunWen new added
so change to:
 memset(&YCH,0,sizeof(YCH));
0331-1.
add StreamOffCmdId,StreamOffStpTim,StreamOffStaTim
0331-2.when exception use resetAll to reset once instead of reset every time
  if(1==resetAll)//err reset all
  {
   if (m_Frame!=NULL){
    delete m_Frame;
    m_Frame=NULL;
   }
   Updata=1;
   resOldTim=1;
   resTestOldTim=1;
   coeInd=0;
   memset(naParRes,0,sizeof(naParRes));
   memset(fDetectRes,0,sizeof(fDetectRes));
   memset(chDetRes,0,sizeof(chDetRes));
   resetAll=0;
  }
0331-2.
det=NextDetect(&Ind);
add if(det!=1) before TRACE Ind
0331-3.
old:
fdClient1=ConnectTCP(Ip,port1);
if(fdClient1<0){//server off -2
 NetClose(fdClient1);
 return -2;
}
problem:in ConnectTCP if return -1 fdClient1 has been closed
new:
fdClient1=ConnectTCP(Ip,port1);
if(fdClient1<0){//server off -2
      //NetClose(fdClient1);
 return -2;
}
0401-1.
in a function,when declare quantity,sort in types below:
//pointer
//constant
//variable
0401-2.
add mutex when
SenLog.InitLog();
SenLog.Add();
0401-3.
memset(&m_MicrovideoParams,0,sizeof(m_MicrovideoParams));
determined to memset struct with CString member,but cannot do this,it will broke CString
0401-4.
if continue malloc(),will program exit?
0401-5.
catch exception when read config,parsetsk,sentsk,serverstatetsk
try
{}
catch (CMemoryException* e)
{
}
catch (CFileException* e)
{
}
catch (CException* e)
{
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值