Форум » RusXMMS Project » Теги mp3 по сети (smb) криво отображаются » Ответить

Теги mp3 по сети (smb) криво отображаются

Alexxey: Система Kubuntu 7.10, Amarok 1.4.7. Поставил ваш TagLib и все проблемы с тегами локальных файлов решились, но проблемы с mp3 которые берутся по сети (с samba сервера) остались (теги закорючками). Причем если я этот сетевой ресурс монтирую в свою ФС, и читаю песни от туда Амароком, то проблем стегами нет никаких. В чем может быть загвоздка и как мне ее решить?

Ответов - 9

darksoft: 1. Проблема с именами файлов? Или с тэгами тоже? 2. Я до 7 января в отъезде, не могу покопаться, что происходит в случае smb. Как вернусь, - посмотрю.

Alexxey: Проблема только с тегами. картинка тут

Alexxey: Причина не ясна?


darksoft: Руки не доходят. У меня чего-то Amarok вообще по smb ходить не хочет, а разбиратся времени нету :( Но я помню ;) При случае попробую разобратся.

Alexxey: ок. thx Просто я думал мож после отпуска забылось )))

fluffy: Кстати да, есть такой косяк.. монтируешь либо списываешь локально - всё пучком. с подмонтированых ntfs/fat/ex2fs тоже всё читается, по smb - болт. :( касается только тегов. впрочем, похоже. это не проблема амарока, а проблема всего КДЕ - если открывать файлы в kid3 (или другом редакторе тегов, работающем через taglib или id3lib) - проблема ровно та же. копать в сторону kio_хххх надобно на тему парвильного опознавания потоков. Или уже подождём КДЕ4 в полный рост?

darksoft: Так, посмотрел я. Трабла там в том, что TagLib при работе с SMB не используется. Похоже надо патчить сам Amarok. Если честно я его не использую и мне очень лень :) Но если кто-то возьмется делать, - гарантирую консультации по LibRCC. Ну и сразу немного инфы, которую я раскопал пока разбирался. Amarok (1.4.8) устроен примерно следующим образом. Если мы имеем дело с локальными файлами, то все тэги получаются через Taglib (в функции MetaBundle::readTags из metabundle.cpp). Однако, taglib (1.5 и раньше) не умеет за тагами по сети лазить. По-этому smb, nfs и т.п. обрабатываются по другому. 1. Во-первых в томже metabundle.cpp есть: MetaBundle::init( const KFileMetaInfo& info ) который может принимать тэги в некой KDEшной структуру. Подозреваю, что это связано с KIO. Впрочем, неважно для SMB файлов эта функция не запускается. 2. Реально для smb файлов тэги ловятся функцией slotEngineMetaData (из enginecontroller.cpp). Вызывается данная функция по приходу сигнала "metaData". Насколько я понял, данный сигнал посылают всякие enginы, которые проигрывают музыку для амарок. Типа engine/yauap, engine/xine и т.п. Вот видать они читают тэги (криво, поскольку не с линкованы с taglib или еще чем с RusXMMS патчем). 3. Может еще чего есть ;) Вообщем, резюме. Патчить надо либо эти движки, либо, что мне (на первый взгляд) кажется проще, надо подцепится к slotEngineMetaData. Трабла там только в том, что приходит туда тэги уже в UTF-8, некоректно перекодированном. Поэтому, сначала надо конвертуть UTF-8 обратно в Latin1, а уже потом натравливать librcc. Впрочем, перекодировку UTF->Latin тоже можно сделать через librcc.

fluffy: хе. xine-artsplugin собирается с поддержкой таглиб.. Это таки не его проблема, а kio_smb. Там вообще нечто страшное на тему чтения метаданных.. :( И, похоже, именно туда и надо городить перекодировку

darksoft: Если честно, то фиг знает. Я дальше slotEngineMetaData копатся не стал. Но у меня есть сомнения, что это единственный способ :) 1. kio_smb вроде входит в kdebase, который я не ставил (у меня только kdelibs стоят и amarok). Но ID3 оно при этом как-то вытаскивает и показывает в кривой кодировке :) 2. А есть уверенность, что amarok через xine проигрывает mp3? У него вон еще Yauap backend есть, который через gstreamer работает. Вообщем, у меня есть подозрение, что Amarok это делает кучей разных способов в зависимости от сборки, конфига и фиг знает еще чего. Но это все частности. На самом деле Вы конечно правы, и kio_smb тоже стоило бы расковырять ;)



полная версия страницы