Jump to content

    
Sign in to follow this  
KnightIgor

Структура MP3 файлов

Recommended Posts

Кто нибудь пробовал запускать MP3 файлы моно. Не могу выйти из ступора. LPC2378 Helix, под IAR. С ассемблерными функциями PolyphaseStereo и PolyphaseMono работает нормально. Моно файл записан старым SoundForge. Плейер и декодер LibMad понимают его нормально. В Hilex до декодирования не доходит, не понимает формата.

Edited by shemet

Share this post


Link to post
Share on other sites
Кто нибудь пробовал запускать MP3 файлы моно. Не могу выйти из ступора. LPC2378 Helix, под IAR. С ассемблерными функциями PolyphaseStereo и PolyphaseMono работает нормально. Моно файл записан старым SoundForge. Плейер и декодер LibMad понимают его нормально. В Hilex до декодирования не доходит, не понимает формата.

Пробовал, работает стабильно с моно. Ассемблерных ф-ций не используем.

С этим декодером вроде есть проект для PC в MSVC. попробуйте там, должно все получиться.

Скорее всего косяк в портировании.

Share this post


Link to post
Share on other sites

Использую Helix с STM32F103VET6. Играю на внутренний 12-bit DAC. 320 кбит/с успевает наура. Polyphase на сях. есть мелкие вопросики:

1) Заглянул в либу - она аж june 2003. это у всех так?

2) Либа не понимает 32кГц - это нормально?

3) кодирование в mp3 (не на лету) делал кто-нибудь?

Share this post


Link to post
Share on other sites

Ivan Kuznetzov,

Я тут нашел, что мой helix плеер не все файлы ест, если есть возможность - опробуй этот:

2.mp3 (256kbit 44100)

пароль архива 222222 (иначе сервера не дают положить файл)

Есть подозрение что в декодере косяк...

Edited by kan35

Share this post


Link to post
Share on other sites

Разобрался.

Дело было файловой системе. EFSL пока мне не ясно почему, не позволяет считывать корректно блоками более 512 байт... При чем странно, что блоки по 1044 байта прочитывались нормально, а по 1045 байт - сбоило. В итоге, музыка в которой в mp3 padding bit = 0 и фрэймы всегда четные - работало отлично (320 кбит), а там, где выравнивание битрейта имело место (padding bit = 1), и размеры фрэймов варьировались от 1044 до 1045, то начинаетсбоит раз на 5-10 считываний :-).

3 дня жизни убиты.

Share this post


Link to post
Share on other sites

А вот и простой ответ на вопрос топикастера.

 

(Filesize * 8) / BitRate / 1000 -- длительность в секундах.

 

Употребив samplerate можно расчитать количество самплов. Тоже бывает полезно.

 

 

Share this post


Link to post
Share on other sites
А вот и простой ответ на вопрос топикастера.

(Filesize * 8) / BitRate / 1000 -- длительность в секундах.

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

Share this post


Link to post
Share on other sites

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

А кроме того, тэги и всякая дребедень занимают в процентах мало.

А для плеера сгодится ползунок отображать. Именно для этого - надо быстро.

 

А если картинок кто туда напихал - ну - чуть больший процент ошибки. Речь ведь не о продаже контента с миллисекундной тарификацией.

 

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

Share this post


Link to post
Share on other sites
А кроме того, тэги и всякая дребедень занимают в процентах мало.

А если картинок кто туда напихал - ну - чуть больший процент ошибки. Речь ведь не о продаже контента с миллисекундной тарификацией.

Короче, тяп-ляп, и готово?

 

Share this post


Link to post
Share on other sites
Короче, тяп-ляп, и готово?

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

винамп, например, делает так - считает статистику и постоянно корректирует показания

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this