Журналы со спамом «I / [MALI] [Gralloc]: lock_ycbcr: videobuffer_status недопустим, используйте значение по умолчанию» с использованием Camera2 - PullRequest
0 голосов
/ 07 сентября 2018

Соответствующий код здесь:

private void setupCamera(int width, int height) {
    CameraManager cameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
    try {
        CameraCharacteristics cameraCharacteristics = null;
        for (String cameraId : cameraManager.getCameraIdList()) {
            mCameraId = cameraId;
            cameraCharacteristics = cameraManager.getCameraCharacteristics(mCameraId);

            if (cameraCharacteristics.get(CameraCharacteristics.LENS_FACING) ==
                    CameraCharacteristics.LENS_FACING_BACK) {
                break;
            }
        }
        StreamConfigurationMap map = cameraCharacteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);

        mImageSize = new Size(640, 480);
        mFrameDuration = map.getOutputMinFrameDuration(ImageFormat.YUV_420_888,mImageSize);
        mImageReader = ImageReader.newInstance(640,
                480,
                ImageFormat.YUV_420_888, 50);

        mSurface = mImageReader.getSurface();
        mImageReader.setOnImageAvailableListener(mOnImageAvailableListener, mImageReaderHandler);

Установка PreviewSize с использованием стандартных методов из кода примера Camera2 API от Google.

Это работает на планшете Asus Zenpad P028 (Nougat)

Журналы, которые отображаются снова и снова:

 - I/[MALI][Gralloc]: lock_ycbcr: videobuffer_status is invalid, use default value

 - D/Surface: Surface::setBuffersUserDimensions(this=0x70ee1c7c00,w=640,h=480)

Похоже, он сбрасывает размер буфера туда и обратно. Что предсказуемо замедляет частоту кадров до 60 мс на кадр.

Этого не происходит на моем телефоне Nexus 5P (Marshmallow).

Я пытался настроить mImageSize на разные размеры.

...