fix memory leak

master v0.3.10
mpromonet 2 weeks ago
parent ef86de3922
commit ce808915ed

@ -1 +1 @@
Subproject commit 81181c8ca49c56533dbf6b6fe59f13c77ba7f576
Subproject commit 3eff050e79e76eecd240a07e5406f0787ca4af3f

@ -103,28 +103,20 @@ void* V4L2DeviceSource::thread()
int ret = select(fd+1, &fdset, NULL, NULL, &tv);
if (ret == 1)
{
if (FD_ISSET(fd, &fdset))
LOG(DEBUG) << "waitingFrame\tdelay:" << (1000-(tv.tv_usec/1000)) << "ms";
if (this->getNextFrame() <= 0)
{
LOG(DEBUG) << "waitingFrame\tdelay:" << (1000-(tv.tv_usec/1000)) << "ms";
if (this->getNextFrame() <= 0)
if (errno == EAGAIN)
{
if (errno == EAGAIN)
{
LOG(NOTICE) << "Retrying getNextFrame";
}
else
{
LOG(ERROR) << "error:" << strerror(errno);
stop=1;
}
LOG(DEBUG) << "Retrying getNextFrame";
}
else
{
LOG(ERROR) << "error:" << strerror(errno);
stop=1;
}
}
}
else if (ret == -1)
{
LOG(ERROR) << "stop " << strerror(errno);
stop=1;
}
}
LOG(NOTICE) << "end thread";
return NULL;
@ -208,10 +200,12 @@ int V4L2DeviceSource::getNextFrame()
if (frameSize < 0)
{
LOG(NOTICE) << "V4L2DeviceSource::getNextFrame errno:" << errno << " " << strerror(errno);
delete [] buffer;
}
else if (frameSize == 0)
{
LOG(NOTICE) << "V4L2DeviceSource::getNextFrame no data errno:" << errno << " " << strerror(errno);
LOG(DEBUG) << "V4L2DeviceSource::getNextFrame no data errno:" << errno << " " << strerror(errno);
delete [] buffer;
}
else
{

Loading…
Cancel
Save