@izac

Парсинг EBML Void элемент?

Добрый день , хочу предупредить , что с такого рода заданиями сталкиваюсь в первые , потому могу спрашивать для кого-то очевидные вещи , прошу не пинать за это. Решил разпарсить webm файл , а именно проверить и получить Void элемент, на гитхабе нашёл пример (https://gist.github.com/mganeko/9ceee931ac5dde298e81 ) но как оказалось он не работает. Решил найти и исправить ошибку , в коде и самом алгоритме его работы я разобрался, но по всей видимости упускаю какую-то деталь из спецификации (https://matroska.org/technical/specs/index.html ) , проблема в том что данный код показывает что абсолютно во всех одинаковый Void элемент с одним и тем же значением , но например (EBML Inspect) говорит о другом. По алгоритму после нахождения 2 элементов верхнего уровня (EBML и Segment) , тут он работает корректно , указатель буфера находит байт [EC] (как и написано в спецификации ) но далее он берёт соседний байт (0x86) и по той же спецификации его размерность равна 1 байту и завершает работу , а на самом деле данные 0xEC идут как раз после этого байта(86) ещё 5 байт (например в EBML Inspect показывает 39 33 34 39 35 39 ). Вот и вопрос что я упускаю ?

P.S С++ тег добавил так как думаю что они сталкиваются чаще в повседневной работе с такого рода работой.
  • Вопрос задан
  • 190 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы