From 3c84d88193c8807feb6cd426ce1bfc1d12e66ffa Mon Sep 17 00:00:00 2001 From: Jacopo Mondi Date: Fri, 2 Oct 2020 19:40:42 +0200 Subject: android: camera_stream: Delegate Encoder construction Delegate the construction of the encoder to the CameraStream class for streams that need post-processing. Reviewed-by: Umang Jain Reviewed-by: Kieran Bingham Reviewed-by: Laurent Pinchart Signed-off-by: Jacopo Mondi --- src/android/camera_device.cpp | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) (limited to 'src/android/camera_device.cpp') diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp index 0600ebc8..9c9a5cfa 100644 --- a/src/android/camera_device.cpp +++ b/src/android/camera_device.cpp @@ -1273,19 +1273,7 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list) StreamConfiguration &cfg = config_->at(index); - /* - * Construct a software encoder for the MJPEG streams from the - * chosen libcamera source stream. - */ - Encoder *encoder = new EncoderLibJpeg(); - int ret = encoder->configure(cfg); - if (ret) { - LOG(HAL, Error) << "Failed to configure encoder"; - delete encoder; - return ret; - } - - streams_.emplace_back(formats::MJPEG, cfg.size, type, index, encoder); + streams_.emplace_back(formats::MJPEG, cfg.size, type, index); jpegStream->priv = static_cast(&streams_.back()); } @@ -1306,11 +1294,20 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list) return -EINVAL; } + /* + * Configure the HAL CameraStream instances using the associated + * StreamConfiguration and set the number of required buffers in + * the Android camera3_stream_t. + */ for (unsigned int i = 0; i < stream_list->num_streams; ++i) { camera3_stream_t *stream = stream_list->streams[i]; CameraStream *cameraStream = static_cast(stream->priv); StreamConfiguration &cfg = config_->at(cameraStream->index()); + int ret = cameraStream->configure(cfg); + if (ret) + return ret; + /* Use the bufferCount confirmed by the validation process. */ stream->max_buffers = cfg.bufferCount; } -- cgit v1.2.1