Что на самом деле означает «hip: Не могу перемотать поток на 74 бита», выводимый mpglib? - PullRequest
0 голосов
/ 03 мая 2019

Я получаю пару сообщений об ошибках при использовании mpglib для декодирования данных MP3 с использованием библиотеки libmp3lame.

error (# 1): hip: Can'tперемотка потока на 74 бита!
ошибка (# 2): hip: проблема с битовым потоком, пропуск повторной синхронизации 10 байт ...

Примечание: в сообщении «повторная синхронизация» указано 10 байтов, которыена 74 бита округлено: (74 + 7) / 8 = 10.

Мой код декодера MP3 соответствует коду в инструменте внешнего интерфейса LAME (в основном frontend / lame_main.c и frontend /get_audio.c ).

Заголовок не генерирует ошибок, и я использую до 100 байт согласно инструменту внешнего интерфейса (см. функцию lame_decode_initfile() в файле get_audio.c.) Я даже пыталсячитать данные по одному байту за раз при обработке заголовка, чтобы увидеть, будет ли это иметь значение и ... не совсем.

Ошибка возникает, когда я начинаю передавать данные MP3 после анализа заголовка.

Есть идеи, почему я получаю эти сообщения об ошибках?

PS, когда я декодирую, используяХромой инструмент командной строки, я не получаю ошибку.

$ lame --verbose --decode test.mp3 test-lame.wav
input:  test.mp3  (44.1 kHz, 2 channels, MPEG-1 Layer III)
output: test-lame.wav  (16 bit, Microsoft WAVE)
skipping initial 529 samples (encoder+decoder delay)
Frame# 87426/88167  168 kbps   MS            

Хотя, кажется, есть расхождение между количеством кадров, но я думаю, это потому, что 88167 был оценочным, а не известным числом.образцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...