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>
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user