Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Фреймворк GStreamer. Руководство разработчика плагинов. Разработка демультиплексора или элемента для разбора мультимедийного потока

Оригинал: GStreamer Plugin Writer's Guide
Авторы: Richard John Boulton, Erik Walthinsen, Steve Baker, Leif Johnson, Ronald S. Bultje, Stefan Kost, Tim-Philipp Muller, Wim Taymans
Дата публикации: 19 июля 2014 г.
Перевод: А.Панин
Дата перевода: 30 июля 2014 г.

Глава 24. Разработка демультиплексора или элемента для разбора мультимедийного потока

Демультиплексоры являются использующими модель 1-к-N элементами, при разработке которых необходимо применение специальных механизмов. Они ответственны за расстановку меток времени при разделении необработанного и неразобранного потока данных на элементарные видео- или аудиопотоки, при этом существует множество вариантов оптимизаций или ошибок, которые могут быть выявлены при их реализации. В данной главе будут описаны некоторые проблемные решения и приведены общие рекомендации по разработке описываемых элементов. Элементы для разбора мультимедийного потока являются демультиплексорами, имеющими только одну выходную точку соединения. Также они исключительно разделяют поток данных на буферы данных и не обрабатывают сами данные каким-либо образом.

Как упоминалось ранее в главе под названием "Согласование возможностей", демультиплексоры должны использовать фиксированные возможности, так как типы обрабатываемых ими данных не должны изменяться.

Как было сказано в главе под названием "Различные режимы планирования работы точек соединения элементов", элементы демультиплексоров могут создаваться для работы в различных режимах:
  • Они могут управлять работой конвейера, используя для этого собственный объект задачи. Это решение является особенно удачным при реализации элементов, которым необходим произвольный доступ к данным, например, демультиплексора потока формата AVI.
  • Также они могут работать в режиме передачи, который подразумевает, что расположенный в начале конвейера элемент будет управлять работой конвейера. Это решение является особенно удачным при обработке потоков данных, которые передаются по сети, таких, как потоки формата Ogg.

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


Следующий раздел : Разработка работающего по схеме N-к-1 элемента или мультиплексора.