Skip to content
This repository was archived by the owner on May 6, 2021. It is now read-only.

Commit 46c0cf1

Browse files
committed
Fixed json value lookup
Only close the amlogic device every 20th succesfull reads.
1 parent ccb9b98 commit 46c0cf1

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

libsrc/grabber/amlogic/AmlogicGrabber.cpp

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,8 @@ int AmlogicGrabber::grabFrame(Image<ColorBgr> & image)
122122
{
123123
// Failed to configure frame width
124124
std::cerr << "[" << __PRETTY_FUNCTION__ << "] Failed to configure capture size (" << errno << "): " << strerror(errno) << std::endl;
125+
close(_amlogicCaptureDev);
126+
_amlogicCaptureDev = -1;
125127
return -1;
126128
}
127129

@@ -133,18 +135,27 @@ int AmlogicGrabber::grabFrame(Image<ColorBgr> & image)
133135
if (bytesRead == -1)
134136
{
135137
std::cerr << "[" << __PRETTY_FUNCTION__ << "] Read of device failed (erno=" << errno << "): " << strerror(errno) << std::endl;
138+
close(_amlogicCaptureDev);
139+
_amlogicCaptureDev = -1;
136140
return -1;
137141
}
138142
else if (bytesToRead != bytesRead)
139143
{
140144
// Read of snapshot failed
141145
std::cerr << "[" << __PRETTY_FUNCTION__ << "] Capture failed to grab entire image [bytesToRead(" << bytesToRead << ") != bytesRead(" << bytesRead << ")]" << std::endl;
146+
close(_amlogicCaptureDev);
147+
_amlogicCaptureDev = -1;
142148
return -1;
143149
}
144150

145-
// For now we always close the device again
146-
close(_amlogicCaptureDev);
147-
_amlogicCaptureDev = -1;
148-
151+
// For now we always close the device now and again
152+
static int readCnt = 0;
153+
++readCnt;
154+
if (readCnt > 20)
155+
{
156+
close(_amlogicCaptureDev);
157+
_amlogicCaptureDev = -1;
158+
readCnt = 0;
159+
}
149160
return 0;
150161
}

src/hyperiond/hyperiond.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ int main(int argc, char** argv)
274274
FramebufferWrapper * fbGrabber = nullptr;
275275
if (config.isMember("framebuffergrabber") || config.isMember("framegrabber"))
276276
{
277-
const Json::Value & grabberConfig = config.isMember("framebuffergrabber")? config["framebuffergrabber"] : config.isMember("framegrabber");
277+
const Json::Value & grabberConfig = config.isMember("framebuffergrabber")? config["framebuffergrabber"] : config["framegrabber"];
278278
fbGrabber = new FramebufferWrapper(
279279
grabberConfig.get("device", "/dev/fb0").asString(),
280280
grabberConfig["width"].asUInt(),

0 commit comments

Comments
 (0)