Displaying 3 results from an estimated 3 matches for "theora_granule_frame".
2007 Apr 12
0
Seek problem 1 - can't find frame number
...nly about 4 jumps to
find a frame that is acceptable (which means it's before the wanted frame,
but not too much). But unfortunately I have have a lot of problems figuring
out the frame number after each jump.
When the decoder is correctly initialized, I can get the frame number by
calling theora_granule_frame(theora_state *,ogg_int64_t). But what do I have
to do while doing the jumps to find this?
This is what the code currently does just after seeking to a new place in the
file:
// Clear the current ogg buffers, find a new page, and fill the buffers again
int result;
ogg_sync_reset(&sync);
whil...
2004 Dec 20
0
libtheora 1.0 alpha 4 release
...ra I Format Specification
* API documentation generated from theora.h with Doxygen
* fix a double-update bug in the motion analysis
* apply the loop filter before filling motion vector border in the reference
frame
* new utility functions: theora_packet_isheader(), theora_packet_iskeyframe(),
and theora_granule_frame()
* optional support for building without floating point
* optional support for building without encode support
* various build and packaging fixes
* pkg-config support
* SymbianOS build support
We still plan to make incompatible api changes before the first beta release,
but this new alpha provi...
2007 Apr 12
1
Seek problem 2 - reinitialization of the decoder
...etout(&tstream, &packet);
if (result == 0) {
// Not enough data... load some more pages!
bufferData();
} else if (result > 0) {
theora_decode_packetin(&decoder, &packet);
int videoBufferTime = theora_granule_time(&decoder, decoder.granulepos);
int frameNo = theora_granule_frame(&decoder, decoder.granulepos);
if (theora_packet_iskeyframe(&packet) == 1) {
...
The problem is that the time and framenumber are not correct - in fact they
are offset with something that's either completely random or influenced by
whatever state the decoder had before the...