Re: further debugging of my ogg/theora decoder

"Ralph Giles" <[email protected]>
Newsgroups gmane.comp.multimedia.ogg.theora.devel
Message-ID <[email protected]>
On Sun, Nov 16, 2008 at 5:54 PM, salsaman <[email protected]> wrote:

> I am finding something very strange in my test ogg files.
>
> For example: I have a shift of 64, and I get a granulepos of 5130.
>
> 5130 == 80*64 + 10
>
> which suggests that frame 80 is a keyframe.

That's right.

> However, if I start decoding from the beginning, the 81st frame is a
> keyframe.

Really? Someone has an off-by-one somewhere.

> This suggests that the first frame should be 0. But if I try to search for
> frame 0, it fails.

Correct. The granulepos is derived from the count of decodeable
frames. So the granulepos is:

first frame 1:0 (keyframe)
second frame 1:1
third frame 1:2
 ...
80th frame 80:0 (keyframe)
81st frame 80:1
 ...
90th frame 80:10

> Any suggestions ?

Are you counting frames from 0 instead of 1 somewhere? I try to think
of 'frame index' which starts from zero and 'frame count' which starts
from 1, similar to the normal index and bounds in C 'for' loops. The
granulepos records the count, not the index.

FWIW,
 -r
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.