Ugolnik's Family blog

Различные заметки обо всем.

Browsing Posts tagged Open Source

Не предполагал, что Cubic Player все еще жив. Ведь времена DOS’а давно прошли. Ан нет, есть версия и для Windows, и для UNIX-подобных систем. По скришотам на сайте это все тот же Cubic Player.

UNIX-версия Open Cubic Player – все еще имеет баги и нереализованные возможности. На сайте шаги по сборке плеера под разные дистрибутивы.

Форматы, которые поддерживает Open Cubic Player:

* 669 – 669 Composer module;
* AMS – Velvet Studio module;
* BPA – Death Ralley archive;
* CDA – compact disk CD audio track;
* DMF – X Tracker module;
* IT – Impulse Tracker module;
* MDL – Digi Tracker module;
* MID – standard midi file;
* MOD – amiga ProTracker 1.1b module and variants;
* MP3 – MPEG audio format level 1-3;
* MTM – Multi Tracker module;
* MXM – Mxmplay module;
* OKT – Oktalyzer module;
* PLS – playlist, works also with M3U and PLT playlist files;
* PTM – Poly Tracker module;
* S3M – Sream Tracker 3 module;
* SID – PSID sid file;
* UMX – Unreal module file;
* ULT – Ultra Tracker module;
* WAV – Microsoft RIFF wave file;
* WOW – WOW Tracker module;
* XM – Fast Tracker 2 module;

Simple Viewer GL Сегодня ночью взялся за доработку вьювера изображений – Simple Viewer. Давно хотелось отказаться от использования Gfl SDK. Эта библиотека является частью проекта XnView. Библиотека хорошая и удобная, хорошо документированная. Поддерживает более 100 графических форматов. Но она проприетарная.
Перейти от непосредственной работы с Xlib к OpenGL, что повысило бы скорость работы вьювера за счет аппаратного ускорения. Так же добавил возможность скроллинга и изменения масштаба с помощью мышки.
На данный момент использую Imlib2 для загрузки и декодирования изображений. Но т.к. Imlib2 не смог загрузить тестовый jpeg, созданный в GIMP, то мой выбор остановился на libjpeg. Для анимированных gif использую giflib.

Итак, что получилось в итоге, плюсы:

  • создание списка файлов и поиск позиции, с которой начался просмотр;
  • отказ от Gfl SDK в пользу Imlib2, libjpeg, libpng, giflib, libtiff;
  • поддержка JPEG через libjpeg;
  • поддержка PNG через libjpng;
  • поддержка GIF через giflib;
  • поддержка TIFF через libtiff;
  • поддержка PSD (еще не все фичи формата реализовал);
  • поддержка ICO (реализовал так же поддержку фреймов в формате PNG);
  • использование OpenGL;
  • отображение координаты и цвета пикселя под курсором (ключ командной строки -p или клавиша P);
  • разбиение больших изображений по нескольким текстурам;
  • быстрое скролирование изображения с помощью клавиатуры или мышки;
  • произвольное масштабирование изображения с помощью клавиатуры (- / +) или колеса мышки;
  • корректное автоматическое масштабирование изображений, не вмещающихся в окно вьювера;
  • отображение прогресса загрузки больших изображений;
  • возможность просмотра многостраничных изображений (клавиши PgUp / PgDn)

 
К сожалению есть и минусы:

  • анимированные GIF все еще не поддерживаются (но есть возможность просмотра отдельных фреймов);
  • нет поддержки многостраничных изображений сделана поддержка для TIFF, GIF, ICO;
  • нет никакой поддержки PSD; есть, сегодня ночью написал первую реализацию;
  • нельзя посмотреть EXIF (планирую сделать);
  • нет возможности переназначить “горячие” клавиши (планирую сделать);
  • нет информации о количестве бит на канал изображения изображения загруженные с помощью Imlib2 не имеют информации о кол-ве бит на пиксель;
  • нет возможности повернуть изображение (планирую сделать);
  • у меня есть изображение в формате jpeg (созданное для теста в GIMP), которое Imlib2 не может загрузить, хотя libjpeg спокойно его грузил; перешел на libjpeg – теперь проблем с JPEG нет;
  • не реализована загрузка огромных изображений маленькими блоками (это должно позволить быстро грузить огромные изображения и сильно экономить память);

 


В данный момент исходные коды Simple Viewer GL доступны на SourceForge.net в SVN. Забрать последнюю версию исходных кодов можно следующей командой:

svn co https://simpleviewer.svn.sourceforge.net/svnroot/simpleviewer simpleviewer

 


Добрый человек с LOR скрывающийся под ником AnDoR сделал ebuild для вьювера – simpleviewer-gl-9999.ebuild. Большое ему за это спасибо.

 


Предыдущая версия Simple Viewer.

BitlBee – демон, который выполняет роль гейта из IRC в другие популярные IM протоколы. Установил у себя локально, в качестве гейта в Jabber. В качестве IRC-клиента использовал мною любимый консольный WeeChat. Вполне удобно.
Работает сия штука следующим образом: из любимого IRC-клиента подключаемся к BitlBee (в моем случае это localhost на стандартном для IRC порте). Бот по имени root проведет с вами краткий инструктаж, которого будет более чем достаточно для начала работы.
Кол-во аккаунтов не ограничено, общаться можно прямо на канале, предваряя текст сообщения именем контакта, которому отправляете сообщение (это сообщение увидит только он). Или можно открыть отдельное окно для этого контакта, BitlBee запомнит это и будет адресовать соответствующие сообщения в нужное окно. Для каждого контакта (окна) можно указать свою собственную кодировку.
Одним словом, любителям IRC будет привычно и удобно.

Как и обещал, выкладываю свой CPU-монитор, который я написал для Ion3. Естественно его можно использовать для любого WM.
Плюсы – он делает все то, что нужно было мне ;)
Минусы – конфигурация размера окна и цветов не вынесена в конфигурационный файл, но настоящего джедая это не должно отпугнуть.

Скачать CPU Statistic History, лицензия GPL v2.

Clunk умеет практически всё, что необходимо уметь звуковой библиотеке:

  • Бесконечное количество всего: музыкальных потоков (SDL_Mix умеет только один, например), объектов и именованных источников звука прикреплённых к объектам или слушателю.
  • Простое апи на c++. (В OpenAL вы вынуждены сами перестраивать сцену, для того чтобы перекинуть 16 источников поближе к слушателю, рестартуя источники (sic), ещё рекомендую посмотреть примерчик «как сделать фоновую музыку на OpenAL», ~полтыщи строк кода =-O ) )
  • HRTF, HDT описанные выше(собственно 3d звук)
  • Поддержка всех distance models (падение громкости в зависимости от расстояния) из OpenAL
  • Опциональная оптимизация под процессоры с технологией SSE
  • Эффект допплера
  • Должно работать под всеми платформами где есть SDL, не содержит платформно-зависимого кода.
  • Лицензия LGPL 2.1 — можно использовать в коммерческих продуктах.

В поисках утилиты захвата экрана OpenGL-приложения я наткнулся на captury (media-video/captury). Captury не умеет паковать фреймы “налету”, просто пишет их как есть в контейнер своего формата. Но есть утилита, которая умеет работать с этим форматом.

Захват:

$ captury --output-dir=./ -- your_opengl_application

Для старта захвата видео нужно нажать кнопочку F12 (настройки меняются в /etc/captury.conf, спасибо за подсказку ftrvxmtrx).

Воспроизведение:

$ cpsrecode -i capture.cps -o - | mplayer -demuxer y4m -

Кодирование в theora:

$ cpsrecode -i capture.cps -o out.ogg -c theora

или

$ cpsrecode -i capture.cps -o - | ffmpeg2theora -o out.ogg -

Русскоязычная статья в картинках dd: Команда, которая не похожа на другие повествует историю команды dd и примеры ее использования.

Некоторые интересные примеры из статьи:

Пример 5. Создание образа оптического диска:

# dd if=/dev/cdrom of=image.iso bs=2k

При желании, с помощью полученного образа image.iso можно будет “прожечь” полноценный загрузочный диск (если, конечно, оригинал был загрузочным). Если копировать командой ср, то загрузочного диска не получишь.

Пример 6. Ускорениe работы некоторых Live CD.

На “слабых” машинах современные Live CD работают медленно, иногда очень медленно. Если на жестком диске выделить раздел, скажем hda7 размером в 900Мб (для CD) и скопировать в этот раздел весь CD целиком, то во многих случаях, при загрузки с CD загрузчик примет наш раздел жесткого диска за сам CD и начнет загрузку с него. В этом случае скорость работы сильно повышается, ведь работа с жесткого диска намного быстрее, чем с любого CD привода.

# dd if=/dev/cdrom of=/dev/hda bs=2k

Этот фокус не всегда срабатывает, так как некоторые загрузчика не перебирают все файлы устройств по порядку. Например, Gentoo Live CD и Mandriva Spring Live CD, я только таким способом и смог запустить в графическом режиме на старом ноутбуке. А Mops Live CD на обман не поддается, и ищет чего-то другого.

Сделал небольшой патч для Midnight Commander 4.6.2, который позволяет включать/выключать отображение скрытых файлов по Alt+. (точка) и переключать расположение панелей с вертикального на горизонтальное по Alt+, (запятая).
Так же сделал Gentoo ebuild mc-4.6.2_p1.ebuild.
Поместите ebuild в /usr/local/portage/app-misc/mc, а патч в /usr/local/portage/app-misc/mc/files/. Создайте digest:

ebuild mc-4.6.2_p1.ebuild digest


Старая зубная щётка, батарейка, двигатель вибровызова из мобильника = моё детство, но уменьшенное адекватно современным технологиям ;)

Теперь исходные коды и бинарник Simple Viewer доступны на SourceForge.net.