Set camera exposure from params when initialized
Change-Id: I01963885fba5819160cf45cc2a79e5329de542ce
diff --git a/aos/vision/image/image_stream.h b/aos/vision/image/image_stream.h
index 8aab97d..5d88d32 100644
--- a/aos/vision/image/image_stream.h
+++ b/aos/vision/image/image_stream.h
@@ -37,10 +37,7 @@
void ReadEvent() override { reader_->HandleFrame(); }
- bool SetExposure(int abs_exp) {
- return reader_->SetCameraControl(V4L2_CID_EXPOSURE_ABSOLUTE,
- "V4L2_CID_EXPOSURE_ABSOLUTE", abs_exp);
- }
+ bool SetExposure(int abs_exp) { return reader_->SetExposure(abs_exp); }
private:
void ProcessHelper(DataRef data, aos::monotonic_clock::time_point timestamp);
diff --git a/aos/vision/image/reader.cc b/aos/vision/image/reader.cc
index 23b58c2..991339b 100644
--- a/aos/vision/image/reader.cc
+++ b/aos/vision/image/reader.cc
@@ -56,6 +56,8 @@
Init();
InitMMap();
+
+ SetExposure(params.exposure());
LOG(INFO, "Bat Vision Successfully Initialized.\n");
}
@@ -168,6 +170,11 @@
return false;
}
+bool Reader::SetExposure(int abs_exp) {
+ return SetCameraControl(V4L2_CID_EXPOSURE_ABSOLUTE,
+ "V4L2_CID_EXPOSURE_ABSOLUTE", abs_exp);
+}
+
void Reader::Init() {
v4l2_capability cap;
if (xioctl(fd_, VIDIOC_QUERYCAP, &cap) == -1) {
diff --git a/aos/vision/image/reader.h b/aos/vision/image/reader.h
index 25fc0bd..4283224 100644
--- a/aos/vision/image/reader.h
+++ b/aos/vision/image/reader.h
@@ -33,6 +33,7 @@
int fd() { return fd_; }
bool SetCameraControl(uint32_t id, const char *name, int value);
+ bool SetExposure(int abs_exp);
private:
void QueueBuffer(v4l2_buffer *buf);