Clean up y2019 image_streamer a bit
No functional changes.
Change-Id: I843cc6c0a47d93e610abe01c26e0b8ab7c83860e
diff --git a/y2019/image_streamer/image_streamer.cc b/y2019/image_streamer/image_streamer.cc
index cd83a4e..631fcee 100644
--- a/y2019/image_streamer/image_streamer.cc
+++ b/y2019/image_streamer/image_streamer.cc
@@ -110,6 +110,7 @@
void ReadData(void *data, size_t size) {
PB pb;
+ // TODO(Brian): Do something useful if parsing fails.
pb.ParseFromArray(data, size);
proto_callback_(pb);
}
@@ -141,10 +142,10 @@
}
void ReadEvent() override {
- // Ignore reads, but don't leave them pending.
ssize_t count;
char buf[512];
while (true) {
+ // Always read everything so epoll won't return immediately.
count = read(fd(), &buf, sizeof buf);
if (count <= 0) {
if (errno != EAGAIN) {
@@ -320,7 +321,7 @@
::std::unique_ptr<CameraStream> camera1;
::std::unique_ptr<CameraStream> camera0(new CameraStream(
params0, "/dev/video0", &tcp_server_, !FLAGS_log.empty(),
- [&camera0, &camera1, &status_socket, &vision_status]() {
+ [&camera0, &status_socket, &vision_status]() {
vision_status.set_low_frame_count(vision_status.low_frame_count() + 1);
LOG(INFO, "Got a frame cam0\n");
if (camera0->active()) {
@@ -330,7 +331,7 @@
if (!FLAGS_single_camera) {
camera1.reset(new CameraStream(
params1, "/dev/video1", &tcp_server_, false,
- [&camera0, &camera1, &status_socket, &vision_status]() {
+ [&camera1, &status_socket, &vision_status]() {
vision_status.set_high_frame_count(vision_status.high_frame_count() +
1);
LOG(INFO, "Got a frame cam1\n");