|
@@ -16,6 +16,10 @@
|
|
|
#include <QWaitCondition>
|
|
|
#include <thread>
|
|
|
|
|
|
+#include "zerobuffer.h"
|
|
|
+
|
|
|
+ZeroBuffer * gbuffer;
|
|
|
+
|
|
|
extern char * gstrbuffer;
|
|
|
extern QMutex gMutexLock;
|
|
|
extern bool gbNewData;
|
|
@@ -52,7 +56,7 @@ void threadout()
|
|
|
nout = gnoutsize;
|
|
|
gbNewOut = false;
|
|
|
gMutexout.unlock();
|
|
|
- std::cout<<"send out. "<<std::endl;
|
|
|
+ // std::cout<<"send out. "<<std::endl;
|
|
|
iv::modulecomm::ModuleSendMsg(gpaout,strout,nout);
|
|
|
}
|
|
|
}
|
|
@@ -62,7 +66,7 @@ void Listenpic(const char * strdata,const unsigned int nSize,const unsigned int
|
|
|
{
|
|
|
if(nSize<1000)return;
|
|
|
iv::vision::rawpic pic;
|
|
|
- std::cout<<"rec. "<<std::endl;
|
|
|
+// std::cout<<"rec. "<<std::endl;
|
|
|
if(false == pic.ParseFromArray(strdata,nSize))
|
|
|
{
|
|
|
std::cout<<"picview Listenpic fail."<<std::endl;
|
|
@@ -85,13 +89,25 @@ void Listenpic(const char * strdata,const unsigned int nSize,const unsigned int
|
|
|
QTime xTime;
|
|
|
xTime.start();
|
|
|
cv::cvtColor(mat, dstYuvImage, CV_BGR2YUV_I420);
|
|
|
- std::cout<<" cvt time: "<<xTime.elapsed()<<std::endl;
|
|
|
+// std::cout<<" cvt time: "<<xTime.elapsed()<<std::endl;
|
|
|
+
|
|
|
+// char * p;
|
|
|
+// int nrtn = gbuffer->RequireBuffer(&p,1000);
|
|
|
+// if(nrtn < 0)
|
|
|
+// {
|
|
|
+// std::cout<<" Get Zero Buffer Fail."<<std::endl;
|
|
|
+// return;
|
|
|
+// }
|
|
|
+// memcpy(p,(char *)dstYuvImage.data,gnwidth*gnheight*3/2);
|
|
|
+// gbuffer->UpdateDataSize(gnwidth*gnheight*3/2);
|
|
|
+// gbuffer->ReleaseBuffer();
|
|
|
+
|
|
|
gMutexLock.lock();
|
|
|
memcpy(gstrbuffer,(char *)dstYuvImage.data,gnwidth*gnheight*3/2);
|
|
|
gbNewData = true;
|
|
|
gMutexLock.unlock();
|
|
|
gwc.wakeAll();
|
|
|
-// xFileYUV.write((char *)dstYuvImage.data,gwidth*gheight*3/2);
|
|
|
+ // xFileYUV.write((char *)dstYuvImage.data,gwidth*gheight*3/2);
|
|
|
|
|
|
}
|
|
|
|
|
@@ -100,6 +116,7 @@ int main(int argc, char *argv[])
|
|
|
{
|
|
|
QCoreApplication a(argc, argv);
|
|
|
|
|
|
+ gbuffer = new ZeroBuffer(30000000);
|
|
|
gstrbuffer = new char[30000000];
|
|
|
gstrout = new char[10000000];
|
|
|
gnwidth = atoi(gstrwidth);
|