Index: libavformat/oggdec.c =================================================================== --- libavformat/oggdec.c (revision 19439) +++ libavformat/oggdec.c (working copy) @@ -469,6 +469,18 @@ ogg->size = size; ogg_restore (s, 0); + ogg_save (s); + url_fseek (s->pb, 0, SEEK_SET); + while (!ogg_read_page (s, &i)){ + if (ogg->streams[i].granule != -1 && ogg->streams[i].granule != 0 && + idx == i) { + s->streams[idx]->duration -= + ogg_gptopts (s, idx, ogg->streams[idx].granule); + break; + } + } + ogg_restore (s, 0); + return 0; }