Only keep the last valid granulepos we see when scanning the last
pages. It is possible that the last page that we inspect has a -1 granulepos, in
which case we want to keep the previous valid time instead.
Fixes #631703
if (pad->map.serialno == ogg_page_serialno (&og)) {
gint64 granulepos = ogg_page_granulepos (&og);
- last_granule = granulepos;
- last_pad = pad;
- if (last_granule != -1) {
+ if (granulepos != -1) {
+ last_granule = granulepos;
+ last_pad = pad;
done = TRUE;
}
break;