CameraDevice.CreateCaptureSession Método

Definición

Sobrecargas

CreateCaptureSession(SessionConfiguration)

Cree un nuevo CameraCaptureSession mediante un SessionConfiguration objeto auxiliar que agregue todos los parámetros admitidos.

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

CreateCaptureSession(SessionConfiguration)

Cree un nuevo CameraCaptureSession con un SessionConfiguration objeto auxiliar que agregue todos los parámetros admitidos.

[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

Parámetros

config
SessionConfiguration

Una configuración de sesión (consulte SessionConfiguration).

Atributos

Comentarios

Cree un nuevo CameraCaptureSession mediante un SessionConfiguration objeto auxiliar que agregue todos los parámetros admitidos.

La sesión de captura activa determina el conjunto de posibles superficies de salida para el dispositivo de cámara para cada solicitud de captura. Una solicitud determinada puede usar todas o solo algunas de las salidas. Una vez creada cameraCaptureSession, las solicitudes se pueden enviar con CameraCaptureSession#capture capture, CameraCaptureSession#captureBurst captureBurst, CameraCaptureSession#setRepeatingRequest setRepeatingRequesto CameraCaptureSession#setRepeatingBurst setRepeatingBurst.

Las superficies adecuadas para su inclusión como salida de cámara se pueden crear para diversos casos de uso y destinos:

<ul>

<li>Para dibujar en : android.view.SurfaceView SurfaceViewuna vez que surface de SurfaceView es android.view.SurfaceHolder.Callback#surfaceCreated created, establezca el tamaño de surface con para android.view.SurfaceHolder#setFixedSize que sea uno de los tamaños devueltos por StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(SurfaceHolder.class) y, a continuación, obtenga surface llamando a android.view.SurfaceHolder#getSurface. Si la aplicación no establece el tamaño, se redondeará al tamaño admitido más cercano a menos de 1080p, según el dispositivo de cámara.</Li>

<li>Para obtener acceso a través de una textura de OpenGL a través de : android.graphics.SurfaceTexture SurfaceTextureestablezca el tamaño de SurfaceTexture con para android.graphics.SurfaceTexture#setDefaultBufferSize que sea uno de los tamaños devueltos por StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(SurfaceTexture.class) antes de crear una superficie a partir de SurfaceTexture con Surface#Surface. Si la aplicación no establece el tamaño, se establecerá para que sea el tamaño más pequeño admitido menor que 1080p, según el dispositivo de cámara.</Li>

<li>Para grabación con android.media.MediaCodec: llame android.media.MediaCodec#createInputSurface a después de configurar el códec multimedia para usar uno de los tamaños devueltos por StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(MediaCodec.class)</li.>

<li>Para grabación con android.media.MediaRecorder: llame android.media.MediaRecorder#getSurface a después de configurar la grabadora de medios para usar uno de los tamaños devueltos por StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(MediaRecorder.class), o configurándolo para usar uno de los admitidos android.media.CamcorderProfile CamcorderProfiles.</Li>

<li>Para un procesamiento YUV eficaz con android.renderscript: cree un RenderScript android.renderscript.Allocation Allocation con un tipo YUV compatible, la marca IO_INPUT y uno de los tamaños devueltos por StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(Allocation.class), A continuación, obtenga surface con android.renderscript.Allocation#getSurface.</Li>

<li>Para obtener acceso a datos JPEG sin comprimir, YUV sin comprimir en la aplicación: cree un android.media.ImageReader objeto con uno de los formatos de salida admitidos proporcionados por StreamConfigurationMap#getOutputFormats(), estableciendo su tamaño en uno de los tamaños admitidos correspondientes pasando el formato de salida elegido a StreamConfigurationMap#getOutputSizes(int). A continuación, obtenga un android.view.Surface de él con android.media.ImageReader#getSurface(). Si el tamaño de ImageReader no está establecido en un tamaño compatible, se redondeará a un tamaño admitido inferior a 1080p por parte del dispositivo de cámara. </Li>

</ul>

El dispositivo de cámara consultará el tamaño y los formatos de cada Surface en esta llamada, por lo que deben establecerse en una configuración válida en este momento.

La configuración de la sesión puede tardar varios cientos de milisegundos en completarse, ya que es posible que sea necesario encender o volver a configurar el hardware de la cámara. Una vez completada la configuración y la sesión está lista para capturar datos, se llamará a la devolución de llamada proporcionadaCameraCaptureSession.StateCallbackCameraCaptureSession.StateCallback#onConfigured.

Si ya existe una cameraCaptureSession anterior cuando se llama a este método, la sesión anterior ya no podrá aceptar nuevas solicitudes de captura y se cerrará. Las solicitudes de captura en curso realizadas en la sesión anterior se completarán antes de cerrarse. CameraCaptureSession.StateCallback#onConfigured para la nueva sesión se puede invocar antes CameraCaptureSession.StateCallback#onClosed de que se invoque para la sesión anterior. Una vez que la nueva sesión es CameraCaptureSession.StateCallback#onConfigured configured, puede empezar a capturar sus propias solicitudes. Para minimizar el tiempo de transición, la CameraCaptureSession#abortCaptures llamada se puede usar para descartar las solicitudes restantes de la sesión de captura anterior antes de crear una nueva. Tenga en cuenta que una vez creada la nueva sesión, la antigua ya no puede tener anuladas sus capturas.

El uso de salidas de mayor resolución, o más salidas, puede dar lugar a una velocidad de salida más lenta del dispositivo.

La configuración de una sesión con una lista vacía o nula cerrará la sesión actual, si existe. Se puede usar para liberar las superficies de destino de la sesión actual para otro uso.

<h3>Captura< regular/h3>

Aunque se puede usar cualquiera de los tamaños de StreamConfigurationMap#getOutputSizes cuando se configura una única secuencia de salida, es posible que un dispositivo de cámara determinado no pueda admitir todas las combinaciones de tamaños, formatos y destinos cuando se configuran varias salidas a la vez. En las tablas siguientes se enumeran las resoluciones máximas garantizadas para combinaciones de secuencias y destinos, dadas las funcionalidades del dispositivo de cámara. Son válidos para cuando android.hardware.camera2.params.SessionConfiguration#setInputConfiguration input configuration no se establece y, por lo tanto, no hay ningún reprocesamiento activo.

Si una aplicación intenta crear una sesión mediante un conjunto de destinos que superen los límites descritos en las tablas siguientes, puede producirse una de estas tres posibilidades. En primer lugar, la sesión se puede crear correctamente y funcionar con normalidad. En segundo lugar, la sesión se puede crear correctamente, pero el dispositivo de cámara no cumplirá las garantías de velocidad de fotogramas, como se describe en StreamConfigurationMap#getOutputMinFrameDuration. O en tercer lugar, si el conjunto de resultados no se puede usar en absoluto, se producirá un error en la creación de la sesión por completo, con CameraCaptureSession.StateCallback#onConfigureFailed la invocación.

Para la columna de tipo, PRIV hace referencia a cualquier destino cuyo tamaño disponible se encuentre usando StreamConfigurationMap#getOutputSizes(Class) sin ningún formato directo visible para la aplicación, YUV hace referencia a una Superficie de destino con el android.graphics.ImageFormat#YUV_420_888 formato , JPEG hace referencia al android.graphics.ImageFormat#JPEG formato y RAW hace referencia al android.graphics.ImageFormat#RAW_SENSOR formato.

Para la columna de tamaño máximo, PREVIEW hace referencia a la mejor coincidencia de tamaño con la resolución de pantalla del dispositivo o a 1080p (1920x1080), lo que sea menor. RECORD hace referencia a la resolución de grabación máxima admitida del dispositivo de cámara, según lo determinado por android.media.CamcorderProfile. Y MAXIMUM hace referencia a la resolución de salida máxima del dispositivo de cámara para ese formato o destino desde StreamConfigurationMap#getOutputSizes.

Para usar estas tablas, determine el número y los formatos y destinos de las salidas necesarias y busque las filas de la tabla con esos destinos. Los tamaños indican el conjunto máximo de tamaños que se pueden usar; se garantiza que para esos destinos, los tamaños enumerados y cualquier cosa más pequeña de la lista dada por StreamConfigurationMap#getOutputSizes se pueden usar correctamente para crear una sesión. Por ejemplo, si una fila indica que una salida de 8 megapíxeles (MP) YUV_420_888 se puede usar junto con una salida de 2 MP PRIV , se puede crear una sesión con destinos [8 MP YUV, 2 MP PRIV] o destinos [2 MP YUV, 2 MP PRIV]; pero no se garantizaría que una sesión con destinos [8 MP YUV, 4 MP PRIV], destinos [4 MP YUV, 4 MP PRIV]o destinos [8 MP PRIV, 2 MP YUV] funcione, a menos que alguna otra fila de la tabla muestre dicha combinación.

<style con ámbito> #rb { border-right-width: thick; }</Estilo>

Los dispositivos heredados (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY LEGACY) admiten al menos las siguientes combinaciones de secuencias:

<table><tr><th colspan="7">LEGACY-level guaranteed configurations</th></tr><><th colspan="2" id="rb">Target 1</th<>colspan="2" id="rb">Target 2</th><th colspan="2" id="rb">Target 3</th th<>rowspan="2">Sample use case(s)</th></tr><><th>Type</th th><id="rb">Max size</th<>th>Type/< th><id="rb">Max size</th<>Type</th>th><id="rb">Max size</th></tr tr<<>>td><PRIV/td td><id="rb"><MAXIMUM/td td td><colspan="2" id="rb"></td td><colspan="2" id="rb"></td<>td>Simple preview, GPU video processing, or no-preview video recording.</td></tr tr><<>td><JPEG/td td><id="rb"MAXIMUM<>/td td><colspan="2" id="rb"></td td><colspan="2" id="rb"></td td<>>no-viewfinder captura de imágenes.</td></tr tr><<>td><YUV/td td><id="rb"MAXIMUM<>/td td><colspan="2" id="rb"></td td><colspan="2" id="rb"></td td td<>>In-application video/image processing.</td></tr tr><><td><PRIV/td td><id="rb">PREVIEW</td><td><JPEG td td><id="rb"><MAXIMUM/td td td><colspan="2" id="rb"></td td<>>Standard still imaging.</td></tr tr><><td><YUV/td td><id="rb">PREVIEW</td><tdJPEG>< td td><td id="rb"><MAXIMUM/td td><colspan="2" id="rb"></td td<>>in-app processing plus still capture.</td></tr tr><><td><PRIV/td td><id="rb">PREVIEW</td><td><PRIV td td><id="rb"><PREVIEW/td td td><colspan="2" id="rb"></td td<>>Standard recording.</td></tr tr><><td><PRIV/td td><id="rb">PREVIEW</td><tdYUV>< td td><td id="rb"><PREVIEW/td td><colspan="2" id="rb"></td<>td>Preview más el procesamiento en la aplicación.</td></tr tr>><<td>PRIV</td><td id="rb"PREVIEW></td<>td>YUV< td td><id="rb"PREVIEW<>/td td<>>JPEG< td td><id="rb"><MAXIMUM/td td<>>Still capture plus in-app processing.</td></tr></table><br>

Los dispositivos de nivel limitado (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED) admiten al menos las siguientes combinaciones de secuencias además de las CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY LEGACY de los dispositivos:

<table>tr th colspan="7">LIMITED-level additional guaranteed configurations</th></tr tr>><<th colspan="2" id="rb">Target 1</th><colspan="2" id="rb">Target 2</th><colspan="2" id="rb">Target 3</th<>rowspan="2">Sample use case(s)</th></tr tr><><th>Type</th th><id="rb">Max size</th Type/><th>Type</th><id="rb"><<><Tamaño máximo/th>><Type</th th><id="rb">Max size</th></tr tr><<>tdPRIV></td td><td id="rb">PREVIEW</td><td><PRIV td td><id="rb"><RECORD/td td><colspan="2" id="rb"></td td<>td>grabación de vídeo de alta resolución con vista previa.</td></tr tr>><<td>PRIV</td td><id="rb"><PREVIEW/td tdYUV>><< td td><td id="rb"><RECORD/td td><colspan="2" id="rb"></td td td<>>procesamiento de vídeo en la aplicación con vista previa.</td></tr tr><><td><YUV/td td><id="rb">PREVIEW</td><td><YUV/td td><td id="rb"><RECORD/td td><colspan="2" id="rb"></td td td>><Procesamiento de vídeo de entrada en la aplicación.</td></tr tr><><td><PRIV/td td><id="rb"PREVIEW></td<>td>PRIV</td td><id="rb"RECORD<>/td td>JPEG<<> td><id="rb"><RECORD/td td td<>>grabación de alta resolución con instantánea de vídeo.</td></tr tr><><td><PRIV/td td><id="rb">PREVIEW</td<>tdYUV>< td td><td id="rb">RECORD</td<>td><JPEG td><id="rb"><RECORD/td td td<>>procesamiento en la aplicación con instantánea de vídeo.</td></tr tr>><<td>YUV</td><td id="rb"PREVIEW></td<>td>YUV< td td td><id="rb"<PREVIEW>/td<>>JPEG< td td><id="rb"><MAXIMUM/td td<>td>two-input in-app processing with still capture.</td></tr></table><br>

Los dispositivos de nivel completo (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL) admiten al menos las siguientes combinaciones de secuencias además de las CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED de los dispositivos:

<table>tr th colspan="7">FULL-level additional guaranteed configurations</th></tr>><<th colspan="2" id="rb">Target 1</th><colspan="2" id="rb">Target 2</th><colspan="2" id="rb">Target 3</th<>rowspan="2">Sample use case(s)</th></tr tr><><th>Type</th th><id="rb">Max size</th Type/><th>Type</th><id="rb"><<>Max size</th><>Type</th th><id="rb">Max size</th></tr tr<><>tdPRIV></td td><td id="rb">PREVIEW</td><td><PRIV td td><id="rb"><MAXIMUM/td td><colspan="2" id="rb"></td td td<>>Maximum-resolution GPU processing with preview.</td></tr tr><><td><PRIV/td td><id="rb">PREVIEW</td><tdYUV>< td td td><id="rb"><MAXIMUM/td td><colspan="2" id="rb"></td td<>>maximum-resolution in-app processing with preview.</td></tr tr>><<td>YUV</td td><id="rb"><PREVIEW/td tdYUV><<> td td><id="rb"><MAXIMUM/td td><colspan="2" id="rb"></td td td<>>Procesamiento de dos entradas en la aplicación.</td></tr tr><<>td><PRIV/td><td id="rb">PREVIEW</td<>tdPRIV<> td><id="rb"<PREVIEW>/td><td td<>JPEG>< id="rb">MAXIMUM</td><td>video recording with maximum-size video snapshot</td<>/td tr><<>tdYUV<>/td td><id="rb">640x480</td td>><PRIV</td><td id="rb"PREVIEW<>/td td<>YUV>< td td td><id="rb"><MAXIMUM/td<>td>Standard video recording plus maximum-resolution in-app processing.</td></tr tr><><td><YUV/td td><id="rb">640x480</td td<<>>YUV td td><id="rb"PREVIEW<>/td td<>>YUV< td td><id="rb"><MAXIMUM/td<>td>Preview más el procesamiento máximo de dos entradas en la aplicación.</td></tr></table><br>

La funcionalidad RAW (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES incluye CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW RAW) los dispositivos también admiten al menos las siguientes combinaciones de secuencias en los CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL dispositivos y CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED :

<table>tr th colspan="7">RAW-capability additional guaranteed configurations</th></tr tr tr>><<th colspan="2" id="rb">Target 1</th><colspan="2" id="rb">Target 2</th><colspan="2" id="rb">Target 3</th<>rowspan="2">Sample use case(s)</th></tr tr><><th>Type</th th><id="rb">Max size</th Type/><th>Type</th><id="rb"><<>Max size</th>><Type</th th><id="rb">Max size</th<>/tr tr<><>td><RAW/td td><td id="rb"MAXIMUM<>/td td><colspan="2" id="rb"></td td><colspan="2" id="rb"></td<>td>no-preview DNG capture.</td></tr tr><><td><PRIV/td td><id="rb">PREVIEW</td><tdRAW>< td td><td id="rb"><MAXIMUM/td td><colspan="2" id="rb"></td td<>>standard DNG capture.</td></tr tr><><td><YUV/td td><id="rb">PREVIEW</td><tdRAW>< td td><td id="rb"><MAXIMUM/td td><colspan="2" id="rb"></td td<>>in-app processing plus DNG capture.</td></tr tr>><<td>PRIV</td><td id="rb">PREVIEW</td<>tdPRIV<>/td td><id="rb">PREVIEW</td<>td><RAW td><id="rb"><MAXIMUM/td<>td>Video recording with DNG capture.</td></tr tr><><td><PRIV/td td><id="rb">PREVIEW</td<>tdYUV<>/td td><id="rb">PREVIEW</td<>td><RAW td><id="rb"><MAXIMUM/td td<>>Preview con procesamiento en la aplicación y captura DNG.</td></tr tr>><<td>YUV</td><td id="rb">PREVIEW</td<>tdYUV<> td td td><id="rb">PREVIEW</td<>td><RAW td><id="rb"><MAXIMUM/td td td<>>two-input in-app processing plus DNG capture.</td></tr tr>><<td>PRIV</td><td id="rb">PREVIEW</td<>tdJPEG<>/td td><id="rb">MAXIMUM</td<>td><RAW td><id="rb"><MAXIMUM/td td<>td>Still captura con JPEG y DNG simultáneos.</td></tr tr><><td><YUV/td td><id="rb">PREVIEW</td<>tdJPEG<>/td td><id="rb">MAXIMUM</td<>td><RAW td><id="rb"><MAXIMUM/td td<>td>in-app processing with simultaneous JPEG y DNG.</td></tr></table><br>

La funcionalidad BURST (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES incluye CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE BURST_CAPTURE) los dispositivos admiten al menos las combinaciones de secuencias siguientes, además de las CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED de los dispositivos. Tenga en cuenta que todos los dispositivos de nivel COMPLETO admiten la funcionalidad BURST y la lista siguiente es un subconjunto estricto de la lista para dispositivos de nivel COMPLETO, por lo que esta tabla solo es relevante para los dispositivos de nivel LIMITADO que admiten la funcionalidad BURST_CAPTURE.

<table>tr th colspan="5">BURST-capability additional guaranteed configurations</th></tr tr 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><>Type</th th><id="rb">Max size</><th tr tr<>><<><td><PRIV/td><td id="rb"PREVIEW<>/td td td<><>PRIV/td td><id="rb"><MAXIMUM/td td>><procesamiento de GPU de resolución máxima con versión preliminar.</td></tr tr><><td>PRIV</td td><id="rb"PREVIEW></td><td<YUV> td td td><id="rb"><MAXIMUM/td td<>>Maximum-resolution in-app processing with preview.</td></tr tr><><td>YUV</td td><id="rb"PREVIEW></td><td<YUV> td td td><id="rb"><MAXIMUM/td td td<>>Maximum-resolution two-input in-app processing.</td></tr></table><br>

LEVEL-3 (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3 LEVEL_3) admite al menos las siguientes combinaciones de secuencia además de las combinaciones para CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL y para la funcionalidad RAW (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES incluye ):CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW RAW

<table>tr th colspan="11">LEVEL-3 additional guaranteed configurations</th></tr tr 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><colspan="2" id="rb"Target 4</th><rowspan="2">Sample use case(s)</th<>/tr tr tr<><>th>Type</th><id="rb">>Max size</th><><<th Type/th id="rb">Max size</th><Type</><th>th th id="rb">Max size</><th th>Type</th><id="rb">Max size/th size</thth<>/tr tr<>><td<PRIV>/td td><id="rb"PREVIEW<>/td td>PRIV<>< td td td><id="rb"<640x480>/td<>tdYUV>< td td><id="rb"><MAXIMUM/td td td>><><<>RAW</td><td id="rb"MAXIMUM></td td td<>>viewfinder analysis in-app viewfinder with dynamic selection of output format.</td></tr td<>><PRIV></td td><id="rb"<>PREVIEW/td><tdPRIV<>>< td id="rb"><640x480/td td>JPEG<<> td td><id="rb">MAXIMUM</td<>td><RAW td><id="rb"><MAXIMUM/td td td<>>In-app viewfinder analysis with dynamic selection of output format.</td></tr></table><br>

BACKWARD_COMPATIBLE dispositivos capaces de transmitir simultáneamente con otros dispositivos, como se describe en android.hardware.camera2.CameraManager#getConcurrentCameraIds , tienen las siguientes secuencias garantizadas (cuando se transmiten simultáneamente con otros dispositivos).

Nota: Los tamaños mencionados para estas secuencias simultáneas son los tamaños máximos garantizados que se admiten. También se admiten tamaños menores que estos, obtenidos por StreamConfigurationMap#getOutputSizes para un formato determinado.

<table>tr th colspan="5">Concurrent stream guaranteed configurations</th></tr><><th colspan="2" id="rb">Target 1</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>><Type</th th id="rb">Max size</><th><tr tr>><><<<Td>YUV</td><td id="rb"><s1440p/td td><colspan="2" id="rb"></td td<>>in-app video/image processing.</td></tr tr><><td>PRIV</td td><id="rb"><s1440p/td td><colspan="2" id="rb"></td td td<>>In-app viewfinder analysis.</td></tr tr><><td>JPEG</td td><id="rb"><s1440p/td td><colspan="2" id="rb"></td td<>>No viewfinder still image capture.</td></tr tr><><td>YUV / PRIV</td td><id="rb"s720p></td><tdJPEG<> td td><id="rb"><s1440p/td td<>> Standard still imaging.</td></tr tr><><td>YUV / PRIV</td td><id="rb"s720p></td><td>YUV / PRIV</td td><id="rb"<>s1440p/td td td>><In-app video/processing with preview.</td></tr></table><br></p>

Los dispositivos que no son compatibles con versiones anteriores, admiten una única secuencia obligatoria de tamaño sVGA con formato DEPTH16 de imagen durante la operación simultánea.

Para configuraciones de flujos simultáneas garantizadas:

sVGA hace referencia a la resolución máxima del dispositivo de cámara para ese formato a partir de StreamConfigurationMap#getOutputSizes la resolución VGA (640X480), lo que sea inferior.

s720p hace referencia a la resolución máxima del dispositivo de cámara para ese formato desde StreamConfigurationMap#getOutputSizes o 720p(1280X720), lo que sea menor.

s1440p hace referencia a la resolución máxima del dispositivo de cámara para ese formato desde StreamConfigurationMap#getOutputSizes o 1440p(1920X1440), lo que sea menor.

MONOCHROME-capability (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES incluye CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MONOCHROME MONOCHROME) dispositivos que admiten android.graphics.ImageFormat#Y8 Y8 la sustitución de YUV secuencias con Y8 en todas las combinaciones de secuencias garantizadas para el nivel de hardware y las capacidades del dispositivo.

Los clientes pueden acceder a las tablas de combinación de flujos obligatorias anteriores a través de android.hardware.camera2.params.MandatoryStreamCombination.

Los dispositivos capaces de generar formatos HEIC (StreamConfigurationMap#getOutputFormats contiene android.graphics.ImageFormat#HEIC) admitirán la sustitución de JPEG secuencias con HEIC en todas las combinaciones de secuencias garantizadas para el nivel de hardware y las funcionalidades del dispositivo. No se admite llamar a createCaptureSession con salidas JPEG y HEIC.

Dispositivos capaces de generar una salida de varias resoluciones para un formato determinado ( android.hardware.camera2.params.MultiResolutionStreamConfigurationMap#getOutputInfo devuelve una lista no vacía) que se usa MultiResolutionImageReader para las secuencias de resolución MAXIMUM de ese formato para todas las combinaciones de secuencias obligatorias. Por ejemplo, si un dispositivo de cámara LIMITED admite secuencias de salida de resolución múltiple para JPEG y PRIVATE, además de las configuraciones de flujo de la tabla LIMITED y Heredada anterior, el dispositivo de cámara admite las siguientes combinaciones de secuencias garantizadas (MULTI_RES en la columna Tamaño máximo hace referencia a una MultiResolutionImageReader creada basada en las resoluciones máximas de variable admitidas):

<table><tr><th colspan="7">LEGACY-level additional guaranteed combinations with MultiResolutionoutputs</th></tr tr tr><<>th colspan="2" id="rb">Target 1</th<>colspan="2" id="2" id="2rb">Target 2</th><colspan="2" id="rb">Target 3</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<>>Type</><th id="rb">Max size</th></tr tr<><>tdPRIV></td td><id="rb"MULTI_RES></td td<>colspan="2" id="rb"></td td><colspan="2" id="rb"></td><td>Simple preview, Procesamiento de vídeo de GPU o grabación de vídeo sin vista previa.<><<>/td></tr tr><<>td><JPEG/td td><id="rb"MULTI_RES<>/td td><colspan="2" id="rb"></td td><colspan="2" id="rb"></td td<>>no-viewfinder captura de imágenes.</td></tr tr><><td><PRIV/td td><id="rb">PREVIEW</td><td><JPEG td td><id="rb"><MULTI_RES/td td td><colspan="2" id="rb"></td td<>>Standard still imaging.</td></tr tr>><<td>PRIV</td><td id="rb"PREVIEW></td<>td>YUV< td td><id="rb"PREVIEW<>/td td<>>JPEG< td td><id="rb"><MULTI_RES/td td<>>Still capture plus in-app processing.</td></tr></table><br><table><tr><th colspan="7">Limited-level additional guaranteed configurations with MultiResolutionoutputs</th></tr tr><><th colspan="2" id="rb">Target 1</th th thth><colspan="2" id="rb">Target 2</th th><colspan="2" id="rb">Target 3</th><rowspan="2">Sample use case(s)</th></tr>tr 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></tr tr><<>tdYUV></td td><id="rb">PREVIEW</td td<YUV<>> td td><id="rb"<PREVIEW>/td<>td td/>JPEG<<>><< td><td id="rb">MULTI_RES</td td td<>>Procesamiento en la aplicación de dos entradas con capturas fijas.</td></tr></table><br> La misma lógica se aplica a otros niveles y funcionalidades de hardware.

Los dispositivos con la funcionalidad ULTRA_HIGH_RESOLUTION_SENSOR tienen algunas garantías adicionales que los clientes pueden aprovechar :

<table><tr><th colspan="10">Combinaciones garantizadas adicionales para ULTRA_HIGH_RESOLUTION sensors</th></tr<><>th colspan="3" id="rb">Target 1</th<>colspan="3" id="rb">Target 2</th><colspan="3" id="rb">Target 3</th th><rowspan="2">Sample use case(s)</th></tr tr><><th Type</th><>id="rb"> SC Map</th><th id="rb"><Tamaño máximo/ésima><>clase</th><id="rb" SC Map</th th><id="rb">Max size</><>th th Type</th><th id="rb">> SC Map</th><th id="rb">Max size</th></tr tr<>><td><YUV / JPEG / RAW/td td><id="rb"MAX_RES<>/td><td id="rb"<>MAX/td><td id="rb"PRIV / YUV<>/td><td id="rb"DEFAULT<>/td><td id="rb">PREVIEW</td td><colspan="3" id="rb"></td td td>><Ultra high res still capture with preview</td<>/tr tr<>td<YUV / JPEG / RAW><> td><id="rb"><MAX_RES/td td id=""/td><td id="rb"><MAX/td><td id="rb"<PRIV>/td><td id="rb"DEFAULT<>/td><td id="rb"><PREVIEW/td td><id="rb"PRIV / YUV<>/td td><id="rb">DEFAULT</td><td id="rb">RECORD</td<>td>Ultra high res still capture with preview + app based RECORD size analysis</td<>/tr><YUV / JPEG / RAW<<>> td td><td id="rb"/td td><id="rb">MAX</td td><id="rb"PRIV></td td><id="rb"<DEFAULT>/td><td id="rb"><<MAX_RESPREVIEW>/td td id="rb"/td><td id="rb">JPEG / YUV / RAW</td><td id="rb"<DEFAULT>/td td><id="rb"<>MAX/td td><>Ultra high res still image capture with preview + default sensor pixel mode analysis stream</td<>/tr></table br><>

Aquí, SC Map, hace referencia a StreamConfigurationMap, se deben elegir entre los tamaños de la secuencia de destino. DEFAULT hace referencia al modo StreamConfigurationMap de píxeles del sensor predeterminado y MAX_RES hace referencia a la resolución StreamConfigurationMapmáxima. En MAX_RES el caso de las secuencias, MAX en la Max size columna hace referencia al tamaño máximo de StreamConfigurationMap#getOutputSizes y StreamConfigurationMap#getHighResolutionOutputSizes. Nota: La misma solicitud de captura no debe mezclar destinos de StreamConfigurationMaps correspondientes a diferentes modos de píxeles del sensor.

Los dispositivos compatibles CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT con salida de 10 bits admiten al menos las siguientes combinaciones de secuencias:

<table>tr th colspan="7">10-bit output additional guaranteed configurations</th></tr>><<th colspan="2" id="rb">Target 1</th th><colspan="2" id="rb">Target 2</th><colth colspan="2" id="rb">Target 3</th<>rowspan="2">Sample use case(s)</th></tr tr><><th>Type</th th><id="rb">Max size</th><Type/th th>Type</th><id="rb"><<>Max size</th>><Type</th th><id="rb">Max size</th></tr tr><><tdPRIV<>/td td td><id="rb">MAXIMUM</td> }</td td><colspan="4" id="rb"></td td td<>>Simple preview, GPU video processing, or no-preview video recording.</td></tr tr>><<td>YUV</td td><id="rb">MAXIMUM</td> }</td td><colspan="4" id="rb"></td td td<>>in-application video/image processing.</td></tr tr><><td><PRIV/td td><id="rb">PREVIEW</td><td><JPEG td td><id="rb"><MAXIMUM/td td td><colspan="2" id="rb"></td td<>>Standard still imaging.</td></tr tr><><td><PRIV/td td><id="rb">PREVIEW</td><tdYUV>< td td td><id="rb"><MAXIMUM/td td><colspan="2" id="rb"></td td<>>maximum-resolution in-app processing with preview.</td></tr tr>><<td>YUV</td td><id="rb"><PREVIEW/td tdYUV><<> td td><id="rb"><MAXIMUM/td td><colspan="2" id="rb"></td td td<>>Procesamiento de dos entradas en la aplicación.</td></tr tr><><td><PRIV/td td><id="rb">PREVIEW</td><td><PRIV td td><id="rb"><RECORD/td td><colspan="2" id="rb"></td td td<>>grabación de vídeo de alta resolución con vista previa.</td></tr tr><><td><PRIV/td td><id="rb">PREVIEW</td<>tdPRIV<>/td td><id="rb">RECORD</td<>td><YUV td><id="rb"><RECORD/td td td<>>grabación de alta resolución con instantánea en la aplicación.</td></tr tr><><td><PRIV/td td><id="rb"PREVIEW></td<>td>PRIV</td td><id="rb"RECORD<>/td td>JPEG<<> td><id="rb"><RECORD/td td td<>>grabación de alta resolución con instantánea de vídeo.</td></tr></table><br>

Aquí PRIV puede ser formato de píxeles de 8 o 10 bits android.graphics.ImageFormat#PRIVATE . YUV puede ser o android.graphics.ImageFormat#YUV_420_888android.graphics.ImageFormat#YCBCR_P010. Para la columna de tamaño máximo, PREVIEW hace referencia a la mejor coincidencia de tamaño con la resolución de pantalla del dispositivo o a 1080p (1920x1080), lo que sea menor. RECORD hace referencia a la resolución de grabación máxima admitida del dispositivo de cámara, según lo determinado por android.media.CamcorderProfile. MAXIMUM hace referencia a la resolución de salida máxima del dispositivo de cámara para ese formato o destino de StreamConfigurationMap#getOutputSizes(int). Tenga en cuenta que las combinaciones no válidas, como tener una superficie de cámara configurada para usar el formato android.graphics.ImageFormat#YUV_420_888 de píxeles con un perfil de 10 bits, provocarán un error de inicialización de sesión de captura.

android.graphics.ImageFormat#JPEG_R también se puede admitir si se anuncia mediante android.hardware.camera2.params.StreamConfigurationMap. Al inicializar una sesión de captura que incluya un cliente de salida de cámara Jpeg/R, debe tener en cuenta los siguientes elementos w.r.t. la tabla de combinación de secuencias obligatoria de 10 bits:

<ul><li>Para generar la imagen jpeg/R comprimida, el dispositivo de cámara usará internamente una única android.graphics.ImageFormat#YCBCR_P010 salida.</li li>><En los dispositivos de cámara que pueden admitir solicitudes simultáneas de captura de 10 y 8 bits, también android.hardware.camera2.params.DynamicRangeProfiles#getProfileCaptureRequestConstraints se configurará un adicional android.graphics.ImageFormat#JPEG internamente para ayudar a acelerar el proceso de codificación.</li></ul>

Las salidas de la cámara Jpeg/R suelen ser capaces de admitir la resolución máxima del dispositivo. Los clientes también pueden llamar StreamConfigurationMap#getOutputSizes(int) a para obtener una lista completa de tamaños admitidos. Los clientes de cámara que registran una salida jpeg/R dentro de una combinación de secuencia que no cabe en la tabla de secuencias obligatoria anterior pueden llamar CameraDevice#isSessionConfigurationSupported para asegurarse de que se admite esta configuración determinada.

Los dispositivos con la funcionalidad STREAM_USE_CASE (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES incluye CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE) admiten las siguientes combinaciones de secuencias adicionales:

<table>tr th colspan="10">STREAM_USE_CASE capability additional guaranteed configurations</th></tr tr tr><<>th colspan="3" id="rb">Target 1</th><colspan="3" id="rb">Target 2</th><colspan="3" id="rb">Target 3</th<>rowspan="2">Sample use case(s)</th<>/tr tr tr><><th>Type</th th><id="rb">Max size</th>><Usecase</th><<><ésima>Type</th th><id="rb">Max size</th>><Usecase</>><th th Type</th th><id="rb">Max size</th>><Usecase</th<>/tr tr><><td<>YUV / PRIV/td td td><id="rb"PREVIEW></td td><id="rb"><PREVIEW/td><td colspan="3" id="rb"></td td<>colspan="3" id="rb"></td td><>Simple preview or in-app image processing</Td></tr tr>><<td><YUV / PRIV/td td><id="rb"<RECORD>/td td><id="rb"VIDEO_RECORD<>/td td><colspan="3" id="rb"></td td<>colspan="3" id="rb"></td td>><Simple video recording or in-app video processing</td></tr td<<>YUV / JPEG><>/td td><id="rb">MAXIMUM</td td><id="rb"STILL_CAPTURE></td><td colspan="3" id="rb"></td td><colspan="3" id="rb"></td td><>Simple JPEG o YUV still image capture</td<>/tr tr><><td<>YUV / PRIV/td td td><id="rb"s1440p></td td><id="rb"><PREVIEW_VIDEO_STILL/td td<>colspan="3" id="rb"></td td<>colspan="3" id="rb"></td td><>Multi-purpose stream for preview, vídeo y still image capture</td></tr tr>><<td><YUV / PRIV/td 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></tr td<>>PRIV><</td td><id="rb"PREVIEW></td><td id="rb" >PREVIEW</td td><YUV / JPEG<>/td td><id="rb"><MAXIMUM/td td><id="rb"<>STILL_CAPTURE/td td><colspan="3" id="rb"></td td<>>preview with JPEG o YUV still image capture</td<>/tr td>><<>PRIV</td td><id="rb"PREVIEW></td td><id="/td id="rb"<>PREVIEW/td<><>>YUV / PRIV< id="rb" >RECORD</td><td id="rb">VIDEO_RECORD</td><td colspan="3" id="rb"></td><td>Preview con grabación de vídeo o procesamiento< de vídeo en la aplicación/td<>/tr tr>PRIV<>><><< td td id="rb"><PREVIEW/td td><id="rb"><PREVIEW/td td><tdYUV>><< id="/td td id=">PREVIEW</td><td id="rb"PREVIEW></td><td colspan="3" id="rb"></td td><>Preview with in-application image processing</td/tr><><td<>>PRIV</td td><id="rb"><PREVIEW/td td><id=""rb"><PREVIEW/td td><<YUV / PRIV>/td td><id="rb"s1440p></td td><id="rb"VIDEO_CALL<>/td td><colspan="3" id="rb"></td td td><>Vista previa con video call</td<>/tr td>YUV / PRIV>><<</td><td id="rb"s1440p<>/td><td id="rb"PREVIEW_VIDEO_STILL<>/td><tdYUV / JPEG>< td td><id="rb"MAXIMUM<>/td td><id="rb"STILL_CAPTURE></td td td colspan="3" id="rb"></td td td<>>MultI-purpose stream with JPEG o YUV still capture</><td></tr><Tr><td><YUV/td><td id="rb">PREVIEW</td><td id="rb"<>STILL_CAPTURE/td><td<JPEG>>< id="rb">MAXIMUM</td td><id="rb"><STILL_CAPTURE/td td><colspan="3" id="rb"></td td td><>YUV y JPEG captura simultánea de imágenes (para pruebas)</td></tr tr>><<><PRIV>< td id="rb">PREVIEW</td><td id="rb">PREVIEW</td><td td>YUV / PRIV><< td id="rb"<>RECORD/td td><id="rb">VIDEO_RECORD</td td<<>>JPEG td><id="rb">RECORD</td><td id="rb"STILL_CAPTURE<>/td td>><Preview, grabación de vídeo y instantánea< de vídeo JPEG/td<>/tr<<><>>PRIV td/td/td><td id="rb"><PREVIEW/td><td id="rb"<>PREVIEW/td><td td>><YUV< td id="rb"PREVIEW></td td><id="rb"><PREVIEW/td<>td<>JPEG td><id="rb"<>MAXIMUM/td td><id="rb"><STILL_CAPTURE/td td><>Preview, procesamiento de imágenes en la aplicación y JPEG captura de imágenes</td<>/tr></table><Br>

Los dispositivos que incluyen el caso de uso de la CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW secuencia en CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES, admiten las combinaciones de secuencias adicionales siguientes:

<table>tr th colspan="10">STREAM_USE_CASE_CROPPED_RAW capability additional guaranteed configurations</th></tr tr tr><><th colspan="3" id="rb">Target 1</th colspan="3" id="rb"Target 1/th><colspan="rb">Target 2</th colspan="3" id="rb">Target 3</th<>><rowspan="2">Sample use case(s)</th></tr tr tr><><th>Type</th><id="rb">Max size</th th th>><><<Usecase</th>><Type</th th><id="rb">Max size</th>><Usecase</th>><th Type</th th><id="rb">Max size</th>Usecase</th<><> tr td>RAW><<<>/td><td id="rb"MAXIMUM></td td><id="rb"><CROPPED_RAW/td td<>colspan="3" id="rb"></td td<>colspan="3" id="rb"></td td><>Cropped Raw todavía captura sin preview</td></tr><td<><PRIV / YUV>/td><td id="rb"<>PREVIEW/td><td id="rb"<PREVIEW>/td tdRAW<>>< td td><id="rb"<MAXIMUM>/td><td id="rb"<>CROPPED_RAW/td td td><colspan="3" id="rb"></td td><td>Preview con RAW recortado todavía capture</td>< tr<>td><>PRIV / YUV</td><td id="rb"PREVIEW></td><td id="rb"><PREVIEW/td<>tdYUV / JPEG>< td><td id="rb"<>MAXIMUM/td td><id="rb"STILL_CAPTURE<>/td><tdRAW>< td><id="rb"MAXIMUM></td td><id="rb"CROPPED_RAW></td td>><Preview con YUV /JPEG y raw recortado todavía capture</td<>/tr<>td td><>PRIV / YUV</td><td id="rb"><PREVIEW/td><td id="rb"<PREVIEW>/td td><>PRIV / YUV< td><td id="rb"><PREVIEW/td td><id="rb">VIDEO_RECORD / PREVIEW</td><td><RAW td><id="rb"<>MAXIMUM/td td><id="rb">CROPPED_RAW</td td td>><Video recording with preview and cropped RAW still capture</><td/tr>

En el caso de los dispositivos en los que CameraCharacteristics#CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES se incluye CameraMetadata#CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION, se garantizan las siguientes combinaciones de secuencias, para CaptureRequests donde CaptureRequest#CONTROL_VIDEO_STABILIZATION_MODE se establece en . CameraMetadata#CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION

<table>tr th colspan="7">Preview stabilization guaranteed stream configurations</th></tr tr tr><><th colspan="2" id="rb">Target 1</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>><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<>>Versión preliminar estabilizada, procesamiento de vídeo gpu o grabación de vídeo estabilizada sin vista previa.</td></tr tr><><td><PRIV / YUV/td td><id="rb"<s1440p>/td<>tdJPEG / YUV<> td td><id="rb"<>MAXIMUM/td td><>Standard still imaging con versión preliminar estabilizada.</td></tr tr><><td><PRIV / YUV/td td><id="rb"<PREVIEW>/td<>tdPRIV / YUV<> td td><id="rb"<>s1440p/td td><>Alta resolución con la vista previa estabilizada y la secuencia de grabación.</td></tr></table><br>

Para la columna de tamaño máximo, PREVIEW hace referencia a la mejor coincidencia de tamaño con la resolución de pantalla del dispositivo o a 1080p (1920x1080), lo que sea menor. RECORD hace referencia a la resolución de grabación máxima admitida del dispositivo de cámara, según lo determinado por android.media.CamcorderProfile. MAXIMUM hace referencia a la resolución de salida máxima del dispositivo de cámara para ese formato o destino de StreamConfigurationMap#getOutputSizes(int).

Dado que las funcionalidades de los dispositivos de cámara varían considerablemente, un dispositivo de cámara determinado puede admitir combinaciones de destino con tamaños fuera de estas garantías, pero esto solo se puede probar llamando #isSessionConfigurationSupported a o intentando crear una sesión con estos destinos.

Excepción en la resolución 176x144 (QCIF): los dispositivos de cámara suelen tener una capacidad fija para reducir el escalado de mayor resolución a menor, y la resolución QCIF a veces no es totalmente compatible debido a esta limitación en los dispositivos con sensores de imagen de alta resolución. Por lo tanto, es posible que no se admita intentar configurar un flujo de resolución QCIF junto con cualquier otro flujo mayor que la resolución 1920x1080 (ancho o alto) y se producirá un error en la creación de la sesión de captura si no lo es.

<h3>Reprocesamiento</h3>

Si un dispositivo de cámara admite el reprocesamiento de YUV (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING) o el reprocesamiento PRIVADO (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING), la aplicación también puede crear una sesión de captura reprocesable para enviar solicitudes de captura de reprocesamiento además de solicitudes de captura normales, estableciendo una android.hardware.camera2.params.SessionConfiguration#setInputConfiguration input configuration para la sesión. Una solicitud de captura de reprocesamiento toma el siguiente búfer disponible de la superficie de entrada de la sesión y lo envía a través de la canalización de procesamiento del dispositivo de cámara de nuevo, para generar búferes para las superficies de salida de destino de la solicitud. No se capturan datos de imagen nuevos para una solicitud de reprocesamiento. Sin embargo, el búfer de entrada proporcionado por la aplicación debe ser capturado anteriormente por el mismo dispositivo de cámara en la misma sesión directamente (por ejemplo, para el caso de uso Zero-Shutter-Lag) o indirectamente (por ejemplo, la combinación de varias imágenes de salida).

La sesión de captura activa reprocesable determina una entrada Surface y el conjunto de posibles superficies de salida para los dispositivos de cámara para cada solicitud de captura. La aplicación puede usar #createCaptureRequest createCaptureRequest para crear solicitudes de captura normales para capturar nuevas imágenes desde el dispositivo de cámara y usar #createReprocessCaptureRequest createReprocessCaptureRequest para crear solicitudes de captura de reprocesamiento para procesar búferes de la entrada Surface. Es posible que algunas combinaciones de Superficies de salida de una sesión no se usen en una solicitud simultáneamente. Las combinaciones garantizadas de superficies de salida que se pueden usar en una solicitud simultáneamente se muestran en las tablas en #createCaptureSession createCaptureSession. Todas las superficies de salida de una solicitud de captura provendrán del mismo origen, ya sea desde una nueva captura por el dispositivo de cámara, o desde la surface de entrada en función de si la solicitud es una solicitud de captura de reprocesamiento.

Los formatos y tamaños de entrada admitidos por el dispositivo de cámara se pueden consultar a través StreamConfigurationMap#getInputFormats de y StreamConfigurationMap#getInputSizes. Para cada formato de entrada admitido, el dispositivo de cámara admite un conjunto de formatos y tamaños de salida para el reprocesamiento que se pueden consultar a través StreamConfigurationMap#getValidOutputFormatsForInput de y StreamConfigurationMap#getOutputSizes. Aunque las superficies de salida con formatos que no son destinos de salida de reprocesamiento válidos para la configuración de entrada pueden formar parte de una sesión, no se pueden usar como destinos para una solicitud de reprocesamiento.

Dado que la aplicación no puede tener acceso a android.graphics.ImageFormat#PRIVATE imágenes directamente, una superficie de salida creada por android.media.ImageReader#newInstance con android.graphics.ImageFormat#PRIVATE , ya que el formato se considerará como previsto para volver a procesar la entrada y, por tanto, el android.media.ImageReader tamaño debe coincidir con uno de los tamaños de entrada admitidos para android.graphics.ImageFormat#PRIVATE el formato. De lo contrario, se producirá un error al crear una sesión de captura reprocesable.

A partir del nivel de API 30, volver a crear una sesión de captura reprocesable vaciará todos los búferes en cola pero aún no procesados de la superficie de entrada.

Las configuraciones de las tablas siguientes se garantizan para crear una sesión de captura reprocesable si el dispositivo de cámara admite el reprocesamiento YUV o el reprocesamiento PRIVADO. Sin embargo, no todos los destinos de salida usados para crear una sesión reprocesable se pueden usar simultáneamente CaptureRequest . En el caso de los dispositivos que admiten solo 1 destino de salida en un reprocesamiento CaptureRequest, el envío de un reprocesamiento CaptureRequest con varios destinos de salida dará como resultado un CaptureFailure. En el caso de los dispositivos que admiten varios destinos de salida en un reprocesamientoCaptureRequest, los destinos de salida garantizados que se pueden incluir simultáneamente se muestran en CaptureRequest las tablas de .#createCaptureSession createCaptureSession Por ejemplo, con un dispositivo de funcionalidad COMPLETA (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL) que admite el reprocesamiento PRIVADO, una aplicación puede crear una sesión de captura reprocesable con 1 entrada, (PRIV, MAXIMUM) y 3 salidas, (PRIV, MAXIMUM), (PRIV, PREVIEW) y (YUV, MAXIMUM). Sin embargo, no se garantiza que una aplicación pueda enviar una captura normal o de reprocesamiento con (PRIV, MAXIMUM) y (YUV, MAXIMUM) salidas basadas en la tabla que aparece en #createCaptureSession createCaptureSession. En otras palabras, use las tablas siguientes para determinar las configuraciones de flujo garantizadas para crear una sesión de captura reprocesable y usar las tablas en #createCaptureSession createCaptureSession para determinar los destinos de salida garantizados que se pueden enviar simultáneamente en una sesión de captura normal o reprocesada CaptureRequest .

No se admite el reprocesamiento con destinos de salida de 10 bits en dispositivos compatibles CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT con 10 bits. Al intentar inicializar una sesión de captura repetible con una o varias configuraciones de salida establecidas OutputConfiguration#setDynamicRangeProfile para usar un perfil android.hardware.camera2.params.DynamicRangeProfiles de intervalo dinámico de 10 bits, se desencadenará IllegalArgumentException.

<style scoped> #rb { border-right-width: thick; }</Estilo>

Los dispositivos de nivel LIMITADO (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED) admiten al menos las siguientes combinaciones de secuencias para crear una sesión de captura reprocesable, además de las enumeradas anteriormente para las capturas normales de CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED los dispositivos:

<table>tr th colspan="11">LIMITED-level additional guaranteed configurations for creating a reprocessable capture session<br>(PRIV input is guaranteed only if PRIVATE reprocessing is supported. YUV input solo se garantiza si se admite el reprocesamiento de YUV)</th></tr tr tr><><th colspan="2" id="rb"Input</th th colspan="2" id="rb">Target 1</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><id="rb">Max size</th><>Type</><th th id="rb">Max size</th>><th Type</th id="rb"Max size/th Type/th id=">Max size</th><Type</><>th th><id="rb" ><Tamaño máximo/th></tr tr>><<td>YUV/PRIV</td><td id="rb"MAXIMUM></td><td>Igual que input</td><td id="rb"/td><td>JPEG< td td><id="rb"MAXIMUM<>/td><td>< td><id="rb"></td<>td>< td><id="rb"MAXIMUM>><</td td<>>no-viewfinder todavía reprocesamiento de imágenes.</td></tr tr><<>td>PRIV<YUV//td td><id="rb"><MAXIMUM/td<>td>Igual que input</td td><id="rb"<>MAXIMUM/td td>>PRIV<< td><id="rb"<>PREVIEW/td<>>JPEG< td><id="rb"MAXIMUM></td><>< td td><><><>ZSL(Zero-Shutter-Lag) sigue imagingiendo.</td></tr tr><<>td>PRIV<YUV//td td><id="rb"><MAXIMUM/td<>td>Igual que input</td td><id="rb"<>MAXIMUM/td td>>YUV<< td><id="rb"<>PREVIEW/td<>>JPEG< td><id="rb"MAXIMUM></td><>< td td><><><>ZSL sigue procesando imágenes en la aplicación.</td></tr tr><<>td>PRIV<YUV//td td><id="rb"><MAXIMUM/td<>td>Igual que input</td td><id="rb"><MAXIMUM/td td>YUV<>< td><id="rb"PREVIEW<>/td<>tdYUV>< td td><id="rb"PREVIEW<>/td<<JPEG>> id="rb"/td td td><id="rb">MAXIMUM</Td><td ZSL in-app processing with still capture( td>ZSL in-app processing with still capture.</td></tr></table><br>

Los dispositivos de nivel COMPLETO (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL) admiten al menos las siguientes combinaciones de secuencias para crear una sesión de captura reprocesable además de las CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED de los dispositivos:

<table>tr th colspan="11">FULL-level additional guaranteed configurations for creating a reprocessable capture session<br>(PRIV input is guaranteed only if PRIVATE reprocessing is supported. YUV input solo se garantiza si se admite el reprocesamiento de YUV)</th></tr tr tr><<>th colspan="2" id="rb">Input</th th colspan="2" id="rb">Target 1</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>><Type</th th><id="rb">Max size</th><>Type</><th th id="rb">Max size</>><th Type</th th><id="rb">Max size</th type/th id="th><>type</th><id="rb"Max> size/th/tr tr>><<tdYUV<>/td td><id="rb">MAXIMUM</td<>tdYUV>><< id="rb"<MAXIMUM>/td<>td><PRIV>< id="rb"PREVIEW></td><td>< td><id="rb"></td>><< td td td><id="rb"></td td td<>>Maximum-resolution multi-frame fusion in-app processing with regular preview.<><</td></tr tr>><<td><YUV/td td><id="rb"<MAXIMUM>/td<>tdYUV></td><td id="rb"MAXIMUM<>/td<>tdYUV>< td><id="rb"<>PREVIEW/td td>><< td td><id="rb"></td><>< td><id="rb"></td td><td>Maximum-resolution multi-frame fusion procesamiento de dos entradas en la aplicación.</td></tr tr><<>td>PRIV<YUV//td td><id="rb"><MAXIMUM/td<>td>Igual que input</td td><id="rb"<>MAXIMUM/td td>>PRIV<< td><id="rb"<>PREVIEW/td<>>YUV< td><id="rb"RECORD></td><>< td td><><><>Procesamiento de vídeo ZSL en la aplicación de alta resolución con versión preliminar normal.</td></tr tr><><td>PRIV</td td><id="rb"<MAXIMUM>/td><td<PRIV>/td><td id="rb"MAXIMUM></td<>td<PRIV> td><id="rb"PREVIEW<>/td<>tdYUV<> td id="rb"/td td><id="rb"><MAXIMUM/td><>< td td><id="rb"></td><td>Maximum-resolution Procesamiento de ZSL en la aplicación con versión preliminar normal.</td></tr tr><><td>PRIV</td td><id="rb"<MAXIMUM>/td><td<PRIV>/td><td id="rb"MAXIMUM></td<>td<YUV> td><id="rb"PREVIEW<>/td<>tdYUV<> td id="rb"/td td><id="rb"><MAXIMUM/td><>< td td><id="rb"></td><td>Maximum-resolution procesamiento de ZSL en la aplicación de dos entradas.</td></tr tr><<>td>PRIV<YUV//td td><id="rb"><MAXIMUM/td<>td>Igual que input</td td><id="rb"><MAXIMUM/td td>PRIV<>< td><id="rb"PREVIEW<>/td<>tdYUV>< td td><id="rb"PREVIEW<>/td<<JPEG>> id="rb"/td td td><id="rb">MAXIMUM</Td><td>ZSL sigue capturando y procesando en la aplicación.</td></tr></table><br>

Funcionalidad RAW (CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES incluye CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW RAW) los dispositivos también admiten al menos las siguientes combinaciones de secuencias para crear una sesión de captura reprocesable en CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL los dispositivos y CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED

<table>tr th colspan="11">RAW-capability configuraciones garantizadas adicionales para crear una sesión<de captura reprocesable br>(PRIV input is guaranteed only if PRIVATE reprocessing is supported. YUV input solo se garantiza si se admite el reprocesamiento de YUV)</th></tr tr tr><><th colspan="2" id="rb"Input</th th colspan="2" id="rb">Target 1</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</thth><><>Type</th><id="rb">Max size</th>><Type</><th th id="rb">Max size</th>><th Type</th id="rb">Max size/th th id="Max size</th><Type</><>th><id="rb">Max size</th></tr tr>><<tdYUV>/<PRIV/td><td id="rb"><MAXIMUM/td<>td>Same as input</td><td id="rb"<MAXIMUM>/td<YUV>>< td td td><id="rb"<>PREVIEW/td><td<RAW> td td><id="rb"><MAXIMUM/td td<><>>< td id="rb"></td><>td Mutually exclusive ZSL procesamiento en la aplicación y captura de DNG.</td></tr tr><<>td>PRIV<YUV//td td><id="rb"><MAXIMUM/td<>td>Igual que input</td td><id="rb"><MAXIMUM/td td>PRIV<>< td><id="rb"PREVIEW<>/td<>tdYUV>< td td><id="rb"PREVIEW<>/td<<RAW>> id="rb"/td td td><id="rb">MAXIMUM</Td><td>El procesamiento en la aplicación y la vista previa de ZSL excluyentes mutuamente con la captura DNG.</td></tr tr><<>td>PRIV<YUV//td td><id="rb"><MAXIMUM/td<>td>Igual que input</td td><id="rb"><MAXIMUM/td td>YUV<>< td><id="rb"PREVIEW<>/td<>tdYUV>< td td><id="rb"PREVIEW<>/td<<RAW>> id="rb"/td td td><id="rb">MAXIMUM</Td><td>Mutuamente excluyente ZSL procesamiento de dos entradas en la aplicación y captura DNG.</td></tr tr><<>td>PRIV<YUV//td td><id="rb"><MAXIMUM/td<>td>Igual que input</td td><id="rb"><MAXIMUM/td td>PRIV<>< td><id="rb"PREVIEW<>/td<>tdJPEG>< td td><id="rb"MAXIMUM<>/td<<RAW>> id="rb"/td td td><id="rb">MAXIMUM</Td><td>Mutuamente excluye ZSL sigue capturando y previsualizar con captura DNG.</td></tr tr><<>td>PRIV<YUV//td td><id="rb"><MAXIMUM/td<>td>Igual que input</td td><id="rb"><MAXIMUM/td td>YUV<>< td><id="rb"PREVIEW<>/td<>tdJPEG>< td td><id="rb"MAXIMUM<>/td<<RAW>> id="rb"/td td td><id="rb">MAXIMUM</Td><td>El procesamiento de ZSL en la aplicación excluyente mutuamente con capturas y capturas DNG.</td></tr></table><br>

Los dispositivos LEVEL-3 (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3 LEVEL_3) admiten al menos las siguientes combinaciones de secuencias para crear una sesión de captura reprocesable además de las de los CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL dispositivos. Tenga en cuenta que, aunque la segunda configuración permite configurar MAXIMUMYUV y JPEG salidas al mismo tiempo, esa configuración no aparece en las sesiones de captura normales y, por lo tanto, no se permite la salida simultánea a ambos destinos.

<table><tr><th colspan="13">LEVEL-3 configuraciones garantizadas adicionales para crear una sesión<de captura reprocesable br>(PRIV input is guaranteed only if PRIVATE reprocessing is supported. YUVSiempre se garantiza la entrada.</th></tr tr><><th colspan="2" id="rb">Input</th th><colspan="2" id="rb">Target 1</th><colspan="2" id="rb">Target 2</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 tr>><><th Type</th><id="rb">>Max size</th><ésima>Type</th><id="rb">Max size</th Type</th><>th><id="rb">Max size</>><th type</th id="rb"Max size/th type/th><id="rb">Max size</th>><Type</th th><id="rb">Max size</th Type</th>><th><id="rb">Max size</th></tr td><<>YUV></td td><id="rb"MAXIMUM<>/td<>td tdYUV></td td td><id="rb" >MAXIMUM</td td><PRIV<>/td><td id="rb"PREVIEW></td><td<PRIV>/td><td id="rb"640x480></td><td<RAW> td td><id="rb">MAXIMUM</td><td>< td><id="rb"></td td td td<>>in-app viewfinder analysis with ZSL and RAW.</td></tr tr><<>td>PRIV<YUV//td td><id="rb"><MAXIMUM/td<>td>Igual que input</td td><id="rb"><MAXIMUM/td td>PRIV<>< td><id="rb"PREVIEW<>/td<>tdPRIV>< td td><id="rb"640x480<>/td<<RAW>> id="rb"/td td td><id="rb">MAXIMUM</Td><td><JPEG/td td><id="rb"MAXIMUM></td td td><>Análisis del visor en la aplicación con salida de reprocesamiento ZSL, RAW y JPEG.</td></tr></table><br>

Si un dispositivo de cámara admite la entrada de múltiples resolución YUV y la salida de varias resoluciones o admite PRIVATE la entrada de múltiples resolución YUV y la salida de varias resolucionesPRIVATE, las combinaciones de secuencias obligatorias adicionales para dispositivos LIMITED y FULL se enumeran a continuación (MULTI_RES en la columna Tamaño máximo hace referencia a para MultiResolutionImageReader la salida y a una resolución InputConfiguration múltiple para la entrada): <la tabla><trspan><="11">Las configuraciones garantizadas adicionales de nivel LIMITADO para crear una sesión de captura reprocesable con entradas de varias resoluciones y salidas de<varias resoluciones br>(PRIV solo se garantiza si se admite el reprocesamiento PRIVADO. YUV input solo se garantiza si se admite el reprocesamiento de YUV)</th></tr 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 tr><><>th Type</th><id="rb">Max size</th Type</th>><th><id="rb">Max size</th><>Type</th th><id="rb">Max size</th th>Type</th><id="th><id="rb">Max size</th th><>Type/<<> th><id="rb">Max size</th></tr td<><<YUV>/PRIV>/td td td><id="rb"MULTI_RES></td td<>>Same as input</td td><id="rb">MULTI_RES</td td td><>JPEG</td td><id="rb"<>MULTI_RES/td td><>< td td td><id="rb"></td td>><< td td><id="rb"></td td><>no-viewfinder still image Reprocesamiento.</td></tr tr><<>td>PRIV<YUV//td td><id="rb"><MULTI_RES/td<>td>Igual que input</td td><id="rb"<>MULTI_RES/td td>>PRIV<< td><id="rb"<>PREVIEW/td<>>JPEG< td><id="rb"MULTI_RES></td><>< td td><><><>ZSL(Zero-Shutter-Lag) sigue imagingiendo.</td></tr tr><<>td>PRIV<YUV//td td><id="rb"><MULTI_RES/td<>td>Igual que input</td td><id="rb"<>MULTI_RES/td td>>YUV<< td><id="rb"<>PREVIEW/td<>>JPEG< td><id="rb"MULTI_RES></td><>< td td><><><>ZSL sigue procesando imágenes en la aplicación.</td></tr tr><<>td>PRIV<YUV//td td><id="rb"><MULTI_RES/td<>td>Igual que input</td td><id="rb"><MULTI_RES/td td>YUV<>< td><id="rb"PREVIEW<>/td<>tdYUV>< td td><id="rb"PREVIEW<>/td<<JPEG>> id="rb"/td td td><id="rb">MULTI_RES</Td><td ZSL in-app processing with still capture( td>ZSL in-app processing with still capture.</td></tr></table br><table>><<tr><th colspan="11">Full-level additional guaranteed configurations for creating a reprocessable capture session with multi-resolution input and multi-resolution outputs<br>(PRIV input is guaranteed only if PRIVATE reprocessing is supported. YUV input is guaranteed only if YUV reprocessing is supported)</th></tr tr><tr><th colspan="2" id="rb" >Input</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 id="rb">Max size</th><Type/>><th th Id="th Type</th th><id="rb">Max size/< 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></tr tr<<>>td><PRIV td><id="rb"MULTI_RES></td td td>><<PRIV td id="rb"/td td td><id="rb"><MULTI_RES>/td<><<PRIV>> id=<>"rb">PREVIEW</td td><tdYUV<> td td><id="rb">MULTI_RES</td><td>< td td><id="rb"></td td<>>Maximum-resolution ZSL in-app processing with regular preview.</td></tr tr><><td>PRIV</td td><id="rb"<MULTI_RES>/td><td<PRIV>/td><td id="rb"MULTI_RES></td<>td<YUV> td><id="rb"PREVIEW<>/td<>tdYUV<> td id="rb"/td td><id="rb"><MULTI_RES/td><>< td td><id="rb"></td><td>Maximum-resolution procesamiento de ZSL en la aplicación de dos entradas.</td></tr tr><<>td>PRIV<YUV//td td><id="rb"><MULTI_RES/td<>td>Igual que input</td td><id="rb"><MULTI_RES/td td>PRIV<>< td><id="rb"PREVIEW<>/td<>tdYUV>< td td><id="rb"PREVIEW<>/td<<JPEG>> id="rb"/td td td><id="rb">MULTI_RES</Td><td>ZSL sigue capturando y procesando en la aplicación.</td></tr></table><br>

Los dispositivos con la funcionalidad ULTRA_HIGH_RESOLUTION_SENSOR tienen algunas garantías adicionales que los clientes pueden aprovechar :

<table><tr><th colspan="13">Combinaciones garantizadas adicionales para los sensores de ULTRA_HIGH_RESOLUTION (las entradas YUV / PRIV solo se garantizan si se admiten reprocesamiento YUV / PRIVATE)</th></tr tr tr><<>th colspan="3" id="rb">Input</th colth<>colprocessingspan="3" id="rb">Target 1</th<>colspan="3" id="rb">Target 2</th><colspan="3" id="rb">Target 3</th><rowspan="2">Casos de uso de ejemplo/<th<>/tr tr<<>>th>Type</th><id="rb"> SC Map</th><id="rb">Max size</th><>Type/th id="th th Type</th><id="rb"> SC Map</th><id="rb">Max size</th<>>Type</th th><id="rb"> SC Map</th th><id="rb">Max size</th>><Type</th th><id="rb"> SC Map</th th><id="rb" ><Tamaño máximo/th></tr tr>><<td>RAW</td><td id="rb"<MAX_RES>/td td><id="rb"<>MAX/td><td<>RAW td td><id="rb"><MAX_RES/td td id="rb"/td td><id="rb"<>MAX/td><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 reprocesamiento con preview</td></tr tr<>td><RAW<>/td><td id="rb">MAX_RES</td><td id="rb"<MAX>/td td><td><RAW>< td id="rb"/td td><id="rb"><MAX/td td><id="rb"PRIV / YUV></td td><id="rb<DEFAULT>"/td td><id="rb>PREVIEW<"MAX_RES<>/td td id="rb"/><td td id="rb"/td td id="rb">JPEG / YUV</td><td id="rb">MAX_RES</td><td id="rb"><MAX/td<>td>Ultra high res RAW -> JPEG / YUV con vista previa< independiente/td<>/tr tr><<>><YUV / PRIV td td td><id="rb"/td td><id="rb"MAX<>/td><td tdYUV / PRIV><>< id="rb"><MAX_RES/td td><id="rb"/>MAX_RES<>MAX< td><td id="rb"<>YUV / PRIV/td td><id="rb">DEFAULT</td td><id="rb"PREVIEW></td td><id="rb"<JPEG>/td><td id="rb"MAX_RES<>/td><td id="rb">MAX</td td<>> Ultra high res PRIV / YUV -> YUV / JPEG reprocesamiento con vista previa< independiente/td<>/tr<>/table br>>< No hay combinaciones de secuencias obligatorias adicionales para la funcionalidad RAW y el nivel de hardware LEVEL-3. </p>

<h3>Grabación de alta velocidad< restringida/h3>

La aplicación puede usar un android.hardware.camera2.params.SessionConfiguration#SESSION_REGULAR normal capture session para la captura de alta velocidad si se anuncian los intervalos de FPS de alta velocidad deseados por CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES, en cuyo caso se aplica toda la semántica de API asociada a las sesiones de captura normales.

android.hardware.camera2.params.SessionConfiguration#SESSION_HIGH_SPEED high-speed capture session Se puede usar para la grabación de vídeo de alta velocidad (>=120 fps) cuando el dispositivo de cámara admite la funcionalidad de vídeo de alta velocidad (es decir, CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES contiene CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO). Una sesión de captura de alta velocidad restringida tiene limitaciones especiales en comparación con una sesión de captura normal:

<ul>

<li>Además de los requisitos de surface de destino de salida especificados anteriormente para las capturas normales, una sesión de captura de alta velocidad solo admitirá hasta 2 superficies de salida, aunque la aplicación podría optar por configurar solo una Surface (por ejemplo, solo versión preliminar). Todas las Superficies deben ser superficies de codificador de vídeo (adquiridas por android.media.MediaRecorder#getSurface o ) o android.media.MediaCodec#createInputSurfacesuperficies de vista previa (obtenidas de , android.graphics.SurfaceTexture a través de android.view.SurfaceViewandroid.view.Surface#Surface(android.graphics.SurfaceTexture)). Los tamaños de Surface deben ser uno de los tamaños notificados por StreamConfigurationMap#getHighSpeedVideoSizes. Cuando se configuran varias Superficies, su tamaño debe ser el mismo.</Li>

<li>Una sesión de captura de alta velocidad activa solo acepta listas de solicitudes creadas a través CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestListde , y la lista de solicitudes solo se puede enviar a esta sesión a través CameraCaptureSession#captureBurst captureBurstde , o CameraCaptureSession#setRepeatingBurst setRepeatingBurst.</Li>

<li>Los intervalos de FPS que se solicitan a esta sesión deben seleccionarse en StreamConfigurationMap#getHighSpeedVideoFpsRangesFor. La aplicación todavía puede usar CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE para controlar el intervalo de FPS deseado. Cambiar a un intervalo de FPS que tiene diferentes android.util.Range#getUpper() maximum FPS puede desencadenar algunas reconfiguraciones de dispositivos de cámara, lo que puede introducir una latencia adicional. Se recomienda que la aplicación evite los cambios de FPS máximos de destino innecesarios tanto como sea posible durante el streaming de alta velocidad.</Li>

<li>Para las listas de solicitudes enviadas a esta sesión, el dispositivo de cámara invalidará , la CaptureRequest#CONTROL_MODE control modeexposición automática (AE), el equilibrio automático de blancos (AWB) y el enfoque automático (AF) a CameraMetadata#CONTROL_MODE_AUTO, CameraMetadata#CONTROL_AE_MODE_ONCameraMetadata#CONTROL_AWB_MODE_AUTO y CameraMetadata#CONTROL_AF_MODE_CONTINUOUS_VIDEO, respectivamente. Todos los controles de modo de bloque posteriores al procesamiento se invalidarán para que sean FAST. Por lo tanto, no se puede controlar manualmente los parámetros de captura y posprocesamiento. Además de esto, solo funcionará un subconjunto de controles, consulte CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO para obtener más detalles.</Li>

</ul>

Documentación de Java para android.hardware.camera2.CameraDevice.createCaptureSession(android.hardware.camera2.params.SessionConfiguration).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código y se usan según los términos descritos en la creative Commons 2.5.

Se aplica a

CreateCaptureSession(IList<Surface>, CameraCaptureSession+StateCallback, 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")]
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

Parámetros

outputs
IList<Surface>
handler
Handler
Atributos

Comentarios

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código y se usan según los términos descritos en la creative Commons 2.5.

Se aplica a