android / android/camera-samples
OrientationLiveData is incorrect when camera sensor orientation is 0 degrees
- Lingua principale
- Kotlin
- Stelle
- 5.5k
- Fork
- 2.4k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
https://github.com/android/camera-samples/blob/main/Camera2Video/utils/src/main/java/com/example/android/camera/utils/OrientationLiveData.kt
This method returns 270 when device is on landscape orientation (Surface.ROTATION_90) and camera orientation degrees is 0
```computeRelativeRotation(Surface.ROTATION_90)``` returns 90 for 0 camera sensor degrees but should return 0
private fun computeRelativeRotation(
surfaceRotation: Int
): Int {
val sensorOrientationDegrees = 0 // hardcoded just for test camera with such orientation deegres
val deviceOrientationDegrees = when (surfaceRotation) {
Surface.ROTATION_0 -> 0
Surface.ROTATION_90 -> 90
Surface.ROTATION_180 -> 180
Surface.ROTATION_270 -> 270
else -> 0
}
// Reverse device orientation for front-facing cameras
val sign = -1
// Calculate desired JPEG orientation relative to camera orientation to make
// the image upright relative to the device orientation
return (sensorOrientationDegrees - (deviceOrientationDegrees * sign) + 360) % 360
}
Some devices for auto (vehicles) like **alps YT9213AJ** support external usb camera and it returns 0 camera sensor orientation
So this would rotate a recording video by 90 when playing i, will be setOrientationHint(90)
https://github.com/android/camera-samples/blob/main/Camera2Video/app/src/main/java/com/example/android/camera2/video/fragments/CameraFragment.kt#L273
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia da Camera2Video/utils/src/main/java/com/example/android/camera/utils/OrientationLiveData.kt ed esamina computeRelativeRotation, quindi segui il suo utilizzo in Camera2Video/app/src/main/java/com/example/android/camera2/video/fragments/CameraFragment.kt intorno a setOrientationHint. Verifica il caso segnalato Surface.ROTATION_90 con un orientamento del sensore della fotocamera pari a 0; il lavoro è completato quando la registrazione non riceve più un hint di orientamento errato di 90 gradi.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- kotlin
- Ambito
- mobile-dev
- Tipo di issue
- Bug
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 48/100