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

UnixForum





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

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

Оригинал: GStreamer Application Development Manual
Авторы: Wim Taymans, Steve Baker, Andy Wingo, Ronald S. Bultje, Stefan Kost
Дата публикации: 21 мая 2014 г.
Перевод: А.Панин
Дата перевода: 23 июня 2014 г.

Часть V. Приложения

На данный момент вы узнали обо всех механизмах фреймворка GStreamer и методах разработки приложений на его основе. В данной части будут освещены некоторые не связанные друг с другом аспекты использования фреймворка, о которых полезно знать в том случае, если вы планируете использовать GStreamer в качестве основы для серьезных проектов. Будут затронуты вопросы, связанные с интеграцией приложений с популярными окружениями рабочих столов, в которых они будут использоваться (GNOME, KDE, OS X, Windows), даны краткие пояснения относительно использования поставляемых в комплекте с фреймворком GStreamer приложений, которые могут сделать вашу жизнь легче, а также приведена информация, касающаяся процесса отладки приложений.

В дополнение мы также представим руководство по портированию приложений, в котором доступно описывается методика портирования приложений на основе GStreamer-0.10 для работы с GStreamer-1.0.

Глава 21. Вспомогательные приложения

21.1. Приложение gst-launch

Это приложение является инструментом, который позволяет формировать конвейеры на основе синтаксических конструкций с использованием командной строки.

Простая команда выглядит следующим образом:
gst-launch filesrc location=hello.mp3 ! mad ! audioresample ! osssink
Более сложная команда выглядит следующим образом:
gst-launch filesrc location=redpill.vob ! dvddemux name=demux \
 demux.audio_00 ! queue ! a52dec ! audioconvert ! audioresample ! osssink \
 demux.video_00 ! queue ! mpeg2dec ! videoconvert ! xvimagesink

Также вы можете использовать механизм разбора синтаксических конструкций в своем коде. Фреймворк GStreamer предоставляет функцию gst_parse_launch (), которую вы можете использовать для формирования конвейера. Следующая программа позволит вам создать конвейер для проигрывания файлов формата MP3 с использованием функции gst_parse_launch ():

Обратите внимание на способ извлечения элемента filesrc из созданного контейнера с использованием имени элемента.

12.1.1. Описание синтаксических конструкций

Синтаксические конструкции приложения gst-launch обрабатываются с помощью системы разбора flex/bison. В данном разделе предоставлена полная спецификация синтаксических конструкций; любые отклонения от этой спецификации рассматриваются как ошибки.

12.1.1.1. Элементы

          ... mad ...

Использование отдельного идентификатора (являющегося строкой, начинающейся с буквы и содержащей исключительно буквы, цифры, дефисы, символы подчеркивания, символы процентов и двоеточия) приведет к созданию элемента с помощью заданной фабрики элементов. В данном примере создается экземпляр элемента "mad", предназначенного для декодирования аудиоданных формата MP3.

12.1.1.2. Связи

          ... !sink ...

Использование восклицательного знака с необязательным именем точки соединения (а перед именем точки соединения может находиться имя элемента), приводит к установке связи между двумя точками соединения. В том случае, если выходная точка соединения не указана, будет автоматически выбрана выходная точка соединения элемента, находящегося непосредственно перед текущим элементом. Если же не указана входная точка соединения, то будет выбрана входная точка следующего созданного элемента. При этом будет предпринята попытка поиска совместимых точек соединения. Перед именами точек соединения могут находиться имена элементов, точно так же, как в следующей записи: my_element_name.sink_pad.

12.1.1.3. Свойства

          ... location="http://gstreamer.net" ...

Использование имени свойства совместно с необязательным именем элемента, а также значения, отделенного с помощью знака равенства, приведет к установке значения свойства элемента. В том случае, если элемент не указан, предполагается использование предыдущего элемента. В случае необходимости строки могут помещаться в кавычки. Символы строк могут экранироваться с помощью обратного слэша (\). В том случае если в правой части используются исключительно числовые символы, значение считается целочисленным. Если же используются числовые символы и символ для отделения дробной части, считается, что передано значение с плавающей точкой. Строки "true", "false", "TRUE" или "FALSE" рассматриваются как логические значения. В противном случае значение считается строковым. Тип свойства определяется позднее в ходе разбора синтаксических конструкций, после чего переданное значение преобразуется в целевой тип. Корректная работа этого механизма преобразования не гарантируется, так как он использует процедуры g_value_convert. Ввиду ограничений API преобразования значений, при некорректном преобразовании не будет выведено никаких сообщений об ошибках.

12.1.1.4. Контейнеры, программные потоки и конвейеры

          ( ... )

Элементы из описания конвейера, находящегося в скобках, размещаются в контейнере. Перед открывающейся скобкой может быть размещено имя типа контейнера, как в записи jackbin.( ... ), позволяющее создать контейнер заданного типа. Квадратные скобки используются для создания конвейеров, а фигурные - для создания программных потоков. Стандартным типом контейнера верхнего уровня является конвейер, но вы можете изменить этот тип контейнера, разместив полное описание контейнера в круглых или фигурных скобках.

12.2. Приложение gst-inspect

Это приложение является инструментом для получения информации о поддерживаемых свойствах от плагина или элемента.

Для получения информации об элементе mad, вы можете использовать команду:
gst-inspect mad

Ниже приведен результат запроса информации об элементе osssink:

Для запроса информации о плагине, вы можете использовать команду:
gst-inspect gstelements

Следующий раздел : Компиляция.