Кодер Mediacodec с поверхностью ввода на Snapdragon

Я видел в эту ветку время презентации должен быть установлен для некоторых энкодеров. Я использую поверхность ввода при кодировании с помощью медиакодека, но она не работает с устройствами Snapdragon. Мой вопрос: нужно ли нам также устанавливать эту временную метку презентации при использовании входной поверхности? Если да, то как просто установить метку времени на входную поверхность?

Большое спасибо за любую помощь.


person Sloosh    schedule 14.07.2014    source источник


Ответы (1)


Предполагая, что ваша поверхность ввода обрабатывается с помощью GLES, вы должны использовать eglPresentationTimeANDROID().

Примеры см. в разделе График (например, действие "Запись приложения GL").

person fadden    schedule 14.07.2014
comment
спасибо за Ваш ответ. Но у меня нет контекста GLES... можно ли добавить метку времени без OpenGL? - person Sloosh; 14.07.2014
comment
Как вы предоставляете кадры для Surface? Canvas на самом деле не поддерживается (code.google.com/p/android /issues/detail?id=61194). - person fadden; 15.07.2014
comment
Я получаю свои данные от bufferProducer. Данные производятся в другом месте другой программой. Итак, я понимаю, что теперь мне нужно создать контекст EGL, чтобы добавить время презентации на поверхность, я прав? Но я нахожусь в собственном коде, и у меня есть следующая ошибка (в то время как любая другая функция egl в порядке): ошибка: неопределенная ссылка на «eglPresentationTimeANDROID». Я связываю свою программу с libEGL и libGLESv2 с флагом EGL_EGLEXT_PROTOTYPES. Любая идея о том, что может отсутствовать? Спасибо - person Sloosh; 15.07.2014
comment
Если вы используете частные API, вы можете просто установить отметку времени непосредственно в BufferQueue. Если вы посмотрите на реализацию EGL (строка 1529 в android.googlesource.com/platform/frameworks/native/+/), вы можете видеть, что он вызывает native_window_set_buffers_timestamp(). - person fadden; 15.07.2014
comment
да это то, что я только что нашел! спасибо большое попробую так. - person Sloosh; 15.07.2014