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

UnixForum





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

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

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

Глава 26. Интеграция

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

26.1. Linux и UNIX-подобные операционные системы

Фреймворк GStreamer предоставляет базовый набор элементов, которые могут оказаться полезными при интеграции приложения с операционной системой Linux или UNIX-подобной операционной системой.
  • Для ввода и вывода аудиоданных фреймворк GStreamer предоставляет элементы ввода и вывода данных, предназначенные для взаимодействия с несколькими звуковыми подсистемами. Среди других элементов, в составе GStreamer имеются элементы для работы с подсистемой ALSA (alsasrc, alsasink), OSS (osssrc, osssink), Pulseaudio (pulsesrc, pulsesink) и Sun audio (sunaudiosrc, sunaudiosink).
  • Для ввода видеоданных в составе фреймворка GStreamer имеются элементы ввода данных для работы с подсистемой Video4linux2 (v4l2src, v4l2element, v4l2sink).
  • Для вывода видеоданных фреймворк GStreamer предоставляет элементы вывода данных с использованием окон оконной системы X (ximagesink), окон оконной системы X с оверлеем Xv (xvimagesink; используется для вывода видеоданных с аппаратным ускорением), буфера кадров direct-framebuffer (dfbimagesink) и контекстов изображений OpenGL (glsink).

26.2. Рабочий стол GNOME

Фреймворк GStreamer лежит в основе подсистемы обработки мультимедийных данных рабочего стола GNOME начиная с версии GNOME-2.2. На сегодняшний день большое количество приложений, поставляемых вместе с рабочим столом GNOME, использует фреймворк GStreamer для обработки мультимедийных данных, включая приложения Rhythmbox, Videos и Sound Juicer (но не ограничиваясь ими).

Большинство этих приложений из комплекта поставки рабочего стола GNOME использует специфичные техники для наиболее тесной интеграции с рабочим столом GNOME:
  • Приложения, поставляемые вместе с рабочим столом GNOME обычно вызывают функцию gtk_init () для разбора параметров командной строки и инициализации библиотек GTK. Приложения на основе фреймворка GStreamer в обычных условиях должны вызывать функцию gst_init () с целью выполнения тех же действий на уровне библиотеки фреймворка GStreamer. Это значит, что только одна из двух упомянутых выше функций будет иметь возможность осуществления разбора параметров командной строки. Для обхода этого ограничения фреймворк GStreamer может предоставить структуру типа GOptionGroup, объявленного в рамках библиотеки GLib, которая впоследствии может быть передана функции gnome_program_init (). Для сборки следующего примера требуются установленные библиотеки GTK версии 2.6 и выше (предыдущие версии библиотек GTK не поддерживают механизм разбора параметров командной строки с использованием структуры GOption).
  • Рабочий стол GNOME использует демон Pulseaudio для обработки аудиопотоков, поэтому следует использовать элементы pulsesrc и pulsesink для получения доступа ко всем его возможностям.
  • Фреймворк GStreamer предоставляет элементы для ввода и вывода данных с использованием виртуальной файловой системы GIO. Эти элементы носят имена "giosrc" и "giosink". Устаревшая виртуальная файловая система GNOME-VFS также поддерживается, но она не должна использоваться в любых новых приложениях.

26.3. Рабочий стол KDE

Фреймворк GStreamer предлагается для включения в число зависимостей версии рабочего стола KDE-4.0. На данный момент фреймворк GStreamer является необязательным компонентом и используется несколькими приложениями из состава KDE, включая AmaroK, JuK, KMPlayer и Kaffeine.

Хотя интеграция с рабочим столом KDE не является завершенной в той степени, в которой это сделано в случае с рабочим столом GNOME, некоторые особенности интеграции с данным рабочим столом также могут быть выделены. Скорее всего, этот список будет расти по мере использования фреймворка GStreamer в рамках KDE-4.0:
  • Проигрыватель AmaroK содержит элемент kiosrc, который является элементом для ввода данных, интегрированным с виртуальной файловой системой рабочего стола KDE под названием KIO.

26.4. OS X

Фреймворк GStreamer содержит элементы для вывода аудио- и видеоданных с использованием технологий, специфичных для операционной системы OS X. Они могут быть собраны с помощью инструментов для разработки приложений из состава операционной системы OS X.

26.5. Windows

Предупреждение
Учите, что приведенная в данном разделе информация устарела. Версия фреймворка GStreamer-1.0 имеет гораздо лучшую поддержку платформы win32, чем предыдущие версии, поэтому обычно компиляция исходного кода без его изменений может производиться как с помощью компиляторов MSYS/MinGW, так и с помощью компиляторов от компании Microsoft. Веб-сайт проекта GStreamer и архивы списков рассылки являются хорошими источниками последних новостей о состоянии поддержки платформы win32.

Сборка фреймворка GStreamer может осуществляться как с помощью компилятора Microsoft Visual C .NET 2003, так и с помощью Cygwin.

26.5.1. Сборка версии фреймворка GStreamer на платформе Win32

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

Файлы Makefile предназначены для использования совместно с приложением make от проекта GNU и бесплатной версией компилятора от компании Microsoft (http://msdn.microsoft.com/visualc/vctoolkit2003/). Вам также придется модифицировать ваши системные переменные окружения для использования описанных инструментов из командной строки. Кроме того, вам понадобится набор программных компонентов Platform SDK для Windows, который бесплатно распространяется через веб-сайт компании Microsoft.

С помощью файлов Makefile и файлов конфигурации проекта будут автоматически генерироваться некоторые файлы исходного кода, которые необходимы для компиляции фреймворка GStreamer. Это обстоятельство требует от вас установки в систему некоторых инструментов от проекта GNU, пути к которым должны быть заданы с помощью системной переменной окружения PATH.

Работоспособность проекта GStreamer зависит от наличия в системе некоторых сторонних библиотек, а именно:
  • GLib
  • libxml2
  • libintl
  • libiconv

Ведется работа по предоставлению предварительно скомпилированных библиотек фреймворка GStreamer-1.0 в качестве пакетов для платформы win32. Следите за новостями на веб-сайте проекта GStreamer и в нашем списке рассылки, если вас интересует информация об актуальных разработках в данной области.

Примечание
Необходимые инструменты от проекта GNU вы можете найти по адресу http://gnuwin32.sourceforge.net/
  • GNU flex (протестирована версия 2.5.4)
  • GNU bison (протестирована версия 1.35)
и по адресу http://www.mingw.org/
  • GNU make (протестирована версия 3.80)
сгенерированные с использованием файлов Makefile файлы исходного кода в ближайшее время будут также отдельно доступны в сети для облегчения процесса сборки (они будут полезны для тех людей, которые не хотят устанавливать инструменты от проекта GNU).

26.5.2. Установка в систему

Этот раздел не обновлен для версии фреймворка GStreamer-1.0


Следующий раздел : Советы относительно лицензирования приложений.