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

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 г.
Перевод: А.Панин
Дата перевода: 26 июля 2014 г.

Глава 5. Функция цепочки

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

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

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

В некоторых случаях для элемента также может оказаться полезной возможность управления интенсивностью потока входных данных. В этом случае вы, скорее всего, предпочтете разработать так называемый "петлевой элемент" (loop-based element). Элементы для ввода данных (которые имеют исключительно выходные точки соединения) также могут быть "принимающими элементами" (get-based elements). Эти концепции будут описаны в разделе с описаниями сложных аспектов разработки плагинов данного руководства, а также в отдельном разделе, посвященном выходным точкам соединения.


Следующий раздел : Глава 6. Функция обработки событий.