Увидел свет релиз GStreamer 1.0, написанного на языке Си кроссплатформенного набора компонент для создания широкого спектра мультимедиа приложений, от медиаплееров и конвертеров аудио/видео файлов, до VoIP-приложений и систем потокового вещания. Код GStreamer распространяется под лицензией LGPLv2.1. Одновременно доступны обновления плагинов gst-plugins-base 1.0, gst-plugins-good 1.0, gst-plugins-bad 1.0, gst-plugins-ugly 1.0, а также обвязки gst-libav 1.0.
Релиз GStreamer 1.0 ознаменовал появление нового и значительного переработанного API, а также полную стабилизацию API и ABI (в свое время разработчики KDE отказались от идеи использования GStreamer и создали собственный фреймворк Phonon из-за постоянно меняющегося ABI). Несмотря на доступность ветки 1.0 разработчики проекта намерены продолжить выпуск обновлений для прошлой стабильной серии 0.10.x. GStreamer 1.0 не совместим на уровне API и ABI с серией 0.10.x и может быть установлен параллельно с прошлыми выпусками GStreamer, т.е. установка версии 1.0 не повляет на работу уже установленных библиотек GStreamer 0.10.
Ключевые улучшения GStreamer 1.0:
- Значительная переработка внутренних подсистем, в том числе переход на новую архитектуру управления памятью и организации буферизации. Например, увеличена эффективность буферизации объектов небольшого размера, добавлена расширяемая и согласуемая система привязки метаданных к буферам;
- Переработан код системы захвата видео и звука. Реализованы новые механизмы согласования потоков в процессе захвата видео;
- Добавлена поддержка автомотической переотправки состояния потока для динамических источников;
- Выполнена большая работа по оптимизации производительности, что позволило ощутимо снизить нагрузку на CPU и открыло новые горизонты по использованию GStreamer на встраиваемых платформах;
- Добавлены новые компоненты для обеспечения взаимодействия со средствами аппаратной акселерации кодирования и декодирования видео, например, обеспечена начальная поддержка интерфейсов VAAPI и VDPAU, а также используемого на встраиваемых платформах OpenMax IL API;
- Поддержка биндингов для языков программирования на основе интроспекции GObject;
Среди базовых возможностей GStreamer:
- Локальное проигрывание контента, обработка потокового вещания и проигрывание DVD;
- Поддерживаемые видеокодеки: Theora, VP8, Dirac, MJPEG, h.264*, h.263*, MPEG2*, MPEG4*, WMV/VC1* и т.д.
- Поддерживаемые аудиокодеки: Vorbis, FLAC, Speex, WavPack, AAC*, MP3*, WMA*, Dolby Digital (AC3)*, DTS/DCA*, AMR NB/WB* и т.д.
- Поддерживаемые мультимедиа контейнеры: Ogg, WebM, Matroska, MP4, Quicktime, AVI, FLV, 3GPP, WAV, Real Media*, ASF*, MPEG PS/TS* и т.д.
- Поддерживаемые протоколы: работа с локальными файлами, HTTP, Shoutcast/Icecast, HLS, RTSP, RTP и MMS*;
- Интеграция с тулкитами для формирования GUI-интерфейса (GTK+, Clutter);
- Автоматическое определение контейнеров и кодеков;
- Функции извлечения метаданных;
- Поддержка субтитров;
- Средства для наглядной визуализации звукового потока;
- Поддержка переключения на лету между разными потоками со звуком и субтитрами;
- Перемещение внутри потока по абсолютной позиции;
- Режимы замедления и ускорения воспроизведения, перемотки в обратном порядке и покадрового просмотра;
- Автоматическое устранение чересстрочности (деинтерлейсинг), масштабирование и установка цветового баланса;
- Поддержка проброса сжатого звука;
- Поддержка функций рендеринга текстур библиотеки Clutter.