2014-05-09 3 views
0

Я просматриваю пример использования потокового воспроизведения в AndroidStagefright и не совсем понятен об архитектуре и реализациях.Stagefright - потоковая архитектура воспроизведения

Я прошу читателей/экспертов объяснить основные компоненты, которые отвечают за использование прецедента. Я слышал, что ACodec используется вместо OMXCodec для воспроизведения потокового воспроизведения.

Каковы дополнительные варианты/функции, поддерживаемые ACodec и почему Stagefright не использовали повторно OMXCodec.

Не могли бы вы указать мне важные ссылки в коде Stagefright.

+0

В отношении вопросов, связанных с реализацией кеша и паузой-возобновлением, я бы порекомендовал вам опубликовать другой вопрос, поскольку контекст будет специфичным для потоковых сценариев. – Ganesh

+0

Вопрос изменен в соответствии с вашим предложением. – Satish

ответ

1

Для потоковой передачи существуют различные сценарии, которые по-разному обрабатываются каркасом Stagefright. В целом, есть 2 игрока и соответствующие заводы, а именно: StagefrightPlayer и NuPlayer.

StagefrightPlayer используются в качестве проигрывателя по умолчанию, где в качестве NuPlayer используетса для rtsp, m3u8 (MP3 playlist), sdp воспроизведения, реализованные в NuPlayerFactory.

NuPlayer также может использоваться, когда system property is set использовать то же, что и игрок по умолчанию.

StagefrightPlayer внутренне создает AwesomePlayer which handles http/https and Widevine поток также.

Теперь приближается к ACodec и OMXCodec довольно близко друг к другу, когда они абстрагируют компонент OMX. ACodec - это базовая реализация MediaCodec, которая является модульным интерфейсом, выставленным Android в последних выпусках.

Одна точка разницы, хотя в том, что некоторые новые функции, такие как prepending SPS/PPS to IDR in case of Miracast, Adaptive Playback и т.д. включены только в ACodec и не в OMXCodec.

+0

Привет, Ganesh, NuPlayerFactory создает NuPlayerDriver, в свою очередь создает ALooper и NuPlayer. Не могли бы вы рассказать об ALooper и что он делает. Я вижу, что все реализации в Nuplayer вызывают вызовы AMessage, например: new AMessage (kWhatSourceNotify, id()); Я не уверен, как он вызывает NuPlayer :: onMessageReceived(). В случае воспроизведения памяти Awesome player создает OMXCodec и экстрактор. Не могли бы вы объяснить, как это происходит в случае потокового воспроизведения ? – Satish

+0

@SatishNagireddy .. Чтобы сохранить конкретные темы, я прошу вас прокомментировать ваш комментарий по нескольким различным вопросам, так как один вопрос на весь движок игрока может быть не такой хорошей идеей. – Ganesh

+0

Большое спасибо за предложение. Я сломаю свой вопрос и опубликую их как разные вопросы. – Satish

Смежные вопросы