[opus] Ogg Format
ashara.amit at gmail.com
Mon May 9 20:57:13 UTC 2016
Hello Tim, Jean-Marc
Thanks for the inputs and the corrections. I think I understand the Ogg
Opus better now and it all makes sense. There are two questions that I am
left to ask.
1. Since the stream I am working with is a mono channel, what should be the
advised page_segments to use. I am using an embedded system so keeping the
flash and SRAM usage are vital for the development.
2. In the OpusTag the is the libopus a mandatory field?
On Mon, May 9, 2016 at 2:11 PM, Amit Ashara <ashara.amit at gmail.com> wrote:
> Hello Tim, Jean-Marc
> Thanks for the clarification. Let me study the sample OPUS file and see if
> my understanding is now clarified.
> On Mon, May 9, 2016 at 2:02 PM, Timothy B. Terriberry <tterribe at xiph.org>
>> Amit Ashara wrote:
>>> I am referring to the following file
>> The file you are looking at is an Ogg *Vorbis* file. It's not Opus at all.
>> The file at <
>> linked from <https://www.opus-codec.org/examples/> would be an example
>> of an Ogg Opus file.
>> I opened the file in a HEX editor. I do not see the string OpusHead in
>>> the packet. It starts with Oggs. Also checking the occurrence of Oggs, I
>>> see that the first packet has BOS, the next all (except last) have 00
>>> (which is not defined in the RFC as continuation) and last one has EOS.
>> The header_type byte is a set of bit flags. 00 means none of them are
>> set, in which case the "unset: ..." language of each flag from RFC 3533
>> applies. These pages are not continued pages.
>> The first packet in this ogg file makes sense.
>>> The second packet (I am taking a part of it)
>> You mean page, not packet. They are different.
>> 4f 67 67 53 = Oggs (THIS IS OK)
>>> 00 = Version (THIS IS OK)
>>> 00 = Header Type (WHY IS THIS 0)??
>> See above.
>> 00 00 00 00 00 00 00 00 = Granule Position (THERE IS NO SPECIFIC
>> This is the correct value to use for header packets.
>> 7e 46 00 00 = Bit Stream Serial Number (THIS IS OK)
>>> 01 00 00 00 = Page Sequence Number (THIS IS OK)
>>> 89 ab 50 5e = Checksum (THIS IS OK)
>>> 10 = Page Segments is 16, so there would be 16 segments after this
>>> 2d ff ff ff ff ff ff ff ff ff ff ff ff ff ff c1 = Each Segment Size (IS
>>> THIS CORRECT)??
>>> 03 76 6f = First 3 data from Segment 0 indicated by the size 2d (IS THIS
>>> CORRECT INTERPRETATION)??
>> These are both correct.
>> opus mailing list
>> opus at xiph.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the opus