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