Idioma

RequestAvailableCapabilities Enumeração

Definição

Enumera valores retornados por vários métodos de RequestAvailableCapabilities.

public enum RequestAvailableCapabilities
type RequestAvailableCapabilities = 
Herança
RequestAvailableCapabilities

Campos

Nome Valor Description
BackwardCompatible 0

O conjunto mínimo de recursos que todos os dispositivos de câmera (independentemente do android.info.supportedHardwareLevel) dão suporte.

Essa funcionalidade é listada por todos os dispositivos normais e indica que o dispositivo de câmera tem um conjunto de recursos comparável aos requisitos de linha de base para a API android.hardware.Camera mais antiga.

Dispositivos com a funcionalidade DEPTH_OUTPUT podem não listar essa funcionalidade, indicando que eles dão suporte apenas à medição de profundidade, não à saída de cores padrão.

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

ManualSensor 1

O dispositivo de câmera pode ser controlado manualmente (algoritmos 3A como exposição automática e foco automático podem ser ignorados). O dispositivo de câmera dá suporte ao controle manual básico dos estágios relacionados à aquisição de imagem do sensor. Isso significa que os seguintes controles têm suporte garantido: controle de duração do quadro manual; android.sensor.frameDuration; android.sensor.info.maxFrameDuration; Controle de exposição manual; android.sensor.exposureTime; android.sensor.info.exposureTimeRange; Controle de confidencialidade manual; android.sensor.sensitivity; android.sensor.info.sensitivityRange; Controle de lente manual (se a lente for ajustável); android.lens.*; Controle flash manual (se uma unidade flash estiver presente); android.flash.*; Bloqueio manual no nível preto; android.blackLevel.lock; Bloqueio de exposição automática; android.control.aeLock

Se qualquer um dos algoritmos 3A acima estiver habilitado, o dispositivo de câmera relatará com precisão os valores aplicados por 3A no resultado.

Um determinado dispositivo de câmera também pode dar suporte a controles de sensor manuais adicionais, mas essa funcionalidade abrange apenas a lista acima de controles.

Se houver suporte para isso, android.scaler.streamConfigurationMap retornará adicionalmente uma duração de quadro mínima maior que zero para cada combinação de formato de tamanho com suporte.

Para dispositivos de câmera com LOGICAL_MULTI_CAMERA capacidade, quando a câmera física ativa subjacente alterna, exposureTime, confidencialidade e propriedades de lente podem mudar mesmo se o AE/AF estiver bloqueado. No entanto, a exposição automática geral e a experiência de foco automático para os usuários serão consistentes. Consulte LOGICAL_MULTI_CAMERA funcionalidade para obter detalhes.

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

ManualPostProcessing 2

Os estágios de pós-processamento do dispositivo de câmera podem ser controlados manualmente. O dispositivo de câmera dá suporte ao controle manual básico dos estágios pós-processamento da imagem. Isso significa que os seguintes controles têm suporte garantido: controle de mapa de tom manual; android.tonemap.curve; android.tonemap.mode; android.tonemap.maxCurvePoints; android.tonemap.gamma; android.tonemap.presetCurve; Controle de balanceamento de branco manual; android.colorCorrection.transform; android.colorCorrection.gains; Controle de mapa de sombreamento de lente manual; android.shading.mode; android.statistics.lensShadingMapMode; android.statistics.lensShadingMap; android.lens.info.shadingMapSize; Controle de correção de aberração manual (se houver suporte para correção de aberração); android.colorCorrection.aberrationMode; android.colorCorrection.availableAberrationModes; Bloqueio de balanceamento automático em branco; android.control.awbLock

Se o saldo automático em branco estiver habilitado, o dispositivo de câmera relatará com precisão os valores aplicados pela AWB no resultado.

Um determinado dispositivo de câmera também pode dar suporte a controles pós-processamento adicionais, mas essa funcionalidade abrange apenas a lista acima de controles.

Para dispositivos de câmera com capacidade de LOGICAL_MULTI_CAMERA, quando as câmeras físicas subjacentes alternam, o mapa de tons, o equilíbrio em branco e o mapa de sombreamento podem mudar mesmo se o awb estiver bloqueado. No entanto, a experiência geral pós-processamento para os usuários será consistente. Consulte LOGICAL_MULTI_CAMERA funcionalidade para obter detalhes.

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Raw 3

O dispositivo de câmera dá suporte à saída de buffers RAW e metadados para interpretá-los.

Os dispositivos que dão suporte à funcionalidade RAW permitem salvar arquivos DNG e para o processamento direto de aplicativos de imagens de sensor bruto.; RAW_SENSOR tem suporte como um formato de saída; A resolução máxima disponível para fluxos RAW_SENSOR corresponderá ao valor em android.sensor.info.pixelArraySize ou android.sensor.info.preCorrectionActiveArraySize; Todas as entradas de metadados opcionais relacionadas ao DNG são fornecidas pelo dispositivo de câmera

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAW.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

PrivateReprocessing 4

O dispositivo de câmera dá suporte ao caso de uso de reprocessamento do Obturador Zero.; Há suporte para um fluxo de entrada, ou seja, android.request.maxNumInputStreams == 1; ImageFormat.PRIVATE tem suporte como um formato de saída/entrada, ou seja, ImageFormat.PRIVATE está incluído nas listas de formatos retornados por StreamConfigurationMap.getInputFormats() e StreamConfigurationMap.getOutputFormats(); StreamConfigurationMap.getValidOutputFormatsForInput(int) retorna int[] não vazio para cada formato de entrada com suporte retornado por StreamConfigurationMap.getInputFormats(); Cada tamanho retornado por getInputSizes(ImageFormat.PRIVATE) também é incluído em getOutputSizes(ImageFormat.PRIVATE); O uso de ImageFormat.PRIVATE não causa uma queda na taxa de quadros em relação à taxa máxima de captura do sensor (nessa resolução); ImageFormat.PRIVATE será reprocessável em formatos ImageFormat.YUV_420_888 e ImageFormat.JPEG; Para uma câmera MONOCHROME que dá suporte ao formato Y8, ImageFormat.PRIVATE será reprocessável em ImageFormat.Y8; A resolução máxima disponível para fluxos PRIVATE (entrada/saída) corresponderá à resolução máxima disponível de fluxos JPEG; Metadados estáticos android.reprocess.maxCaptureStall; Somente os controles abaixo são eficazes para reprocessar solicitações e estarão presentes nos resultados da captura, outros controles em solicitações de reprocessamento serão ignorados pelo dispositivo de câmera; android.jpeg.*; android.noiseReduction.mode; android.edge.mode; android.noiseReduction.availableNoiseReductionModes e android.edge.availableEdgeModes listarão ZERO_SHUTTER_LAG como um modo com suporte

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

ReadSensorSettings 5

O dispositivo de câmera dá suporte a relatórios precisos das configurações do sensor para muitos dos controles do sensor enquanto o algoritmo 3A interno está em execução. Isso permite relatar as configurações do sensor mesmo quando essas configurações não podem ser alteradas manualmente.

Os valores relatados para os seguintes controles têm a garantia de estar disponíveis no CaptureResult, incluindo quando o 3A está habilitado: controle de exposição; android.sensor.exposureTime; Controle de confidencialidade; android.sensor.sensitivity; Controles de lente (se a lente for ajustável); android.lens.focusDistance; android.lens.aperture

Essa funcionalidade é um subconjunto da funcionalidade de controle MANUAL_SENSOR e sempre será incluída se a funcionalidade MANUAL_SENSOR estiver disponível.

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

BurstCapture 6

O dispositivo de câmera dá suporte à captura de imagens de alta resolução em >= 20 quadros por segundo, no formato YUV não compactado, quando as configurações de pós-processamento são definidas como FAST. Além disso, todas as resoluções de imagem com menos de 24 megapixels podem ser capturadas em >= 10 quadros por segundo. Aqui, "alta resolução" significa pelo menos 8 megapixels ou a resolução máxima do dispositivo, o que for menor.

Mais especificamente, isso significa que um tamanho que corresponde ao tamanho da matriz ativa do dispositivo de câmera é listado como um tamanho com suporte para o formato ImageFormat.YUV_420_888 em StreamConfigurationMap.getOutputSizes(int) ou StreamConfigurationMap.getHighResolutionOutputSizes(int), com uma duração mínima de quadro para esse formato e tamanho de <= 1/20 s ou <= 1/10 s se o tamanho da imagem for menor que 24 megapixels, respectivamente; e a entrada android.control.aeAvailableTargetFpsRanges lista pelo menos um intervalo FPS em que o FPS mínimo é >= 1/minimumFrameDuration para o formato de YUV_420_888 de tamanho máximo. Se esse tamanho máximo estiver listado em StreamConfigurationMap.getHighResolutionOutputSizes(int), a lista de resoluções para YUV_420_888 de StreamConfigurationMap.getOutputSizes(int) conterá pelo menos uma resolução >= 8 megapixels, com uma duração mínima de quadro de <= 1/20 s.

Se o dispositivo der suporte a ImageFormat.RAW10, ImageFormat.RAW12, ImageFormat.RAW14, ImageFormat.Y8, eles também poderão ser capturados na mesma taxa que a resolução de YUV_420_888 de tamanho máximo.

Se o dispositivo der suporte à funcionalidade PRIVATE_REPROCESSING, as mesmas garantias do formato YUV_420_888 também se aplicam ao formato ImageFormat.PRIVATE.

Além disso, o campo android.sync.maxLatency tem a garantia de ter um valor entre 0 e 4, inclusive. android.control.aeLockAvailable e android.control.awbLockAvailable também são garantidos como verdadeiros, portanto, a captura de intermitência com esses dois bloqueios ON produz uma saída de imagem consistente.

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

YuvReprocessing 7

O dispositivo de câmera dá suporte ao YUV_420_888 caso de uso de reprocessamento, semelhante ao PRIVATE_REPROCESSING, essa funcionalidade requer que o dispositivo de câmera dê suporte ao seguinte: há suporte para um fluxo de entrada, ou seja, android.request.maxNumInputStreams == 1; ImageFormat.YUV_420_888 tem suporte como um formato de saída/entrada, ou seja, YUV_420_888 está incluído nas listas de formatos retornados por StreamConfigurationMap.getInputFormats() e StreamConfigurationMap.getOutputFormats(); StreamConfigurationMap.getValidOutputFormatsForInput(int) retorna int[] não vazio para cada formato de entrada com suporte retornado por StreamConfigurationMap.getInputFormats(); Cada tamanho retornado por getInputSizes(YUV_420_888) também é incluído em getOutputSizes(YUV_420_888); Usar ImageFormat.YUV_420_888 não causa uma queda na taxa de quadros em relação à taxa máxima de captura do sensor (nessa resolução); ImageFormat.YUV_420_888 serão reprocessáveis em formatos ImageFormat.YUV_420_888 e ImageFormat.JPEG; A resolução máxima disponível para fluxos de ImageFormat.YUV_420_888 (entrada/saída) corresponderá à resolução máxima disponível de fluxos ImageFormat.JPEG; Para uma câmera MONOCHROME com suporte ao formato Y8, todos os requisitos mencionados acima para YUV_420_888 também se aplicam ao formato Y8; Metadados estáticos android.reprocess.maxCaptureStall; Somente os controles abaixo são eficazes para reprocessar solicitações e estarão presentes nos resultados da captura. As solicitações de reprocessamento são dos resultados de captura originais associados aos buffers de saída de ImageFormat.YUV_420_888 intermediários. Todos os outros controles nas solicitações de reprocessamento serão ignorados pelo dispositivo de câmera; android.jpeg.*; android.noiseReduction.mode; android.edge.mode; android.reprocess.effectiveExposureFactor; android.noiseReduction.availableNoiseReductionModes e android.edge.availableEdgeModes listarão ZERO_SHUTTER_LAG como um modo com suporte

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

DepthOutput 8

O dispositivo de câmera pode produzir medidas de profundidade de seu campo de exibição.

Essa funcionalidade requer que o dispositivo de câmera dê suporte ao seguinte: ImageFormat.DEPTH16 tem suporte como um formato de saída; ImageFormat.DEPTH_POINT_CLOUD tem suporte opcional como um formato de saída; Este dispositivo de câmera e todos os dispositivos de câmera com o mesmo android.lens.facing listarão as seguintes entradas de metadados de calibragem em CameraCharacteristics e CaptureResult:; android.lens.poseTranslation; android.lens.poseRotation; android.lens.intrinsicCalibration; android.lens.distortion; A entrada android.depth.depthIsExclusive é listada por este dispositivo; A partir do Android P, a entrada android.lens.poseReference é listada por este dispositivo; Uma câmera LIMITADA com apenas o recurso DEPTH_OUTPUT não precisa dar suporte a saídas normais de formato YUV_420_888, Y8, JPEG e PRIV. Ele só precisa dar suporte ao formato DEPTH16

Geralmente, a saída de profundidade opera a uma taxa de quadros mais lenta do que a captura de cores padrão, portanto, os formatos DEPTH16 e DEPTH_POINT_CLOUD geralmente terão uma duração de parada que deve ser contabilizado (consulte StreamConfigurationMap.getOutputStallDuration(int, Size)). Em um dispositivo que dá suporte à profundidade e à saída baseada em cores, para habilitar a visualização suave, é recomendável usar uma intermitência repetida, em que um destino de saída de profundidade só é incluído uma vez a cada N quadros, em que N é a razão entre a taxa de saída de visualização e a taxa de saída de profundidade, incluindo o tempo de parada de profundidade.

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

ConstrainedHighSpeedVideo 9

O dispositivo dá suporte à gravação restrita de vídeo de alta velocidade (taxa >de quadros =120fps) caso de uso. O dispositivo de câmera dará suporte à sessão de captura de alta velocidade criada por CameraDevice.createConstrainedHighSpeedCaptureSession(List, StateCallback, Handler), que aceita apenas listas de solicitações de alta velocidade criadas por CameraConstrainedHighSpeedCaptureSession.createHighSpeedRequestList(CaptureRequest).

Um dispositivo de câmera ainda pode dar suporte ao streaming de vídeo de alta velocidade anunciando os intervalos fps de alta velocidade em android.control.aeAvailableTargetFpsRanges. Para esse caso, todos os requisitos normais de solicitação de captura por controle de quadro e sincronização serão aplicados aos intervalos de fps de alta velocidade, o mesmo que todos os outros intervalos de fps. Essa funcionalidade descreve a capacidade de um modo operacional especializado com muitas limitações (veja abaixo), que só é direcionada à gravação de vídeo de alta velocidade.

Os intervalos de fps e tamanhos de vídeo de alta velocidade com suporte são especificados em StreamConfigurationMap.getHighSpeedVideoFpsRanges(). Para obter as taxas de quadro de saída desejadas, o aplicativo só tem permissão para selecionar combinações de tamanho de vídeo e intervalo FPS fornecidas por StreamConfigurationMap.getHighSpeedVideoSizes(). O intervalo de fps pode ser controlado por meio de android.control.aeTargetFpsRange.

Nesse recurso, o dispositivo de câmera substituirá aeMode, awbMode e afMode para ON, AUTO e CONTINUOUS_VIDEO, respectivamente. Todos os controles do modo de bloco pós-processamento serão substituídos para serem FAST. Portanto, nenhum controle manual de parâmetros de captura e pós-processamento é possível. Todos os outros controles operam da mesma forma que quando android.control.mode == AUTO. Isso significa que todos os outros campos android.control.* continuam funcionando, como; android.control.aeTargetFpsRange; android.control.aeExposureCompensation; android.control.aeLock; android.control.awbLock; android.control.effectMode; android.control.aeRegions; android.control.afRegions; android.control.awbRegions; android.control.afTrigger; android.control.aePrecaptureTrigger; android.control.zoomRatio

Fora do android.control.*, os seguintes controles funcionarão: android.flash.mode (somente modo TORCH, flash automático para captura ainda não funcionará, pois aeMode está ATIVADO); android.lens.opticalStabilizationMode (se houver suporte); android.scaler.cropRegion; android.statistics.faceDetectMode (se houver suporte)

Para casos de uso de gravação de alta velocidade, a taxa real máxima de quadros com suporte pode ser menor do que a que a câmera pode gerar, dependendo dos Surfaces de destino para os dados da imagem. Por exemplo, se a superfície de destino for do codificador de vídeo, o aplicativo precisará verificar se o codificador de vídeo é capaz de dar suporte à alta taxa de quadros para um determinado tamanho de vídeo ou acabará com uma taxa de quadros de gravação mais baixa. Se a superfície de destino for da janela de visualização, a taxa real de quadros de visualização será limitada pela taxa de atualização da tela.

O dispositivo de câmera só dará suporte a até 2 superfícies de saída simultâneas de alta velocidade (visualização e superfícies de gravação) nesse modo. Os controles acima só serão eficazes se todas as condições abaixo forem verdadeiras: o aplicativo cria uma sessão de captura de câmera com no máximo 2 superfícies por meio de CameraDevice.createConstrainedHighSpeedCaptureSession(List, StateCallback, Handler). As superfícies direcionadas devem ser a superfície de visualização (de SurfaceView ou SurfaceTexture) ou superfície de gravação(de MediaRecorder.getSurface() ou MediaCodec.createInputSurface(); Os tamanhos de fluxo são selecionados entre os tamanhos relatados por StreamConfigurationMap.getHighSpeedVideoSizes(); Os intervalos FPS são selecionados em StreamConfigurationMap.getHighSpeedVideoFpsRanges()

Quando as condições acima não estiverem satisfeitas, CameraDevice.createConstrainedHighSpeedCaptureSession(List, StateCallback, Handler) falhará.

Alternar para um intervalo FPS com FPS máximo diferente pode disparar algumas reconfigurações de dispositivo de câmera, o que pode introduzir latência extra. É recomendável que o aplicativo evite alterações de FPS de destino máximas desnecessárias o máximo possível durante o streaming de alta velocidade.

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

MotionTracking 10

O dispositivo de câmera dá suporte ao valor MOTION_TRACKING para android.control.captureIntent, que limita o tempo máximo de exposição a 20 ms.

Isso limita o desfoque de movimento das imagens de captura, resultando em melhores resultados de acompanhamento de imagem para casos de uso, como estabilização de imagem ou realidade aumentada.

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_MOTION_TRACKING.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

LogicalMultiCamera 11

O dispositivo de câmera é uma câmera lógica apoiada por duas ou mais câmeras físicas.

No nível de API 28, as câmeras físicas também devem ser expostas ao aplicativo por meio de CameraManager.getCameraIdList().

A partir do nível de API 29: algumas ou todas as câmeras físicas podem não ser expostas independentemente ao aplicativo; nesse caso, as IDs da câmera física não estarão disponíveis em CameraManager.getCameraIdList(). Mas o aplicativo ainda pode consultar as características das câmeras físicas chamando CameraManager.getCameraCharacteristics(String); Se uma câmera física estiver oculta da lista de IDs da câmera, as combinações de fluxo obrigatórias para essa câmera física deverão ter suporte por meio da câmera lógica usando fluxos físicos. Uma exceção é que, no nível 30 da API, uma câmera física pode ficar indisponível via CameraManager.AvailabilityCallback.onPhysicalCameraUnavailable callback

Combinações de fluxos lógicos e físicos ou fluxos físicos de diferentes câmeras físicas não são garantidas. No entanto, se o dispositivo de câmera der suporte a CameraDevice.isSessionConfigurationSupported, o aplicativo deverá ser capaz de consultar se há suporte para uma combinação de fluxos físicos chamando CameraDevice.isSessionConfigurationSupported.

O aplicativo de câmera não deve assumir que há no máximo 1 câmera traseira e 1 câmera frontal no sistema. Para um aplicativo que alterna entre câmeras frontais e traseiras, a recomendação é alternar entre a primeira câmera traseira e a primeira câmera frontal na lista de dispositivos de câmera com suporte.

Essa funcionalidade requer que o dispositivo de câmera dê suporte ao seguinte: as IDs de câmeras físicas subjacentes são retornadas por meio de CameraCharacteristics.getPhysicalCameraIds(); Este dispositivo de câmera deve listar metadados estáticos android.logicalMultiCamera.sensorSyncType em CameraCharacteristics; Os metadados estáticos das câmeras físicas subjacentes devem listar as seguintes entradas, para que o aplicativo possa correlacionar pixels dos fluxos físicos:; android.lens.poseReference; android.lens.poseRotation; android.lens.poseTranslation; android.lens.intrinsicCalibration; android.lens.distortion; O SENSOR_INFO_TIMESTAMP_SOURCE do dispositivo lógico e dos dispositivos físicos deve ser o mesmo; A câmera lógica deve ser LIMITED ou dispositivo superior

Os metadados dinâmicos de um dispositivo de câmera lógica podem conter android.logicalMultiCamera.activePhysicalId para notificar o aplicativo da ID da câmera física ativa atual. Uma câmera física ativa é a câmera física da qual os dados de imagem principais da câmera lógica são gerados (YUV ou RAW) e os metadados são provenientes. Além disso, isso serve como uma indicação de qual câmera física é usada para gerar para um fluxo RAW ou, caso apenas as câmeras físicas ofereçam suporte a RAW, qual fluxo RAW físico o aplicativo deve solicitar.

As marcas de metadados estáticos da câmera lógica abaixo descrevem a câmera física ativa padrão. Uma câmera física ativa será padrão se for usada quando o aplicativo usar diretamente as solicitações criadas a partir de um modelo. Todos os modelos serão padrão para a mesma câmera física ativa.; android.sensor.info.sensitivityRange; android.sensor.info.colorFilterArrangement; android.sensor.info.exposureTimeRange; android.sensor.info.maxFrameDuration; android.sensor.info.physicalSize; android.sensor.info.whiteLevel; android.sensor.info.lensShadingApplied; android.sensor.referenceIlluminant1; android.sensor.referenceIlluminant2; android.sensor.calibrationTransform1; android.sensor.calibrationTransform2; android.sensor.colorTransform1; android.sensor.colorTransform2; android.sensor.forwardMatrix1; android.sensor.forwardMatrix2; android.sensor.blackLevelPattern; android.sensor.maxAnalogSensitivity; android.sensor.opticalBlackRegions; android.sensor.availableTestPatternModes; android.lens.info.hyperfocalDistance; android.lens.info.minimumFocusDistance; android.lens.info.focusDistanceCalibration; android.lens.poseRotation; android.lens.poseTranslation; android.lens.intrinsicCalibration; android.lens.poseReference; android.lens.distortion

O campo de exibição de fluxos físicos não RAW não deve ser menor que o dos fluxos lógicos não RAW ou o campo de exibição máximo da câmera física, o que for menor. O aplicativo deve verificar os metadados de resultado da captura física e as características da câmera física para saber como os fluxos físicos são cortados ou ampliados. Consulte android.lens.focalLength sobre como o campo de exibição é calculado.

Normalmente, o fluxo físico da câmera física ativa tem o mesmo campo de exibição que os fluxos lógicos. No entanto, o mesmo pode não ser verdadeiro para fluxos físicos de câmeras físicas não ativas. Por exemplo, se a câmera lógica tiver uma configuração ampla e ultrawide em que a lente larga é o padrão, quando a região de corte é definida como o tamanho da matriz ativa da câmera lógica (e a taxa de zoom definida como 1,0 a partir do Android 11), um fluxo físico para a câmera ultrawide pode preferir gerar imagens com campo de exibição maior do que o da câmera larga para melhor margem de correspondência estéreo ou acompanhamento de movimento mais robusto. Ao mesmo tempo, o campo de exibição físico não RAW não deve ser menor do que a região de corte solicitada e a taxa de zoom, desde que esteja dentro da capacidade da lente física. Por exemplo, para uma câmera lógica com configuração de lente de tele larga em que a lente larga é o padrão, se a região de corte da câmera lógica estiver definida como tamanho máximo e a taxa de zoom definida como 1,0, o fluxo físico para a lente tele será configurado para sua região de corte de tamanho máximo (sem zoom).

Preterido: antes do Android 11, o campo de exibição de todos os fluxos físicos não RAW não pode ser maior do que o de fluxos lógicos não RAW. Se a câmera lógica tiver uma configuração de lente wide-ultrawide em que a lente larga é o padrão, quando a região de corte da câmera lógica é definida como tamanho máximo, o FOV dos fluxos físicos para a lente ultrawide será o mesmo que o fluxo lógico, tornando a região de corte menor do que seu tamanho de matriz ativa para compensar o tamanho focal menor.

Para uma câmera lógica, normalmente as câmeras físicas subjacentes têm diferentes funcionalidades RAW (como resolução ou padrão CFA). Há duas maneiras de o aplicativo capturar imagens RAW da câmera lógica: se a câmera lógica tiver funcionalidade RAW, o aplicativo poderá criar e usar fluxos RAW da mesma maneira que antes. Caso um fluxo RAW esteja configurado, para manter a compatibilidade com versões anteriores, o dispositivo de câmera garante que a câmera física ativa padrão permaneça ativa e não mude para outras câmeras físicas. (Uma exceção é que, se a câmera lógica consistir em sensores de imagem idênticos e anunciar vários focalLength devido a lentes diferentes, o dispositivo de câmera poderá gerar imagens RAW de diferentes câmeras físicas com base no focalLength que está sendo definido pelo aplicativo.) Essa abordagem compatível com versões anteriores geralmente resulta em perda de zoom óptico, para lente telefoto ou para lente ultrawide; Como alternativa, se houver suporte para o dispositivo, o MultiResolutionImageReader poderá ser usado para capturar imagens RAW de uma das câmeras físicas subjacentes (dependendo do nível de zoom atual). Como diferentes câmeras físicas podem ter características RAW diferentes, o aplicativo precisa usar as características e os metadados de resultado da câmera física ativa para os metadados RAW relevantes

As marcas de metadados de solicitação de captura e de resultado necessárias para funcionalidades de câmera compatíveis com versões anteriores serão baseadas apenas na funcionalidade da câmera lógica. Por outro lado, o uso de controles manuais de captura (sensor ou pós-processamento) com uma câmera lógica pode resultar em um comportamento inesperado quando o HAL decide alternar entre câmeras físicas com características diferentes sob o capô. Por exemplo, quando o aplicativo define manualmente o tempo de exposição e a sensibilidade durante o zoom, o brilho das imagens da câmera pode mudar repentinamente porque HAL alterna de uma câmera física para a outra.

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Monochrome 12

O dispositivo de câmera é uma câmera monocromática que não contém uma matriz de filtro de cores e, para YUV_420_888 fluxo, os valores de pixel em planos V e você são todos 128.

Uma câmera MONOCHROME deve dar suporte às combinações de fluxo garantidas necessárias para seu nível de dispositivo e recursos. Além disso, se o dispositivo de câmera monocromática der suporte ao formato Y8, todos os requisitos de combinação de fluxo obrigatório relacionados a YUV_420_888 também se aplicam ao Y8. Não há requisitos de combinação de fluxo obrigatório em relação ao Y8 para dispositivos de câmera bayer.

A partir do Android Q, o SENSOR_INFO_COLOR_FILTER_ARRANGEMENT de uma câmera MONOCHROME será MONO ou NIR.

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_MONOCHROME.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

SecureImageData 13

O dispositivo de câmera é capaz de gravar dados de imagem em uma região de memória inacessível para o userspace android ou o kernel android, e acessível apenas para ambientes de execução confiáveis (TEE).

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_SECURE_IMAGE_DATA.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

SystemCamera 14

O dispositivo de câmera só é acessível pelos componentes do sistema do Android e aplicativos privilegiados. Os processos precisam ter o android.permission.SYSTEM_CAMERA além do android.permission.CAMERA para se conectar a esse dispositivo de câmera.

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

OfflineProcessing 15

O dispositivo de câmera dá suporte ao caso de uso OFFLINE_PROCESSING.

Com OFFLINE_PROCESSING funcionalidade, o aplicativo pode alternar uma sessão de captura contínua para o modo offline chamando o método CameraCaptureSession#switchToOffline e especificar fluxos a serem mantidos no modo offline. Em seguida, a câmera interromperá as solicitações recorrentes ativas no momento, preparará algumas solicitações para entrar no modo offline e retornará um objeto de sessão offline. Depois que a chamada switchToOffline retornar, a sessão de captura original estará em estado fechado como se o método CameraCaptureSession#close tivesse sido chamado. No modo offline, todas as solicitações de bordo continuarão a ser processadas em segundo plano e o aplicativo poderá fechar imediatamente a câmera ou criar uma nova sessão de captura sem perder as imagens de saída dessas solicitações e capturar resultados.

Embora o dispositivo de câmera esteja processando solicitações offline, ele pode não ser capaz de dar suporte a todas as configurações de fluxo que ele pode dar suporte sem solicitações offline. Quando isso acontecer, a chamada do método createCaptureSession falhará. As seguintes configurações de fluxo são garantidas para funcionar sem atingir a exceção de recurso ocupado: uma sessão offline em andamento: uma superfície de saída de destino do formato YUV ou JPEG, qualquer resolução; A sessão de captura de câmera ativa:; Uma superfície de visualização (SurfaceView ou SurfaceTexture) de até 1920 de largura; Uma superfície YUV ImageReader de até 1920; Um Jpeg ImageReader, qualquer resolução: o dispositivo de câmera tem permissão para reduzir a velocidade de saída jpeg em 50% se houver qualquer sessão offline em andamento; Se o dispositivo der suporte a PRIVATE_REPROCESSING, um par de superfícies ImageWriter/ImageReader de formato privado, com a mesma resolução maior ou igual à resolução JPEG ImageReader acima; Como alternativa, a sessão de câmera ativa acima pode ser substituída por uma Câmera herdada pelas seguintes configurações de parâmetro:; Tamanho da versão prévia até 1920 de largura; Tamanho do retorno de chamada de versão prévia de até 1920; Tamanho do vídeo até 1920 largura; Tamanho da imagem, qualquer resolução: o dispositivo de câmera tem permissão para reduzir a velocidade de saída jpeg em 50% se houver qualquer sessão offline em andamento

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_OFFLINE_PROCESSING.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

UltraHighResolutionSensor 16

Este dispositivo de câmera é capaz de produzir imagens de alta resolução ultra, além dos tamanhos de imagem descritos no android.scaler.streamConfigurationMap. Ele pode operar no modo "padrão" e no modo de "resolução máxima". Geralmente, ele faz isso armazenando pixels no modo "padrão" e não armazenando-os no modo de "resolução máxima". android.scaler.streamConfigurationMap descreve os fluxos com suporte no modo 'padrão'. As configurações de fluxo com suporte no modo de "resolução máxima" são descritas por android.scaler.streamConfigurationMapMaximumResolution. O tamanho máximo da matriz de pixels do modo de resolução de um dispositivo de câmera (android.sensor.info.pixelArraySize) com essa funcionalidade será de pelo menos 24 megapixels.

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

RemosaicReprocessing 17

O dispositivo dá suporte ao reprocessamento do formato RAW_SENSOR com um padrão bayer fornecido por android.sensor.info.binningFactor (m x n grupo de pixels com o mesmo filtro de cor) para um padrão bayer regular remosaico.

Essa funcionalidade só estará presente para dispositivos com REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR funcionalidade. Quando REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR dispositivos não anunciam essa funcionalidade, as imagens ImageFormat.RAW_SENSOR já terão um padrão bayer regular.

Se um fluxo de RAW_SENSOR for solicitado junto com outro fluxo não RAW em um CaptureRequest (se houver suporte para vários fluxos quando android.sensor.pixelMode estiver definido como SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION), o fluxo de RAW_SENSOR terá um padrão bayer regular.

Essa funcionalidade requer que o dispositivo de câmera dê suporte ao seguinte: o StreamConfigurationMap mencionado abaixo refere-se ao que foi descrito por android.scaler.streamConfigurationMapMaximumResolution; Há suporte para um fluxo de entrada, ou seja, android.request.maxNumInputStreams == 1; ImageFormat.RAW_SENSOR tem suporte como um formato de saída/entrada, ou seja, ImageFormat.RAW_SENSOR está incluído nas listas de formatos retornados por StreamConfigurationMap.getInputFormats() e StreamConfigurationMap.getOutputFormats(); StreamConfigurationMap.getValidOutputFormatsForInput(int) retorna int[] não vazio para cada formato de entrada com suporte retornado por StreamConfigurationMap.getInputFormats(); Cada tamanho retornado por getInputSizes(ImageFormat.RAW_SENSOR) também é incluído em getOutputSizes(ImageFormat.RAW_SENSOR); Usar ImageFormat.RAW_SENSOR não causa uma queda na taxa de quadros em relação à taxa máxima de captura do sensor (nessa resolução); Nenhum controle CaptureRequest será aplicável quando uma solicitação tiver um destino de entrada com o formato ImageFormat.RAW_SENSOR

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_REMOSAIC_REPROCESSING.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

DynamicRangeTenBit 18

O dispositivo dá suporte a uma ou mais saídas de câmera de 10 bits de acordo com os perfis de intervalo dinâmico especificados em DynamicRangeProfiles.getSupportedProfiles(). Eles podem ser configurados como parte da inicialização da sessão de captura por meio de OutputConfiguration.setDynamicRangeProfile(long). As câmeras que habilitam essa funcionalidade também devem dar suporte ao seguinte: Profile DynamicRangeProfiles.HLG10; Todas as combinações de fluxo obrigatórias para essa funcionalidade específica de acordo com a documentação; Caso o dispositivo não consiga capturar alguma combinação de perfis de intervalo dinâmico padrão de 8 bits e/ou 10 bits com suporte na mesma solicitação de captura, essas restrições devem ser listadas em DynamicRangeProfiles.getProfileCaptureRequestConstraints(long); Perfil de intervalo dinâmico recomendado listado em CameraCharacteristics.REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

StreamUseCase 19

O dispositivo de câmera dá suporte à seleção de um caso de uso por fluxo por outputConfiguration.setStreamUseCase(long) para que o dispositivo possa otimizar parâmetros de pipeline de câmera, como ajuste, modo de sensor ou configurações de ISP para um cenário de usuário específico. Alguns exemplos de uso dessa funcionalidade são: distinguir capturas YUV de alta qualidade de um fluxo YUV regular em que a qualidade da imagem pode não ser tão boa quanto o fluxo JPEG ou; Use um fluxo para atender a várias finalidades: visor, gravação de vídeo e captura ainda. Isso é comum com aplicativos que desejam aplicar edições igualmente à visualização, imagens salvas e vídeos salvos

Essa funcionalidade requer que o dispositivo de câmera dê suporte aos seguintes casos de uso de fluxo: PADRÃO para compatibilidade com versões anteriores em que o aplicativo não define um caso de uso de fluxo; VERSÃO PRÉVIA para o visor ao vivo e a análise de imagem no aplicativo; STILL_CAPTURE para captura de fotos ainda; VIDEO_RECORD para gravar clipes de vídeo; PREVIEW_VIDEO_STILL para um único fluxo usado para visor, gravação de vídeo e captura ainda; VIDEO_CALL para chamadas de vídeo de longa execução

CameraCharacteristics.SCALER_AVAILABLE_STREAM_USE_CASES lista todos os casos de uso de fluxo com suporte.

Consulte a diretriz para as combinações de fluxo obrigatórias que envolvem casos de uso de fluxo, que também podem ser consultadas por meio de MandatoryStreamCombination.

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

ColorSpaceProfiles 20

O dispositivo dá suporte à consulta das possíveis combinações de espaços de cores, formatos de imagem e perfis de intervalo dinâmicos compatíveis com a câmera e solicitando um espaço de cor específico para uma sessão por meio de SessionConfiguration.setColorSpace(Named).

As câmeras que habilitam essa funcionalidade podem ou não implementar perfis de intervalo dinâmico. Se não o fizerem, ColorSpaceProfiles.getSupportedDynamicRangeProfiles(Named, int) retornará apenas DynamicRangeProfiles.STANDARD e ColorSpaceProfiles.getSupportedColorSpacesForDynamicRange(int, long) assumirá o suporte do perfil DynamicRangeProfiles.STANDARD em todas as combinações de espaços de cores e formatos de imagem.

Referência do Android para android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_COLOR_SPACE_PROFILES.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Comentários

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a