Commit 4cbcba6b authored by Monty's avatar Monty

Well. *that* deadlock bug has been lurking in seeking for a long time.

A bigger chunksize + just the right annodex file finally reproduced it 
here.


svn path=/trunk/vorbis/; revision=13217
parent a583b490
...@@ -511,13 +511,12 @@ static void _prefetch_all_headers(OggVorbis_File *vf, ogg_int64_t dataoffset){ ...@@ -511,13 +511,12 @@ static void _prefetch_all_headers(OggVorbis_File *vf, ogg_int64_t dataoffset){
vorbis_comment_clear(vf->vc+i); vorbis_comment_clear(vf->vc+i);
break; break;
} }
if(ogg_page_serialno(&og)!=vf->serialnos[i]) if(ogg_page_serialno(&og)==vf->serialnos[i]){
continue;
if(ogg_page_granulepos(&og)!=-1){ if(ogg_page_granulepos(&og)!=-1){
vf->pcmlengths[i*2+1]=ogg_page_granulepos(&og)-vf->pcmlengths[i*2]; vf->pcmlengths[i*2+1]=ogg_page_granulepos(&og)-vf->pcmlengths[i*2];
break; break;
} }
}
vf->offset=ret; vf->offset=ret;
} }
} }
...@@ -1356,7 +1355,7 @@ int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos){ ...@@ -1356,7 +1355,7 @@ int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos){
result=_seek_helper(vf,bisect); result=_seek_helper(vf,bisect);
if(result) goto seek_error; if(result) goto seek_error;
}else{ }else{
end=result; end=bisect;
endtime=granulepos; endtime=granulepos;
break; break;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment