ActionScript® 3.0 Reference for the Adobe® Flash® Platform
Home  |  Show Packages and Classes List |  Packages  |  Classes  |  What's New  |  Index  |  Appendixes
org.osmf.net.httpstreaming 

DefaultHTTPStreamingSwitchManager  - AS3 OSMF

Packageorg.osmf.net.httpstreaming
Classpublic class DefaultHTTPStreamingSwitchManager
InheritanceDefaultHTTPStreamingSwitchManager Inheritance RuleSwitchManagerBase Inheritance NetStreamSwitchManagerBase Inheritance EventDispatcher Inheritance Object

Language Version: ActionScript 3.0
Product Version: OSMF 2.0
Runtime Versions: Flash Player 10, AIR 1.5

Default implementation of SwitchManagerBase

Related API Elements

org.osmf.net.abr.MetricBase
org.osmf.net.abr.RuleBase


Public Properties
 PropertyDefined By
 InheritedactualIndex : int
[read-only] The index of the currently downloading quality level
RuleSwitchManagerBase
 InheritedautoSwitch : Boolean
[override]
RuleSwitchManagerBase
  climbFactor : Number
A factor to be applied when switching up.
DefaultHTTPStreamingSwitchManager
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
 InheritedcurrentIndex : uint
[override] [read-only]
RuleSwitchManagerBase
 InheritedemergencyRules : Vector.<RuleBase>
[read-only] Array of normal rules to be used in the algorithm.
RuleSwitchManagerBase
 InheritedmaxAllowedIndex : int
The highest stream index that the switching manager is allowed to switch to.
NetStreamSwitchManagerBase
  maxDownSwitchLimit : int
The maximum difference between the indices of the old and new quality level when switching down.
DefaultHTTPStreamingSwitchManager
  maxReliabilityRecordSize : uint
The maximum length of the reliability record (how many switches to remember)
DefaultHTTPStreamingSwitchManager
  maxUpSwitchLimit : int
The maximum difference between the indices of the old and new quality level when switching up.
DefaultHTTPStreamingSwitchManager
 InheritedmetricRepository : MetricRepository
[read-only] The metric repository responsible with providing the metrics
RuleSwitchManagerBase
  minReliability : Number
The minimum reliability for a quality level to be used.
DefaultHTTPStreamingSwitchManager
  minReliabilityRecordSize : uint
The minimum length of the reliability record below which reliability is not an issue
DefaultHTTPStreamingSwitchManager
  normalRules : Vector.<RuleBase>
[read-only] Array of normal rules to be used in the algorithm.
DefaultHTTPStreamingSwitchManager
  normalRuleWeights : Vector.<Number>
The weights of the normal rules (their importance in the algorithm). Valid values must obey the following rules: same number of weights as there are rules all rules must be equal or greater than zero at least one weight must be non-zero
DefaultHTTPStreamingSwitchManager
Public Methods
 MethodDefined By
  
DefaultHTTPStreamingSwitchManager(notifier:EventDispatcher, switcher:NetStreamSwitcher, metricRepository:MetricRepository, emergencyRules:Vector.<RuleBase> = null, autoSwitch:Boolean = true, normalRules:Vector.<RuleBase> = null, normalRuleWeights:Vector.<Number> = null, minReliability:Number = 0.85, minReliabilityRecordSize:uint = 5, maxReliabilityRecordSize:uint = 30, climbFactor:Number = 0.9, maxUpSwitchLimit:int = 1, maxDownSwitchLimit:int = 2)
Constructor.
DefaultHTTPStreamingSwitchManager
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event.
EventDispatcher
 Inherited
Dispatches an event into the event flow.
EventDispatcher
  
The current reliability of the specified index.
DefaultHTTPStreamingSwitchManager
  
[override] Returns an index that satisfies the maxBitrate constraint
DefaultHTTPStreamingSwitchManager
  
[override] Computes the necessary rules and metrics and determines the index to switch to.
DefaultHTTPStreamingSwitchManager
 Inherited
Checks whether the EventDispatcher object has any listeners registered for a specific type of event.
EventDispatcher
 Inherited
Indicates whether an object has a specified property defined.
Object
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Removes a listener from the EventDispatcher object.
EventDispatcher
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
 Inherited
[override]
RuleSwitchManagerBase
 Inherited
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
 Inherited
Returns the string representation of the specified object.
Object
 Inherited
Returns the primitive value of the specified object.
Object
 Inherited
Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type.
EventDispatcher
Protected Methods
 MethodDefined By
  
getMaxIndex(maxBitrate:Number, emergencyFlag:Boolean = false):uint
Determines maximum available index whose declared bitrate is smaller than maxBitrate.
DefaultHTTPStreamingSwitchManager
  
Determines whether an index is reliable. This is achieved by comparing the index's reliability with the minimumReliability
DefaultHTTPStreamingSwitchManager
  
Array of normal rules to be used in the algorithm.
DefaultHTTPStreamingSwitchManager
Events
 Event Summary Defined By
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active.EventDispatcher
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive.EventDispatcher
Property Detail

climbFactor

property
climbFactor:Number

Language Version: ActionScript 3.0
Product Version: OSMF 2.0
Runtime Versions: Flash Player 10, AIR 1.5

A factor to be applied when switching up. For example: currently playing 300kbps; new ideal bitrate = 1000kbps This means that: max bitrate = 300 + climbFactor x (1000 - 300)

It must be equal or greater than 0



Implementation
    public function get climbFactor():Number
    public function set climbFactor(value:Number):void

Throws
ArgumentError — If it is set to a negative value

maxDownSwitchLimit

property 
maxDownSwitchLimit:int

Language Version: ActionScript 3.0
Product Version: OSMF 2.0
Runtime Versions: Flash Player 10, AIR 1.5

The maximum difference between the indices of the old and new quality level when switching down. Set this to a -1 to disable the constraint.

This works in conjunction with the reliability constraint. If no reliable stream is available inside the maxDownSwitchLimit, no switch will be performed. The maxDownSwitchLimit constraint does not apply to emergency switches.



Implementation
    public function get maxDownSwitchLimit():int
    public function set maxDownSwitchLimit(value:int):void

maxReliabilityRecordSize

property 
maxReliabilityRecordSize:uint

Language Version: ActionScript 3.0
Product Version: OSMF 2.0
Runtime Versions: Flash Player 10, AIR 1.5

The maximum length of the reliability record (how many switches to remember)



Implementation
    public function get maxReliabilityRecordSize():uint
    public function set maxReliabilityRecordSize(value:uint):void

maxUpSwitchLimit

property 
maxUpSwitchLimit:int

Language Version: ActionScript 3.0
Product Version: OSMF 2.0
Runtime Versions: Flash Player 10, AIR 1.5

The maximum difference between the indices of the old and new quality level when switching up. Set this to a -1 to disable the constraint.

This works in conjunction with the reliability constraint. If no reliable stream is available inside the maxUpSwitchLlimit, no switch will be performed.



Implementation
    public function get maxUpSwitchLimit():int
    public function set maxUpSwitchLimit(value:int):void

minReliability

property 
minReliability:Number

Language Version: ActionScript 3.0
Product Version: OSMF 2.0
Runtime Versions: Flash Player 10, AIR 1.5

The minimum reliability for a quality level to be used. This value must be a number in the [0-1] interval (inclusive)



Implementation
    public function get minReliability():Number
    public function set minReliability(value:Number):void

Throws
ArgumentError — If it is set to an invalid value

minReliabilityRecordSize

property 
minReliabilityRecordSize:uint

Language Version: ActionScript 3.0
Product Version: OSMF 2.0
Runtime Versions: Flash Player 10, AIR 1.5

The minimum length of the reliability record below which reliability is not an issue



Implementation
    public function get minReliabilityRecordSize():uint
    public function set minReliabilityRecordSize(value:uint):void

normalRules

property 
normalRules:Vector.<RuleBase>  [read-only]

Language Version: ActionScript 3.0
Product Version: OSMF 2.0
Runtime Versions: Flash Player 10, AIR 1.5

Array of normal rules to be used in the algorithm. A normal rule can recommend both lower and higher bitrates than the current one



Implementation
    public function get normalRules():Vector.<RuleBase>

normalRuleWeights

property 
normalRuleWeights:Vector.<Number>

Language Version: ActionScript 3.0
Product Version: OSMF 2.0
Runtime Versions: Flash Player 10, AIR 1.5

The weights of the normal rules (their importance in the algorithm). Valid values must obey the following rules:

  • same number of weights as there are rules
  • all rules must be equal or greater than zero
  • at least one weight must be non-zero


Implementation
    public function get normalRuleWeights():Vector.<Number>
    public function set normalRuleWeights(value:Vector.<Number>):void

Throws
ArgumentError — If the weights are not valid, by breaking at least one of the above criteria
Constructor Detail

DefaultHTTPStreamingSwitchManager

()Constructor
public function DefaultHTTPStreamingSwitchManager(notifier:EventDispatcher, switcher:NetStreamSwitcher, metricRepository:MetricRepository, emergencyRules:Vector.<RuleBase> = null, autoSwitch:Boolean = true, normalRules:Vector.<RuleBase> = null, normalRuleWeights:Vector.<Number> = null, minReliability:Number = 0.85, minReliabilityRecordSize:uint = 5, maxReliabilityRecordSize:uint = 30, climbFactor:Number = 0.9, maxUpSwitchLimit:int = 1, maxDownSwitchLimit:int = 2)

Language Version: ActionScript 3.0
Product Version: OSMF 2.0
Runtime Versions: Flash Player 10, AIR 1.5

Constructor.

Parameters
notifier:EventDispatcher — An object that dispatches the HTTPStreamingEvent.RUN_ALGORITHM event
 
switcher:NetStreamSwitcher — The NetStreamSwitcher to use for switching
 
metricRepository:MetricRepository — The repository responsible with providing metrics
 
emergencyRules:Vector.<RuleBase> (default = null) — Array of rules to be used in the algorithm. An emergency rule can only recommend lower bitrates than the current one.
 
autoSwitch:Boolean (default = true) — Flag deciding whether autoSwitch should be enabled
 
normalRules:Vector.<RuleBase> (default = null) — Array of normal rules to be used in the algorithm. A normal rule can recommend both lower and higher bitrates than the current one.
 
normalRuleWeights:Vector.<Number> (default = null) — The weights of the normal rules (their importance in the algorithm)
 
minReliability:Number (default = 0.85) — The minimum reliability for a quality level to be used
 
minReliabilityRecordSize:uint (default = 5) — The maximum length of the reliability record (how many switches to remember)
 
maxReliabilityRecordSize:uint (default = 30) — The minimum length of the reliability record below which reliability is not an issue
 
climbFactor:Number (default = 0.9) — A factor to be applied when switching up. For example: currently playing 300kbps; new ideal bitrate = 1000kbps This means that: max bitrate = 300 + climbFactor x (1000 - 300)
 
maxUpSwitchLimit:int (default = 1) — The maximum difference between the indices of the old and new quality level when switching up. Set this to -1 to disable the constraint. This works in conjunction with the reliability constraint. If no reliable stream is available inside the maxUpSwitchLimit, no switch will be performed.
 
maxDownSwitchLimit:int (default = 2) — The maximum difference between the indices of the old and new quality level when switching down. Set this to -1 value to disable the constraint. This works in conjunction with the reliability constraint. If no reliable stream is available inside the maxDownSwitchLimit, no switch will be performed. The maxDownSwitchLimit constraint does not apply to emergency switches.
Method Detail

getCurrentReliability

()method
public function getCurrentReliability(index:uint):Number

Language Version: ActionScript 3.0
Product Version: OSMF 2.0
Runtime Versions: Flash Player 10, AIR 1.5

The current reliability of the specified index.

Parameters

index:uint

Returns
Number — A number between 0 (most unreliable) and 1 (most reliable)

getMaxIndex

()method 
protected function getMaxIndex(maxBitrate:Number, emergencyFlag:Boolean = false):uint

Language Version: ActionScript 3.0
Product Version: OSMF 2.0
Runtime Versions: Flash Player 10, AIR 1.5

Determines maximum available index whose declared bitrate is smaller than maxBitrate. Only reliable indices (indices that pass the isReliable() function) are taken into consideration.

Parameters

maxBitrate:Number — The maximum bitrate to which the index must comply
 
emergencyFlag:Boolean (default = false)

Returns
uint — The index satisfying the aforementioned condition

Related API Elements

getNewEmergencyIndex

()method 
override public function getNewEmergencyIndex(maxBitrate:Number):uint

Returns an index that satisfies the maxBitrate constraint

Parameters

maxBitrate:Number

Returns
uint

getNewIndex

()method 
override public function getNewIndex():uint

Computes the necessary rules and metrics and determines the index to switch to. The index must be a valid one (it can be higher than maxAllowedIndex, but it should be a real index that is available)

Returns
uint

isReliable

()method 
protected function isReliable(index:uint):Boolean

Language Version: ActionScript 3.0
Product Version: OSMF 2.0
Runtime Versions: Flash Player 10, AIR 1.5

Determines whether an index is reliable. This is achieved by comparing the index's reliability with the minimumReliability

Parameters

index:uint

Returns
Boolean

Related API Elements

setNormalRules

()method 
protected function setNormalRules(value:Vector.<RuleBase>):void

Language Version: ActionScript 3.0
Product Version: OSMF 2.0
Runtime Versions: Flash Player 10, AIR 1.5

Array of normal rules to be used in the algorithm. A normal rule can recommend both lower and higher bitrates than the current one.

Parameters

value:Vector.<RuleBase>

Related API Elements