2014-02-20 2 views
2

У меня есть новая задача интеграции декодера (HEVC) с FFMPEG в Android-версию Stagefright. Для этого сначала нужно создать компонент OMX. Следующим шагом будет регистрация моего кодека в media_codecs.xml, а затем регистрация компонента OMX в OMXCore.Android: создание компонента OMX для видеодекодера

Есть ли руководство или шаги для создания компонента для видеодекодера? Во-вторых, этот декодер воспроизводит только элементарные потоки (.bin или .h265 файлов), поэтому здесь нет формата контейнера.

Может ли кто-нибудь предоставить некоторые шаги или рекомендации, которые необходимо соблюдать при создании компонента для видеокодека. Любые указатели будут действительно полезны для меня.

Заранее спасибо.

ответ

2

В общем, вы можете использовать steps pointed in this question для интеграции декодера в OMX Core.

HEVC еще не является частью спецификации OMXIL. Следовательно, вам нужно будет ввести новый role, например, video_decoder.hevc для вашего компонента при регистрации в media_codecs.xml. Пожалуйста, убедитесь, что ваше ядро ​​OMX поддерживает этот новый role.

Если вы пытаетесь воспроизвести только элементарные потоки, вы можете рассмотреть возможность изменения stagefright command line utility для чтения данных элементарного потока и подачи декодера.

Другой вариант - изменить текущий recordVideo utility, чтобы прочитать данные кадра и создать decoder вместо encoder. При этом, я полагаю, вы должны иметь возможность воспроизводить ваш декодер из командной строки.

EDIT: Если вы хотите, чтобы построить новый OMX компонент, я рекомендовал бы, чтобы вы могли обратиться к Bellagio Component Writers Guide который должен дать хорошую информацию о том, как построить компонент OMX. Это дает довольно полное руководство по созданию нового компонента. Убедитесь, что вы можете определить зависимости с реализацией Bellagio и вашей основной реализацией.

Кроме того, вы можете посмотреть на других общедоступных области OMX реализаций, как здесь: http://androidxref.com/4.4.2_r1/xref/hardware/ti/omap4xxx/domx/ http://androidxref.com/4.4.2_r1/xref/hardware/qcom/media/mm-video-v4l2/vidc/

Я чувствую Bellagio может работать в качестве хорошей отправной ссылки, если вы не построить OMX компонентом ранее. Источники для Bellagio доступны по номеру Sourceforge.

+0

благодарит за ответ. У меня есть два запроса: «Один из шагов, приведенных в ссылке выше, для регистрации компонента omx или разработки компонента omx? Во-вторых, я думаю, что могу использовать утилиту командной строки stagefright, но интеграция таким образом будет воспроизводить видео из галереи? – Zax

+1

@ Zax .. Описанные шаги предназначены для регистрации и интеграции компонента «OMX». Я предполагаю, что у вас уже есть компонент «OMX», и, следовательно, я не отвечаю на то же самое. Если вы хотите воспроизвести свое видео прямо из галереи, тогда потребуется много изменений, так как ваш ввод будет всего лишь элементарным потоком. Вам нужно будет создать «MediaExtractor» специально для этого файла, который должен быть интегрирован и зарегистрирован. Есть много чего сделать, если вы хотите сделать файл воспроизводимым из галереи. – Ganesh

+0

Спасибо за объяснение. Извлечение средств массовой информации, я думаю, я могу использовать hevc_parser в ffmpeg. Нет, у меня нет компонента OMX. На самом деле речь идет только о «создании компонента OMX для видеодекодера». Особенно тот, который еще не поддерживается. Пожалуйста, предоставьте несколько указаний относительно этого. – Zax