Для написания моего собственного класса ogg-container (не используя libogg), я пытаюсь понять необходимый формат заголовка. Согласно spec, в байте 27 потока (начиная отсчет в 0) начинается «segment_table (содержащая значения шнуровки пакета)». Это красный отмеченный байт 13
. Что касается данных Opus, которые я хочу включить, данные Opus must начинаются с OpusHead (4F 70 75 73)
с самого начала. Почему он не начинается с позиции 27, где находится красный 13
? A 13
является символом «управления устройством 3», который не встречается в спецификации Ogg или в спецификации Opus.Понимание спецификации формата заголовка ogg
EDIT: Я нашел this link, который описывает спецификацию немного. Там становится ясно (что не из первой ссылки imho), что 13
(байт 27) является размером следующего сегмента.
Ваш ответ основан на чтении спецификации? Поскольку спецификация говорит, что байт 26 должен быть '' page_segments "," Количество записей сегмента, которые будут отображаться в таблице сегментов. [...] "'. Так почему же это теперь байт 27? – user2366975
Да, я прочитал спецификацию, которая не очень ясна. Я читал это, говоря, что этот байт - это длина. –
Как? В нем говорится: «Байт 26: page_segments». Почему вы думаете, что это должен быть байт 27? Они начинают отсчет в 0. – user2366975