Changeset 760


Ignore:
Timestamp:
12/16/09 06:53:43 (4 years ago)
Author:
jeroen
Message:

added fix for http bitrate switch on LOAD, saved last bandwidth in a cookie, evened out FMS3.5 bandwidth callbacks and added rtmpt to the testing bitrate switches (can be throttles with Charles)

Files:
6 edited

Legend:

Unmodified
Added
Removed
  • testing/files/bitrates.xml

    r586 r760  
    3333                        <description>Bitrate switching for RTMP streaming is done on startup and with every seek and fullscreen switch.</description> 
    3434                        <media:group> 
    35                                 <media:content bitrate="1600" width="1080" url="http://hwcdn.net/i6s8g7u7/fms/dynamic/8Juv1MVa-67727.mp4" /> 
    36                                 <media:content bitrate="1200" width="720" url="http://hwcdn.net/i6s8g7u7/fms/dynamic/8Juv1MVa-485.mp4" /> 
    37                                 <media:content bitrate="800" width="480" url="http://hwcdn.net/i6s8g7u7/fms/dynamic/8Juv1MVa-484.mp4" /> 
    38                                 <media:content bitrate="400" width="320" url="http://hwcdn.net/i6s8g7u7/fms/dynamic/8Juv1MVa-483.mp4" /> 
     35                                <media:content bitrate="1600" width="1080" url="http://hwcdn.net/i6s8g7u7/fms/dynamic/8Juv1MVa-67727.mp4?dopproto=rtmpt" /> 
     36                                <media:content bitrate="1200" width="720" url="http://hwcdn.net/i6s8g7u7/fms/dynamic/8Juv1MVa-485.mp4?dopproto=rtmpt" /> 
     37                                <media:content bitrate="800" width="480" url="http://hwcdn.net/i6s8g7u7/fms/dynamic/8Juv1MVa-484.mp4?dopproto=rtmpt" /> 
     38                                <media:content bitrate="400" width="320" url="http://hwcdn.net/i6s8g7u7/fms/dynamic/8Juv1MVa-483.mp4?dopproto=rtmpt" /> 
    3939                                <media:thumbnail url="http://content.bitsontherun.com/thumbs/8Juv1MVa-480.jpg" /> 
    4040                        </media:group> 
     
    5454                        </media:group> 
    5555                        <jwplayer:type>rtmp</jwplayer:type> 
    56                         <jwplayer:streamer>rtmp://fms.12E5.edgecastcdn.net/0012E5</jwplayer:streamer> 
     56                        <jwplayer:streamer>rtmpt://fms.12E5.edgecastcdn.net/0012E5</jwplayer:streamer> 
    5757                </item> 
    5858 
  • trunk/as3/com/jeroenwijering/models/HTTPModel.as

    r739 r760  
    9191 
    9292 
    93         /** Bandwidth is checked every four seconds as long as there's loading. **/ 
     93        /** Bandwidth is checked every two seconds as long as there's loading. **/ 
    9494        private function getBandwidth(old:Number):void { 
    9595                var ldd:Number = stream.bytesLoaded; 
    9696                var bdw:Number = Math.round((ldd-old)*4/1000); 
    9797                if(ldd < stream.bytesTotal) { 
    98                         if(bdw > 0) { model.config['bandwidth'] = bdw; } 
     98                        if(bdw > 0) {  
     99                                model.config['bandwidth'] = bdw; 
     100                                Configger.saveCookie('bandwidth',bdw); 
     101                        } 
    99102                        if(bwswitch) { 
    100103                                bwswitch = false; 
    101104                                if(item['levels'] && getLevel() != model.config['level']) { 
    102                                         byteoffset = -1; 
    103                                         seek(position); 
     105                                        load(item); 
    104106                                        return; 
    105107                                } 
  • trunk/as3/com/jeroenwijering/models/RTMPModel.as

    r758 r760  
    3030        /** Is dynamic streaming possible. **/ 
    3131        private var dynamics:Boolean; 
     32        /** The currently playing RTMP stream. **/ 
     33        private var file:String; 
    3234        /** ID for the position interval. **/ 
    3335        private var interval:Number; 
     
    101103        /** Bandwidth checking for dynamic streaming. **/ 
    102104        private function getBandwidth():void { 
    103                 try {  
    104                         model.config['bandwidth'] = Math.round(stream.info.maxBytesPerSecond*8/1024); 
     105                try { 
     106                        var bdw:Number = Math.round(stream.info.maxBytesPerSecond*8/1024); 
    105107                } catch(err:Error) {  
    106108                        clearInterval(bwinterval); 
    107                 } 
     109                        return; 
     110                } 
     111                if(bdw < 100 || bdw > 99999) { 
     112                        return; 
     113                } else { 
     114                        bdw = Math.round(model.config['bandwidth']/2+bdw/2); 
     115                } 
     116                model.config['bandwidth'] = bdw; 
     117                Configger.saveCookie('bandwidth',bdw); 
    108118                if(item['levels'] && getLevel() != model.config['level']) { 
    109119                        swap(); 
     
    115125        private function getID(url:String):String { 
    116126                var ext:String = url.substr(-4); 
    117                 if(model.config['rtmp.prepend'] == false) { 
     127                if(url.indexOf(':') > -1) { 
    118128                        return url; 
    119129                } else if(ext == '.mp3') { 
     
    208218                if(dat.type == 'bandwidth') { 
    209219                        model.config['bandwidth'] = dat.bandwidth; 
     220                        Configger.saveCookie('bandwidth',dat.bandwidth); 
    210221                        setStream(); 
    211222                } 
     
    281292                clearInterval(interval); 
    282293                clearInterval(bwinterval); 
    283                 interval = setInterval(positionInterval,100); 
    284294                if(item['levels'] && getLevel() != model.config['level']) { 
    285295                        model.config['level'] = getLevel(); 
     
    299309                        stream.play(getID(item['file']),0,-1); 
    300310                } else { 
    301                         stream.play(getID(item['file'])); 
     311                        if(file != item['file']) { 
     312                                file = item['file']; 
     313                                stream.play(getID(item['file'])); 
     314                        } 
    302315                        if(timeoffset) { stream.seek(timeoffset); } 
    303316                        if(dynamics) { 
     
    306319                } 
    307320                streaming = true; 
     321                interval = setInterval(positionInterval,100); 
    308322        }; 
    309323 
     
    348362                                                setStream(); 
    349363                                        } 
    350                                         if(item['file'].substr(-4) == '.mp3') {  
     364                                        if(item['file'].substr(-4) == '.mp3' || item['file'].substr(0,4) == 'mp3:') {  
    351365                                                connection.call("getStreamLength",new Responder(streamlengthHandler),getID(item['file'])); 
    352366                                        } 
     
    401415                if(stream && stream.time) { stream.close(); } 
    402416                streaming = false; 
     417                file = undefined; 
    403418                connection.close(); 
    404419                clearInterval(interval); 
     
    428443                        model.config['level'] = getLevel(); 
    429444                        Logger.log('transition to level '+getLevel()+' initiated'); 
    430                         item['file'] = item['levels'][model.config['level']].url; 
     445                        item['file'] = file = item['levels'][model.config['level']].url; 
    431446                        var nso:NetStreamPlayOptions = new NetStreamPlayOptions(); 
    432447                        nso.streamName = getID(item['file']); 
  • trunk/as3/com/jeroenwijering/models/VideoModel.as

    r679 r760  
    6868                var bdw:Number = Math.round((ldd-old)*4/1000); 
    6969                if(ldd < stream.bytesTotal) { 
    70                         if(bdw > 0) { model.config['bandwidth'] = bdw; } 
     70                        if(bdw > 0) {  
     71                                model.config['bandwidth'] = bdw; 
     72                                Configger.saveCookie('bandwidth',bdw); 
     73                        } 
    7174                        if(bwswitch) { 
    7275                                bwswitch = false; 
  • trunk/as3/com/jeroenwijering/player/Player.as

    r758 r760  
    4747 
    4848                autostart:false, 
    49                 bandwidth:5000, 
     49                bandwidth:1500, 
    5050                bufferlength:1, 
    5151                displayclick:'play', 
Note: See TracChangeset for help on using the changeset viewer.