From ca6518f0b79e36bcda7d311bf93a723cb85dbacf Mon Sep 17 00:00:00 2001 From: Marc Rousavy Date: Tue, 19 Mar 2024 11:18:43 +0100 Subject: [PATCH] feat: Basic read-only Frame Processors (`ImageAnalysis` Use-Case) (#2664) * feat: Basic read-only Frame Processors (`ImageAnalysis` Use-Case) * feat: Set target resolution * Update CameraSession.kt * Refactor * fix: Fix Frame Processor not being unbound --- .../java/com/mrousavy/camera/CameraView.kt | 18 +- .../camera/core/CameraConfiguration.kt | 5 +- .../com/mrousavy/camera/core/CameraSession.kt | 53 ++-- .../camera/core/FrameProcessorEffect.kt | 244 ------------------ .../camera/core/FrameProcessorPipeline.kt | 24 ++ 5 files changed, 64 insertions(+), 280 deletions(-) delete mode 100644 package/android/src/main/java/com/mrousavy/camera/core/FrameProcessorEffect.kt create mode 100644 package/android/src/main/java/com/mrousavy/camera/core/FrameProcessorPipeline.kt diff --git a/package/android/src/main/java/com/mrousavy/camera/CameraView.kt b/package/android/src/main/java/com/mrousavy/camera/CameraView.kt index 86cdcead0c..df74724e5a 100644 --- a/package/android/src/main/java/com/mrousavy/camera/CameraView.kt +++ b/package/android/src/main/java/com/mrousavy/camera/CameraView.kt @@ -173,20 +173,20 @@ class CameraView(context: Context) : config.photo = CameraConfiguration.Output.Disabled.create() } - // Video/Frame Processor + // Video if (video || enableFrameProcessor) { - config.video = CameraConfiguration.Output.Enabled.create( - CameraConfiguration.Video( - videoHdr, - pixelFormat, - enableFrameProcessor, - enableGpuBuffers - ) - ) + config.video = CameraConfiguration.Output.Enabled.create(CameraConfiguration.Video(videoHdr, pixelFormat)) } else { config.video = CameraConfiguration.Output.Disabled.create() } + // Frame Processor + if (enableFrameProcessor) { + config.frameProcessor = CameraConfiguration.Output.Enabled.create(CameraConfiguration.FrameProcessor(Unit)) + } else { + config.frameProcessor = CameraConfiguration.Output.Disabled.create() + } + // Audio if (audio) { config.audio = CameraConfiguration.Output.Enabled.create(CameraConfiguration.Audio(Unit)) diff --git a/package/android/src/main/java/com/mrousavy/camera/core/CameraConfiguration.kt b/package/android/src/main/java/com/mrousavy/camera/core/CameraConfiguration.kt index 9ab78297c2..48da93faaf 100644 --- a/package/android/src/main/java/com/mrousavy/camera/core/CameraConfiguration.kt +++ b/package/android/src/main/java/com/mrousavy/camera/core/CameraConfiguration.kt @@ -17,6 +17,7 @@ data class CameraConfiguration( var preview: Output = Output.Disabled.create(), var photo: Output = Output.Disabled.create(), var video: Output