| 887 | | return oggz_auto_codec_ident[content].calculator(now, stream, op); |
|---|
| 888 | | } else { |
|---|
| 889 | | return now; |
|---|
| 890 | | } |
|---|
| | 888 | ogg_int64_t r = oggz_auto_codec_ident[content].calculator(now, stream, op); |
|---|
| | 889 | /* |
|---|
| | 890 | * this will cause a hiccough at the end of the first data page if there are |
|---|
| | 891 | * more than one packets on that page. In the absence of pervasive access |
|---|
| | 892 | * to the packets on a page, though, it might have to do. |
|---|
| | 893 | * |
|---|
| | 894 | * Why a hiccough? Because there's no granulepos attached to any packets |
|---|
| | 895 | * except for the last on a page. If the stream doesn't start at gp 0 (a |
|---|
| | 896 | * very common occurrence) then we don't realise until we get to the end of |
|---|
| | 897 | * the page. By that time we've already junked the first packets on the |
|---|
| | 898 | * page. |
|---|
| | 899 | */ |
|---|
| | 900 | if (now != -1LL) { |
|---|
| | 901 | return op->granulepos; |
|---|
| | 902 | } |
|---|
| | 903 | return r; |
|---|
| | 904 | } |
|---|
| | 905 | |
|---|
| | 906 | return now; |
|---|
| | 907 | |
|---|