Port the CameraStream's JPEG-encoding bits to PostProcessorJpeg. This encapsulates the encoder and EXIF generation code into the PostProcessorJpeg layer and removes these specifics related to JPEG, from the CameraStream itself. Signed-off-by: Umang Jain <email@uajain.com> Tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Change-Id: Id9e6e9b2bec83493a90e5e126298a2bb2ed2232a
37 lines
892 B
C++
37 lines
892 B
C++
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
|
/*
|
|
* Copyright (C) 2020, Google Inc.
|
|
*
|
|
* post_processor_jpeg.h - JPEG Post Processor
|
|
*/
|
|
#ifndef __ANDROID_POST_PROCESSOR_JPEG_H__
|
|
#define __ANDROID_POST_PROCESSOR_JPEG_H__
|
|
|
|
#include "../post_processor.h"
|
|
|
|
#include <libcamera/geometry.h>
|
|
|
|
#include "libcamera/internal/buffer.h"
|
|
|
|
class Encoder;
|
|
class CameraDevice;
|
|
|
|
class PostProcessorJpeg : public PostProcessor
|
|
{
|
|
public:
|
|
PostProcessorJpeg(CameraDevice *device);
|
|
|
|
int configure(const libcamera::StreamConfiguration &incfg,
|
|
const libcamera::StreamConfiguration &outcfg) override;
|
|
int process(const libcamera::FrameBuffer *source,
|
|
const libcamera::Span<uint8_t> &destination,
|
|
CameraMetadata *metadata) override;
|
|
|
|
private:
|
|
CameraDevice *cameraDevice_;
|
|
std::unique_ptr<Encoder> encoder_;
|
|
libcamera::Size streamSize_;
|
|
};
|
|
|
|
#endif /* __ANDROID_POST_PROCESSOR_JPEG_H__ */
|