Мне нужно проанализировать все заголовки кадров в файле flac. В соответствии с форматом flac (https://xiph.org/flac/format.html), я нахожу последний блок метаданных, а затем ищу все байты в поисках кода синхронизации:
pos = self.first_frame
while pos < len(file):
if file[pos] == 255 and 251 >= file[pos+1] >= 248:
parse_frame_header(pos, file)
pos += self.frame_minsize
else: pos += 1
(я получил минимальный размер кадра из блока streaminfo)
Но, похоже, я получаю столкновения таким образом, потому что некоторые поля заголовка кадра недопустимы.
Итак, как правильно искать заголовки кадров в flac?