LINUX.ORG.RU

Плагин XMMS-WMA v.0.1


0

0

Теперь есть возможность воспроизводить файлы формата WMA
общеизвестным плеером XMMS. Это полностью нативный плагин
без привязок к mplayer'у или xine, он основан на коде ffmpeg,
который сильно урезан и переработан, в нем оставлена только часть для
работы с wma и добавлена работа с русскими тэгами, более подробно
о том, что сделано и не сделано описано в файле readme.rus, который
находится в исходниках плагина.

>>> Скачать исходники и готовые rmp'ки

★★★

Проверено: maxcom

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

А сделать из rpm, deb ума не хваает???

2McMCC: а нет где нить сожержания для http://mcmcc.bat.ru, а то там много чего есть интересного, но вот как попасть в разделы, не известно.

anonymous
()

хорошо работает, но куча проблем если использовать ALSA Output (xmms-1.2.9), с esd и oss вроде нормально.
На некоторых файлах xmms впадает в loop с сообщением на stderr:
** WARNING **: alsa_free(): snd_pcm_start() failed: Broken pipe
ALSA lib pcm_hw.c:494:(snd_pcm_hw_start) SNDRV_PCM_IOCTL_START failed: Broken pipe
на других файлах - просто перескакивает на следующий трек, иногда сразу, иногда через 2-5 секунд.

anonymous
()

у меня правильно показываются лишь теги, а при попытке воспроизведения перескакивает на следующий трек, - может у меня какие нибудь защищенные wma? как проверить?

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

2plm: Ничего такого не наблюдается, покрайней мере пробовал на 3-х разных машинах и с любыми wma, а версия xmms какая? У меня 1.2.8.

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

>В deb запихать слабо ?

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

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

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

Тоже самое. xmms-1.2.7. Щас обновлю, посмотрю чего будет (хотя кажется, что ничего и не должно быть)

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

>На некоторых файлах xmms впадает в loop с сообщением на stderr:

Т.е. я так понимаю, что не успевает высвобождаться устройство и поэтому
уходит в loop, у меня просто нет ALSA поэтому я только могу догадываться,
что нужно сделать.
Попробуй так:
--- xmms-wma.c.orig     2004-02-25 03:23:35.000000000 +0300
+++ xmms-wma.c  2004-02-26 10:59:35.000000000 +0300
@@ -405,7 +405,7 @@
     aopen = 0;
     seekpos = -1;
     wdecode = 0;
-    wma_ip.output->close_audio();
+    //wma_ip.output->close_audio();
     if(outbuf)
        g_free(outbuf);
     if (pkt.data)
@@ -432,6 +432,7 @@
        if(wpause)
            do_pause(0);
        pthread_join(decode_thread, NULL);
+       wma_ip.output->close_audio();
     }
 }

Если не поможет, то попробуй заменить все FMT_S16_LE на FMT_S16_NE

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

>> у меня правильно показываются лишь теги, а при попытке
>>воспроизведения перескакивает на следующий трек
>
>Тоже самое. xmms-1.2.7. Щас обновлю, посмотрю чего будет (хотя
>кажется, что ничего и не должно быть)

2none (*): А с каким битрейтом wma? Какие драйвера звуковые используются, не ALSA?

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

>а, да. в системе ALSA, но в xmms поддержки ALSA output нету, поэтому
>OSS (через эмуляцию)

А есть возможность проверить например через esd или artsd?

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

у меня та же версия WMAv2, но битрейт 32 кбпс

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

кроме oss есть esd и disk_writer.
попробовал через esd. xmms вообще зависает (при чем ресурсы процессора не жрёт, как это обычно делают зависающие приложения).
Но через esd в общем-то и mp3 фигово проигрываются, запускаются через раз - говорит, что не может открыть аудио устройство, и в лог каждый раз пишет

esd: Esound sound daemon already running or stale UNIX socket
/tmp/.esd/socket
This socket already exists indicating esd is already running.
Exiting...

и постоянно трещание из колонок (комп у меня слабенький звукавуха левенькая)

пробовал disk_writer - тоже самое, что и с oss - перескакивает на следующую песню

none
()

XMMS 1.2.8 сразу вылетает нах что с битрейтом 192, что 160 со всеми расширениями вывода (alsa, oss, esd)

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

McMCC, а действительно, я слышал что у Вас есть описание того как собрать javа или как фендору на кои перевести... Где ссылки можно увидеть всех Ваших статей?

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

2none (*) (26.02.2004 11:53:51):
Попробуй собрать http://mcmcc.bat.ru/xmms-wma/xmms-wma.c,
возможно поможет, а так, если чесно, то esd не должно себя вести как
ты описал, если все нормально в системе...

P.S. У меня, как я выше говорил, на 3х разных машинах с федорой
нет никаких проблем, все wmaшки с 22 до 128 kb/s битрейтом
играют и нигде ничего не скачет и ошибок не выдает, драйвера
OSS из ядра, пробовал с esd, artsd, ну и с oss естественно, alsa не
использую по ряду причин, да и глюков в ней предостаточно. Может
кто-нибудь разбереться сам и вышлет патчи по этому поводу, буду
благодарен, потому как бороться с тем, чего не имею, как то сложновато...



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

ой, а мои .Wma .wMa .wmA .WMa .wMA .WmA
файлики не играют ...

а реально зачем делать статические массивы типа message[1000]
и как заметиили выше memset(message,0,1000)? эти мемсеты нафиг не нужны.
у xmms есть документация по написанию плагинов?

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

>Код смешной :)
>char message[10000]; memset(message, 0, 10000); strcpy(message, >"\n\n\n");

Ну дак:))), вообще-то похорошему надо было через malloc сделать, но
что то я забыл про это:)...

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

На xmms.org была где-то статья, как писать плагины визуализации.

2Автор плагина: А почему бы вам в Makefile'ах не использовать `xmms-config --libs` and so on?

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

>ой, а мои .Wma .wMa .wmA .WMa .wMA .WmA
>файлики не играют ...

Бред.... Играют еще как, проверял не раз... strcasecmp() всеравно
как будет wma выглядеть...

>а реально зачем делать статические массивы типа message[1000]
>и как заметиили выше memset(message,0,1000)? эти мемсеты нафиг не >нужны.

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

>у xmms есть документация по написанию плагинов?

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

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

>2Автор плагина: А почему бы вам в Makefile'ах не использовать >`xmms-config --libs` and so on?

В 0.1.1 подправлю

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

>мёртвая какая-то ссылка.

Уже мертвая, потому что выложил обновленную версию 0.1.1...

>А может стоит выложить какой-нибудь небольшой .wma файл, который у
>тебя работает

А смысл? Все что имеется у меня и встречаются сейчас, работают
превосходно... можешь любой взять с http://www.supermusic.nu/
для теста...

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

При попытке проиграть wma с алсой ** WARNING **: alsa_free(): snd_pcm_start() failed: Broken pipe ALSA lib pcm_hw.c:494:(snd_pcm_hw_start) SNDRV_PCM_IOCTL_START failed: Broken pipe и циклится. xmms 1.2.10/alsa 1.0.1/wma-plugin 0.1.1

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

2steam: Об этом уже говорили выше, только я не знаю как это происходит,
потому как alsa не использую и ставить ее пока не хочу, если не найдутся
люди, которые в этом разберуться, то попробую разобраться с ALSA сам....

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

Пользователям ALSA, попробуйте закоментировать следущее:
--- xmms-wma.c.orig     2004-02-26 15:15:52.000000000 +0300
+++ xmms-wma.c  2004-02-26 18:26:17.000000000 +0300
@@ -393,8 +393,8 @@
            {
                while(wma_ip.output->buffer_free() < out_size)
                        xmms_usleep(10000);
-               wma_ip.add_vis_pcm(wma_ip.output->written_time(), FMT_S16_LE,
-                       c->channels, out_size, (short *)outbuf);
+               //wma_ip.add_vis_pcm(wma_ip.output->written_time(), FMT_S16_LE,
+                //       c->channels, out_size, (short *)outbuf);
                wma_ip.output->write_audio((short *)outbuf, out_size);
            }
             size -= len;
Если это не пройдет, то попробую установить ALSA на днях и
разобраться, что ей не нравится...

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

> Кто бы рассказал как подружить xmms с artsd-1.2
> не хочет arts output плагин работать и все...

Надо поставить пакет arts-devel

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

По поводу ALSA - не работала, и не работает.
Менял: версию 0.1.1, FMT_S16_LE на FMT_S16_NE, оба "комментирования". Завтра/послезавтра уделю этому больше времени..
Это единственное обсуждение xmms-wma?

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

>По поводу ALSA - не работала, и не работает. 

Теперь все должно работать, и с ALSA и с OSS, вот патч на 0.1.1

--- xmms-wma.c.orig     2004-02-26 15:15:52.000000000 +0300
+++ xmms-wma.c  2004-02-27 03:54:53.000000000 +0300
@@ -391,7 +391,7 @@

            if ((out_size > 0) && wdecode)
            {
-               while(wma_ip.output->buffer_free() < out_size)
+               while(wma_ip.output->buffer_free() < out_size/2)
                        xmms_usleep(10000);
                wma_ip.add_vis_pcm(wma_ip.output->written_time(), FMT_S16_LE,
                        c->channels, out_size, (short *)outbuf);

Завтра, т.е. уже сегодня обновлю версию до 0.1.2...

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

Перетащил жёсткий на другую машину (более мощную). Ну и вспомнил про плагин и решил проверить. Не перекомпилировал и не патчил (0.1.1 оставил как есть). И что интересно - заработало :). Но только через OSS (эмуляция). через ALSA пару секунд играет и перескакивает на следующую песню.

Наложил значит последний патч (тот что с делением на 4). Теперь segmentation fault и через OSS и через ALSA. Ну ладно попробовал с делением на 2 - сработало. Теперь и через ALSA и через эмуляцию OSS работает. Осталось только проверить на старом компе.

Однако такая неприятность замечена - при проигрывании через OSS загрузка процессора - ~2%, а через ALSA - 48-52%

none
()

лучше юзайте xmms-mplayer!!! Гораздо круче и стабильнее

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

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

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

Читай внимательнее, я не писал, что не собирается.
Не работает!
$xmms
Segmentation fault

You've probably found a bug in XMMS, please visit
http://bugs.xmms.org and fill out a bug report.

Xlib: unexpected async reply (sequence 0x3ac4)!

$ rpm -q xmms
xmms-1.2.10-1

arts_output-0.6.0

Niki
()

Скомпилировал с патчем. Делил и на 2, и на 4. Инфо по wma показывает, при попытке проиграть файл - подвисает, но уже без сообщений в консоль.

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

>Наложил значит последний патч (тот что с делением на 4). Теперь
>segmentation fault и через OSS и через ALSA. Ну ладно попробовал с
>делением на 2 - сработало. Теперь и через ALSA и через эмуляцию OSS
>работает. Осталось только проверить на старом компе.

Вообщем ситуация такая, для чистого OSS не годится ни 2 и не 4, это
только с ALSA работает, похоже в плагине ALSA есть какая-то особенность,
потому я пока не буду 0.1.2 выкладывать, надо другой способ искать...
Заметил только, что если делать buffer_free() при buffer_playing() == 0,
то ALSA работает, зато не работает OSS, потому как она требует постоянного
buffer_free().... Хз как это побороть:(...


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

>Скомпилировал с патчем. Делил и на 2, и на 4. Инфо по wma показывает,
>при попытке проиграть файл - подвисает, но уже без сообщений в
>консоль.

Попробуй использовать другой вывод, потому как с ALSA похоже не
все так просто....

P.S. Кстати, я пробовал с деволоперской ALSA 1.0.3, там какраз делением
на 4 все работало стабильно....

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

В общем, нашёл. Через alsa не играет, если в настройках xmms-alsa включен mmap mode. После отключения начинает играть.

steam
()

Ну и туфтня, млин. Поставила я этот патч. Так у меня XMMS вообще отказался запускаться. В чем же дело? То ли у меня кривые ручки и я поставила не тот rpm, то ли это опять наш дорогой и любезный ASP зубки показывает.

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

>Поставила я этот патч. Так у меня XMMS вообще отказался запускаться.

Какой патч? Сказал же выше, что ставить надо 0.1.1 и если ALSA, то
использовать OSS эмуляцию или esd&artsd, с алсовским плагином
не работает, а если работает, после патча, то грузит сильно CPU, с
нативным OSS проблем нет...

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

а я нашёл другую вещь :). С абсолютно одинаковыми настройками на одной машине работает (и OSS, и ALSA(хотя проц грузит)), а на другой не работает ни то ни другое (перескакивает). и mmap не помогает.

none
()

> Это полностью нативный плагин без привязок к mplayer'у или xine

[test@localhost 1]$ xmms ./9.wma /usr/lib/xmms/Input/libcdread.so: undefined symbol: playlist_generate_shuffle_list : No such file or directory can't open '/home/test/.mplayer/codecs.conf': No such file or directory Linux RTC init error in ioctl (rtc_irqp_set 1024): Permission denied Can't open input config file /home/test/.mplayer/input.conf : No such file or directory Can't open input config file /etc/mplayer/input.conf : No such file or directory Falling back on default (hardcoded) input config Can't init input joystick Gdk-ERROR **: BadValue (integer parameter out of range for operation) serial 3467 error_code 2 request_code 12 minor_code 0

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