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