This repository was archived by the owner on May 6, 2021. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +16
-5
lines changed Expand file tree Collapse file tree 2 files changed +16
-5
lines changed Original file line number Diff line number Diff line change @@ -122,6 +122,8 @@ int AmlogicGrabber::grabFrame(Image<ColorBgr> & image)
122
122
{
123
123
// Failed to configure frame width
124
124
std::cerr << " [" << __PRETTY_FUNCTION__ << " ] Failed to configure capture size (" << errno << " ): " << strerror (errno) << std::endl;
125
+ close (_amlogicCaptureDev);
126
+ _amlogicCaptureDev = -1 ;
125
127
return -1 ;
126
128
}
127
129
@@ -133,18 +135,27 @@ int AmlogicGrabber::grabFrame(Image<ColorBgr> & image)
133
135
if (bytesRead == -1 )
134
136
{
135
137
std::cerr << " [" << __PRETTY_FUNCTION__ << " ] Read of device failed (erno=" << errno << " ): " << strerror (errno) << std::endl;
138
+ close (_amlogicCaptureDev);
139
+ _amlogicCaptureDev = -1 ;
136
140
return -1 ;
137
141
}
138
142
else if (bytesToRead != bytesRead)
139
143
{
140
144
// Read of snapshot failed
141
145
std::cerr << " [" << __PRETTY_FUNCTION__ << " ] Capture failed to grab entire image [bytesToRead(" << bytesToRead << " ) != bytesRead(" << bytesRead << " )]" << std::endl;
146
+ close (_amlogicCaptureDev);
147
+ _amlogicCaptureDev = -1 ;
142
148
return -1 ;
143
149
}
144
150
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
+ }
149
160
return 0 ;
150
161
}
Original file line number Diff line number Diff line change @@ -274,7 +274,7 @@ int main(int argc, char** argv)
274
274
FramebufferWrapper * fbGrabber = nullptr ;
275
275
if (config.isMember (" framebuffergrabber" ) || config.isMember (" framegrabber" ))
276
276
{
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" ] ;
278
278
fbGrabber = new FramebufferWrapper (
279
279
grabberConfig.get (" device" , " /dev/fb0" ).asString (),
280
280
grabberConfig[" width" ].asUInt (),
You can’t perform that action at this time.
0 commit comments