コード例 #1
0
static int
read_packet (OGGZ * oggz, oggz_packet * zp, long serialno, void * user_data)
{
  ogg_packet * op = &zp->op;
  int granuleshift;

  granuleshift = oggz_get_granuleshift (oggz, serialno);

  printf ("%010lu: op->granulepos: ", serialno);
  print_granulepos (op->granulepos, granuleshift);
  printf ("  oggz_tell_granulepos(): ");
  print_granulepos (oggz_tell_granulepos (oggz), granuleshift);

  if (op->b_o_s) {
    printf (" *** bos");
  }

  if (op->e_o_s) {
    got_an_eos = 1;
    printf (" *** eos");
  }

  printf ("\n");

  return 0;
}
コード例 #2
0
static float calc_keyframe_timestamp(oggz_packet *packet, long serialno)
{
	ogg_int64_t granulepos = oggz_tell_granulepos(oggz);

	int granuleshift = oggz_get_granuleshift(oggz, serialno);

	ogg_int64_t granulerate_n = 0;
	ogg_int64_t granulerate_d = 0;
	oggz_get_granulerate(oggz, serialno, &granulerate_n, &granulerate_d);

	return (float)(granulepos >> granuleshift) * (float)granulerate_d / (float)granulerate_n;
}
コード例 #3
0
ファイル: oggz-validate.c プロジェクト: brion/liboggz
static ogg_int64_t
gp_to_granule (OGGZ * oggz, long serialno, ogg_int64_t granulepos)
{
  int granuleshift;
  ogg_int64_t iframe, pframe, granule;
  OggzStreamContent content;

  granuleshift = oggz_get_granuleshift (oggz, serialno);
  content = oggz_stream_get_content (oggz, serialno);

  if (content == OGGZ_CONTENT_VP8) {
    granule = granulepos >> granuleshift;
  } else {