Langue

CameraDevice.CreateCaptureSession Méthode

Définition

Surcharges

Nom Description
CreateCaptureSession(SessionConfiguration)

Créez un CameraCaptureSessionSessionConfiguration nouvel objet d’assistance qui agrège tous les paramètres pris en charge.

CreateCaptureSession(IList<Surface>, CameraCaptureSession+StateCallback, Handler)

Créez une session de capture de caméra en fournissant le jeu de sortie cible de Surfaces à l’appareil photo.

CreateCaptureSession(SessionConfiguration)

Créez un CameraCaptureSessionSessionConfiguration nouvel objet d’assistance qui agrège tous les paramètres pris en charge.

[Android.Runtime.Register("createCaptureSession", "(Landroid/hardware/camera2/params/SessionConfiguration;)V", "GetCreateCaptureSession_Landroid_hardware_camera2_params_SessionConfiguration_Handler", ApiSince=28)]
public virtual void CreateCaptureSession(Android.Hardware.Camera2.Params.SessionConfiguration? config);
[<Android.Runtime.Register("createCaptureSession", "(Landroid/hardware/camera2/params/SessionConfiguration;)V", "GetCreateCaptureSession_Landroid_hardware_camera2_params_SessionConfiguration_Handler", ApiSince=28)>]
abstract member CreateCaptureSession : Android.Hardware.Camera2.Params.SessionConfiguration -> unit
override this.CreateCaptureSession : Android.Hardware.Camera2.Params.SessionConfiguration -> unit

Paramètres

config
SessionConfiguration

Configuration d’une session (voir SessionConfiguration).

Attributs

Remarques

Créez un CameraCaptureSessionSessionConfiguration nouvel objet d’assistance qui agrège tous les paramètres pris en charge.

La session de capture active détermine l’ensemble de surfaces de sortie potentielles pour l’appareil photo pour chaque demande de capture. Une demande donnée peut utiliser toutes ou seulement certaines des sorties. Une fois que CameraCaptureSession est créé, les demandes peuvent être envoyées avec CameraCaptureSession#capture capture, , CameraCaptureSession#captureBurst captureBurstCameraCaptureSession#setRepeatingRequest setRepeatingRequestou CameraCaptureSession#setRepeatingBurst setRepeatingBurst.

Les surfaces adaptées à l’inclusion en tant que sortie de caméra peuvent être créées pour différents cas d’usage et cibles :

<ul>

<li>For drawing to a android.view.SurfaceView SurfaceView: Once the SurfaceView's Surface is android.view.SurfaceHolder.Callback#surfaceCreated created, set the size of the Surface with android.view.SurfaceHolder#setFixedSize to be one of the sizes retournés by StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(SurfaceHolder.class) and then obtention the Surface by calling android.view.SurfaceHolder#getSurface. Si la taille n’est pas définie par l’application, elle est arrondie à la taille prise en charge la plus proche inférieure à 1080p, par l’appareil photo.</li>

<li>Pour accéder via une texture OpenGL via a android.graphics.SurfaceTexture SurfaceTexture: définissez la taille de SurfaceTexture avec android.graphics.SurfaceTexture#setDefaultBufferSize l’une des tailles retournées avant StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(SurfaceTexture.class) de créer un Surface à partir de SurfaceTexture avec Surface#Surface(SurfaceTexture). Si la taille n’est pas définie par l’application, elle est définie sur la plus petite taille prise en charge inférieure à 1080p, par l’appareil photo.</li>

<li>Pour l’enregistrement avec android.media.MediaCodec: Appel android.media.MediaCodec#createInputSurface après avoir configuré le codec multimédia pour utiliser l’une des tailles retournées par StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(MediaCodec.class)</li>

<li>Pour l’enregistrement avec android.media.MediaRecorder: appel android.media.MediaRecorder#getSurface après la configuration de l’enregistreur multimédia pour utiliser l’une des tailles retournées par StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(MediaRecorder.class), ou la configuration pour utiliser l’un des supports pris en charge android.media.CamcorderProfile CamcorderProfiles.</li>

<li>Pour accéder aux données RAW, YUV non compressées ou JPEG compressées dans l’application : créez un android.media.ImageReader objet avec l’un des formats de sortie pris en charge donnésStreamConfigurationMap#getOutputFormats(), en définissant sa taille sur l’une des tailles prises en charge correspondantes en passant le format de sortie choisi.StreamConfigurationMap#getOutputSizes(int) Ensuite, obtenez-en un android.view.Surface avec android.media.ImageReader#getSurface(). Si la taille ImageReader n’est pas définie sur une taille prise en charge, elle est arrondie à une taille prise en charge inférieure à 1080p par l’appareil photo. </li>

</ul>

L'appareil photo interroge la taille et les formats de chaque Surface lors de cet appel. Il doit donc être défini sur un paramètre valide pour l'instant.

La configuration de la session peut prendre plusieurs centaines de millisecondes, car le matériel de la caméra peut être activé ou reconfiguré. Une fois la configuration terminée et que la session est prête à capturer réellement des données, le rappel fourni CameraCaptureSession.StateCallbackCameraCaptureSession.StateCallback#onConfigured sera appelé.

Si une session CameraCaptureSession antérieure existe déjà quand cette méthode est appelée, la session précédente ne pourra plus accepter de nouvelles demandes de capture et sera fermée. Toutes les demandes de capture en cours effectuées sur la session précédente sont terminées avant sa fermeture. CameraCaptureSession.StateCallback#onConfigured pour la nouvelle session peut être appelée avant CameraCaptureSession.StateCallback#onClosed d’être appelée pour la session précédente. Une fois la nouvelle session CameraCaptureSession.StateCallback#onConfigured configuredterminée, elle peut commencer à capturer ses propres requêtes. Pour réduire le temps de transition, l’appel CameraCaptureSession#abortCaptures peut être utilisé pour ignorer les demandes restantes de la session de capture précédente avant la création d’une nouvelle session. Notez qu’une fois la nouvelle session créée, l’ancienne ne peut plus avoir ses captures abandonnées.

L’utilisation de sorties de résolution plus volumineuses, ou plus, peut entraîner un débit de sortie plus lent à partir de l’appareil.

La configuration d’une session avec une liste vide ou null ferme la session active, le cas échéant. Cela peut être utilisé pour libérer les surfaces cibles de la session active pour une autre utilisation.

Cette fonction lève une IllegalArgumentException valeur si appelée avec un rappel d’état de SessionConfiguration ne contenant pas de rappels d’état ou des surfaces de sortie valides. Les seules exceptions sont les sorties SurfaceView différées ou SurfaceTexture. Pour plus d’informations, consultez OutputConfiguration#OutputConfiguration(Size, Class).

<capture> régulière h3</h3>

Bien que l’une des tailles de StreamConfigurationMap#getOutputSizes ces tailles puisse être utilisée lorsqu’un flux de sortie unique est configuré, un appareil photo donné peut ne pas être en mesure de prendre en charge toutes les combinaisons de tailles, de formats et de cibles lorsque plusieurs sorties sont configurées simultanément. Les tableaux ci-dessous répertorient les résolutions maximales garanties pour les combinaisons de flux et de cibles, en fonction des fonctionnalités de l’appareil photo. Celles-ci sont valides lorsque le android.hardware.camera2.params.SessionConfiguration#setInputConfiguration input configuration paramètre n’est pas défini et qu’aucun retraitement n’est donc actif.

Si une application tente de créer une session à l’aide d’un ensemble de cibles qui dépassent les limites décrites dans les tableaux ci-dessous, l’une des trois possibilités peut se produire. Tout d’abord, la session peut être créée et fonctionner normalement. Deuxièmement, la session peut être créée avec succès, mais l’appareil photo ne répond pas aux garanties de fréquence d’images, comme décrit dans StreamConfigurationMap#getOutputMinFrameDuration. Ou troisièmement, si le jeu de sorties ne peut pas être utilisé du tout, la création de session échoue entièrement, avec CameraCaptureSession.StateCallback#onConfigureFailed l’appel.

Pour la colonne de type, PRIV fait référence à une cible dont les tailles disponibles sont trouvées StreamConfigurationMap#getOutputSizes(Class) sans format direct visible par l’application, YUV fait référence à une cible Surface à l’aide du android.graphics.ImageFormat#YUV_420_888 format, JPEG fait référence au android.graphics.ImageFormat#JPEG format et RAW fait référence au android.graphics.ImageFormat#RAW_SENSOR format.

Pour la colonne de taille maximale, PREVIEW fait référence à la meilleure taille correspondant à la résolution d’écran de l’appareil, ou à 1080p (1920x1080), selon la taille la plus petite. RECORD fait référence à la résolution maximale prise en charge de l’appareil photo, telle que déterminée par android.media.CamcorderProfile. Et MAXIMUM fait référence à la résolution maximale de sortie de l’appareil photo pour ce format ou cible à partir de StreamConfigurationMap#getOutputSizes.

Pour utiliser ces tables, déterminez le nombre et les formats/cibles des sorties nécessaires et recherchez la ou les lignes de la table avec ces cibles. Les tailles indiquent le jeu maximal de tailles qui peuvent être utilisées ; il est garanti que pour ces cibles, les tailles répertoriées et tout ce qui est plus petit de la liste donnée StreamConfigurationMap#getOutputSizes par peut être utilisé avec succès pour créer une session. Par exemple, si une ligne indique qu’une YUV_420_888 sortie de 8 pixels (MP) peut être utilisée avec une sortie de 2 MPPRIV, une session peut être créée avec des cibles [8 MP YUV, 2 MP PRIV] ou des cibles [2 MP YUV, 2 MP PRIV]; mais une session avec des cibles, des cibles [8 MP YUV, 4 MP PRIV][4 MP YUV, 4 MP PRIV]ou des cibles [8 MP PRIV, 2 MP YUV] ne serait pas garantie de fonctionner, sauf si une autre ligne de la table répertorie une telle combinaison.

<style délimité> #rb { bordure droite-largeur : épais ; }</style>

<Configurations> garanties au niveau hérité h5</h5>

Les appareils hérités (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY LEGACY) prennent en charge au moins les combinaisons de flux suivantes :

<table><tr><th colspan="2 » id="rb">Target 1</th><th colspan="2 » id="rb">Target 2</th><colspan="2 » id="rb">Target 3</th th><rowspan="2">Sample use case(s)</th></tr tr><><th>Type</th th><id="rb">Max size</th th Type>/th<>th<><id="rb">Max size</th><>th Type</th th><id="rb » >Taille< maximale/th></tr tr><><tr td>PRIV</td><id="rb">MAXIMUM</td td><colspan="2 » id="rb"></td><colspan="2 » id="rb"></td><td>Simple preview, traitement vidéo GPU ou enregistrement vidéo sans préversion.</td>/tr tr<><>tr<>JPEG/td<id="rb"/td td><>colspan="2 » id="rb"MAXIMUM/td<>td colspan="2 » id="rb"<><></td td td><><no-viewfinder toujours image capture.></td>/tr tr<><>tr<>YUV/td<id="rb"/td td><>colspan="2 » id="rb"MAXIMUM/td<>colspan="2 » id="rb"<><></td td><><in-application video/image processing.></td></tr tr><><tr>PRIV</td><id="rb">PREVIEW</td td/><>JPEGtd<><id="rb">MAXIMUM</td td><colspan="2 » id="rb"></td td><>Standard encore imaging.</td></tr tr><><tr>YUV</td><id="rb">PREVIEW</td td/><>JPEGtd<><id="rb">MAXIMUM</td td><colspan="2 » id="rb"></td td><>In-app processing plus encore capture.</td></tr tr><><tr>PRIV</td><id="rb">PREVIEW</td td/><>PRIVtd<><id="rb">PREVIEW</td><colspan="2 » id="rb"></td td><>Standard recording.</td></tr tr><><tr>PRIV</td><id="rb">PREVIEW</td td/><>YUVtd<><id="rb">PREVIEW</td td><colspan="2 » id="rb"></td td><td>Preview plus traitement in-app.</td>/tr tr<><>tr<>PRIV/td<id="rb"><>PREVIEW/td td/<><>tdYUV<id="rb"><>PREVIEW/td<>td<>JPEG/td<id="rb"/td td id="rb"><>MAXIMUM/td td td<><still capture plus in-app processing.></td></tr/table>br<><>

<Configurations> garanties supplémentaires de niveau limité h5</h5>

Les appareils de niveauCameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED limité () prennent en charge au moins les combinaisons de flux suivantes en plus de celles des CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY LEGACY appareils :

<table>tr th colspan="2 » id="rb"<Target 1></th>th colspan="2 » id="rb"<Target 2></th>colspan="2 » id="rb"<Target 3></th><rowspan=""2">Exemple de cas d’usage/s)</th></tr tr><>th<Type></th th>id="rb"<Taille>< maximale/th th><Type></th th>id="rb"<Taille>< maximale/th th><>< th>id="rb"<Taille>< maximale/th>/tr<><><tr><td>PRIV</td><td id="rb"/td td>PREVIEWtd/<><td>id="rb"PRIV<></td td>RECORDcolspan="2 » id="rb"<><></td td><td>high-resolution video recording with preview.</td></tr tr><><tr>PRIV</td><id="rb">PREVIEW</td td/><>YUVtd<><id="rb">RECORD</td td><colspan="2 » id="rb"></td td><>high-resolution in-app video processing with preview.</td></tr tr><><tr>YUV</td><id="rb">PREVIEW</td td/><>YUVtd<><id="rb">RECORD</td td><colspan="2 » id="rb"></td td><>td Two-input in-app video processing.</td>/tr tr<><>td<>PRIV/td<id="rb"><>PREVIEW/td td/<><>tdPRIV<id="rb"><>RECORD/td<>td<>JPEG/td<id="rb"/td td id="rb"><>RECORD/td td<>td<high-resolution recording with video snapshot.></td></tr tr><><tr>PRIV</td><id="rb">PREVIEW</td td><>/YUVtd<><id="rb">RECORD</td><td>JPEG</td><id="rb"/td td id="rb">RECORD</td td><td>high-resolution in-app processing with video snapshot.</td>/tr tr<><>td<>YUV/td<id="rb"><>PREVIEW/td td/<><>tdYUV<id="rb"><>PREVIEW/td<>td<>JPEG/td<id="rb"/td td id="rb"><>MAXIMUM/td td td td<><two-input in-app processing with still capture.></td></tr/table>br<><>

<configurations> garanties supplémentaires au niveau complet h5</h5>

Les appareils de niveau complet (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL) prennent en charge au moins les combinaisons de flux suivantes en plus de celles des CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED appareils :

<table>tr th colspan="2 » id="rb"<Target 1></th>th colspan="2 » id="rb"<Target 2></th>colspan="2 » id="rb"<Target 3></th><rowspan=""2">Exemple de cas d’usage/s)</th></tr tr><>th<Type></th th>id="rb"<Taille>< maximale/th th><Type></th th>id="rb"<Taille>< maximale/th th><>< th>id="rb"<Taille>< maximale/th></tr><><tr><td>PRIV</td><td id="rb"/td td>PREVIEWtd id<><>="rb"PRIV<></td td>MAXIMUMcolspan="2 » id="rb"<><></td><td>Maximum-resolution GPU processing with preview.</td>/tr tr<><>tr/<>PRIVtd<id="rb"><>PREVIEW/td td/<><>tdYUV<id="rb"><>MAXIMUM/td td<>colspan="2 » id="rb"</td><>td<Maximum-resolution in-app processing with preview.></td></tr tr><><tr>YUV</td><id="rb">PREVIEW</td td/><>YUVtd<><id="rb">MAXIMUM</td td><colspan="2 » id="rb"></td td-resolution><>two-input in-app processing.</td></tr tr><><tr>PRIV</td><id="rb">PREVIEW</td td/><>PRIVtd<><id="rb">PREVIEW</td><td>JPEG</td><id="rb"/td td id="rb">MAXIMUM</td td><>Video recording with maximum-size video snapshot</td></tr tr><><td/>YUV<td><id="rb »>640x480</td><td>PRIV</td><td id="rb">PREVIEW</td td/td><>YUV<>< id="rb">MAXIMUM</td td td><>Standard video recording plus maximum-resolution in-app processing.</td>/tr tr<><>td<>YUV/td<id="rb"><>640x480/td td/<td><>YUV< id="rb"><>PREVIEW/td<>td<>YUV/td<id="rb"/td td id="rb"><>MAXIMUM/td td<>td<Preview plus deux-entrées maximum-resolution in-app processing.></td></tr/table>br<><>

<Configurations garanties supplémentaires> de capacité BRUTE h5</h5>

Les appareils RAW (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES inclut CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW RAW) prennent également en charge au moins les combinaisons de flux suivantes sur les deux CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL et CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED les appareils :

<table>tr th colspan="2 » id="rb"<Target 1></th>th colspan="2 » id="rb"<Target 2></th>colspan="2 » id="rb"<Target 3></th><rowspan=""2">Exemple de cas d’usage/s)</th></tr tr><>th<Type></th th>id="rb"<Taille>< maximale/th th><Type></th th>id="rb"<Taille>< maximale/th th><>< th>id="rb"<Taille>< maximale/th></tr><><tr><td>RAW</td><td id="rb">MAXIMUM</td td colspan><="2 » id="rb"></td td><colspan="2 » id="rb"></td td td><>no-preview DNG capture.</td></tr tr><><tr>PRIV</td><id="rb">PREVIEW</td td/><>RAWtd<><id="rb">MAXIMUM</td><colspan="2 » id="rb"></td td><>DNG capture.</td></tr tr><><tr>YUV</td><id="rb">PREVIEW</td td/><>RAWtd<><id="rb">MAXIMUM</td td><colspan="2 » id="rb"></td td><>In-app processing plus DNG capture.</td>/tr tr<><>tr<>PRIV/td<id="rb"><>PREVIEW/td td/<><>tdPRIV<id="rb"><>PREVIEW/td<>td<>RAW/td<id="rb"/td id="rb"><>MAXIMUM/td<><Video recording with DNG capture.></td>/tr tr<>tr<><>PRIV/td<id="rb"><>PREVIEW/td td/<><>tdYUV<id="rb"><>PREVIEW/td<>td<>RAW/td<id="rb"/td td id="rb"><>MAXIMUM/td td<><td Preview avec traitement in-app et capture DNG.></td></tr tr><><tr>YUV</td><id="rb">PREVIEW</td td><>/YUVtd<><id="rb">PREVIEW</td><td>RAW</td><id="rb"/td td id="rb">MAXIMUM</td td><>two-input in-app processing plus DNG capture.</td></tr tr><><tr>PRIV</td><id="rb">PREVIEW</td td><>/JPEGtd<><id="rb">MAXIMUM</td><td>RAW</td><id="rb"/td td id="rb">MAXIMUM</td td><td>Still capture avec JPEG et DNG simultanés.</td></tr tr><><tr>YUV</td><id="rb">PREVIEW</td td><>/JPEGtd<><id="rb">MAXIMUM</td><td>RAW</td><id="rb"/td td id="rb">MAXIMUM</td td><>In-app processing with simultanée JPEG and DNG.</td></tr/table>br<><>

<Configurations garanties> supplémentaires de fonctionnalité burst h5</h5>

Les appareils burst-capability (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES inclut CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE BURST_CAPTURE) prennent en charge au moins les combinaisons de flux ci-dessous en plus de celles des CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED appareils. Notez que tous les appareils de niveau COMPLET prennent en charge la fonctionnalité BURST et que la liste ci-dessous est un sous-ensemble strict de la liste pour les appareils de niveau COMPLET. Ce tableau est donc uniquement pertinent pour les appareils de niveau LIMITÉ qui prennent en charge la fonctionnalité de BURST_CAPTURE.

<table><tr><th colspan="2 » id="rb">Target 1</th th><colspan="2 » id="rb">Target 2</th><rowspan="2">Sample use case(s)< /th/tr><>th<><> Type</th th><id="rb">Taille< maximale/th th><>Type</th th><id="rb">Max size</th></tr tr><><tr td>PRIV</td><id="rb">PREVIEW</td><td/td>PRIV<><td id="rb »>MAXIMUM</td td><>traitement GPU de résolution maximale avec préversion.</td></tr tr><><tr>PRIV</td><id="rb">PREVIEW</td td/><>YUVtd<><id="rb">MAXIMUM</td td><>td maximum-resolution in-app processing with preview.</td></tr tr><><tr>YUV</td><id="rb">PREVIEW</td td/><>YUVtd<><id="rb">MAXIMUM</td td><>td-resolution two-input in-app processing.</td></tr/table>br<><>

<configurations garanties> supplémentaires h5<LEVEL-3/h5>

LEVEL-3 (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3 LEVEL_3) prend en charge au moins les combinaisons de flux suivantes en plus des combinaisons pour et pour CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL la fonctionnalité RAW (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES inclut CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW RAW) :

<table>tr th colspan="2 » id="rb"<Target 1></th>th colspan="2 » id="rb"<Target 2></th>colspan="2 » id="rb"<Target 3></th>colspan="2 » id="rb « <Target 4></th>rowspan="2"<Sample use case(s)></th></tr tr><>th<Type></th th>id="rb"<Max size/th th><>Type</th th><id="rb">Max< size></th th><Type></th th>id="rb<><« >Taille maximale/th<Type></th>th<id="rb"><Taille maximale>/th<>/tr tr<><>td<>PRIV/td<id="rb"><>PREVIEW/td<>td/<>PRIVtd<id="rb"/td td id="rb"><>640x480/td<>td<>YUV< id="rb"><>MAXIMUM/td<>td<>RAW id="rb"rb"<><>/MAXIMUMtd td td<><in-app viewfinder avec> sélection dynamique du format de sortie.</td></tr tr><><td>PRIV</td><id="rb"/td td/>PREVIEW<>td<>id="rb"PRIV<></td>640x480td<></td>id="rb"/tdJPEG<td id><>MAXIMUM="rb"<></td td>id="rb"RAW<><>MAXIMUM</td td><td>viewfinder analysis with dynamic selection of output format.</td></tr/table>br<><>

<Configurations garanties> de flux simultané h5</h5>

BACKWARD_COMPATIBLE appareils capables de diffuser en continu simultanément avec d’autres appareils, comme décrit par android.hardware.camera2.CameraManager#getConcurrentCameraIds les flux garantis suivants (lors de la diffusion en continu simultanément avec d’autres appareils)

Remarque : les tailles mentionnées pour ces flux simultanés sont les tailles maximales garanties pour être prises en charge. Les tailles inférieures à celles-ci, obtenues pour StreamConfigurationMap#getOutputSizes un format particulier, sont également prises en charge.

<table>tr th colspan="2 » id="rb"<Target 1></th>th colspan="2 » id="rb"<Target 2></th>rowspan="2"<Sample use case(s)></th></tr tr><>th Type</th><th>id="rb"<Max size></th><th Type></th th>id="rb"<Max size></th></tr tr><><tr/><>td idYUV="rb"<><>/tds1440p<colspan="2 » id="rb »><></td><td>In-app video/ image processing.</td>/tr tr<><>tr<>PRIV/td<id="rb"><>s1440p/td td<>colspan="2 » id="rb"</td td><><In-app viewfinder analysis.></td>/tr tr<><>tr<>JPEG/td<id="rb"><>s1440p/td td<>colspan="2 » id="rb"</td td><><No viewfinder toujours image capture.></td>/tr tr<><>tr<>YUV / PRIV/td<id="rb"><>s720p/td td<></td>JPEG<id="rb"><>s1440p/td td standard<>< continue d’imagerie.></td>/tr tr<><>tr td<>YUV / PRIV/td<id="rb"><>s720p/td td/<><>tdYUV / PRIV<id="rb"><>s1440p/td td<><in-app video/ processing with preview.></td></tr/table>br<><>

Les appareils qui ne sont pas compatibles descendantes prennent en charge un flux unique obligatoire de taille sVGA avec format DEPTH16 d’image pendant l’opération simultanée.

Pour les configurations de flux simultanées garanties :

sVGA fait référence à la résolution maximale de l’appareil photo pour ce format à partir ou à partir de la StreamConfigurationMap#getOutputSizes résolution VGA (640X480) selon la valeur inférieure.

s720p fait référence à la résolution maximale de l’appareil photo pour ce format à partir de StreamConfigurationMap#getOutputSizes ou 720p(1280X720) selon la valeur inférieure.

s1440p fait référence à la résolution maximale de l’appareil photo pour ce format à partir de StreamConfigurationMap#getOutputSizes ou 1440p(1920X1440) selon la valeur inférieure.

La fonctionnalité MONOCHROME (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES inclut CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MONOCHROME MONOCHROME) prend en charge la prise en charge android.graphics.ImageFormat#Y8 Y8 du remplacement des YUV flux par Y8 toutes les combinaisons de flux garanties pour le niveau matériel et les fonctionnalités de l’appareil.

Les clients peuvent accéder aux tables de combinaisons de flux obligatoires ci-dessus via android.hardware.camera2.params.MandatoryStreamCombination.

Les appareils capables de sortir les formats HEIC (StreamConfigurationMap#getOutputFormats contient android.graphics.ImageFormat#HEIC) prennent en charge la substitution de JPEG flux par HEIC toutes les combinaisons de flux garanties pour le niveau matériel et les fonctionnalités de l’appareil. L’appel de createCaptureSession avec des sorties JPEG et HEIC n’est pas pris en charge.

<Combinaisons supplémentaires de niveau hérité h5>avec sorties< multi-résolution/h5>

Les appareils capables de générer une sortie à plusieurs résolution pour un format particulier ( android.hardware.camera2.params.MultiResolutionStreamConfigurationMap#getOutputInfo retourne une liste non vide) prennent en charge l’utilisation MultiResolutionImageReader pour les flux de résolution MAXIMUM de ce format pour toutes les combinaisons de flux obligatoires. Par exemple, si un appareil photo LIMITED prend en charge les flux de sortie à résolution multiple pour les deux JPEG et PRIVATE, en plus des configurations de flux dans le tableau LIMITED et Hérité ci-dessus, l’appareil photo prend en charge les combinaisons de flux garanties suivantes (MULTI_RES dans la colonne Taille maximale fait référence à une MultiResolutionImageReader création basée sur les résolutions maximales variables prises en charge) :

<table><tr><th colspan="2 » id="rb">Target 1</th><th colspan="2 » id="rb">Target 2</th><colspan="2 » id="rb">Target 3</th th><rowspan="2">Sample use case(s)</th></tr tr><><th>Type</th th><id="rb">Max size</th th Type>/th<>th<><id="rb">Max size</th><>th Type</th th><id="rb » >Taille< maximale/th></tr tr><><tr td>PRIV</td><id="rb">MULTI_RES</td td><colspan="2 » id="rb"></td><colspan="2 » id="rb"></td><td>Simple preview, traitement vidéo GPU ou enregistrement vidéo sans préversion.</td>/tr tr<><>tr<>JPEG/td<id="rb"/td td><>colspan="2 » id="rb"MULTI_RES/td<>td colspan="2 » id="rb"<><></td td td><><no-viewfinder toujours image capture.></td></tr tr><><tr>PRIV</td><id="rb">PREVIEW</td td/><>JPEGtd<><id="rb">MULTI_RES</td td><colspan="2 » id="rb"></td td><>Standard encore imaging.</td>/tr tr<><>tr<>PRIV/td<id="rb"><>PREVIEW/td td/<><>tdYUV<id="rb"><>PREVIEW/td<>td<>JPEG/td<id="rb"/td td id="rb"><>MULTI_RES/td td td<><still capture plus in-app processing.></td></tr/table>br<><>

<Configurations supplémentaires de niveau limité h5>avec sorties< multi-résolution/h5>

<table>tr th colspan="2 » id="rb"<Target 1></th>th colspan="2 » id="rb"<Target 2></th>colspan="2 » id="rb"<Target 3></th><rowspan=""2">Exemple de cas d’usage/s)</th></tr tr><>th<Type></th th>id="rb"<Taille>< maximale/th th><Type></th th>id="rb"<Taille>< maximale/th th><>< th>id="rb"<Taille>< maximale/th>/tr<><><tr><td>YUV</td><td id="rb">PREVIEW</td td/><>tdYUV<><id="rb">PREVIEW</td><td>JPEG</td><id="rb">MULTI_RES</td td td-input><>in-app processing with still capture.</td></tr></table><br> La même logique s’applique à d’autres niveaux et fonctionnalités matériels.

<Combinaisons garanties supplémentaires h5>pour les capteurs< ULTRA_HIGH_RESOLUTION/h5>

Les appareils dotés de la fonctionnalité ULTRA_HIGH_RESOLUTION_SENSOR disposent de certaines garanties supplémentaires dont les clients peuvent tirer parti :

<table><tr><th colspan="3 » id="rb">Target 1</th><th colspan="3 » id="rb">Target 2</th><colspan="3 » id="rb">Target 3</th><rowspan=""2">Exemple de cas d’usage/s)</th></tr tr><><th>Type</th th><id="rb »> SC Map</th th><id="rb">Max size</th th><>Type</th th><id="rb »> SC Map</th th><id="rb » >Taille< maximale/th>Type</th><th><id="rb »> SC Map</th th><id="rb">Max size</th></tr tr><><tr>YUV / JPEG / RAW</td><id="rb">MAX_RES</td><id="rb"/td td id="rb"/td>td id="rb"MAX<></td>td id="rb"PRIV / YUV<></td td>id="rb"DEFAULT<></td>colspan="3 » id="rb"PREVIEW<><></td><>Ultra high res still image capture avec préversion</td></tr tr><><tr>YUV / JPEG / RAW</td><id="rb"/td>id="rb"MAX_RES<></td>id="rb"/tdMAXid="rb"<><>/td id="rb"PRIV<></td td>id="rb"DEFAULT<></td>td id="rb"PREVIEW<><>PRIV / YUV</td><td id="rb">DEFAULT</td><id="rb">RECORD</td td><>Ultra high res toujours capturer avec la préversion + analyse< de la taille d’enregistrement basée sur l’application/td></tr tr><><td td>YUV / JPEG / RAW<>< id="rb">MAX_RES</td><td id="rb">MAX</td><td id="rb>PRIV<"><>DEFAULT/td<><id="rb">PREVIEW</td><id="rb"/td>td id="rb"JPEG / YUV / RAW<></td td id="rb">DEFAULT</td><id="rb »>/td tdMAX<td>Ultra high res still image capture with preview + default sensor pixel analysis stream</td></tr></table>br <><>

Ici, SC Map, fait référence à la StreamConfigurationMaptaille des flux cibles doit être choisie. DEFAULT fait référence au mode StreamConfigurationMap pixel du capteur par défaut et MAX_RES fait référence à la résolution StreamConfigurationMapmaximale. Pour MAX_RES les flux, MAX dans la Max size colonne fait référence à la taille maximale de et StreamConfigurationMap#getOutputSizesStreamConfigurationMap#getHighResolutionOutputSizes. Remarque : La même demande de capture ne doit pas mélanger les cibles de StreamConfigurationMaps correspondant à différents modes de pixels de capteur.

<Sortie h5>10 bits supplémentaires garanties</h5>

Les appareils compatibles CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT avec la sortie 10 bits prennent en charge au moins les combinaisons de flux suivantes :

<table>tr th colspan="2 » id="rb"<Target 1></th>th colspan="2 » id="rb"<Target 2></th>colspan="2 » id="rb"<Target 3></th><rowspan=""2">Exemple de cas d’usage/s)</th></tr tr><>th<Type></th th>id="rb"<Taille>< maximale/th th><Type></th th>id="rb"<Taille>< maximale/th th><>< th>id="rb"<Taille>< maximale/th>/tr<><><tr><td>PRIV</td><td id="rb">MAXIMUM</td/td td><>< colspan="4 » id="rb"></td td><>Simple preview, traitement vidéo GPU ou enregistrement vidéo sans aperçu.</td>/tr tr<><>tr<>YUV/td<id="rb"><>MAXIMUM/td td td<><> colspan="4 » id="rb"</td td><><in-application video/image processing.></td></tr tr><><tr>PRIV</td><id="rb">PREVIEW</td td/><>JPEGtd<><id="rb">MAXIMUM</td td><colspan="2 » id="rb"></td td><>Standard encore imaging.</td>/tr tr<><>tr/<>PRIVtd<id="rb"><>PREVIEW/td td/<><>tdYUV<id="rb"><>MAXIMUM/td td<>colspan="2 » id="rb"</td><>td<Maximum-resolution in-app processing with preview.></td></tr tr><><tr>YUV</td><id="rb">PREVIEW</td td/><>YUVtd<><id="rb">MAXIMUM</td td><colspan="2 » id="rb"></td td-resolution><>two-input in-app processing.</td>/tr tr<><>tr<>PRIV/td<id="rb"><>PREVIEW/td td<>td<>PRIV< id="rb"><>RECORD/td td<>colspan="2 » id="rb"</td td><><high-resolution video recording with preview.></td></tr tr><><td>PRIV</td><id="rb">PREVIEW</td td><>/PRIVtd<><id="rb">RECORD</td><td>YUV</td><id="rb"/td td id="rb">RECORD</td td><td>high-resolution recording with in-app snapshot.</td>/tr tr<><>td<>PRIV/td<id="rb"><>PREVIEW/td td/<><>tdPRIV<id="rb"><>RECORD/td<>td<>JPEG/td<id="rb"/td td id="rb"><>RECORD/td td<>td<high-resolution recording with video snapshot.></td></tr/table>br<><>

Ici, PRIV peut être au format de pixel 8 ou 10 bits android.graphics.ImageFormat#PRIVATE . YUV peut être soit android.graphics.ImageFormat#YUV_420_888 ou android.graphics.ImageFormat#YCBCR_P010. Pour la colonne de taille maximale, PREVIEW fait référence à la meilleure taille correspondant à la résolution d’écran de l’appareil, ou à 1080p (1920x1080), selon ce qui est plus petit. RECORD fait référence à la résolution d’enregistrement maximale prise en charge de l’appareil photo, comme déterminé par android.media.CamcorderProfile. MAXIMUM fait référence à la résolution de sortie maximale de l’appareil photo pour ce format ou cible à partir de StreamConfigurationMap#getOutputSizes(int). Notez que des combinaisons non valides telles que la configuration d’une surface de caméra pour utiliser le format android.graphics.ImageFormat#YUV_420_888 pixel avec un profil 10 bits entraînent un échec d’initialisation de session de capture.

android.graphics.ImageFormat#JPEG_R peut également être pris en charge s’il est publié par android.hardware.camera2.params.StreamConfigurationMap. Lors de l’initialisation d’une session de capture qui inclut des clients de sortie de caméra Jpeg/R, vous devez prendre en compte les éléments suivants w.r.t. la table de combinaisons de flux obligatoires 10 bits :

<ul><li>Pour générer l’image Jpeg/R compressée, une seule android.graphics.ImageFormat#YCBCR_P010 sortie sera utilisée en interne par l’appareil photo.</li li><>Sur les appareils photo capables de prendre en charge les demandes de capture simultanées 10 et 8 bits, une android.hardware.camera2.params.DynamicRangeProfiles#getProfileCaptureRequestConstraints option supplémentaire android.graphics.ImageFormat#JPEG est également configurée en interne pour accélérer le processus d’encodage.</li></ul>

Les sorties de caméra Jpeg/R peuvent généralement prendre en charge la résolution maximale de l’appareil. Les clients peuvent également appeler StreamConfigurationMap#getOutputSizes(int) une liste complète des tailles prises en charge. Les clients de caméra qui inscrivent une sortie Jpeg/R dans une combinaison de flux qui ne s’intègrent pas dans la table de flux obligatoire ci-dessus peuvent appeler #isSessionConfigurationSupported pour vous assurer que cette configuration particulière est prise en charge.

<h5>STREAM_USE_CASE fonctionnalité de configurations< garanties supplémentaires/h5>

Les appareils dotés de la fonctionnalité STREAM_USE_CASE (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES inclut CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE) prennent en charge les combinaisons de flux supplémentaires ci-dessous :

<table>tr th colspan="3 » id="rb"<Target 1></th>th colspan="3 » id="rb"<Target 2></th>colspan="3 » id="rb"<Target 3></th><rowspan="2">Exemple de cas d’usage/s)</th></tr tr><>th<Type></th th>id="rb"<Taille>< maximale/th th><Usecase></th th th><Type></th th>id="rb"<Taille>< maximale/><th th Usecase></th Type><><></th><id="rb">Max size</th><th>Usecase</th>< tr tr><><td>YUV / PRIV</td><td id="rb">PREVIEW</td td><id="rb">PREVIEW</td td><colspan="3 » id="rb"></td><colspan="3 » id="rb"></td td td><>simple preview ou in-app image processing</td></tr tr><></td id>YUV / PRIV<><="rb »>RECORD</td><td id="rb">VIDEO_RECORD</td td><colspan="3 » id="rb"/td td><>colspan="3 » id="rb"</td td><><td Simple video recording or in-app video processing>/td<>/tr tr<><>td td/<>YUV / JPEGtd<id="rb"><>MAXIMUM/<td td id="rb"><>STILL_CAPTURE</td><td colspan="3 » id="rb"rb="rb"rb><"/td><colspan="3 » id="rb"></td><td>Simple JPEG ou YUV toujours image capture</td></tr tr><tr></td>YUV / PRIV<>< id="rb">s1440p</td><id="rb">PREVIEW_VIDEO_STILL</td><td colspan="3 » id="rb"></td td><colspan="3 » id="rb"></td td><>multi-usage stream for preview, video and still image capture</><td>< tr><tr td/td td>YUV / PRIV<><td id="rb »>s1440p</td><td id="rb">VIDEO_CALL</td td><colspan="3 » id="rb"></><td td colspan="3 » id="rb"></td td><>Simple video call</><><td td td><>PRIV< id="rb"><>PREVIEW/td<><td id="rb"/td id="rb">PREVIEW</><td td>YUV / JPEG<>< id="rb"/td id="rb">MAXIMUM</td><id="rb"/>STILL_CAPTURE< td td colspan="3 » id="rb">/td td<><>preview avec JPEG ou YUV toujours image capture</td></tr><tr><><>/tdPRIVid="rb"<><>/td idPREVIEW="rb"<><>/tdPREVIEW<td td><>YUV / PRIV id="rb"rb"<><>/tdRECORDtd id="rb"<><>/tdVIDEO_RECORD<td colspan="3 » id="rb">/td td<><><>Aperçu avec enregistrement vidéo ou traitement< vidéo in-app/td></tr tr><></>tdPRIV<>< td id="rb">PREVIEW</td><id="rb">PREVIEW</td><td>YUV</td><td id="rb">PREVIEW</td><td id="rb">PREVIEW</td td><colspan="3 » id="rb"></td><td td>td preview avec traitement< d’image in-application/td></tr tr><><td>PRIV</td><id="rb">PREVIEW</td td><id="rb">PREVIEW</><td td>YUV / PRIV</td><id="rb"/td>id="rb"s1440p<></td td id="rb">VIDEO_CALL</td><colspan="3 » id="rb"></td td><>preview avec appel< vidéo/td></tr tr><><td/td td/td>YUV / PRIV<><td id="rb">s1440p</td><td id="rb">PREVIEW_VIDEO_STILL</td td><td>YUV / JPEG<>< id="rb">MAXIMUM</td><id="rb">STILL_CAPTURE</td><colspan="3 » id="rb"></td><>MultI-purpose stream with JPEG or YUV still capture</><><td>< td>YUV<>< id="rb"/td td id="rb">PREVIEW</td id><="rb »>STILL_CAPTURE</td><td>JPEG</><td td id="rb">MAXIMUM</td td><id="rb">STILL_CAPTURE</><td td colspan="3 » id="rb"></td td td><>YUV et JPEG capture d’images simultanées (pour les tests)</td tr tr><><td><>/tdPRIV<>< id="rb">PREVIEW</td id="rb"/td><id="rb">PREVIEW</td td td td><>YUV / PRIV</td><td id="rb">RECORD</td td><id="rb">VIDEO_RECORD</td><td td>JPEG<>< id="rb"/td>td id="rb"RECORD<><>STILL_CAPTURE</td td><td>preview, video record and JPEG video snapshot</td></tr tr><></td>PRIV<>< td id="rb">PREVIEW</td><id="rb"/td td id="rb">PREVIEW</td td><td>YUV</><td td id="rb">PREVIEW</td td><id="rb">PREVIEW</td><td td>JPEG<>< id="rb"/td>id="rb"MAXIMUM<></td td id="rb">STILL_CAPTURE</td td><>td Preview, traitement d’images in-application et JPEG toujours image capture</td></tr></table br><>

<h5>STREAM_USE_CASE_CROPPED_RAW fonctionnalité de configurations< garanties supplémentaires/h5>

Les appareils qui incluent le CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW cas d’usage du flux dans CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES, prennent en charge les combinaisons de flux supplémentaires ci-dessous :

<table>tr th colspan="3 » id="rb"<Target 1></th>th colspan="3 » id="rb"<Target 2></th>colspan="3 » id="rb"<Target 3></th><rowspan="2">Exemple de cas d’usage/s)</th></tr tr><>th<Type></th th>id="rb"<Taille>< maximale/th th><Usecase></th th th><Type></th th>id="rb"<Taille>< maximale/><th th Usecase></th Type><><></th th><id="rb">Max size</th><th>Usecase</th></tr tr><><td>RAW</td><id="rb">MAXIMUM</td td><id="rb">CROPPED_RAW</td td><colspan="3 » id="rb"></td><colspan="3 » id="rb"></td><td>cropped RAW toujours capturer sans préversion</td></td/tr><tr></td>idPRIV / YUV<><="rb »>PREVIEW</td><td id="rb">PREVIEW</td td><td/>RAW<td><id="rb">MAXIMUM</><td td id="rb">CROPPED_RAW</td><td colspan="3 » id="rb"></td td><>preview with cropped RAW still capture</td>< tr><></>PRIV / YUV<><td id="rb">PREVIEW</td><td id="rb"/td id="rb">PREVIEW</td td td td><>YUV / JPEG</td><td id="rb">MAXIMUM</td td><id="rb">STILL_CAPTURE</td><td td>RAW<>< id="rb">MAXIMUM</td><td id="rb">CROPPED_RAW</td td><preview>with YUV / JPEG and cropped RAW still capture</td tr><><td><>/PRIV / YUVtd<>< id="rb"/td id="rb">PREVIEW</td><id="rb"/td td id="rb">PREVIEW</td><td>PRIV / YUV</td><td id="rb">PREVIEW</td td><id="rb">VIDEO_RECORD / PREVIEW</td td><td>RAW<>< id="rb"/td>id="rb"MAXIMUM<></td td id="rb">CROPPED_RAW</td td><>Video recording with preview and cropped RAW still capture</td></tr></table br><>

<h5>Préversion stabilisation garantie des configurations< de flux/h5>

Pour les appareils dans lesquels CameraCharacteristics#CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES inclut , les combinaisons de flux suivantes sont garanties, pour CaptureRequests où CameraMetadata#CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION est défini sur CaptureRequest#CONTROL_VIDEO_STABILIZATION_MODECameraMetadata#CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATIONla table<>tr<th colspan="2 » id="rb"><Target 1>/th th<colspan="2 » id="rb"><Target 2>/th<th rowspan="2"><Exemple de cas d’usage(s)>/th<>/tr tr<><th><Type>/th th<id="rb"><Taille> maximale/th th<><Type>/th th<id="rb"><Max size>/th</tr ><><tr><td>PRIV / YUV</td><td id="rb">s1440p</td td><colspan="2 » id="rb"></td><td>stabilisé preview, traitement vidéo GPU ou enregistrement vidéo stabilisé sans aperçu stabilisé.</td>/tr tr<>tr<><>PRIV / YUV/td<id="rb"><>s1440p/td td<></>tdJPEG / YUV<id="rb"><>MAXIMUM/td td standard<><encore l’imagerie avec une préversion stabilisée.></td>/tr tr<><>tr<>PRIV / YUV/td<id="rb"><>PREVIEW/td td/<><>tdPRIV / YUV<id="rb"><>s1440p/td td<td><high-resolution recording with stabilisd preview and recording stream.></td></tr/table>br<><>

Pour la colonne de taille maximale, PREVIEW fait référence à la meilleure taille correspondant à la résolution d’écran de l’appareil, ou à 1080p (1920x1080), selon ce qui est plus petit. RECORD fait référence à la résolution d’enregistrement maximale prise en charge de l’appareil photo, comme déterminé par android.media.CamcorderProfile. MAXIMUM fait référence à la résolution de sortie maximale de l’appareil photo pour ce format ou cible à partir de StreamConfigurationMap#getOutputSizes(int).

Étant donné que les fonctionnalités des appareils photo varient considérablement, un appareil photo donné peut prendre en charge les combinaisons cibles avec des tailles en dehors de ces garanties, mais cela ne peut être testé que par l’appel #isSessionConfigurationSupported ou la tentative de création d’une session avec de telles cibles.

Exception sur la résolution 176x144 (QCIF) : les appareils photo disposent généralement d’une capacité fixe pour la mise à l’échelle de plus grande résolution à plus petite, et la résolution QCIF n’est parfois pas entièrement prise en charge en raison de cette limitation sur les appareils avec des capteurs d’image haute résolution. Par conséquent, la tentative de configuration d’un flux de résolution QCIF avec tout autre flux supérieur à la résolution 1920x1080 (largeur ou hauteur) peut ne pas être prise en charge, et la création de session de capture échoue si ce n’est pas le cas.

<h3>Retraitement</h3>

Si un appareil photo prend en charge le retraitement YUV (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING) ou le retraitement PRIVÉ (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING), l’application peut également créer une session de capture reprocessable pour envoyer des demandes de capture de retraitement en plus des demandes de capture régulières, en définissant une android.hardware.camera2.params.SessionConfiguration#setInputConfiguration input configuration session pour la session. Une demande de capture de retraitement prend la mémoire tampon disponible suivante à partir de la Surface d'entrée de la session et l'envoie à nouveau via le pipeline de traitement de l'appareil photo pour produire des mémoires tampons pour les surfaces de sortie cible de la requête. Aucune nouvelle donnée d’image n’est capturée pour une demande de retraitement. Toutefois, la mémoire tampon d’entrée fournie par l’application doit être capturée précédemment par le même appareil photo dans la même session directement (par exemple, pour zero-Shutter-Lag cas d’usage) ou indirectement (par exemple, combiner plusieurs images de sortie).

La session de capture reprocessable active détermine une entrée Surface et l’ensemble de surfaces de sortie potentielles pour les appareils photo pour chaque demande de capture. L’application peut utiliser #createCaptureRequest createCaptureRequest pour créer des demandes de capture régulières pour capturer de nouvelles images à partir de l’appareil photo et #createReprocessCaptureRequest createReprocessCaptureRequest pour créer des demandes de capture de retraitement pour traiter les mémoires tampons à partir de l’entrée Surface. Certaines combinaisons de surfaces de sortie dans une session peuvent ne pas être utilisées simultanément dans une requête. Les combinaisons garanties de surfaces de sortie qui peuvent être utilisées simultanément dans une requête sont répertoriées dans les tables sous #createCaptureSession createCaptureSession. Toutes les surfaces de sortie d’une demande de capture proviennent de la même source, soit d’une nouvelle capture par l’appareil photo, soit de l’entrée Surface selon que la demande est une demande de capture de retraitement.

Les formats et tailles d’entrée pris en charge par l’appareil photo peuvent être interrogés via StreamConfigurationMap#getInputFormats et StreamConfigurationMap#getInputSizes. Pour chaque format d’entrée pris en charge, l’appareil photo prend en charge un ensemble de formats et de tailles de sortie pour le retraitement qui peut être interrogé via StreamConfigurationMap#getValidOutputFormatsForInput et StreamConfigurationMap#getOutputSizes. Même si les surfaces de sortie avec des formats qui ne sont pas des cibles de sortie de retraite valides pour la configuration d’entrée peuvent faire partie d’une session, elles ne peuvent pas être utilisées comme cibles pour une demande de retraitement.

Étant donné que l’application ne peut pas accéder directement aux android.graphics.ImageFormat#PRIVATE images, une sortie Surface créée par android.media.ImageReader#newInstanceandroid.graphics.ImageFormat#PRIVATE le format sera considérée comme destinée à être utilisée pour le retraitement de l’entrée et donc la android.media.ImageReader taille doit correspondre à l’une des tailles d’entrée prises en charge pour android.graphics.ImageFormat#PRIVATE le format. Sinon, la création d’une session de capture reprocessable échoue.

À partir du niveau 30 de l’API, la recréation d’une session de capture reprocessable vide toutes les mémoires tampons mises en file d’attente, mais pas encore traitées à partir de la surface d’entrée.

Les configurations des tableaux ci-dessous sont garanties pour la création d’une session de capture reprocessable si l’appareil photo prend en charge le retraitement YUV ou le retraitement PRIVÉ. Toutefois, toutes les cibles de sortie utilisées pour créer une session reprocessable peuvent être utilisées simultanément.CaptureRequest Pour les appareils qui prennent uniquement en charge 1 cible de sortie dans un retraitement CaptureRequest, l’envoi d’un retraitement CaptureRequest avec plusieurs cibles de sortie entraîne un CaptureFailure. Pour les appareils qui prennent en charge plusieurs cibles de sortie dans un retraitement CaptureRequest, les cibles de sortie garanties qui peuvent être incluses simultanément dans une CaptureRequest liste sont répertoriées dans les tables sous #createCaptureSession createCaptureSession. Par exemple, avec un appareil FULL-capability (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL) qui prend en charge le retraitement PRIVÉ, une application peut créer une session de capture reprocessable avec 1 entrée, (PRIV, MAXIMUMet 3 sorties, (PRIV, MAXIMUM), (, )PRIVPREVIEW et (, YUV).MAXIMUM Toutefois, il n’est pas garanti qu’une application puisse soumettre une capture régulière ou retraiter avec (PRIV, MAXIMUM) et (YUV, MAXIMUM) des sorties basées sur la table répertoriée sous #createCaptureSession createCaptureSession. En d’autres termes, utilisez les tableaux ci-dessous pour déterminer les configurations de flux garanties pour la création d’une session de capture reprocessable et utilisez les tables sous #createCaptureSession createCaptureSession lesquelles vous pouvez déterminer les cibles de sortie garanties qui peuvent être soumises simultanément dans une session de capture régulière ou reprocessée CaptureRequest .

Le retraitement avec des cibles de sortie 10 bits sur des appareils compatibles CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT 10 bits n’est pas pris en charge. La tentative d’initialisation d’une session de capture répréciable avec une ou plusieurs configurations de sortie définies OutputConfiguration#setDynamicRangeProfile pour utiliser un profil android.hardware.camera2.params.DynamicRangeProfiles de plage dynamique 10 bits se déclenche IllegalArgumentException.

<style délimité> #rb { bordure droite-largeur : épais ; }</style>

Les appareils de niveauCameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED LIMITÉ () prennent en charge au moins les combinaisons de flux suivantes pour la création d’une session de capture reprocessable en plus de celles répertoriées précédemment pour les captures régulières pour CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED les appareils :

<table><tr><th colspan="11">LIMITED-level additional guaranteed configurations for creating a reprocessable capture session<br>(PRIV input is garantie only if PRIVATE reprocessing is supported. YUV l’entrée est garantie uniquement si le retraitement YUV est pris en charge)</th></tr tr><><th colspan="2 » id="rb">Input</th th><colspan="2 » id="rb">Target 1</th th><colspan="2 » id="rb">Target 2</th th><colspan="2 » id= » rb">Target 3</th><colspan="2 » id="rb"Target 4>/th<rowspan="2"><Sample use case(s)>/th<>/tr tr<><th><Type>/th th<id="rb"><>Max size</th th><th>Type</><th th id="rb"Max size>/<><th th Type>/th th<id="rb"><Max size>/th th<><Type>/th th<id="rb"><>Max size</th><>th Type</th th><id="rb » >Taille< maximale/th></tr tr><><td>PRIV/YUV</td><id="rb">MAXIMUM</td td><>same as input</td><id="rb">MAXIMUM</td><td>JPEG< td id="rb/td><td id="rb">MAXIMUM</td td><><>< td id="rb"></td><td><>< td id="rb"></td><>no-viewfinder toujours image reprocessing.</td>/tr tr<><>td<>PRIV/YUV/td<id="rb"><>MAXIMUM/td td<><Same as input>/<td td id="rb"><>MAXIMUM/td<><td>PRIV< td id="rb"/td td id="rb"><>PREVIEW/td<>td<>JPEG< id="rb"><>MAXIMUM/td td/<>td<><id="rb"></td td><><>ZSL(Zero-Shutter-Lag) continue d’imagerie.</td>/tr tr<><>td<>PRIV/YUV/td<id="rb"><>MAXIMUM/td td<><Same as input>/<td td id="rb"><>MAXIMUM/td<><td>YUV< td id="rb"/td td id="rb"><>PREVIEW/td<>td<>JPEG< id="rb"><>MAXIMUM/td td/<>td<><id="rb"></td td><><>Image de traitement ZSL toujours et en cours d’application.</td>/tr tr<><>td<>PRIV/YUV/td<id="rb"><>MAXIMUM/td td<><same as input>/<td td id="rb"><>MAXIMUM/td<>td<>YUV/td<id="rb"/td td id="rb"><>PREVIEW/<td><td>YUV< id="rb"><>PREVIEW/td td/<><>tdJPEG<id="rb »><>MAXIMUM</td><td>ZSL in-app processing with still capture.</td></tr/table>br<><>

Les appareils full-level (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL) prennent en charge au moins les combinaisons de flux suivantes pour la création d’une session de capture reprocessable en plus de celles des CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED appareils :

<table><tr><th colspan="11">Configurations garanties supplémentaires au niveau COMPLET pour la création d’une session<de capture reprocessable br>(PRIV l’entrée est garantie uniquement si le retraitement PRIVÉ est pris en charge. YUV l’entrée est garantie uniquement si le retraitement YUV est pris en charge)</th></tr tr><><th colspan="2 » id="rb">Input</th><th colspan="2 » id="rb">Target 1</th th><colspan="2 » id="rb">Target 2</th th><colspan="2 » id="rb »>Cible 3</th><colspan="2 » id="rb">Target 4</th><rowspan="2">Sample use case(s)</th></tr tr><><th>type</th th><id="rb">Max size</th><th>Type</><th id="rb"Max size>/<><th th Type>/th th<id="rb"><Max size>/th th<><Type>/th th<id="rb"><>Max size</th><>th Type</th th><id="rb"Max> size/th</tr tr><><>td<>YUV/td<id="rb"><>MAXIMUM/td td<>td<>YUV< id="rb"><>MAXIMUM/td<>td td<>PRIV/<td id="rb"/td td id="rb"><>PREVIEW/td<>td<>< id="rb"></td><>/td<td>< id="rb"></td td><><maximum-resolution multi-frame image fusion in-app processing with regular preview.></td>/tr tr<><>td<>YUV/td<id="rb"><>MAXIMUM/td td<>td<>YUV< id="rb"><>MAXIMUM/td<>td td<>YUV/<td id="rb"/td td id="rb"><>PREVIEW/td<><td>< id="rb"></td><>td id<><="rb"></td td-resolution><><multi-frame image fusion> traitement en deux entrées dans l’application.</td>/tr tr<><>td<>PRIV/YUV/td<id="rb"><>MAXIMUM/td td<><Same as input>/<td td id="rb"><>MAXIMUM/td<><td>PRIV< td id="rb"/td td id="rb"><>PREVIEW/td<>td<>YUV< id="rb"><>RECORD/td td/<>td<><id="rb"></td td><><>Traitement vidéo ZSL haute résolution dans l’application avec préversion régulière.</td>/tr tr<><>td<>PRIV/td<id="rb"><>MAXIMUM/td td/<><>tdPRIV<id="rb"><>MAXIMUM/td<>td<>PRIV/td<id="rb"/td td id="rb"><>PREVIEW/td<><td>YUV< id="rb"><>MAXIMUM/td<>td id<><="rb"></td td><>td-resolution<> Traitement ZSL dans l’application avec préversion régulière.</td>/tr tr<><>td<>PRIV/td<id="rb"><>MAXIMUM/td td/<><>tdPRIV<id="rb"><>MAXIMUM/td<>td<>YUV/td<id="rb"/td td id="rb"><>PREVIEW/td<><td>YUV< id="rb"><>MAXIMUM/td<>td id<><="rb"></td td><>td-resolution<> Traitement ZSL en deux entrées dans l’application.</td>/tr tr<><>td<>PRIV/YUV/td<id="rb"><>MAXIMUM/td td<><same as input>/<td td id="rb"><>MAXIMUM/td<>td<>PRIV/td<id="rb"/td td id="rb"><>PREVIEW/<td><td>YUV< id="rb"><>PREVIEW/td td/<><>tdJPEG<id="rb »><>MAXIMUM</td><td>ZSL capture toujours et traite dans l’application.</td></tr/table>br<><>

Les appareils RAW-capability (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES inclut CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW RAW) prennent également en charge au moins les combinaisons de flux suivantes pour la création d’une session de capture reprocessable sur les deux CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL et CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED les appareils

<table><tr><th colspan="11">RAW-capability additional guaranteed configurations for creating a reprocessable capture session<br>(PRIV input is garantie only if PRIVATE reprocessing is supported. YUV l’entrée est garantie uniquement si le retraitement YUV est pris en charge)</th></tr tr><><th colspan="2 » id="rb">Input</th><th colspan="2 » id="rb">Target 1</th th><colspan="2 » id="rb">Target 2</th th><colspan="2 » id=« rb">Target 3</th><colspan="2 » id="rb">Target 4</th><rowspan="2">Sample use case(s)</th></tr><><th>type</th th><id="rb">Max size</2 th><>Type</><th th id="rb">Max size</><>th th Type</th th><id="rb">Max size</th th Type></th>th<><id="rb">Max size</th><>th Type</th th><id="rb« >Taille maximale</th></tr tr><><td>PRIV/YUV</td><id="rb">MAXIMUM</td td><>same as input</td><id="rb">MAXIMUM</td><td>YUV</td><td id="rb">PREVIEW</td td/td><>RAW<>< id="rb">MAXIMUM</td><><>< id="rb"/td id="rb"></td td><td>s’exclue mutuellement ZSL traitement in-app et capture DNG.</td>/tr tr<><>td<>PRIV/YUV/td<id="rb"><>MAXIMUM/td td<><same as input>/<td td id="rb"><>MAXIMUM/td<>td<>PRIV/td<id="rb"/td td id="rb"><>PREVIEW/<td><td>YUV< id="rb"><>PREVIEW/td td/<><>tdRAW<id="rb »><>MAXIMUM</td><td>Le traitement et la préversion ZSL mutuellement exclusifs dans l’application avec la capture DNG.</td>/tr tr<><>td<>PRIV/YUV/td<id="rb"><>MAXIMUM/td td<><same as input>/<td td id="rb"><>MAXIMUM/td<>td<>YUV/td<id="rb"/td td id="rb"><>PREVIEW/<td><td>YUV< id="rb"><>PREVIEW/td td/<><>tdRAW<id="rb »><>MAXIMUM</td><td>Le traitement en deux entrées ZSL et la capture DNG s’excluent mutuellement.</td>/tr tr<><>td<>PRIV/YUV/td<id="rb"><>MAXIMUM/td td<><same as input>/<td td id="rb"><>MAXIMUM/td<>td<>PRIV/td<id="rb"/td td id="rb"><>PREVIEW/<td><td>JPEG< id="rb"><>MAXIMUM/td td/<><>tdRAW<id="rb »><>MAXIMUM</td><td>ZSL mutuellement exclusif capture et préversion avec la capture DNG.</td>/tr tr<><>td<>PRIV/YUV/td<id="rb"><>MAXIMUM/td td<><same as input>/<td td id="rb"><>MAXIMUM/td<>td<>YUV/td<id="rb"/td td id="rb"><>PREVIEW/<td><td>JPEG< id="rb"><>MAXIMUM/td td/<><>tdRAW<id="rb »><>MAXIMUM</td><td>Traitement ZSL mutuellement exclusif dans l’application avec la capture continue et la capture DNG.</td></tr/table>br<><>

Les appareils LEVEL-3 (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3 LEVEL_3) prennent en charge au moins les combinaisons de flux suivantes pour la création d’une session de capture reprocessable en plus de celles des CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL appareils. Notez que, bien que la deuxième configuration autorise la configuration MAXIMUMYUV et JPEG les sorties en même temps, cette configuration n’est pas répertoriée pour les sessions de capture régulières, et par conséquent, la sortie simultanée vers les deux cibles n’est pas autorisée.

<table><tr><th colspan="13">LEVEL-3 configurations garanties supplémentaires pour la création d’une session<de capture reprocessable br>(PRIV l’entrée est garantie uniquement si le retraitement PRIVÉ est pris en charge. YUVl’entrée est toujours garantie.</th></tr><><th colspan="2 » id="rb">Input</th><th colspan="2 » id="rb">Target 1</th><colspan="2 » id="rb">Target 2</th th><colspan="2 » id="rb">Target 3</th><colspan="2 » id="rb">Target 4</><th th colspan="2 » id="rb">Target 5</th><rowspan="2">Sample use case(s)</><th/tr tr><><th>Type</th th><id="rb">Max size</th th><ième>Type</th th><id="rb"Taille> maximale/<><th th Type>/th th<id="rb"><Taille> maximale/th th<><Type>/th th<id="rb"><>Max size</th th Type/th th Type></th><th><id="rb">Taille< maximale/th><th>Type</th th><id="rb">Taille maximale</th></tr tr><><tr>YUV</td><id="rb"/td td/td id="rb">MAXIMUM</td><td>YUV<>< id="rb » >MAXIMUM</td><td>PRIV</><td td id="rb">PREVIEW</td td/><>PRIVtd<><id="rb">640x480</td><td>RAW</><td id="rb">MAXIMUM</td><td></td td><id="rb"/td td td"></td><>in-app viewfinder analysis with ZSL and RAW.</td>/tr tr<><>td<>PRIV/YUV/td<id="rb"><>MAXIMUM/td td<><same as input>/<td td id="rb"><>MAXIMUM/td<>td<>PRIV/td<id="rb"/td td id="rb"><>PREVIEW/<td><td>PRIV< id="rb"><>640x480/td td/<><>tdRAW<id="rb »><>MAXIMUM</td><td>JPEG</td><td id="rb">MAXIMUM</td td><>td viewfinder in-app analysis with ZSL, RAW et JPEG reprocessing output.</td></tr/table>br<><>

Si un appareil photo prend en charge l’entrée à plusieurs résolutions YUV et la sortie à résolution multiple YUV ou prend en charge PRIVATE la sortie d’entrée PRIVATE à plusieurs résolutions, les combinaisons de flux obligatoires supplémentaires pour les appareils LIMITED et FULL sont répertoriées ci-dessous (MULTI_RESdans la colonne Taille maximale fait référence à une pour la MultiResolutionImageReader sortie et une résolution InputConfiguration multiple pour l’entrée) : <table><tr><th colspan="11 »>Configurations garanties supplémentaires de niveau LIMITÉ pour la création d’une session de capture reprocessable avec des sorties d’entrée à plusieurs résolutions et des sorties<multi-résolution br>(PRIV l’entrée est garantie uniquement si le retraitement PRIVÉ est pris en charge. YUV l’entrée est garantie uniquement si le retraitement YUV est pris en charge)</th></tr tr><><th colspan="2 » id="rb">Input</th th><colspan="2 » id="rb">Target 1</th th><colspan="2 » id="rb">Target 2</th><th colspan="2 » id="rb"Target 3>/th<th colspan="2 » id="rb"><Target 4>/th<rowspan="2"><Sample use case(s)>/th<>/tr<><th><Type>/th<id="rb"><Taille> maximale/th<><th type>/<th id="rb"><Taille maximale>/th<><th type>/th<id="rb"><Taille> maximale/th th<><type>/th th<id="rb"><Taille maximale>/th type/ th<><type/>< th><id="rb">Max size</th></tr tr><><td>PRIV/YUV</><td id="rb">MULTI_RES</td td><>same as input</td><id="rb"/td td id="rb">MULTI_RES</td><td>JPEG<>< id="rb">MULTI_RES</td td><td><>< id="rb"></td td/td><><>< td id="rb"></td td><td>no-viewfinder toujours image retraitement.</td>/tr tr<><>td<>PRIV/YUV/td<id="rb"><>MULTI_RES/td td<><Same as input>/<td td id="rb"><>MULTI_RES/td<><td>PRIV< td id="rb"/td td id="rb"><>PREVIEW/td<>td<>JPEG< id="rb"><>MULTI_RES/td td/<>td<><id="rb"></td td><><>ZSL(Zero-Shutter-Lag) encore l’imagerie.</td>/tr tr<><>td<>PRIV/YUV/td<id="rb"><>MULTI_RES/td td<><Same as input>/<td td id="rb"><>MULTI_RES/td<><td>YUV< td id="rb"/td td id="rb"><>PREVIEW/td<>td<>JPEG< id="rb"><>MULTI_RES/td td/<>td<><id="rb"></td td><><>Image de traitement ZSL toujours et en cours d’application.</td>/tr tr<><>td<>PRIV/YUV/td<id="rb"><>MULTI_RES/td td<><same as input>/<td td id="rb"><>MULTI_RES/td<>td<>YUV/td<id="rb"/td td id="rb"><>PREVIEW/<td><td>YUV< id="rb"><>PREVIEW/td td/<><>tdJPEG<id="rb »><>MULTI_RES</td><td>ZSL in-app processing with still capture.</td></tr></table br><>table<><tr><th colspan="11">Configurations garanties supplémentaires au niveau COMPLET pour la création d’une session de capture reprocessable avec des entrées à résolution multiple et des sorties<multi-résolution br>(PRIV l’entrée est garantie uniquement si le retraitement PRIVÉ est pris en charge. YUV L’entrée est garantie uniquement si le retraitement YUV est pris en charge)</th></tr><><tr th colspan="2 » id="rb » >Entrée</th><colspan="2 » id="rb">Target 1</th><colspan="2 » id="rb">Target 2</th><colspan="2 » id="rb"Target 3/th colspan="rb">Target 3</th><colspan="2 » id="rb">Target 4</><th rowspan="2">Sample use case(s)</th></tr tr><><th Type>/th th<><id="rb">Max size/th<><th Type>/th th<id="rb"><Max size/>< th><Type/th th id="rb">Max size</><>th th Type</th th><id="rb">Max size</th th type></th th><id="rb"><Max size>/th</tr tr><>tr<><td/td><>< id="rb">PRIV</td><>td/MULTI_RES<>td<id="rb"rb"/td td id="rb">PRIV</><td>MULTI_REStd/td<><> id=PRIV<><« rb">PREVIEW</td><td>YUV</td><id="rb">MULTI_RES</td td>/<td><><id="rb"></td td><>td maximum-resolution ZSL in-app processing with regular preview.</td>/tr tr<><>td<>PRIV/td<id="rb"><>MULTI_RES/td td/<><>tdPRIV<id="rb"><>MULTI_RES/td<>td<>YUV/td<id="rb"/td td id="rb"><>PREVIEW/td<><td>YUV< id="rb"><>MULTI_RES/td<>td id<><="rb"></td td><>td-resolution<> Traitement ZSL en deux entrées dans l’application.</td>/tr tr<><>td<>PRIV/YUV/td<id="rb"><>MULTI_RES/td td<><same as input>/<td td id="rb"><>MULTI_RES/td<>td<>PRIV/td<id="rb"/td td id="rb"><>PREVIEW/<td><td>YUV< id="rb"><>PREVIEW/td td/<><>tdJPEG<id="rb »><>MULTI_RES</td><td>ZSL capture toujours et traite dans l’application.</td></tr/table>br<><>

Les appareils dotés de la fonctionnalité ULTRA_HIGH_RESOLUTION_SENSOR disposent de certaines garanties supplémentaires que les clients peuvent tirer parti des éléments suivants :

<table><tr><th colspan="13">Combinaisons garanties supplémentaires pour les capteurs ULTRA_HIGH_RESOLUTION (entrées YUV / PRIV sont garanties uniquement si le retraitement YUV / PRIVATE est pris en charge)</th></tr tr><><th colspan="3 » id="rb">Input</th><colspan="3 » id="rb"Target 1>/th<>colspan="3 » id="rb"<Target 2>/th th<>colspan="3 » id="rb"<>Target 3</th th><rowspan="2 »>Exemple de cas< d’usage/th></tr tr><><th>Type</th th><id="rb »> SC Map</th th><id="rb"rb">Taille< maximale/th th th><>Type</th th><id="rb »> SC Map</th th><id=="rb">Taille< maximale/th><>Type</th th><id="rb »> SC Map</th th><id="rb">Max size</th th type>/th<>th<><id="rb »> SC Map</th th><id="rb » ><Taille maximale/th></tr tr><tr><td>RAW</td><id="rb">MAX_RES</td><id="rb">MAX</td><td td>RAW</td><id="rb">MAX_RES</td><td id="rb">MAX</td id><="rb">PRIV / YUV</td td><id="rb">DEFAULT</td td><id="rb">PREVIEW</td><td colspan="3 » id="rb"></td><TD>RAW remosaic retraitement avec une préversion< distincte/td></tr tr><><tr td/>RAW<td><id="rb">MAX_RES</><td td id="rb">MAX</td><td>RAW<>< id="rb">MAX_RES</td><td id="rb">MAX</td id="rb"><>PRIV / YUV/td<td id="rb"/><td id="rb">DEFAULT</td><id="rb">PREVIEW</td><id="rb »>JPEG / YUV</td><td id="rb"/td td>id="rb"MAX_RES<></td td>MAX<Ultra high res RAW -> JPEG / YUV avec préversion< distincte/>>td<> tr tr<>/<><td>id="rb"YUV / PRIV<><>MAX_RES</td><id="rb"/td td id="rb">MAX</td><>YUV / PRIV<>< td id="rb">MAX_RES</td><td id="rb"/>MAX<><td td id="rb">YUV / PRIV</td td><id="rb">DEFAULT</td><id="rb">PREVIEW</td><id="rb"/td>id="rb"JPEG<></td td id="rb">MAX_RES</td td><id="rb">MAX</td td><> td high res PRIV / YUV -> YUV / JPEG reprocessing with separate preview</td></tr></table br><> Aucune combinaison de flux obligatoire supplémentaire pour la fonctionnalité RAW et le niveau matériel LEVEL-3. </p>

<Enregistrement à haute vitesse> contrainte h3</h3>

L’application peut utiliser une android.hardware.camera2.params.SessionConfiguration#SESSION_REGULAR normal capture session capture à haute vitesse si les plages FPS à haute vitesse souhaitées sont publiées par CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES, auquel cas toutes les sémantiques d’API associées aux sessions de capture normales s’appliquent.

Un android.hardware.camera2.params.SessionConfiguration#SESSION_HIGH_SPEED high-speed capture session peut être utilisé pour l’enregistrement vidéo à haute vitesse (>=120fps) lorsque l’appareil photo prend en charge la fonctionnalité vidéo à haute vitesse (c’est-à-dire, CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES contient CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO). Une session de capture à grande vitesse limitée présente des limitations spéciales par rapport à une session de capture normale :

<ul>

<Li>En plus des exigences de la cible de sortie Surface spécifiées ci-dessus pour les captures régulières, une session de capture haute vitesse ne prend en charge que 2 Surfaces de sortie, bien que l’application puisse choisir de configurer une seule Surface (par exemple, préversion uniquement). Toutes les surfaces doivent être des surfaces d’encodeur vidéo (acquises par android.media.MediaRecorder#getSurface ou android.media.MediaCodec#createInputSurface) ou des surfaces d’aperçu (obtenues à partir de android.view.SurfaceView, android.graphics.SurfaceTexture via android.view.Surface#Surface(android.graphics.SurfaceTexture)). Les tailles Surface doivent être l’une des tailles signalées par StreamConfigurationMap#getHighSpeedVideoSizes. Lorsque plusieurs Surfaces sont configurées, leur taille doit être identique.</li>

<Li>Une session de capture haute vitesse active accepte uniquement les listes de demandes créées via CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestList, et la liste de demandes ne peut être envoyée qu’à cette session via CameraCaptureSession#captureBurst captureBurst, ou CameraCaptureSession#setRepeatingBurst setRepeatingBurst.</li>

<Li>Les plages FPS demandées à cette session doivent être sélectionnées à partir de StreamConfigurationMap#getHighSpeedVideoFpsRangesFor. L’application peut toujours utiliser CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE pour contrôler la plage FPS souhaitée. Le passage à une plage FPS différente android.util.Range#getUpper() maximum FPS peut déclencher des reconfigurations d’appareil photo, ce qui peut introduire une latence supplémentaire. Il est recommandé que l’application évite les modifications FPS cibles inutiles autant que possible pendant la diffusion en continu à grande vitesse.</li>

<li>Pour les listes de demandes soumises à cette session, l’appareil photo remplace l’exposition automatique (AE), l’équilibre CaptureRequest#CONTROL_MODE control modeautomatique (AWB) et le focus automatique (AF) à CameraMetadata#CONTROL_MODE_AUTO, CameraMetadata#CONTROL_AE_MODE_ONCameraMetadata#CONTROL_AWB_MODE_AUTO et CameraMetadata#CONTROL_AF_MODE_CONTINUOUS_VIDEO, respectivement. Tous les contrôles en mode bloc post-traitement seront remplacés par FAST. Par conséquent, aucun contrôle manuel des paramètres de capture et de post-traitement n’est possible. En plus de cela, seul un sous-ensemble de contrôles fonctionne, pour CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO plus d’informations.</li>

</ul>

Java documentation pour android.hardware.camera2.CameraDevice.createCaptureSession(android.hardware.camera2.params.SessionConfiguration).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

S’applique à

CreateCaptureSession(IList<Surface>, CameraCaptureSession+StateCallback, Handler)

Créez une session de capture de caméra en fournissant le jeu de sortie cible de Surfaces à l’appareil photo.

[Android.Runtime.Register("createCaptureSession", "(Ljava/util/List;Landroid/hardware/camera2/CameraCaptureSession$StateCallback;Landroid/os/Handler;)V", "GetCreateCaptureSession_Ljava_util_List_Landroid_hardware_camera2_CameraCaptureSession_StateCallback_Landroid_os_Handler_Handler")]
public abstract void CreateCaptureSession(System.Collections.Generic.IList<Android.Views.Surface> outputs, Android.Hardware.Camera2.CameraCaptureSession.StateCallback callback, Android.OS.Handler? handler);
[<Android.Runtime.Register("createCaptureSession", "(Ljava/util/List;Landroid/hardware/camera2/CameraCaptureSession$StateCallback;Landroid/os/Handler;)V", "GetCreateCaptureSession_Ljava_util_List_Landroid_hardware_camera2_CameraCaptureSession_StateCallback_Landroid_os_Handler_Handler")>]
abstract member CreateCaptureSession : System.Collections.Generic.IList<Android.Views.Surface> * Android.Hardware.Camera2.CameraCaptureSession.StateCallback * Android.OS.Handler -> unit

Paramètres

outputs
IList<Surface>

Nouveau jeu de Surfaces à mettre à disposition en tant que cibles pour les données d’image capturées. Cette valeur ne peut pas être null.

callback
CameraCaptureSession.StateCallback

Rappel permettant de notifier l’état de la nouvelle session de capture. Cette valeur ne peut pas être null.

handler
Handler

Gestionnaire sur lequel le rappel doit être appelé ou null pour utiliser le bouclage du thread actuel.

Attributs

Remarques

Cette méthode a été déconseillée au niveau de l’API 30. Utilisez createCaptureSession(android.hardware.camera2.params.SessionConfiguration) pour l’ensemble complet d’options de configuration disponibles.

Créez une session de capture de caméra en fournissant le jeu de sortie cible de Surfaces à l’appareil photo.

Référence Android pour android.hardware.camera2.CameraDevice.createCaptureSession.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

S’applique à