/***************************************************** * * Copyright 2009 Adobe Systems Incorporated. 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 Adobe Systems Incorporated. * Portions created by Adobe Systems Incorporated are Copyright (C) 2009 Adobe Systems * Incorporated. All Rights Reserved. * *****************************************************/ package org.osmf.net.httpstreaming.f4f { import __AS3__.vec.Vector; [ExcludeClass] /** * @private * * This is the fragment random access box data structure. */ internal class AdobeFragmentRandomAccessBox extends FullBox { /** * Constructor. * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion OSMF 1.0 */ public function AdobeFragmentRandomAccessBox() { super(); } /** * It is the number of time units in one second which the currentMediaTime and smpteTimeCodeOffset * use to represent time. By default, 1000 is for milliseconds. * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion OSMF 1.0 */ public function get timeScale():uint { return _timeScale; } public function set timeScale(value:uint):void { _timeScale = value; } /** * The list of local access entries for this fragment. * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion OSMF 1.0 */ public function get localRandomAccessEntries():Vector. { return _localRandomAccessEntries; } public function set localRandomAccessEntries(value:Vector.):void { _localRandomAccessEntries = value; } /** * The list of global access entries for this fragment. * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion OSMF 1.0 */ public function get globalRandomAccessEntries():Vector. { return _globalRandomAccessEntries; } public function set globalRandomAccessEntries(value:Vector.):void { _globalRandomAccessEntries = value; } /** * Given a seekTime, return the offset of the key frame that is nearest from the * left. This is done among localRandomAccessEntries only. * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion OSMF 1.0 */ public function findNearestKeyFrameOffset(seekToTime:Number):LocalRandomAccessEntry { var i:int = _localRandomAccessEntries.length - 1; while (i >= 0) { var entry:LocalRandomAccessEntry = _localRandomAccessEntries[i]; if (entry.time <= seekToTime) { return entry } i--; } return null; } // Internal // private var _timeScale:uint; private var _localRandomAccessEntries:Vector.; private var _globalRandomAccessEntries:Vector.; } }