MediaCodec дает ошибку трассировки storeMetaDataInBuffers

Я получаю logcat следующую ошибку при кодировании через MediaCodec в Android.

Фактическая кодировка работает нормально, и результат получается правильно, поэтому я не могу понять, почему я получаю эту трассировку. Является ли это безобидной ошибкой, или что-то мне не хватает?

E / ACodec (6438): [OMX.qcom.video.encoder.h263] storeMetaDataInBuffers (выход) не удалось w / err -1010

Следующий код, где я получаю трассировку

final int BIT_RATE = 4000000; final int FRAME_RATE = 30; final int IFRAME_INTERVAL = 5; final String MIME_TYPE = "video/avc"; final MediaFormat format = MediaFormat.createVideoFormat(MIME_TYPE, width, height); format.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface); format.setInteger(MediaFormat.KEY_BIT_RATE, BIT_RATE); format.setInteger(MediaFormat.KEY_FRAME_RATE, FRAME_RATE); format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, IFRAME_INTERVAL); MediaCodec encoder = MediaCodec.createEncoderByType(MIME_TYPE); //--------------------------------- // NEXT LINE PRODUCES THE TRACE encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE); //--------------------------------- 

Это безобидно, большинство устройств показывают это. См. Q12 по адресу http://bigflake.com/mediacodec/ .

Это говорит только о том, что первый способ кодирования сигнальной поверхности не поддерживался кодировщиком, поэтому он использовал некоторые другие способы его настройки. (Существует несколько способов для слоя MediaCodec / ACodec рассказать об этом отдельному кодеру.)

В предыдущем ответе было указано, что предупреждение совершенно безвредно. Некоторая дополнительная информация о log и причинах того же

Эта трассировка в журнале указывает на то, что encoder не поддерживает storeMetadataInBuffers на output порту. Для encoder этот режим может поддерживаться как на input и на output .

Этот режим используется для input порта для передачи данных необработанного изображения в формате metadata , т.е. передайте только ссылку на дескриптор gralloc который может использовать encoder для доступа к данным. Это используется camera и / или другими приложениями для screen recording для передачи ссылки на данные YUV на кодировщик.

Режим metadata был поддержан для output порта также для потенциальной инкапсуляции данных выходного bitstream . Например, когда сеанс Miracast или WiFi-Display активен, а кодируемые данные безопасны, как премиальный контент, становится необходимым защищать данные между encoder и модулем шифрования HDCP , в течение которого формат metadata становится удобным. Не так много encoder поддерживают этот режим, и, следовательно, вы наблюдаете это предупреждение.