/*****************************************************
*
* Copyright 2009 Akamai Technologies, Inc. All Rights Reserved.
*
*****************************************************
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific language governing rights and limitations
* under the License.
*
*
* The Initial Developer of the Original Code is Akamai Technologies, Inc.
* Portions created by Akamai Technologies, Inc. are Copyright (C) 2009 Akamai
* Technologies, Inc. All Rights Reserved.
*
*****************************************************/
package org.osmf.netmocker
{
import flash.net.NetStream;
import org.osmf.net.DynamicStreamingResource;
import org.osmf.net.NetStreamMetricsBase;
public class MockNetStreamMetricsBase extends NetStreamMetricsBase
{
public function MockNetStreamMetricsBase(ns:NetStream)
{
super(ns);
_frameDropRate = 0;
_reachedTargetBufferFull = false;
_lastFrameDropCounter = 0;
_lastFrameDropValue = 0;
_maxFrameRate = 0;
_optimizeForLiveBandwidthEstimate = false;
_avgMaxBitrateArray = new Array();
_avgDroppedFrameRateArray = new Array();
_enabled = true;
_targetBufferTime = 0;
_currentIndex = 0;
_bufferLength = 0;
_bufferTime = 0.1;
_avgMaxBitrate = 0;
_ns = ns;
}
public function get reachedTargetBufferFull():Boolean
{
return this._reachedTargetBufferFull;
}
public function set reachedTargetBufferFull(value:Boolean):void
{
this._reachedTargetBufferFull = value;
}
public function get expectedFPS():Number
{
return this._maxFrameRate;
}
public function set maxFrameRate(value:Number):void
{
this._maxFrameRate = value;
}
override public function get droppedFPS():Number
{
return this._frameDropRate;
}
public function set frameDropRate(value:Number):void
{
this._frameDropRate = value;
}
override public function get averageDroppedFPS():Number
{
return this._avgDroppedFrameRate;
}
public function set averageDroppedFPS(value:Number):void
{
this._avgDroppedFrameRate = value;
}
public function get maxBandwidth():Number
{
return this._lastMaxBitrate;
}
public function set lastMaxBitrate(value:Number):void
{
this._lastMaxBitrate = value;
}
public function get averageMaxBandwidth():Number
{
return this._avgMaxBitrate;
}
public function set avgMaxBitrate(value:Number):void
{
this._avgMaxBitrate = value;
}
override public function get currentIndex():int
{
return this._currentIndex;
}
override public function set currentIndex(value:int):void
{
this._currentIndex = value;
}
public function get maxIndex():int
{
return _dsResource.streamItems.length - 1;
}
public function get dynamicStreamingResource():DynamicStreamingResource
{
return this._dsResource;
}
public function set dynamicStreamingResource(value:DynamicStreamingResource):void
{
this._dsResource = value;
}
public function get bufferLength():Number
{
return this._bufferLength;
}
public function set bufferLength(value:Number):void
{
this._bufferLength = value;
}
public function get bufferTime():Number
{
return this._bufferTime;
}
public function set bufferTime(value:Number):void
{
this._bufferTime = value;
}
override public function get netStream():NetStream
{
return _ns;
}
public function get optimizeForLiveBandwidthEstimate():Boolean
{
return _optimizeForLiveBandwidthEstimate;
}
public function set optimizeForLiveBandwidthEstimate(value:Boolean):void
{
_optimizeForLiveBandwidthEstimate = value;
}
private var _reachedTargetBufferFull:Boolean;
private var _currentBufferSize:Number;
private var _maxBufferSize:Number;
private var _lastMaxBitrate:Number;
private var _avgMaxBitrateArray:Array;
private var _avgMaxBitrate:Number;
private var _avgDroppedFrameRateArray:Array;
private var _avgDroppedFrameRate:Number;
private var _frameDropRate:Number;
private var _lastFrameDropValue:Number;
private var _lastFrameDropCounter:Number;
private var _maxFrameRate:Number
private var _currentIndex:uint;
private var _dsResource:DynamicStreamingResource;
private var _targetBufferTime:Number;
private var _enabled:Boolean;
private var _optimizeForLiveBandwidthEstimate:Boolean;
private var _bufferLength:Number;
private var _bufferTime:Number;
private var _ns:NetStream;
}
}