summaryrefslogtreecommitdiff
path: root/src/android/camera_stream.cpp
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo@jmondi.org>2020-10-02 20:48:35 +0200
committerJacopo Mondi <jacopo@jmondi.org>2020-10-07 16:07:44 +0200
commit160bb0998bc47abefeb876be1ecbff9534960dbc (patch)
treea839b7dd82c276123286d674a899703afad48ebf /src/android/camera_stream.cpp
parent3c84d88193c8807feb6cd426ce1bfc1d12e66ffa (diff)
android: camera_stream: Construct with Android stream
Pass the android camera3_stream_t, and a libcamera::StreamConfiguration to identify the source and destination parameters of this stream. Pass a CameraDevice pointer to the CameraStream constructor to allow retrieval of the StreamConfiguration associated with the CameraStream. Also change the format on which the CameraDevice performs checks to decide if post-processing is required, as the libcamera facing format is not meaningful anymore, but the Android requested format should be used instead. Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'src/android/camera_stream.cpp')
-rw-r--r--src/android/camera_stream.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp
index 2d0c6ff9..b3d345af 100644
--- a/src/android/camera_stream.cpp
+++ b/src/android/camera_stream.cpp
@@ -7,14 +7,24 @@
#include "camera_stream.h"
+#include "camera_device.h"
#include "jpeg/encoder.h"
#include "jpeg/encoder_libjpeg.h"
using namespace libcamera;
-CameraStream::CameraStream(PixelFormat format, Size size, Type type, unsigned int index)
- : format_(format), size_(size), type_(type), index_(index)
+CameraStream::CameraStream(CameraDevice *cameraDevice,
+ camera3_stream_t *camera3Stream,
+ const libcamera::StreamConfiguration &cfg,
+ Type type, unsigned int index)
+ : cameraDevice_(cameraDevice), camera3Stream_(camera3Stream),
+ type_(type), index_(index)
{
+ config_ = cameraDevice_->cameraConfiguration();
+
+ format_ = cfg.pixelFormat;
+ size_ = cfg.size;
+
if (type_ == Type::Internal || type_ == Type::Mapped)
encoder_ = std::make_unique<EncoderLibJpeg>();
}