Mappage de l'API Camera2

Cette page explique comment les API Camera2 remplacent les API Extended View System (EVS) de base.

IEvsEnumerator API

IEvsEnumerator API Camera2 NDK API Java Camera2

openCamera

EVS openCamera a combiné la configuration d'ouverture et de flux, tandis que Camera2 les sépare.

ACameraManager_openCamera puis ACameraDevice_createCaptureSession avec AImageReader puis ACameraDevice_createCaptureRequest

CameraManager.openCamera, puis CameraDevice.createCaptureSession (avec ImageReader ou autre Surface), puis CameraDevice.createCaptureRequest

closeCamera ACameraDevice_close CameraDevice.close
getCameraList ACameraManager_getCameraIdList, puis ACameraManager_getCameraCharacteristics pour en savoir plus CameraManager.getCameraIdList, puis CameraManager.getCameraCharacteristics pour en savoir plus
getStreamList ACameraManager_getCameraCharacteristics, balise ACAMERA_SCALER_AVAILABLE_STREAM_CONFIGURATIONS CameraManager.getCameraCharacteristics, get CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP
registerStatusCallback ACameraManager_registerAvailabilityCallback avec ACameraManager_AvailabilityListener CameraManager.registerAvailabilityCallback avec CameraManager.AvailabilityCallback
isHardware N/A N/A

getDisplayIdList

Obsolète.

Utilisez DisplayManager.getDisplays

N/A N/A

getDisplayState

Obsolète.

Utilisez Display.getState

N/A N/A

getDisplayStateById

Obsolète.

Utilisez DisplayManager.getDisplay puis Display.getState

N/A N/A

openDisplay

Obsolète.

Utilisez WindowManager.addView sur un Display spécifique.

N/A N/A

closeDisplay

Obsolète.

Utilisez WindowManager.removeView

N/A N/A

openUltrasonicsArray

Obsolète.

Utilisez les propriétés VHAL.

N/A N/A

getUltrasonicsArrayList

Obsolète.

Utilisez les propriétés VHAL.

N/A N/A

closeUltrasonicsArray

Obsolète.

Utilisez les propriétés VHAL.

N/A N/A

IEvsCamera

IEvsCamera API Camera2 NDK API Java Camera2
getCameraInfo ACameraManager_getCameraCharacteristics CameraManager.getCameraCharacteristics

getPhysicalCameraInfo

Pour les caméras logiques, consultez getPhysicalCameraIds.

ACameraManager_getCameraCharacteristics CameraManager.getCameraCharacteristics

setMaxFramesInFlight

Ne peut pas être modifié de manière dynamique dans Camera2. Il doit être défini lorsque vous créez ImageReader.

Définissez-le dans AImageReader_new ou AImageReader_newWithUsage. Définie dans ImageReader.newInstance(width, height, format, maxImages)
startVideoStream ACameraCaptureSession_setRepeatingRequestV2 CameraCaptureSession.setSingleRepeatingRequest
stopVideoStream ACameraCaptureSession_stopRepeating CameraCaptureSession.stopRepeating

pauseVideoStream

Aucun équivalent direct. Utiliser stopRepeatingRequest

ACameraCaptureSession_stopRepeating CameraCaptureSession.stopRepeating

resumeVideoStream

Aucun équivalent direct ; utilisez setSingleRepeatingRequest.

ACameraCaptureSession_setRepeatingRequestV2 CameraCaptureSession.setSingleRepeatingRequest

doneWithFrame

Remettre la version dans la file d'attente

AImage_delete Image.close

importExternalBuffers

La gestion du tampon est gérée par les surfaces. Pour en savoir plus, consultez CameraCaptureSession.prepare.

N/A N/A
getParameterList ACameraMetadata_getAllTags CameraCharacteristics.getKeys
getIntParameter ACaptureRequest_getConstEntry CaptureRequest.get(key)

getIntParameterRange

Les plages font partie de CameraCharacteristics.

ACameraMetadata_getConstEntry CameraCharacteristics.get(key)
(CONTROL_AE_COMPENSATION_RANGE) et autres
setIntParameter ACaptureRequest_setEntry_i32, _u8 et autres CaptureRequest.Builder.set(key, value)

getExtendedInfo

Utilisez des tags de fournisseur pour implémenter des données personnalisées.

Utiliser des tags de fournisseur sur ACaptureRequest
ou ACameraMetadata
Utiliser des tags de fournisseur sur CaptureRequest ou CameraCharacteristics

setExtendedInfo

Utilisez des tags de fournisseur pour implémenter des données personnalisées.

Utiliser des tags de fournisseur sur ACaptureRequest Utiliser des tags de fournisseur sur CaptureRequest.Builder

setPrimaryClient

Obsolète.

L'état du client principal est basé sur la priorité dans le mode partagé Camera2.

N/A N/A

unsetPrimaryClient

Obsolète.

N/A N/A

forcePrimaryClient

Obsolète.

N/A N/A

IEvsCameraStream

IEvsCameraStream API Camera2 NDK API Java Camera2

deliverFrame

Rappel pour recevoir de nouvelles images. Acquérez l'image avec ImageReader.acquireLatestImage ou ImageReader.acquireNextImage

onImageAvailable sur AImageReader_ImageListener

onImageAvailable sur ImageReader.OnImageAvailableListener

notify

Rappels pour les événements de capture (démarrage, progression, achèvement, échec) et CameraDevice.StateCallback pour les événements d'appareil (erreur, déconnexion).

ACameraCaptureSession_captureCallbacksV2

CameraCaptureSession.CaptureCallback

IEvsDisplay API

Toutes les API de l'interface IEvsDisplay sont obsolètes. Les OEM doivent utiliser les classes Android standards :