LINUX.ORG.RU

обсуждение deadbeef

 


9

9

Данная тема посвящена обсуждению проекта deadbeef player.

Официальный сайт проекта: http://deadbeef.sf.net

Разработка, вики, багтрекер: https://github.com/Alexey-Yakovenko/deadbeef

★★★★★

Последнее исправление: waker (всего исправлений: 3)

waker, спасибо за очередную фичу! - теперь можно перемещать управление и прогрессбар.

не планируешь ли ты сделать многопоточное конвертирование?

darktic ★★★
()
Ответ на: комментарий от darktic

не планируешь ли ты сделать многопоточное конвертирование?

я не против этой фичи, но не знаю, когда дойдут руки это сделать.

waker ★★★★★
() автор топика

для разработчиков плагинов: создан новый проект на github, позволяющий собирать плагины статиком посредством создания простейшего json-конфига. пока что не все плагины им можно собрать, но это вопрос времени. эта система будет использоваться для сборки плагинов с последующей загрузкой на deadbeef.sf.net/plugins.html (как замена существующей костыльной билд системы на шелл скриптах).

система умеет скачивать исходники через git/hg/svn, патчить, и собирать через make или автотулсы. когда допилю, будет также вытаскивать из плагина информацию о версии, авторе, и т.п., и генерировать *.zip.

подробности: https://github.com/Alexey-Yakovenko/deadbeef-plugin-builder

пока что там есть всего 3 плагина. пуллреквесты с добавлением новых плагинов велкам.

waker ★★★★★
() автор топика
Ответ на: комментарий от waker
./build --arch=x86_64 rar_vfs
failed to read manifest at ./build line 106.
anonymous
()
Ответ на: комментарий от waker

Привет. скомпилил vfs_rar двумя способами: чрез твой билдер и стандарным, но всё равно получаю ошибку

loading plugin /home/zzz/.local/lib/deadbeef/vfs_rar.so
dlopen error: /home/zzz/.local/lib/deadbeef/vfs_rar.so: undefined symbol: _Z18uiStartFileExtractPKwbbb
trying /home/zzz/.local/lib/deadbeef/vfs_rar.fallback.so...
plugin not found or failed to load

Deleted
()
Ответ на: комментарий от waker

привет. что с vfs_rar случилось, и как-нибудь это можно исправить?

Deleted
()

Не принципиально, но все-таки. Как убрать вот это подобие OSD посередине когда мотаешь, мне и статус бара достаточно. Просто это немного бьет по моему чувству эстетики.
Кстати да, спасибо еще раз за чудесный плеер, использую везде в том числе на андроиде.

anonymous_sama ★★★★★
()
Ответ на: комментарий от anonymous_sama

Как убрать вот это подобие OSD

в данный момент никак, но сделаю чтобы было можно.

waker ★★★★★
() автор топика

Не могу я рекомендовать людям программу с таким грустным именем, звиняйте.

record ★★★★★
()

вопрос по ондроед версии: можно ли сортировать плейлист вручную (порастягивать треки на свои места)? можно ли удалять из плейлиста группу треков? не нашел как.

upd: можно ли скрывать из окна выбора файлов не поддерживаеміе типы файлов и файлы с именами на начинающиеся точку?

x0r ★★★★★
()
Последнее исправление: x0r (всего исправлений: 1)
Ответ на: комментарий от x0r

можно ли сортировать плейлист вручную

в настройках можно включить drag-n-drop.

можно ли удалять из плейлиста группу треков?

multiple selection нету.

можно ли скрывать из окна выбора файлов не поддерживаеміе типы файлов и файлы с именами на начинающиеся точку?

нет.

waker ★★★★★
() автор топика
Ответ на: комментарий от waker

снова перекомпили deadbeef и плагин vfs_rar. снова эта ошибка вылезла

loading plugin /home/xxx/.local/lib/deadbeef/vfs_rar.so
dlopen error: /home/xxx/.local/lib/deadbeef/vfs_rar.so: undefined symbol: _Z18uiStartFileExtractPKwbbb
trying /home/xxx/.local/lib/deadbeef/vfs_rar.fallback.so...

Deleted
()
Ответ на: комментарий от Deleted

автор плагина, насколько я помню, не знает русского, и на лоре не бывает.

waker ★★★★★
() автор топика

Есть проблема с выводом через ALSA. Стоит Ubuntu 12.04 c из-коробочными ALSA и pulseaudio.

ddb при выводе через alsa работает, если ничего не трогать. Т.к. спустя некоторое время он натыкается на якобы занятое устройство:

could not open audio device (Устройство или ресурс занято)
could not open audio device (Устройство или ресурс занято)
streamer: failed to start playback (start track)

Полный вывод - http://pastebin.com/Ucsrv5CB

В то время как через другие плееры вывод через alsa в этот момент работает нормально:

~ $ aplay /usr/share/skype/sounds/CallBusy.wav 
Воспроизведение WAVE '/usr/share/skype/sounds/CallBusy.wav' : Signed 16 bit Little Endian, Частота 16000 Гц, Моно

~ $ mplayer -ao alsa /usr/share/skype/sounds/CallBusy.wav 
MPlayer2 UNKNOWN (C) 2000-2012 MPlayer Team

Playing /usr/share/skype/sounds/CallBusy.wav.
Detected file format: WAV format (libavformat)
[lavf] stream 0: audio (pcm_s16le), -aid 0
Load subtitles in /usr/share/skype/sounds/
Selected audio codec: Uncompressed PCM [pcm]
AUDIO: 16000 Hz, 1 ch, s16le, 256.0 kbit/100.00% (ratio: 32000->32000)
AO: [alsa] 16000Hz 1ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A:   1.0 (00.9) of 1.0 (01.0)  0.0% 

Это убунтопроблемы или может есть какое-то решение?

spv82
()
Ответ на: комментарий от spv82

может есть какое-то решение?

apt-get remove pulseaudio
reboot

вероятно, специалисты по пульс-аудио знают лучшее решение, но мне известно только вот такое.

waker ★★★★★
() автор топика

Уважаемый waker, скажите, пожалуйста. Если пользоваться только основным плейлистом в Deadbeef, можно ли в этом случае отключить отображенеие самой вкладки «Плейлист»? (экономия вертикального пространста на нетбуке). Спасибо.

dncaps
()
Ответ на: комментарий от Deleted

сорри, только вчера вернулся с пасхальных каникул, еще не успел почту разгрести.

waker ★★★★★
() автор топика

что-то вот смотрю deadbeef --help и вижу:

starting deadbeef devel
п≤я│п©п╬п╩я▄п╥п╬п╡п╟п╫п╦п╣: deadbeef [options] [--] [file(s)]
п·п©я├п╦п╦:
   --help  п╦п╩п╦  -h     п▓я▀п╡п╣я│я┌п╦ п╫п╟ я█п╨я─п╟п╫ я│п©я─п╟п╡п╨я┐ (я█я┌п╬ я│п╬п╬п╠я┴п╣п╫п╦п╣) п╦ п╡я▀п╧я┌п╦
   --quit              п▓я▀п╧я┌п╦ п╦п╥ п©п╩п╣п╣я─п╟
   --version           п▓я▀п╡п╣я│я┌п╦ п╫п╟ я█п╨я─п╟п╫ п╦п╫я└п╬я─п╪п╟я├п╦я▌ п╬ п╡п╣я─я│п╦п╦ п©я─п╬пЁя─п╟п╪п╪я▀ п╦ п╡я▀п╧я┌п╦
   --play              п²п╟я┤п╟я┌я▄ п╡п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦п╣
   --stop              п·я│я┌п╟п╫п╬п╡п╦я┌я▄ п╡п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦п╣
   --pause             п÷я─п╦п╬я│я┌п╟п╫п╬п╡п╦я┌я▄ п╡п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦п╣
   --toggle-pause      п÷я─п╦п╬я│я┌п╟п╫п╬п╡п╦я┌я▄ п╡п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦п╣
   --play-pause        п²п╟я┤п╟я┌я▄ п╡п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦п╣ п╣я│п╩п╦ п╬я│я┌п╟п╫п╬п╡п╩п╣п╫п╬, п╡ п©я─п╬я┌п╦п╡п╫п╬п╪ я│п╩я┐я┤п╟п╣ - п©я─п╦п╬я│я┌п╟п╫п╬п╡п╦я┌я▄
   --next              п║п╩п╣п╢я┐я▌я┴п╟я▐ п╢п╬я─п╬п╤п╨п╟ п╡ п©п╩п╣п╧п╩п╦я│я┌п╣
   --prev              п÷я─п╣п╢я▀п╢я┐я┴п╟я▐ п╢п╬я─п╬п╤п╨п╟ п╡ п©п╩п╣п╧п╩п╦я│я┌п╣
   --random            п▓п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦п╣ я│п╩я┐я┤п╟п╧п╫п╬п╧ п╢п╬я─п╬п╤п╨п╦ п╡ п©п╩п╣п╧п╩п╦я│я┌п╣
   --queue             п■п╬п╠п╟п╡п╦я┌я▄ я└п╟п╧п╩(я▀) п╡ я│я┐я┴п╣я│я┌п╡я┐я▌я┴п╦п╧ п©п╩п╣п╧п╩п╦я│я┌
   --gui PLUGIN       п╡я▀п╠п╬я─ п©п╩п╟пЁп╦п╫п╟ п╦п╫я┌п╣я─я└п╣п╧я│п╟, п©п╬-я┐п╪п╬п╩я┤п╟п╫п╦я▌ "GTK2"
   --nowplaying FMT    п▓я▀п╡п╣я│я┌п╦ п╫п╟ я█п╨я─п╟п╫ я└п╬я─п╪п╟я┌п╦я─п╬п╡п╟п╫п╫п╬п╣ п╫п╟п╥п╡п╟п╫п╦п╣ п╢п╬я─п╬п╤п╨п╦
                       FMT %-я│п╦п╫я┌п╟п╨я│п╦я│: %a-п╦я│п©п╬п╩п╫п╦я┌п╣п╩я▄, %t-п╫п╟п╥п╡п╟п╫п╦п╣, %b-п╟п╩я▄п╠п╬п╪,
                       %l-п╢п╩п╦п╫п╟, %n-п╫п╬п╪п╣я─ п╢п╬я─п╬п╤п╨п╦, %y-пЁп╬п╢, %c-п╨п╬п╪п╪п╣п╫я┌п╟я─п╦п╧,
                       %r-п╟п╡я┌п╬я─я│п╨п╦п╣ п©я─п╟п╡п╟, %e-п╡я─п╣п╪я▐, п╨п╬я┌п╬я─п╬п╣ п©я─п╬я┬п╩п╬ 
                       п²п╟п©я─п╦п╪п╣я─: --nowplaying "%a - %t" п╢п╬п╩п╤п╫п╟ п╡я▀п╡п╣я│я┌п╦ п╫п╟ я█п╨я─п╟п╫ "artist - title"
                      п╢п╩я▐ п╢п╬п©п╬п╩п╫п╦я┌п╣п╩я▄п╫п╬п╧ п╦п╫я└п╬я─п╪п╟я├п╦п╦, я│п╪п╬я┌я─п╦я┌п╣ http://sourceforge.net/apps/mediawiki/deadbeef/index.php?title=Title_Formatting

Что ж у тебя так плохо с русификацией? Ведь gettext не так уж и сложно использовать!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от anonymous

gettext автоматом на основе твоей локали делает конвертацию. Просто у Алексея, похоже, где-то косяк в коде.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Что ж у тебя так плохо с русификацией? Ведь gettext не так уж и сложно использовать!

с русификацией все в порядке, gettext используется.

попробуй так:

deadbeef --help | iconv -f utf8 -t koi8-r
waker ★★★★★
() автор топика
Ответ на: комментарий от waker

Дык, понимаешь, прикол в том, что gettext это сам должен делать! Я уж не помню, где-то тоже косячил, что у меня только в КОИ8 была локализация, а вот если до bindtextdomain сделать setlocale(LC_ALL, "");, то вроде как вполне получается.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

ну так посмотри в код, найди что не так, и пришли патч. где я тебе систему с koi8r найду?

waker ★★★★★
() автор топика
Ответ на: комментарий от Deleted

В убунте не работает «трей» уже второй релиз.

прекрасно работает. если не использовать unity. в котором, кстати, трея нету вообще, поэтому и не работает.

waker ★★★★★
() автор топика
Ответ на: комментарий от waker

Пока что лень. Вот тебе простой рабочий пример:

#include <stdio.h>
#include <libintl.h>
#include <locale.h>

#define _(String)				gettext(String)

int main(int argc, char **argv){
	setlocale(LC_ALL, "");
	setlocale(LC_NUMERIC, "C");
	bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR);
	textdomain(GETTEXT_PACKAGE);
	/// Переведено геттекстом\n
	printf(_("Translated by gettext\n"));
	/// Вполне работает в любой кодировке\n
	printf(_("This works fine in any charset\n"));
	return 0;
}

Чтобы не париться, даю тебе готовый тарбол с этим примером. Просто распаковываешь, и запускаешь make && ./test. А потом пишешь LC_ALL=ru_RU.koi8-r ./test и видишь, что автоматическое преобразование кодировок работает.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Вот:

./test
Переведено геттекстом
Вполне работает в любой кодировке

LANG=ru_RU.utf8 ./test
п÷п╣я─п╣п╡п╣п╢п╣п╫п╬ пЁп╣я┌я┌п╣п╨я│я┌п╬п╪
п▓п©п╬п╩п╫п╣ я─п╟п╠п╬я┌п╟п╣я┌ п╡ п╩я▌п╠п╬п╧ п╨п╬п╢п╦я─п╬п╡п╨п╣

LANG=ru_RU.utf8 ./test | enconv
Переведено геттекстом
Вполне работает в любой кодировке

LANG=ru_RU.utf8 ./test | enca  
Universal transformation format 8 bits; UTF-8

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

нашел у себя в коде вот такую строчку

bind_textdomain_codeset (PACKAGE, "UTF-8");

99% что дело в ней. так что можешь смело удалять, пересобирать, и наслаждаться.

waker ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

upd: можешь просто собрать из транка, уже исправлено.

waker ★★★★★
() автор топика
Ответ на: комментарий от waker

Да, я уже заметил. 100%. Я ее закомментировал и проблем не стало.

Интересно, нафига эта строчка нужна была? По-моему, явно указывают кодировку лишь в случае, если вообще неизвестно, что у юзверя.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

скорее всего я невнимательно прочитал доки, и подумал, что эта функция указывает input encoding, а на самом деле это output.

waker ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

как именно отвалились? у меня вроде все в норме, и с LANGUAGE=ru_RU.koi8-r, и с LANGUAGE=ru, и с LANGUAGE=ru_RU.utf8

waker ★★★★★
() автор топика
Ответ на: комментарий от waker

Понимаешь, если глобально домен геттексту поставить, то он и будет только в этой кодировке шпарить. А GTK2, судя по всему, только хрюникод и умеет.

В общем, вот так работает выхлоп помощи: static void print_help (void) { char*old = bind_textdomain_codeset (PACKAGE, &#34;&#34;); fprintf (stdout, _(&#34;Usage: deadbeef [options] [--] [file(s)]\n&#34;)); fprintf (stdout, _(&#34;Options:\n&#34;)); ... fprintf (stdout, _(&#34; for more info, see http://sourceforge.net/apps/mediawiki/deadbeef/index.php?title=Title_Formatting\n&#34;)); bind_textdomain_codeset (PACKAGE, old); } В самой main() ничего менять не нужно.

Получается так: в гуйню принудительно пихается хрюникод. А вот в консольке указывается локаль пользователя. И все кошерно.

Можно забульбенить какую-нибудь обертку, чтобы не писать такое постоянно. Ну или макросы для первой строчки и последней.

// кстати, хорошо, что выяснили это. У меня самого была подобная проблема, но т.к. софт был на стадии "допилю когда-нибудь", то забил. Теперь знаю, как сделать нормальный выхлоп и в консольку, и в гуйню.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

вобщем, добавил костыль, не знаю будет ли работать. у меня работает абсолютно идентично во всех вариантах.

waker ★★★★★
() автор топика
Ответ на: комментарий от waker

Потому что у тебя общестистемная локаль — не кои8!

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

Вот, кстати, еще одно доказательство ущербности gtk2. Ты говорил, что может быть будешь свой интерфейс пилить? А что если и правда веб-морду сделать? Оформить каждый сможет по-своему (в т.ч. при помощи stylish). Нужно будет лишь при логине (а то и даже старте системы) запускать сервер. А веб-морда будет команды серверу отправлять. Естественно, оставить и твои простые API + вызов демона с параметрами (чтобы можно было, скажем, OSD подключить и "горячие клавиши" запилить — "родной" говяжий плагин хреновато отрабатывает).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от waker

прекрасно работает. если не использовать unity. в котором, кстати, трея нету вообще, поэтому и не работает.

Т.е. надо отказаться от самого популярного и единственного юзабельного дистрибутива ради использования плеера. Пожалуй нет.

Deleted
()
Ответ на: комментарий от Eddy_Em

А что если и правда веб-морду сделать?

ну тебе надо - ты и делай. мне подобная программа не нужна.

waker ★★★★★
() автор топика
Ответ на: комментарий от Rubbiroid

напиши плагин для интеграции в аудио меню :)

да он вроде есть в природе.. видел где-то ссылку кидали. попробуй гуглить deadbeef ubuntu sound menu.

waker ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Т.е. надо отказаться от самого популярного и единственного юзабельного дистрибутива ради использования плеера. Пожалуй нет.

я ничего такого не предлагаю. просто возразил, что дело не в deadbeef, и даже не в убунте, а в конкретных сраных оболочках - unity, гномощели, и их производных - из которых трей выпилили. сделай чтобы в unity был трей, и все сразу заработает. а sound menu это совсем отдельная штука, для которой где-то есть какой-то плагин. вот им и пользуйся на здоровье.

я, между прочим, сам пользуюсь убунтой. но у меня openbox, а в качестве панельки lxpanelx, в которой трей имеется.

waker ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.