Edit List Box contains an explicit timeline map. Each entry * defines part of the track time-line: by mapping part of the media time-line, * or by indicating empty time, or by defining a dwell, where a single * time-point in the media is held for a period. * * @package php-reader * @subpackage ISO 14496 * @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: 92 $ */ final class ISO14496_Box_ELST extends ISO14496_Box_Full { /** @var Array */ private $_entries = array(); /** * Constructs the class with given parameters and reads box related data from * the ISO Base Media file. * * @param Reader $reader The reader object. */ public function __construct($reader, &$options = array()) { parent::__construct($reader, $options); $entryCount = $this->_reader->readUInt32BE(); for ($i = 1; $i <= $entryCount; $i++) { $entry = array(); if ($this->getVersion() == 1) { $entry["segmentDuration"] = $this->_reader->readInt64BE(); $entry["mediaTime"] = $this->_reader->readInt64BE(); } else { $entry["segmentDuration"] = $this->_reader->readUInt32BE(); $entry["mediaTime"] = $this->_reader->readInt32BE(); } $entry["mediaRate"] = $this->_reader->readInt16BE() + $this->_reader->readInt16BE() / 10; $this->_entries[] = $entry; } } /** * Returns an array of entries. Each entry is an array containing the * following keys. * o segmentDuration: specifies the duration of this edit segment in units * of the timescale in the {@link ISO14496_Box_MVHD Movie Header Box}. * o mediaTime: the starting time within the media of this edit segment (in * media time scale units, in composition time). If this field is set to * –1, it is an empty edit. The last edit in a track shall never be an * empty edit. Any difference between the duration in the * {@link ISO14496_Box_MVHD Movie Header Box}, and the track's duration is * expressed as an implicit empty edit at the end. * o mediaRate: the relative rate at which to play the media corresponding * to this edit segment. If this value is 0, then the edit is specifying * a dwell: the media at media-time is presented for the segment-duration. * Otherwise this field shall contain the value 1. * * @return Array */ public function getEntries() { return $this->_entries; } }