Data Object contains all of the Data Packets for a file. * These Data Packets are organized in terms of increasing send times. A Data * Packet can contain interleaved data from several digital media streams. * This data can consist of entire objects from one or more streams. * Alternatively, it can consist of partial objects (fragmentation). * * Capabilities provided within the interleave packet definition include: * o Single or multiple payload types per Data Packet * o Fixed-size Data Packets * o Error correction information (optional) * o Clock information (optional) * o Redundant sample information, such as presentation time stamp (optional) * * @todo Implement optional support for ASF Data Packet parsing * @package php-reader * @subpackage ASF * @author Sven Vollbehr * @copyright Copyright (c) 2008 The PHP Reader Project Workgroup * @license http://code.google.com/p/php-reader/wiki/License New BSD License * @version $Rev: 108 $ */ final class ASF_Object_Data extends ASF_Object { /** @var string */ private $_fileId; /** @var integer */ private $_totalDataPackets; /** @var Array */ private $_dataPackets; /** * Constructs the class with given parameters and reads object related data * from the ASF file. * * @param Reader $reader The reader object. * @param Array $options The options array. */ public function __construct($reader, &$options = array()) { parent::__construct($reader, $options); $this->_fileId = $this->_reader->readGUID(); $this->_totalDataPackets = $this->_reader->readInt64LE(); $this->_reader->skip(2); /* Data packets are not supported * for ($i = 0; $i < $this->_totalDataPackets; $i++) { * $this->_dataPackets[] = new ASF_Object_Data_Packet($reader); * } */ } /** * Returns the unique identifier for this ASF file. The value of this field * is changed every time the file is modified in any way. The value of this * field is identical to the value of the File ID field of the * Header Object. * * @return string */ public function getFileId() { return $this->_fileId; } /** * Returns the number of ASF Data Packet entries that exist within the Data * Object. It must be equal to the Data Packet Count field in the * File Properties Object. The value of this field is invalid if the * broadcast flag field of the File Properties Object is set to 1. * * @return integer */ public function getTotalDataPackets() { return $this->_endTime; } /** * Returns an array of Data Packets. * * @return Array */ public function getDataPackets() { throw new ASF_Exception("Data packets are not parsed due to optimization."); } }