[theora-dev] further debugging of my ogg/theora decoder
salsaman at gmail.com
Tue Nov 18 08:06:48 PST 2008
On Tue, Nov 18, 2008 at 12:47 PM, salsaman <salsaman at gmail.com> wrote:
> On Tue, Nov 18, 2008 at 7:28 AM, Ralph Giles <giles at xiph.org> wrote:
>> On Tue, Nov 18, 2008 at 2:21 AM, salsaman <salsaman at gmail.com> wrote:
>> > Right, that is what I would expect. I think I will write an ogg file
>> > that checks all granulepos and keyframes to make sure the problem is not
>> > my test files. Some of the files were created with older versions of the
>> > encoder. For example I have one file where I need to subtract 2 from all
>> > keyframe values in order for it to decode properly.
>> Hmm. Some of the alpha encoder releases recorded the frame index, not
>> the frame count. Such stream declare their version to be 3.2.0 instead
>> of 3.2.1 as in the current theora spec.
> Yes, I think the file
> is like that (0 based keyframes).
> I am seeing other oddities in the file (I think) maybe somebody can confirm
> or deny this:
> there is a granulepos 68516 in the file, which is (1070,1106) zero based.
> If I begin decoding from that page, I get (2 pages) [68516, 68518] 1107 (?),
> (2 pages) [68518, 70976] 1108 (?) (keyframe) (2 pages) 1109 (?).
> However, the keyframe should be 1109 (zero based) according to later gpos.
> I think what is messing me up is that there are 2 granulepos in a row with
> the same value. If I start from the second page with gpos of x, then I miss
> a page (because I should be starting on the first occurance of x).
> Surely the second page should have granulepos of -1 ? Is this another known
> issue ?
> Is this something that ogg_page_packetsout() could solve ?
Yes, in fact I can now answer that myself - checking for ogg_page_packets()
> 0 does indeed provide a workaround for this particular problem.
Now I need to know how to get the encoder version number from the stream.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the theora-dev