您的位置:首页 > 其它

some problems in video quality detect

2014-04-01 17:17 211 查看
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.

:DeletePic]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)

{

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: