Добрый день. Я пытаюсь научиться программированию на C++. Т.к. решать абстрактные задачи без практического применения мне скучно, решил написать условно-полезную программу, которая высчитывает длину mp3 файла.
Руководствовался вот этой статьёй:
habrahabr.ru/post/103635
Согласно ей, каждый фрейм имеет вначале 11 синхронизационных бит, которые установлены в единицу. Моя программа ищет в файле значения 0xFFFA и 0xFFFB - именно такие значения может принимать первая половина заголовка фрейма. Однако, некоторые фреймы имеют заголовки 0xFFFA
0000. Если этот заголовок расшифровать, то "индекс битрейта" получается равен 0. По всем таблицам этому значению соответствует некий "свободный битрейт", что это значит, и с чем его едят?
Так же мне интересно, может ли данная комбинация (0xFFFA или 0xFFFB) не быть началом нового фрейма, а быть просто куском аудиоданных? Как тогда правильно находить начало фрейма?