Перейти к содержанию
    

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

Изменено пользователем shemet

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ivan Kuznetzov,

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

2.mp3 (256kbit 44100)

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

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

Изменено пользователем kan35

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разобрался.

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Покажите пожалуйста, где исходники хеликса под ARM Cortex-M скачать?

 

UPD Спасибо, уже сам нашёл:)

Изменено пользователем RA3WUM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...