ogg_page op;
char *buf;
int ret, i, j, frames_per_chunk, ct_size, prev_pageno = 0;
- long long unsigned granule = 0, granule_skip = 0, num_frames = 0;
- int64_t prev_granule = 0;
+ long long unsigned granule_skip = 0, num_frames = 0;
+ int64_t granule = 0, prev_granule = 0;
ogg_sync_init(&oss);
ret = -E_OGG_SYNC;
/* count ogg pages and get duration of the file */
for (i = 0; ogg_sync_pageseek(&oss, &op) > 0; i++) {
int this_pageno = ogg_page_pageno(&op);
-
- granule = ogg_page_granulepos(&op);
+ int64_t this_granule = ogg_page_granulepos(&op);
+ if (this_granule >= 0)
+ granule = this_granule;
if (i > 0 && this_pageno != prev_pageno + 1) /* hole */
granule_skip += granule - prev_granule;
prev_pageno = this_pageno;