diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2020-10-02 20:48:35 +0200 |
---|---|---|
committer | Jacopo Mondi <jacopo@jmondi.org> | 2020-10-07 16:07:44 +0200 |
commit | 160bb0998bc47abefeb876be1ecbff9534960dbc (patch) | |
tree | a839b7dd82c276123286d674a899703afad48ebf /src/android/camera_stream.cpp | |
parent | 3c84d88193c8807feb6cd426ce1bfc1d12e66ffa (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.cpp | 14 |
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>(); } |