LINUX.ORG.RU

Обсуждение DeaDBeeF

 ,


5

12

Доступны исходники deadbeef 0.7.0 beta1

скачать: https://sourceforge.net/projects/deadbeef/files/deadbeef-0.7.0-beta1.tar.bz2/...

ChangeLog есть внутри, а также в репозитории на github: https://github.com/Alexey-Yakovenko/deadbeef/blob/0.7/ChangeLog

В ближайшее время будет beta2, постараюсь успеть сделать к нему бинарные сборки.

2mods: Новую тему пришлось создать, т.к. старая почему-то уползла в архив. Возможно ли как-то предотвратить это в будущем?

★★★★★

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

думаю, автор плагина vk не читает лор. но на 100% знать не могу.

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

Зайди в ВК в браузере, открой в том же браузере новую вкладку, вставь в адресную строку содержимое первой строки настроек плагина ВК, Enter, скопируй access token и вставь во вторую строку настроек плагина ВК.

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

что мешает вам добавить его самостоятельно, посредством нажатия правой кнопки мыши, и выбора Add New Field?

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

Он воно як , я навіть не знав . Але не працює щось ... Поле створюється , але коли тисну редагувати , то плеєр на жаль падає . Коли знову запускаю плеєр , то створене поле відсутнє . Може через те , що у мене версія з git ?

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

не знал, что падает. попробую.

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

да, вылетает. это баг, буду исправлять.

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

Спробую ще раз пояснити , що я мав на увазі ...

http://imgur.com/rFLXo0A

Ось так , я заповнюю теги .

http://imgur.com/jxo8zjM

Ось так , їх бачить deadbeef . PUBLISHER - це те ж саме , що і Видавець . Треба додати це поле за замовчуванням (наприклад , як поле Жанр) і перейменувати його на Видавець .

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

Отличный плеер. Огромное спасибо за титанический труд.
Вопрос. Не планируется ли выпуск данного плеера с графическим интерфейсом на основе библиотеки Qt ?

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

ну эта идея не нова, и может быть когда-нибудь даже будет реализована, но в данный момент такой фичи нет.

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

Не планируется ли выпуск данного плеера с графическим интерфейсом на основе библиотеки Qt ?

уже было как минимум 3 выпуска различных реинкарнаций интерфейса не Qt. правда, авторы устали их пилить.

у меня лично нет ресурсов этим заниматься.

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

Вопрос.

Хотел подсмотреть один приёмчик (каюсь :)) и наткнулся на вот такой код deadbeef.h


#define DDB_DEPRECATED(x)

#if defined(__GNUC__) && !defined(__GNUC_PREREQ)
// avoid including glibc headers, this is not very portable
#if defined __GNUC__ && defined __GNUC_MINOR__
# define __GNUC_PREREQ(maj, min) \
	((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
#else
# define __GNUC_PREREQ(maj, min) 0
#endif
#undef DDB_DEPRECATED
#if __GNUC_PREREQ(4,5)
#define DDB_DEPRECATED(x) __attribute__ ((deprecated(x)))
#else
#define DDB_DEPRECATED(x) __attribute__ ((deprecated))
#endif
#endif


... может я ошибаюсь, но, как мне кажется, если __GNUC_PREREQ уже определён, то атрибуты deprecated не поставится.
Собственно, в выхлопе gcc ./deadbeef.h -E | grep deprecated ничего не выдаёт (DDB_WARN_DEPRECATED раскоментировано)
Сделал патч, так вроде, с виду, всё нормально


    const char *(*get_config_dir) (void) __attribute__ ((deprecated("since deadbeef API 1.8")));
    const char *(*get_prefix) (void) __attribute__ ((deprecated("since deadbeef API 1.8")));
    const char *(*get_doc_dir) (void) __attribute__ ((deprecated("since deadbeef API 1.8")));
    const char *(*get_plugin_dir) (void) __attribute__ ((deprecated("since deadbeef API 1.8")));
    const char *(*get_pixmap_dir) (void) __attribute__ ((deprecated("since deadbeef API 1.8")));
    DB_playItem_t * (*plt_load) (ddb_playlist_t *plt, DB_playItem_t *after, const char *fname, int *pabort, int (*cb)(DB_playItem_t *it, void *data), void *user_data) __attribute__ ((deprecated("since deadbeef API 1.5")));
    DB_playItem_t * (*plt_insert_file) (ddb_playlist_t *playlist, DB_playItem_t *after, const char *fname, int *pabort, int (*cb)(DB_playItem_t *it, void *data), void *user_data) __attribute__ ((deprecated("since deadbeef API 1.5")));
    DB_playItem_t *(*plt_insert_dir) (ddb_playlist_t *plt, DB_playItem_t *after, const char *dirname, int *pabort, int (*cb)(DB_playItem_t *it, void *data), void *user_data) __attribute__ ((deprecated("since deadbeef API 1.5")));
    void (*plt_sort) (ddb_playlist_t *plt, int iter, int id, const char *format, int order) __attribute__ ((deprecated("since deadbeef API 1.8")));
    int (*plt_add_file) (ddb_playlist_t *plt, const char *fname, int (*cb)(DB_playItem_t *it, void *data), void *user_data) __attribute__ ((deprecated("since deadbeef API 1.5")));
    int (*plt_add_dir) (ddb_playlist_t *plt, const char *dirname, int (*cb)(DB_playItem_t *it, void *data), void *user_data) __attribute__ ((deprecated("since deadbeef API 1.5")));
    int (*pl_add_files_begin) (ddb_playlist_t *plt) __attribute__ ((deprecated("since deadbeef API 1.5")));
    void (*pl_add_files_end) (void) __attribute__ ((deprecated("since deadbeef API 1.5")));
    int (*pl_format_title) (DB_playItem_t *it, int idx, char *s, int size, int id, const char *fmt) __attribute__ ((deprecated("since deadbeef API 1.8")));
    int (*pl_format_title_escaped) (DB_playItem_t *it, int idx, char *s, int size, int id, const char *fmt) __attribute__ ((deprecated("since deadbeef API 1.8")));
    int (*pl_playqueue_push) (DB_playItem_t *it) __attribute__ ((deprecated("since deadbeef API 1.8")));
    void (*pl_playqueue_clear) (void) __attribute__ ((deprecated("since deadbeef API 1.8")));
    void (*pl_playqueue_pop) (void) __attribute__ ((deprecated("since deadbeef API 1.8")));
    void (*pl_playqueue_remove) (DB_playItem_t *it) __attribute__ ((deprecated("since deadbeef API 1.8")));
    int (*pl_playqueue_test) (DB_playItem_t *it) __attribute__ ((deprecated("since deadbeef API 1.8")));
    void (*metacache_ref) (const char *str) __attribute__ ((deprecated("since deadbeef API 1.10")));
    void (*metacache_unref) (const char *str) __attribute__ ((deprecated("since deadbeef API 1.10")));

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

спасибо, похоже там баг. разберусь.

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

Не планируется ли сделать «copy to», «move to» для выбранных треков ? Может оно уже есть и я просто не нашел. Думаю, было бы удобно сразу нужные треки на флешку или плеер кидать, или просто в нужную директорию.

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

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

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

вероятно, более оптимальным решением для реализации copy/move будет добавление опции в конвертер, которая позволит передавать имена исходных файлов в encoder command line, вместо потока wav.

тогда можно будет просто сделать Encoder, дергающий те же cp/mv.

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

edit-> design mode -> правый клик на плейлисте, replace -> splitter left/right; правый клик в левой части -> replace -> playlist browser; правый клик в правой части -> replace -> playlist with tabs.

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

(можно считать что это уже добавлено - опция несложная была в реализации, все равно ковырял конвертер, протестирую и выложу)

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

Чтобы в дизайн режиме появился менеджер плей листов, надо чтобы в плагинах был pltbrowser_gtk2.so (pltbrowser_gtk3.so), его не оказалось после компиляции. Ебилд брал отсюда, версия 0.7.0.

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

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

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

Значит ебилд какой-то специфический.

(p.s.: уже давно есть 0.7.2)

Где бы на него ебилд найти. ) Этот 0.7.0 еле нашел.

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

по-моему достаточно будет поменять 0 на 2 в том ебилде, что у тебя есть.

waker ★★★★★
() автор топика
Ответ на: комментарий от fang90
!!! Fetched file: deadbeef-0.7.2.tar.bz2 VERIFY FAILED!
!!! Reason: Filesize does not match recorded size
!!! Got:      4736472
!!! Expected: 4736088
Refetching... File renamed to '/usr/portage/distfiles/deadbeef-0.7.2.tar.bz2._checksum_failure_.JQgOur'

!!! Couldn't download 'deadbeef-0.7.2.tar.bz2'. Aborting.
 * Fetch failed for 'media-sound/deadbeef-0.7.2', Log file:
 *  '/home/.tmp/portage/media-sound/deadbeef-0.7.2/temp/build.log'

*>>> Failed to emerge media-sound/deadbeef-0.7.2, Log file:

*>>>  '/home/.tmp/portage/media-sound/deadbeef-0.7.2/temp/build.log'

 * Messages for package media-sound/deadbeef-0.7.2:

 * Fetch failed for 'media-sound/deadbeef-0.7.2', Log file:
 *  '/home/.tmp/portage/media-sound/deadbeef-0.7.2/temp/build.log'
 ~ $ nano /home/.tmp/portage/media-sound/deadbeef-0.7.2/temp/build.log
With ★☆☆
()

Добрый день автор. Спасибо за замечательный плеер. Подскажите, при выключении этой опции сильно меняется звучание. Можно в подробностях почему так. --enable-staticlink link everything statically (default: disabled) И в оверлеях gentoo то же не понятно !!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically И где можно почитать о создании собственных плагинов.

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

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

о создании плагинов написано в wiki на гитхабе: https://github.com/Alexey-Yakovenko/deadbeef/wiki/Developing-your-own-plugin

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

Если пришлось рестартануть пульсу (иногда отваливается после ждущего режима), плеер приходится перезапускать. Даже переключение туда-обратно устройств вывода не помогает. Это нормально, или баг?

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

ну сначала было еще можно пользоваться альсой, а потом на макось свалил.

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

Алексей, при попытке проиграть большую часть аудио коллекции плеер вылетает. ОС Debian 8 (jessie) RT kernel, 0.7.2 версию пробовал и devel - один результат. Вот немного логов чтобы понять взаимосвязь жму плей файл m4a itunes и сразу - Segmentation Fault тот же файл те же действия - ALAC: unhandled predicition type: 12, the data seems to be corrupt Segmentation Fault backtrace() returned 95 addresses Segmentation Fault backtrace() returned 9 addresses deadbeef: malloc.c:3695: _int_malloc: Assertion `(unsigned long) (size) >= (unsigned long) (nb)' failed. \u0410\u0432\u0430\u0440\u0438\u0439\u043d\u044b\u0439 \u043e\u0441\u0442\u0430\u043d\u043e\u0432 или другой файл ALAC: unhandled predicition type: 14, the data seems to be corrupt Segmentation Fault \u041e\u0448\u0438\u0431\u043a\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f понаблюдаю только ли ALAC это касается. Что можно предпринять?

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

во-первых, можно завернуть лог в lorcode.

во-вторых, можно оформить багрепорт, и приложить к нему gdb backtrace

если есть уверенность, что дело в определенном файле — можно прислать оный файл мне на email.

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

Лога было мало поэтому не подумал, текстом вставил. Оформить багрепорт нет учетки, а для gdb как я понял нужно чтобы сборка была с флагом debug - сомневаюсь что в репозитории и devel так собирались. Дело не в конкретном файле, пока все файлы формата m4a валят плеер. Не думаю, что так у всех, значит что-то со всей системой. Или битрейт 96000 при выводе влияет или oss (и oss_rate) или не знаю что потому как и с алса и разными конфигурациями пробовал, дебиан стандартный (за исключением ядра), не может же у всех пользователей Deadbeef валиться при проигрывании m4a файлов.

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

Как помочь? Есть статическая сборка с включенным debug? Мог бы собрать логи и выслать Вообще не нашел плееров больше которые с oss поддерживают 32битный вывод, поэтому думаю может плагин написать с управлением по веб или mpd чтобы с телефона управлять плейлистом

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

подтверждаю, вылетает. буду исправлять.

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

содержимое файла не может проигрываться в deadbeef, используемый декодер его не понимает. но я сделал исправление, чтобы не вылетал.

судя по всему, пора менять декодер на официальный от apple.

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

Завтра будет в версии devel? Кстати вот такой баг еще, но полагаю с этим ничего не поделать так как исходников нет плагина? Нажимаешь второй раз плей и продолжает играть. Что-то подобное кстати и у оригинального вывода oss.

Converter: fftrate (ver. 0.9)
Input  : 96000 Hz, 2 ch (0003), 24i bits
Output : 96000 Hz, 2 ch (0003), 32i bits
Params.: delay = 43 ms, sync: ON, transform: 'None' - 'Planar'
Matrix :
        FL      FR      
FL      1.000   -----   
FR      -----   1.000   

oss: failed to play data
oss: failed to play data
oss: failed to play data

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

а есть декодер под линукс в исходниках от аппл?

исходники есть. есть ли использующий их декодер под линукс - не знаю.

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

Завтра будет в версии devel?

думаю, будет даже уже сегодня

Кстати вот такой баг еще,

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

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