Skip to content

Commit

Permalink
Remove isMirrored
Browse files Browse the repository at this point in the history
  • Loading branch information
mrousavy committed Aug 3, 2023
1 parent 1e212d0 commit 22d07dd
Showing 1 changed file with 18 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ enum class OutputType {

data class SurfaceOutput(val surface: Surface,
val outputType: OutputType,
val isMirrored: Boolean = false,
val dynamicRangeProfile: Long? = null) {
val isRepeating: Boolean
get() = outputType == OutputType.VIDEO || outputType == OutputType.PREVIEW || outputType == OutputType.VIDEO_AND_PREVIEW
Expand All @@ -80,29 +79,38 @@ fun supportsOutputType(characteristics: CameraCharacteristics, outputType: Outpu
return false
}

private const val TAG = "CreateCaptureSession"

fun CameraDevice.createCaptureSession(cameraManager: CameraManager,
sessionType: SessionType,
outputs: List<SurfaceOutput>,
callback: CameraCaptureSession.StateCallback,
queue: CameraQueues.CameraQueue) {
val characteristics = cameraManager.getCameraCharacteristics(this.id)
val hardwareLevel = characteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL)!!
Log.i(CameraView.TAG, "Creating Capture Session on ${parseHardwareLevel(hardwareLevel)} device...")
Log.i(TAG, "Creating Capture Session on ${parseHardwareLevel(hardwareLevel)} device...")

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
// API >= 24
val outputConfigurations = outputs.map {
val result = OutputConfiguration(it.surface)
val outputConfigurations = arrayListOf<OutputConfiguration>()
for (output in outputs) {
if (!output.surface.isValid) {
Log.w(TAG, "Tried to add ${output.outputType} output, but Surface was invalid! Skipping this output..")
continue
}
val result = OutputConfiguration(output.surface)

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
if (it.isMirrored) result.mirrorMode = OutputConfiguration.MIRROR_MODE_H
if (it.dynamicRangeProfile != null) result.dynamicRangeProfile = it.dynamicRangeProfile
if (supportsOutputType(characteristics, it.outputType)) {
result.streamUseCase = it.outputType.toOutputType()
Log.i(CameraView.TAG, "Using optimized stream use case \"${it.outputType.name}\" (${result.streamUseCase})..")
if (output.dynamicRangeProfile != null) {
result.dynamicRangeProfile = output.dynamicRangeProfile
Log.i(TAG, "Using dynamic range profile ${result.dynamicRangeProfile} for ${output.outputType} output.")
}
if (supportsOutputType(characteristics, output.outputType)) {
result.streamUseCase = output.outputType.toOutputType()
Log.i(TAG, "Using optimized stream use case ${result.streamUseCase} for ${output.outputType} output.")
}
}
return@map result
outputConfigurations.add(result)
}

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
Expand Down

0 comments on commit 22d07dd

Please sign in to comment.