Skip to content

Commit 650c35a

Browse files
authored
Fix camera lookup to check for physicalId (#792)
* Fix camera lookup to check physicalId Check `physicalId` in addition to `deviceId` when looking up the camera configuration. This resolves issues on devices where the logical and physical camera IDs may differ. * Add changeset * Add physicalId to camera selector
1 parent 067935c commit 650c35a

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

.changeset/lucky-bags-cheat.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"client-sdk-android": patch
3+
---
4+
5+
Fix camera lookup to check physicalId

livekit-android-camerax/src/main/java/livekit/org/webrtc/CameraXSession.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,12 @@ internal constructor(
167167

168168
// Select camera by ID
169169
val cameraSelector = CameraSelector.Builder()
170-
.addCameraFilter { cameraInfo -> cameraInfo.filter { Camera2CameraInfo.from(it).cameraId == cameraDevice.deviceId } }
170+
.addCameraFilter { cameraInfo ->
171+
cameraInfo.filter {
172+
val cameraId = Camera2CameraInfo.from(it).cameraId
173+
cameraId == cameraDevice.deviceId || cameraId == cameraDevice.physicalId
174+
}
175+
}
171176
.build()
172177

173178
try {
@@ -282,7 +287,10 @@ internal constructor(
282287
}
283288

284289
private fun obtainCameraConfiguration() {
285-
val camera = cameraProvider.availableCameraInfos.map { Camera2CameraInfo.from(it) }.first { it.cameraId == cameraDevice.deviceId }
290+
val camera = cameraProvider.availableCameraInfos.map { Camera2CameraInfo.from(it) }
291+
.first {
292+
it.cameraId == cameraDevice.deviceId || it.cameraId == cameraDevice.physicalId
293+
}
286294

287295
cameraOrientation = camera.getCameraCharacteristic(CameraCharacteristics.SENSOR_ORIENTATION) ?: -1
288296
isCameraFrontFacing = camera.getCameraCharacteristic(CameraCharacteristics.LENS_FACING) == CameraMetadata.LENS_FACING_FRONT

0 commit comments

Comments
 (0)