Ignore:
Timestamp:
08/05/08 12:27:40 (5 years ago)
Author:
jeroen
Message:

h264 http fix: always get the keyframe BEFORE the seek

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/as3/com/jeroenwijering/models/HTTPModel.as

    r53 r55  
    7979        /** Return a keyframe byteoffset or timeoffset. **/ 
    8080        private function getOffset(pos:Number,tme:Boolean=false):Number { 
    81                 var off = 0; 
    82                 if(keyframes === null) { 
    83                         return off; 
    84                 } 
    8581                for (var i=0; i< keyframes.times.length; i++) { 
    86                         if((keyframes.times[i] <= pos || i ==0) && (keyframes.times[i+1] >= pos || !keyframes.times[i+1])) { 
     82                        if((keyframes.times[i] <= pos) && (keyframes.times[i+1] >= pos || !keyframes.times[i+1])) { 
    8783                                if(tme == true) { 
    88                                         off = keyframes.times[i]; 
     84                                        return keyframes.times[i]; 
    8985                                } else {  
    90                                         off = keyframes.filepositions[i]; 
     86                                        return keyframes.filepositions[i]; 
    9187                                } 
    92                                 break; 
    93                         } 
    94                 } 
    95                 return off; 
     88                        } 
     89                } 
     90                return 0; 
    9691        }; 
    9792 
     
    169164                                keyframes.filepositions = new Array(); 
    170165                                for (var j in dat.seekpoints) { 
    171                                         keyframes.times.push(Number(dat.seekpoints[j]['time'])); 
    172                                         keyframes.filepositions.push(Number(dat.seekpoints[j]['offset'])); 
     166                                        keyframes.times[j] = Number(dat.seekpoints[j]['time']); 
     167                                        keyframes.filepositions[j] = Number(dat.seekpoints[j]['offset']); 
    173168                                } 
    174169                        } else if(dat.keyframes) { 
    175170                                keyframes = dat.keyframes; 
    176                         } 
    177                         if(keyframes) { 
    178                                 delete dat.seekpoints; 
    179                                 dat.keyframes = ''; 
    180                                 for(var k=0; k<keyframes.times.length; k++) { 
    181                                         dat['keyframes'] += ','+keyframes.times[k]+':'+keyframes.filepositions[k]; 
    182                                 } 
    183171                        } 
    184172                        if(model.playlist[model.config['item']]['start'] > 0) { 
Note: See TracChangeset for help on using the changeset viewer.