/** * Writes the box data. * * @param HausDesign_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { if ($this->getSize() >= 8) { parent::_writeData($writer); $writer->write(str_repeat("", $this->getSize() - 8)); } }
/** * Constructs the class with given parameters and reads box related data * from the ISO Base Media file. * * @param HausDesign_Io_Reader $reader The reader object. * @param Array $options The options array. */ public function __construct($reader = null, &$options = array()) { parent::__construct($reader, $options); $this->setContainer(true); if ($reader === null) { return; } $this->constructBoxes(); }
/** * Writes the box data without the header. * * @param HausDesign_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { parent::_writeData($writer); $writer->writeUInt32BE($this->_version << 24 | $this->_flags); }
/** * Writes the box data. * * @param HausDesign_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { parent::_writeData($writer); $writer->write(substr($this->_dataFormat, 0, 4)); }
/** * Writes the box data. * * @param HausDesign_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { parent::_writeData($writer); $writer->writeUInt16BE($this->getBoxCount()); }
/** * Writes the box data. * * @param HausDesign_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { parent::_writeData($writer); for ($i = 0; $i < count($this->_trackId); $i++) { $writer->writeUInt32BE($this->_trackId[$i]); } }
/** * Writes the box data. * * @param HausDesign_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { parent::_writeData($writer); $offsetSize = 4; $lengthSize = 4; $baseOffsetSize = 4; $itemCount = count($this->_itemId); for ($i = 0; $i < $itemCount; $i++) { if ($this->_itemId[$i]['baseOffset'] > 0xffffffff) { $baseOffsetSize = 8; } for ($j = 0; $j < count($this->_itemId[$i]['extents']); $j++) { if ($this->_itemId[$i]['extents'][$j]['offset'] > 0xffffffff) { $offsetSize = 8; } if ($this->_itemId[$i]['extents'][$j]['length'] > 0xffffffff) { $lengthSize = 8; } } } $writer->writeUInt16BE(($offsetSize & 0xf) << 12 | ($lengthSize & 0xf) << 8 | ($baseOffsetSize & 0xf) << 4)->writeUInt16BE($itemCount); for ($i = 0; $i < $itemCount; $i++) { $writer->writeUInt16BE($this->_itemId[$i]['itemId'])->writeUInt16BE($this->_itemId[$i]['dataReferenceIndex']); if ($baseOffsetSize == 4) { $writer->writeUInt32BE($this->_itemId[$i]['baseOffset']); } if ($baseOffsetSize == 8) { $writer->writeInt64BE($this->_itemId[$i]['baseOffset']); } $writer->writeUInt16BE($extentCount = count($this->_itemId[$i]['extents'])); for ($j = 0; $j < $extentCount; $j++) { if ($offsetSize == 4) { $writer->writeUInt32BE($this->_itemId[$i]['extents'][$j]['offset']); } if ($offsetSize == 8) { $writer->writeInt64BE($this->_itemId[$i]['extents'][$j]['offset']); } if ($offsetSize == 4) { $writer->writeUInt32BE($this->_itemId[$i]['extents'][$j]['length']); } if ($offsetSize == 8) { $writer->writeInt64BE($this->_itemId[$i]['extents'][$j]['length']); } } } }
/** * Closes down the reader. */ public function __destruct() { parent::__destruct(); if ($this->_autoClose === true && $this->_reader !== null) { $this->_reader->close(); } }
/** * Writes the box data. * * @param HausDesign_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { parent::_writeData($writer); $writer->writeString8(substr($this->_majorBrand, 0, 4))->writeUInt32BE($this->_minorVersion); for ($i = 0; $i < count($this->_compatibleBrands); $i++) { $writer->writeString8(substr($this->_compatibleBrands[$i], 0, 4)); } }