Как получить значения выравнивания шага и плоскости Y для кодера MediaCodec

Там'Несколько вопросов и дискуссий на эту тему:

Медиакодек и камера, цветовое пространство неверноПолучение кодеров QualComm для работы через API MediaCodechttps://groups.google.com/d/msg/android-platform/awaNwgb6EbY/a-YiIOwaL0QJhttps://code.google.com/p/android/issues/detail?id=37769

Я кормлю кадры предварительного просмотра камеры (NV21 конвертировано вNV12) чтобыMediaCodec кодировщик (NV12 акаCOLOR_FormatYUV420SemiPlanar). Похоже, что на некоторых устройствах сQualComm кодировщик, на котором установлены версии Android менее4.3 Я должен сделать некоторые входные кадры обработки, чтобы получить задний кадр с правильным цветом.

НаSony Xperia ZR БегAndroid 4.2.2 Я должен добавитьY выравнивание по плоскости, чтобы оно работало практически на всех разрешениях. Код выше добавляет1024 выравнивание байтов для ширины, которая не может быть разделена на32 а также2048 выравнивание байтов для других разрешений. Это делаетMediaCodec правильно кодировать кадры для всех разрешений, которые можно разделить на16 (Кроме176x144 для которогоUV самолет выглядит смещенным)

int getYPadding() {
    if (mediaCodecInfo.getName().contains("OMX.qcom") && android.os.Build.VERSION.SDK_INT < 18) {
        if ((getWidth() % 32) != 0) {
            return (getWidth()*getHeight()) % 1024;
        } else {
            return (getWidth()*getHeight()) % 2048;
        }
    }
    return 0;
}

мы пытались проверить это выравнивание наLG G2 который работает так жеAndroid 4.2.2 и имеетQualComm кодировщик, и похоже, что он не работает на нем правильно.UV плоскость смещена (зеленая полоса внизу рамки). Я не смог рассчитать отступ, который будет работать для обоих телефонов.

У меня также есть доступ кSony Xperia Z1 БегAndroid 4.3 сQualComm чипсет и похоже у него таких проблем нет. Видео на каждом разрешении выглядит нормально иY Самолет не должен быть выровнен так или иначе.

Я понимаю, что этос аппаратным обеспечением и может быть сложным, но так как я должен поддерживать пользователей под управлением Android до4.3 У меня вопрос. Можно ли программно определитьY значения выравнивания плоскости и вертикального / горизонтального шага, какой кодер ожидает для данного цветового формата?

Ответы на вопрос(1)

Ваш ответ на вопрос