Merge "Fix Stream Config creation on API 21/22/23" into androidx-main
diff --git a/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/Streams.kt b/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/Streams.kt
index 663ae3f..1c5b493 100644
--- a/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/Streams.kt
+++ b/camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/Streams.kt
@@ -18,6 +18,7 @@
import android.hardware.camera2.params.OutputConfiguration
import android.util.Size
+import androidx.annotation.RequiresApi
/**
* A [CameraStream] is used on a [CameraGraph] to control what outputs that graph produces.
@@ -130,19 +131,28 @@
size: Size,
format: StreamFormat,
camera: CameraId? = null,
- outputType: OutputType = OutputType.SURFACE,
- externalOutputConfig: OutputConfiguration? = null
+ outputType: OutputType = OutputType.SURFACE
): Config =
- if (externalOutputConfig != null) {
- ExternalOutputConfig(size, format, camera, output = externalOutputConfig)
- } else if (
+ if (
outputType == OutputType.SURFACE_TEXTURE ||
outputType == OutputType.SURFACE_VIEW
) {
LazyOutputConfig(size, format, camera, outputType)
} else {
+ check(outputType == OutputType.SURFACE)
SimpleOutputConfig(size, format, camera)
}
+
+ /** Create a stream configuration from an externally created [OutputConfiguration] */
+ @RequiresApi(24)
+ fun external(
+ size: Size,
+ format: StreamFormat,
+ camera: CameraId? = null,
+ externalOutputConfig: OutputConfiguration
+ ): Config {
+ return ExternalOutputConfig(size, format, camera, output = externalOutputConfig)
+ }
}
/**