Bug 19681

Summary: Не играет некоторые mp3-файлы
Product: Sisyphus Reporter: Evgenii Terechkov <evg>
Component: cmusAssignee: Evgenii Terechkov <evg>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P5 CC: evg
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
Problematic mp3 file (cutoff)
none
Полный проблемный файл
none
Полный проблемный файл без вырезания тегов
none
Broken xing vbr toc recognition patch none

Description Evgenii Terechkov 2009-04-19 14:52:52 MSD
Created attachment 3469 [details]
Problematic mp3 file (cutoff)

Некоторые mp3-файлы нельзя добавить в плейлист/библиотеку и проиграть из файлового браузера с сообщением об ошибке:

Error: Couldn't get file information for /home/evg/xaa.mp3

Файл, на котором 100% воспроизводится, прикладываю.
Comment 1 Eugene Vlasov 2009-04-20 16:08:49 MSD
$ file xaa.mp3   
xaa.mp3: data

У этого файла отсутствует нормальный заголовок mp3-файла. Не уверен, что буду писать в апстрим о поддержке такого рода "сломанных" файлов, тем более что апстрим сейчас скорее мёрв (а те, кто еще живы - работают над cmus-unofficial, в основном там исправления ошибок). Можете написать на cmus-devel@lists.sourceforge.net самостоятельно. В любом случае, этот баг - enhacement.
Comment 2 Evgenii Terechkov 2009-04-20 17:02:03 MSD
Как видно из названия, это файл получен из оригинального mp3 с помощью программы "split", просто для экономии трафика. Мне нетрудно привести любой из проблемных файлов целиком (1-5Mb).Нужно?

Лично я не считаю, что баг о невозможности играть заявленный тип файлов, в то время все остальные установленные плееры файл играют без проблем, это Enhancement. Но спорить не буду.
Comment 3 Evgenii Terechkov 2009-04-20 17:06:29 MSD
Created attachment 3470 [details]
Полный проблемный файл

Приложу на всякий случай.
Comment 4 Eugene Vlasov 2009-04-20 20:56:09 MSD
Проблема тут не в том, что не поддерживается "заявленный тип файлов", а в том, что конкретно у этого файла нарушена структура - отсутствует стандартный заголовок mp3-файла. И то, что какой-то другой плеер может такие файлы воспроизводить тут не показатель - значит, поддержка файлов с нарушенной структурой была запрограммирована в таком плеере специально, или была использована библиотека, которая это умеет (а libmad, который используется в cmus, вероятно, нет).
В общем, patches are welcome.
Comment 5 Evgenii Terechkov 2009-04-21 03:37:58 MSD
Created attachment 3471 [details]
Полный проблемный файл без вырезания тегов

Да, я упустил что после обрезания тегов файл переходит в разряд data.

Но у него вроде бы есть какой-то вменяемый заголовок, если не вычищать теги:

evg@evg ~ $ file test2.mp3
test2.mp3: Audio file with ID3 version 2.3.0 tag, MP3 encoding

libmad такие файлы как раз умеет, т.к. mpg321 с ним слинкованный также играет файлы без проблем (и теги показывает, и с вырезанными тегами играет). Не думаю, что дело в нём.
Comment 6 Eugene Vlasov 2009-04-24 01:19:11 MSD
Я понял в чем проблема, у этого файла присутствует Xing-header и этот Xing-header содержит явную чепуху вместо реальных данных. Проблема cmus (и некоторых других программ) в том, что они верят тому, что там написано и пытаются вычислить параметры файла исходя из этого заголовка. Если забить нолями первый фрейм файла (который начинается с FF FB, содержит "Xing" и заканчивается перед следующим FF FB) - cmus воспроизведет его без проблем.

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

Кстати, вот здесь:
http://empeg-hijack.sourceforge.net/mp3tool.html
лежит небольшая утилитка, которая позволяет такие заголовки исправлять, она работает, проверено.
Comment 7 Evgenii Terechkov 2009-04-24 03:18:51 MSD
Спасибо за информацию. Тоже попробую посмотреть. Возможно, будет патч.
Comment 8 Evgenii Terechkov 2009-04-25 11:28:43 MSD
Created attachment 3483 [details]
Broken xing vbr toc recognition patch

У меня работает с этим патчем.
Comment 9 Evgenii Terechkov 2009-05-22 05:23:00 MSD
ping
Comment 10 Eugene Vlasov 2009-05-23 10:36:55 MSD
Прошу прощения, был сильно занят, не было времени внимательно посмотреть. Думаю, на следующей неделе будет свободное время, приложу патч в сизифовскую сборку.
Comment 11 Eugene Vlasov 2009-06-02 12:37:25 MSD
Приложил патч в git, но пока не проверял (оригинальный cmus остался у меня на одном компьютере, но на нем я только завтра смогу поэкспериментировать). В cmus-unofficial тоже без проблем приложился и вроде даже всё работает.
Comment 12 Evgenii Terechkov 2009-07-18 18:40:56 MSD
2.2.0-alt4 работает, проверено.
Comment 13 Evgenii Terechkov 2009-07-18 18:41:30 MSD
Спасибо!