[libcamera-devel] [PATCH v2 2/4] android: Modify Encoder interface
Umang Jain
email at uajain.com
Tue Oct 20 12:38:40 CEST 2020
Hi Hiro,
Thanks for your work.
On 10/20/20 1:12 PM, Hirokazu Honda wrote:
> In Encoder::encode(), the |source| argument doesn't have to be a
> pointer. This replaces its type, const pointer, with const
> reference as the latter is preferred to the former.
> libcamera::Span is chea to construct/copy/move. We should deal
s/chea/cheap
> with the type as pass-by-value parameter. Therefore this also
> drops the const reference in the |destination| argument.
>
> Signed-off-by: Hirokazu Honda <hiroh at chromium.org>
LGTM again.
Reviewed-by: Umang Jain <email at uajain.com>
> ---
> src/android/jpeg/encoder.h | 4 ++--
> src/android/jpeg/encoder_libjpeg.cpp | 6 +++---
> src/android/jpeg/encoder_libjpeg.h | 4 ++--
> src/android/jpeg/post_processor_jpeg.cpp | 2 +-
> 4 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/src/android/jpeg/encoder.h b/src/android/jpeg/encoder.h
> index 4483153..4fe71cf 100644
> --- a/src/android/jpeg/encoder.h
> +++ b/src/android/jpeg/encoder.h
> @@ -17,8 +17,8 @@ public:
> virtual ~Encoder() {};
>
> virtual int configure(const libcamera::StreamConfiguration &cfg) = 0;
> - virtual int encode(const libcamera::FrameBuffer *source,
> - const libcamera::Span<uint8_t> &destination,
> + virtual int encode(const libcamera::FrameBuffer &source,
> + libcamera::Span<uint8_t> destination,
> const libcamera::Span<const uint8_t> &exifData) = 0;
> };
>
> diff --git a/src/android/jpeg/encoder_libjpeg.cpp b/src/android/jpeg/encoder_libjpeg.cpp
> index 8995ba5..4236c9d 100644
> --- a/src/android/jpeg/encoder_libjpeg.cpp
> +++ b/src/android/jpeg/encoder_libjpeg.cpp
> @@ -179,11 +179,11 @@ void EncoderLibJpeg::compressNV(const libcamera::MappedBuffer *frame)
> }
> }
>
> -int EncoderLibJpeg::encode(const FrameBuffer *source,
> - const libcamera::Span<uint8_t> &dest,
> +int EncoderLibJpeg::encode(const FrameBuffer &source,
> + libcamera::Span<uint8_t> dest,
> const libcamera::Span<const uint8_t> &exifData)
> {
> - MappedFrameBuffer frame(source, PROT_READ);
> + MappedFrameBuffer frame(&source, PROT_READ);
> if (!frame.isValid()) {
> LOG(JPEG, Error) << "Failed to map FrameBuffer : "
> << strerror(frame.error());
> diff --git a/src/android/jpeg/encoder_libjpeg.h b/src/android/jpeg/encoder_libjpeg.h
> index 934caef..391a53c 100644
> --- a/src/android/jpeg/encoder_libjpeg.h
> +++ b/src/android/jpeg/encoder_libjpeg.h
> @@ -21,8 +21,8 @@ public:
> ~EncoderLibJpeg();
>
> int configure(const libcamera::StreamConfiguration &cfg) override;
> - int encode(const libcamera::FrameBuffer *source,
> - const libcamera::Span<uint8_t> &destination,
> + int encode(const libcamera::FrameBuffer &source,
> + libcamera::Span<uint8_t> destination,
> const libcamera::Span<const uint8_t> &exifData) override;
>
> private:
> diff --git a/src/android/jpeg/post_processor_jpeg.cpp b/src/android/jpeg/post_processor_jpeg.cpp
> index 55b9088..6f33631 100644
> --- a/src/android/jpeg/post_processor_jpeg.cpp
> +++ b/src/android/jpeg/post_processor_jpeg.cpp
> @@ -67,7 +67,7 @@ int PostProcessorJpeg::process(const libcamera::FrameBuffer &source,
> if (exif.generate() != 0)
> LOG(JPEG, Error) << "Failed to generate valid EXIF data";
>
> - int jpeg_size = encoder_->encode(&source, destination, exif.data());
> + int jpeg_size = encoder_->encode(source, destination, exif.data());
Perfect. I was expecting this from v1.
> if (jpeg_size < 0) {
> LOG(JPEG, Error) << "Failed to encode stream image";
> return jpeg_size;
More information about the libcamera-devel
mailing list