Progressive Download Information Box aids the progressive download * of an ISO file. The box contains pairs of numbers (to the end of the box) * specifying combinations of effective file download bitrate in units of * bytes/sec and a suggested initial playback delay in units of milliseconds. * * A receiving party can estimate the download rate it is experiencing, and from * that obtain an upper estimate for a suitable initial delay by linear * interpolation between pairs, or by extrapolation from the first or last * entry. * * @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_PDIN extends ISO14496_Box_Full { /** @var Array */ private $_progressiveDownloadInfo = 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); while ($this->_reader->getOffset() < $this->getOffset() + $this->getSize()) $this->_progressiveDownloadInfo[] = array ("rate" => $this->_reader->readUInt32BE(), "initialDelay" => $this->_reader->readUInt32BE()); } /** * Returns the progressive download information array. The array consists of * items having two keys. * * o rate -- the download rate expressed in bytes/second * o initialDelay -- the suggested delay to use when playing the file, * such that if download continues at the given rate, all data within the * file will arrive in time for its use and playback should not need to * stall. * * @return Array */ public function getProgressiveDownloadInfo() { return $this->_progressiveDownloadInfo; } }