Фев 17

Относительно недавно Trever Fischer добавил более-менее рабочую поддержку интерфейса video4linux2 в xine-lib. Интересующиеся могут заглянуть в файл src/input/input_v4l2.c в этом hg-репозитории. А это — ещё один важный шаг на пути полной поддержки вебкамер во фреймворке Phonon.

Так как автор не имел ранее дела с внутренним устройством xine, код получился не таким хорошим, как ему хотелось бы. Так что в планах у Trever’а дальнейшая работа над качеством и портирование на нестабильную ветку xine-lib 1.2

Плюс реализация поддержки дополнительных форматов, радио-устройств, скрытых субтитров (closed captions), OSD-вывода и, наверное, самого важного – аудио.

Похоже, что придётся написать новый v4l2-специфичный demuxer — вроде как сейчас с этим просто :)

Также, есть хорошие новости из стана Phonon и его бэкэндов.

Читать далее »

Дек 29

Код с рудиментарной поддержкой вебкамер присутствовал в ветке phonon/experimental с 2008 года, но к нему никто не притрагивался с того же самого 2008 года (видимо, с тех пор, как этот код бы скопирован из Kopete). Обнаружив такое положение вещей, Trever «workman161″ Fischer решил взять развитие этой ветки в свои руки, и теперь в Phonon’е присутствует работающая рудиментарная поддержка вебкамер. Впрочем, он пока только начал свою работу, и качество phonon-webcam далеко от релизного, но автор полон решимости развивать этот проект, включая поддержку захвата видео.

Поводом к работе над phonon-webcam стало желание Trever’а написать простую утилиту для получения изображения и видеороликов с камер — что-то вроде «Фотобудки» для Маков или Cheese для GNOME.

Дек 23

Проблему с тем, что при запущенном Amarok у меня нет звука в mplayer (и наоборот), я заметил давно. Сегодня наконец-то дошли руки разобраться с этим вопросом, и, конечно же, был найден соответствующий отчёт в багзилле. Эта неприятность, как видите, возникает при использовании модуля ALSA hda-intel и бэкэнда (библиотеки воспроизведения) Phonon-Xine (бэкэнд Phonon-Gstreamer у меня банально не работает). Как это обычно бывает, корень всех зол потерялся где-то в глубине музыкальной подсистемы Linux.

Как же обойти эту проблему? Можно дождаться нормальной поддержки PulseAudio в KDE SC 4.4, и использовать его. Коллега SeaJey пошёл другим путём, и сменил аудиодравер ALSA на OSS v4 (и решал совсем другой спектр проблем). Я же опишу решение с использованием магии конфигурационных файлов ALSA и диалогов настройки.

Читать далее »

Ноя 24

Представители Mandriva помогли разработчикам Phonon реализовать нормальную поддержку PulseAudio в KDE. Соответствующий код уже включён в основную ветку разработки и будет частью KDE 4.4. Реализация раздельной установки громкости для разных приложений через KMix пока ещё не готова (и в KDE 4.4 включена скорее всего не будет), но работы в этом направлении также ведутся.

Ранее разработчики Mandriva, ради нормальной поддержки PulseAudio, патчили Phonon, чтобы он при обнаружении последнего не показывал реальные звуковые устройства, а позволял PulseAudio полностью управлять направлением звуковых потоков. Теперь же Phonon может напрямую, «из коробки», обращаться к базе устройств PulseAudio и менять приоритеты этих устройств. Таким образом,

  • все источники и приёмники звука PulseAudio будут отображаться в диалоге System Settings -> Multimedia;
  • там же можно будет управлять приоритетом устройств;
  • недоступные устройства будут выделяться серым цветом;
  • когда новые устройства появляются (включаются) или исчезают старые, то будут автоматически активироваться устройства с самым высоким приоритетом.
Мар 19

Один из постоянных авторов WeLinux.ru и просто хороший человек Kraplax начал писать цикл статей о столпах KDE — компонентах и технологиях, на которых построен KDE 4. В первой статье он рассказал про Solid, а вторая была посвящена мультимедийной библиотеке Phonon.

Мы также рады сообщить, что Kraplax присоединился к авторам K Notes, и теперь его статьи будут оперативно публиковаться как у нас, так и на WeLinux.ru.

Сен 28

Разработка KDE4 до выхода 4.0 заняла довольно много времени, я же за ней начал внимательно следить только в январе этого года. А потому иногда открываю довольно интересные исторические пласты. На пример, однажды разработчики приняли решение написать свою звуковую систему — Phonon, которая со временем даже стала частью Qt (хотя и продолжает разрабатываться разработчиками KDE и под копирайтом KDE, а не Trolltech/Nokia). В результате на разработчиков KDE страшно обиделись разработчики GStreamer, и до сих пор периодически поливают их не очень хорошо пахнущими жидкостями (недавний пример).

Напомню, что Phonon является прослойкой для различных звуковых систем: на Linux он может использовать для воспроизведения звука тот же GStreamer или Xine, на Windows — DirectShow, на Mac OS X — QuickTime. Таким образом Phonon предоставляет возможность с лёгкостью писать кроссплатформенные приложения с возможностью воспроизведения звука. В то же время GStreamer также является кроссплатформенным, и его разработчики не понимают, зачем понадобилось создавать практически аналог их библиотеке.

В своё время KDE уже использовал стороннюю звуковую подсистему. Её была aRts. Закончилось это тем, что разработчик aRts забросил проект, и со временем aRts была отнесена на обочину истории. К выходу KDE 3.5 поддержка aRts является опциональной, и в том же Gentoo можно с лёгкостью собрать KDE без aRts.

Но GStreamer — это ведь не какой-то aRts! По крайней мере, с точки зрения разработчиков GStreamer. Разработчики различных KDE-проектов на самом деле ранее работали с GStreamer (как же вы думали Amarok 1.x работает без aRts?), и у них есть одна проблема с этой библиотекой: бинарная совместимость. Политика разработчиков такова, что приложение, скомпилированное в KDE 4.0 должно работать и в KDE 4.1, и в KDE 4.2. GStreamer же не чурается ломать бинарную совместимость при выходе новых релизов библиотеки — вот здесь это объясняет разработчик JuK. Ещё 2 года назад.

Кроме того, разработчики Qt/KDE-приложений не привыкли к зоопарку библиотек. В Gnome есть куча компонентов от разных разработчиков, с различными стилями и подходами к созданию API. Phonon — это API такого же стиля, как и другие предлагаемые в Qt. Это облегчает изучение и использование новых компонентов Qt — будь это поддержка баз данных, XML или WebKit. GStreamer написан на C, а разработчики Qt привыкли к объектно-ориентированным компонентам.

GStreamer имеет гораздо более богатые возможности обработки звука. В то же время, если всё что вам нужно — это сказать «играй это», то с Phonon’ом это можно сделать в несколько строк кода. Это и добивались разработчики Phonon — простой минималистичный кроссплатформенный API.

Мар 31

Если PolishLinux время от времени делают визуальные обзоры KDE SVN, то KDE Commit Digest каждую неделю подводит итоги свежих изменений в одном абзаце текста. Что привлекло меня в последнем выпуске — за отчётный период (с 17 по 23 марта) — немалая часть изменений связана с интеграцией различных компонентов: в Gwenview и Dolphin работают над поддержкой Nepomuk, в digiKam аудио и видео теперь выводится через Phonon, в Amarok выбросили все движки, и оставили один Phonon, а в Plasma добавлено несколько апплетов, связанных с различными KDE-приложениями.

Следом за этим абзацем идут несколько статей от разработчиков, но об этом — в следующий раз.

PS. А ещё в Konqueror добавлено крайне полезное меню со списком закрытых табов