Skip to content

Instantly share code, notes, and snippets.

@bvibber
Created October 24, 2014 19:19
Show Gist options
  • Save bvibber/16a65e610fc25ac53bb9 to your computer and use it in GitHub Desktop.
Save bvibber/16a65e610fc25ac53bb9 to your computer and use it in GitHub Desktop.
/* theora is one in, one out... */
if (ogg_stream_packetpeek(&theoraStreamState, &videoPacket) > 0) {
videobufReady = 1;
videobufGranulepos = videoPacket.granulepos;
videobufTime = th_granule_time(theoraDecoderContext, videobufGranulepos);
keyframeGranulepos = (videobufGranulepos >> theoraInfo.keyframe_granule_shift) << theoraInfo.keyframe_granule_shift;
keyframeTime = th_granule_time(theoraDecoderContext, keyframeGranulepos);
printf("granulepos: %llx; time %lf; offset %d\n",(unsigned long long)videobufGranulepos, (double)videobufTime, (int)theoraInfo.keyframe_granule_shift);
OgvJsOutputFrameReady(videobufTime, keyframeTime);
} else {
needData = 1;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment