From 641bb0342d8a319ea91fe66268c5f0e5d4435b00 Mon Sep 17 00:00:00 2001 From: Mike Smith Date: Fri, 22 Jul 2005 16:39:42 +0000 Subject: According to the Ogg specification, an ogg page that doesn't have any packets ending on it (which commonly happens with video keyframes, for instance) must have a granulepos of -1. libogg never implemented this correctly; this patch ensures it does. git-svn-id: http://svn.xiph.org/trunk/ogg@9598 0101bb08-14d6-0310-b084-bc0e0c8e3800 --- src/framing.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/framing.c b/src/framing.c index 8d9db18..73abfa4 100644 --- a/src/framing.c +++ b/src/framing.c @@ -336,7 +336,7 @@ int ogg_stream_flush(ogg_stream_state *os,ogg_page *og){ int maxvals=(os->lacing_fill>255?255:os->lacing_fill); int bytes=0; long acc=0; - ogg_int64_t granule_pos=os->granule_vals[0]; + ogg_int64_t granule_pos=-1; if(maxvals==0)return(0); @@ -357,7 +357,8 @@ int ogg_stream_flush(ogg_stream_state *os,ogg_page *og){ for(vals=0;vals4096)break; acc+=os->lacing_vals[vals]&0x0ff; - granule_pos=os->granule_vals[vals]; + if((os->lacing_vals[vals]&0xff)<255) + granule_pos=os->granule_vals[vals]; } } -- cgit v1.2.1