summaryrefslogtreecommitdiff
path: root/src/android/jpeg
diff options
context:
space:
mode:
authorUmang Jain <umang.jain@ideasonboard.com>2021-10-26 12:51:45 +0530
committerUmang Jain <umang.jain@ideasonboard.com>2021-10-26 16:11:17 +0530
commit79cdb1f19d8033cf2e291b284fe1419098d5df81 (patch)
tree64b42319999fb367fcbd0cb5cbe336dbba2732ec /src/android/jpeg
parent64bcbd0e2c2ac78fae7e329cec86bc4806cd5c45 (diff)
android: post_processor: Consolidate contextual information
Save and provide the context for post-processor of a camera stream via Camera3RequestDescriptor::StreamBuffer. We extend the structure to include source and destination buffers for the post processor, along with CameraStream::Type::Internal buffer pointer (if any). In addition to that, a back pointer to Camera3RequestDescriptor is convenient to get access to overall descriptor (status, metadata settings etc.). Also, migrate CameraStream::process() and PostProcessor::process() signature to use Camera3RequestDescriptor::StreamBuffer only. This will be helpful when we move to async post-processing in subsequent commits. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
Diffstat (limited to 'src/android/jpeg')
-rw-r--r--src/android/jpeg/post_processor_jpeg.cpp12
-rw-r--r--src/android/jpeg/post_processor_jpeg.h4
2 files changed, 8 insertions, 8 deletions
diff --git a/src/android/jpeg/post_processor_jpeg.cpp b/src/android/jpeg/post_processor_jpeg.cpp
index 49483836..240e29f6 100644
--- a/src/android/jpeg/post_processor_jpeg.cpp
+++ b/src/android/jpeg/post_processor_jpeg.cpp
@@ -98,15 +98,17 @@ void PostProcessorJpeg::generateThumbnail(const FrameBuffer &source,
}
}
-int PostProcessorJpeg::process(const FrameBuffer &source,
- CameraBuffer *destination,
- Camera3RequestDescriptor *request)
+int PostProcessorJpeg::process(Camera3RequestDescriptor::StreamBuffer *streamBuffer)
{
ASSERT(encoder_);
+
+ const FrameBuffer &source = *streamBuffer->srcBuffer;
+ CameraBuffer *destination = streamBuffer->dstBuffer.get();
+
ASSERT(destination->numPlanes() == 1);
- const CameraMetadata &requestMetadata = request->settings_;
- CameraMetadata *resultMetadata = request->resultMetadata_.get();
+ const CameraMetadata &requestMetadata = streamBuffer->request->settings_;
+ CameraMetadata *resultMetadata = streamBuffer->request->resultMetadata_.get();
camera_metadata_ro_entry_t entry;
int ret;
diff --git a/src/android/jpeg/post_processor_jpeg.h b/src/android/jpeg/post_processor_jpeg.h
index 0184d77e..92385548 100644
--- a/src/android/jpeg/post_processor_jpeg.h
+++ b/src/android/jpeg/post_processor_jpeg.h
@@ -22,9 +22,7 @@ public:
int configure(const libcamera::StreamConfiguration &incfg,
const libcamera::StreamConfiguration &outcfg) override;
- int process(const libcamera::FrameBuffer &source,
- CameraBuffer *destination,
- Camera3RequestDescriptor *request) override;
+ int process(Camera3RequestDescriptor::StreamBuffer *streamBuffer) override;
private:
void generateThumbnail(const libcamera::FrameBuffer &source,