v4l2: camera: Merge getStreamConfig() with open()

The V4L2CameraProxy always calls V4L2Camera::getStreamConfig() right
after V4L2Camera::open(), and never afterwards. Simplify the code by
returning the initial configuration from V4L2Camera::open() and removing
V4L2Camera::getStreamConfig().

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
This commit is contained in:
Laurent Pinchart 2020-01-05 04:35:25 +02:00
parent 852b9d0a76
commit 3bd1985545
3 changed files with 5 additions and 10 deletions

View file

@ -28,7 +28,7 @@ V4L2Camera::~V4L2Camera()
close(); close();
} }
int V4L2Camera::open() int V4L2Camera::open(StreamConfiguration *streamConfig)
{ {
if (camera_->acquire() < 0) { if (camera_->acquire() < 0) {
LOG(V4L2Compat, Error) << "Failed to acquire camera"; LOG(V4L2Compat, Error) << "Failed to acquire camera";
@ -43,6 +43,7 @@ int V4L2Camera::open()
bufferAllocator_ = new FrameBufferAllocator(camera_); bufferAllocator_ = new FrameBufferAllocator(camera_);
*streamConfig = config_->at(0);
return 0; return 0;
} }
@ -64,11 +65,6 @@ void V4L2Camera::unbind()
efd_ = -1; efd_ = -1;
} }
void V4L2Camera::getStreamConfig(StreamConfiguration *streamConfig)
{
*streamConfig = config_->at(0);
}
std::vector<V4L2Camera::Buffer> V4L2Camera::completedBuffers() std::vector<V4L2Camera::Buffer> V4L2Camera::completedBuffers()
{ {
std::vector<Buffer> v; std::vector<Buffer> v;

View file

@ -37,11 +37,11 @@ public:
V4L2Camera(std::shared_ptr<Camera> camera); V4L2Camera(std::shared_ptr<Camera> camera);
~V4L2Camera(); ~V4L2Camera();
int open(); int open(StreamConfiguration *streamConfig);
void close(); void close();
void bind(int efd); void bind(int efd);
void unbind(); void unbind();
void getStreamConfig(StreamConfiguration *streamConfig);
std::vector<Buffer> completedBuffers(); std::vector<Buffer> completedBuffers();
int configure(StreamConfiguration *streamConfigOut, int configure(StreamConfiguration *streamConfigOut,

View file

@ -63,13 +63,12 @@ int V4L2CameraProxy::open(V4L2CameraFile *file)
* with count = 0. * with count = 0.
*/ */
int ret = vcam_->open(); int ret = vcam_->open(&streamConfig_);
if (ret < 0) { if (ret < 0) {
refcount_--; refcount_--;
return ret; return ret;
} }
vcam_->getStreamConfig(&streamConfig_);
setFmtFromConfig(streamConfig_); setFmtFromConfig(streamConfig_);
files_.insert(file); files_.insert(file);