CameraCharacteristics не возвращает все доступные разрешения - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь использовать максимальное разрешение при съемке с использованием нового camera2 API. Прежде всего я пытаюсь получить доступные разрешения, используя следующий код:

Знаки:

CameraCharacteristics characteristics = mManager.getCameraCharacteristics(mCameraId);
        StreamConfigurationMap streamMap =
                characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
        if (streamMap == null) {
            throw new RuntimeException("StreamConfigurationMap is null. Should not happen.");
        }
 streamMap.getOutputSizes(ImageFormat.*); // I replaced the star with all possible values 

Проблема заключается в том, что возвращается следующий список разрешений: [1280x960, 1088x1088, 640x480, 352x288, 176x144, 3264x1836, 3264x2448, 1280x720, 960x720, 720x480, 320x240, 1920x1080, 2400x1080, 1440x1080, 2576x1932, 3264x1468] (самое большое значение3264x2448)

Однако при использовании приложения для стандартной камеры (Samsung A70) разрешение изображения на удивление больше, а именно: 4032x3024.

Во время исследования я пытался загрузить множество приложений для камеры из магазиначтобы увидеть максимальное разрешение в этом случае, и все они вернули то же разрешение, что и мое, то есть: 3264x2448.

Мой вопрос: как приложение Stock Camera может получить большее разрешение, чем остальные?

1 Ответ

0 голосов
/ 08 ноября 2019

Вы также проверяли вывод StreamConfigurationMap # getHighResolutionOutputSizes () ?

Некоторые устройства отображают там свои наивысшие разрешения, потому что они не могут поддерживать скорость вывода> = 20 к / с, гарантированную возможностью BURST_CAPTURE, которая требуется для всех размеров в списке нормальных размеров, если вы хотите FULL-устройство уровня. Если в нормальных размерах указано не менее 8 Мп, устройство соответствует правилам BURST_CAPTURE, а более высокие разрешения могут быть указаны в getHighResolutionOutputSizes.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...