Re: OGGZ Seeking in Theora

Stefan Weber <[email protected]>
Newsgroups gmane.comp.multimedia.ogg.theora.general
Message-ID <[email protected]>
Dear all

Conrad, thank you for your inputs and your help so far. I will use and 
test the seek-rewrite branch as soon as possible.

I figured out that the Keyframe position in the granulepos is the NUMBER 
of the keyframe. When seeking with OGGZ, one has to supply the 
TIME-position (milliseconds) of the desired frame. So I made a short 
workaround by calculating the milliseconds position as follows:

    /ms = (granulepos >> shift) * 1000 / noFPS;
    /

Needless to say, this won't point me to the exact keyframe position. 
Probably this rough calculation is not exact enough?
What is the best approach to calculate the TIME-position for 
oggz-seeking out of a given frame number?

Kind regards,
Stefan


Am 08.06.2010 00:48, schrieb Conrad Parker:
> On 7 June 2010 20:02, Stefan Weber<[email protected]>  wrote:
>    
>> Hi Conrad
>>
>> Thanks for your reply to my request. I was able to eliminate some questions
>> now.
>> But I obviously still have some issues calculating the keyframe position.
>> This is what I do:
>>
>> ogg_int64_t granule = oggz_tell_granulepos(oggz);
>> int shift = oggz_get_granuleshift(oggz, sn);
>> int noOfFramesSinceKeyframe = granule>>shift;
>> int keyFramePosition = oldPosition - noOfFramesSinceKeyframe;
>> oggz_seek_units(oggz, keyFramePosition, SEEK_SET);
>>
>> oldPosition being the position where initially has been seeked to as from
>> oggz_tell_units().
>>
>> Seeking works, but not to keyframes :(  Am I getting wrong some units or
>> something?
>>      
> This line:
>
> | int noOfFramesSinceKeyframe = granule>>shift;
>
> calculates the position of the previous keyframe, not the offset since. See:
>
> http://wiki.xiph.org/GranulePosAndSeeking
>
> so you should be able to use that calculation directly for keyFramePosition.
>
>    
>>> If you're working with this now anyway, please try the seek-rewrite
>>> branch, from the repo at github: http://github.com/kfish/liboggz
>>>        
>> Whats different in this branch? Why would I use it?
>>      
> It has improvements in both efficiency and accuracy, but does not have
> as much real-world testing. If people test it and report good results
> then it will be released as the main version sooner.
>
> Conrad.
>

_______________________________________________
theora mailing list
[email protected]
http://lists.xiph.org/mailman/listinfo/theora
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.