Class ASF_Object_Index

Description

This top-level ASF object supplies the necessary indexing information for an ASF file that contains more than just a plain script-audio-video combination.

It includes stream-specific indexing information based on an adjustable index entry time interval. The index is designed to be broken into blocks to facilitate storage that is more space-efficient by using 32-bit offsets relative to a 64-bit base. That is, each index block has a full 64-bit offset in the block header that is added to the 32-bit offsets found in each index entry. If a file is larger than 2^32 bytes, then multiple index blocks can be used to fully index the entire large file while still keeping index entry offsets at 32 bits.

Indices into the Index Object are in terms of presentation times. The corresponding Offset field values of the Index Entry byte offsets that, when combined with the Block Position value of the Index Block, indicate the starting location in bytes of an ASF Data Packet relative to the start of the first ASF Data Packet in the file.

An offset value of 0xFFFFFFFF is used to indicate an invalid offset value. Invalid offsets signify that this particular index entry does not identify a valid indexible point. Invalid offsets may occur for the initial index entries of a digital media stream whose first ASF Data Packet has a non-zero send time. Invalid offsets may also occur in the case where a digital media stream has a large gap in the presentation time of successive objects.

The Index Object is not recommended for use with files where the Send Time of the first Data Packet within the Data Object has a Send Time value significantly greater than zero (otherwise the index itself will be sparse and inefficient).

Any ASF file containing an Index Object does also contain an Index Parameters Object in its ASF Header.

Located in /ASF/Object/Index.php (line 82)

ASF_Object
   |
   --ASF_Object_Index
Class Constant Summary
Method Summary
ASF_Object_Index __construct (Reader $reader, [ &$options = array()], Array $options)
Array getIndexBlocks ()
Variables

Inherited Variables

Inherited from ASF_Object

ASF_Object::$_options
ASF_Object::$_reader
Methods
Constructor __construct (line 123)

Constructs the class with given parameters and reads object related data from the ASF file.

  • access: public
ASF_Object_Index __construct (Reader $reader, [ &$options = array()], Array $options)
  • Reader $reader: The reader object.
  • Array $options: The options array.
  • &$options

Redefinition of:
ASF_Object::__construct()
Constructs the class with given parameters and options.
getIndexBlocks (line 184)

Returns an array of index entries. Each entry consists of the following keys.

  • blockPositions -- Specifies a list of byte offsets of the beginnings of the blocks relative to the beginning of the first Data Packet (for example, the beginning of the Data Object + 50 bytes).
  • indexEntryOffsets -- Specifies the offset. An offset value of 0xffffffff indicates an invalid offset value.

  • access: public
Array getIndexBlocks ()
getIndexEntryTimeInterval (line 153)

Returns the time interval between each index entry in ms.

  • access: public
integer getIndexEntryTimeInterval ()
getIndexSpecifiers (line 169)

Returns an array of index specifiers. Each entry consists of the following keys.

  • streamNumber -- Specifies the stream number that the Index Specifiers refer to. Valid values are between 1 and 127.
  • indexType -- Specifies the type of index.

  • access: public
Array getIndexSpecifiers ()

Inherited Methods

Inherited From ASF_Object

ASF_Object::__construct()
ASF_Object::getIdentifier()
ASF_Object::getOffset()
ASF_Object::getOption()
ASF_Object::getOptions()
ASF_Object::getParent()
ASF_Object::getSize()
ASF_Object::setIdentifier()
ASF_Object::setOffset()
ASF_Object::setOption()
ASF_Object::setOptions()
ASF_Object::setParent()
ASF_Object::setSize()
ASF_Object::__get()
ASF_Object::__set()
Class Constants
NEAREST_PAST_CLEANPOINT = 3 (line 105)

Indicates that the index type is Nearest Past Cleanpoint. The Nearest Past Cleanpoint indexes point to the closest data packet containing an entire object (or first fragment of an object) that has the Cleanpoint Flag set.

Nearest Past Cleanpoint is the most common type of index.

NEAREST_PAST_DATA_PACKET = 1 (line 89)

Indicates that the index type is Nearest Past Data Packet. The Nearest Past Data Packet indexes point to the data packet whose presentation time is closest to the index entry time.

NEAREST_PAST_MEDIA = 2 (line 96)

Indicates that the index type is Nearest Past Media. The Nearest Past Object indexes point to the closest data packet containing an entire object or first fragment of an object.

Documentation generated on Fri, 05 Sep 2008 20:18:54 +0300 by phpDocumentor 1.4.1