[opus] Ogg Format

Amit Ashara 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?

Regards
Amit

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.
>
> Regards
> Amit
>
> On Mon, May 9, 2016 at 2:02 PM, Timothy B. Terriberry <tterribe at xiph.org>
> wrote:
>
>> Amit Ashara wrote:
>>
>>> I am referring to the following file
>>>
>>>
>>> https://en.wikipedia.org/wiki/File:Sample_of_%22Another_Day_in_Paradise%22.ogg
>>>
>>
>> The file you are looking at is an Ogg *Vorbis* file. It's not Opus at all.
>>
>> The file at <
>> https://people.xiph.org/~giles/2012/opus/ehren-paper_lights-96.opus>
>> 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
>>> INFORMATION)
>>>
>>
>> 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
>> http://lists.xiph.org/mailman/listinfo/opus
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xiph.org/pipermail/opus/attachments/20160509/5298e3b1/attachment.html>


More information about the opus mailing list