Lines Matching full:link
56 #define STREAMSET 3 /* serialno and link set, but not to current link */
57 #define LINKSET 4 /* serialno and link set to current link */
201 /* finds each bitstream link one at a time using a bisection search
203 Recurses for each link so it can alloc the link storage after
348 static int _set_link_number(OggVorbis_File *vf,int link){
349 if(link != vf->current_link) _decode_clear(vf);
351 _seek_helper(vf,vf->offsets[link]);
352 ogg_stream_reset_serialno(vf->os,vf->serialnos[link]);
353 vf->current_serialno=vf->serialnos[link];
354 vf->current_link=link;
360 static int _set_link_number_preserve_pos(OggVorbis_File *vf,int link){
362 int ret=_set_link_number(vf,link);
365 if(pos<vf->offsets[link] || pos>=vf->offsets[link+1])
454 /* get the PCM length of this link. To do this,
509 /* we're partially open and have a first link header state in
591 int link=(vf->seekable?vf->current_link:0);
607 if(vf->seekable && link>0)
608 granulepos-=vf->pcmlengths[link*2];
617 for(i=0;i<link;i++)
672 int link,ret;
681 for(link=0;link<vf->links;link++)
682 if(vf->serialnos[link]==vf->current_serialno)break;
683 if(link==vf->links){
689 vf->current_link=link;
1011 the case we're in the same link. Restart the decode lapping, and
1064 int i,link=vf->current_link;
1065 ogg_int64_t granulepos=op.granulepos-vf->pcmlengths[link*2];
1068 for(i=0;i<link;i++)
1091 /* did we just grab a page from other than current link? */
1099 int link;
1102 for(link=0;link<vf->links;link++)
1103 link]==vf->current_serialno)break;
1104 if(link==vf->links)
1108 /* need to initialize machine to this link */
1110 int ret=_set_link_number_preserve_pos(vf,link);
1154 int link=-1;
1165 for(link=vf->links-1;link>=0;link--){
1166 total-=vf->pcmlengths[link*2+1];
1171 if(link!=vf->current_link){
1172 int ret=_set_link_number(vf,link);
1178 ogg_stream_reset_serialno(vf->os,vf->serialnos[link]);
1188 ogg_int64_t end=vf->offsets[link+1];
1189 ogg_int64_t begin=vf->offsets[link];
1190 ogg_int64_t begintime = vf->pcmlengths[link*2];
1191 ogg_int64_t endtime = vf->pcmlengths[link*2+1]+begintime;
1382 int link,ret;
1385 for(link=0;link<vf->links;link++)
1386 if(vf->serialnos[link]==vf->current_serialno)break;
1387 if(link==vf->links){
1394 vf->current_link=link;
1432 int link=-1;
1441 for(link=vf->links-1;link>=0;link--){
1442 pcm_total-=vf->pcmlengths[link*2+1];
1443 time_total-=ov_time_total(vf,link);
1449 int ret=_set_link_number(vf,link);
1462 int link=-1;
1471 for(link=vf->links-1;link>=0;link--){
1472 pcm_total-=vf->pcmlengths[link*2+1];
1473 time_total-=ov_time_total(vf,link);
1479 int ret=_set_link_number(vf,link);
1502 int link=0;
1512 for(link=vf->links-1;link>=0;link--){
1513 pcm_total-=vf->pcmlengths[link*2+1];
1514 time_total-=ov_time_total(vf,link);
1522 /* link: -1) return the vorbis_info struct for the bitstream section
1530 vorbis_info *ov_info(OggVorbis_File *vf,int link){
1532 if(link>=vf->links)return NULL;
1533 if(link>=0){
1534 int ret=_set_link_number_preserve_pos(vf,link);
1542 vorbis_comment *ov_comment(OggVorbis_File *vf,int link){
1544 if(link>=vf->links)return NULL;
1545 if(link>=0){
1546 int ret=_set_link_number_preserve_pos(vf,link);