Exemple #1
0
 /**
  * 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();
 }
Exemple #2
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->writeUInt32BE($entryCount = count($this->_sampleToChunkTable));
     for ($i = 1; $i <= $entryCount; $i++) {
         $writer->writeUInt32BE($this->_sampleToChunkTable[$i]['firstChunk'])->writeUInt32BE($this->_sampleToChunkTable[$i]['samplesPerChunk'])->writeUInt32BE($this->_sampleToChunkTable[$i]['sampleDescriptionIndex']);
     }
 }
Exemple #3
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->writeUInt32BE($this->_trackId)->writeUInt32BE($this->_defaultSampleDescriptionIndex)->writeUInt32BE($this->_defaultSampleDuration)->writeUInt32BE($this->_defaultSampleSize)->writeUInt32BE($this->_defaultSampleFlags);
 }
Exemple #4
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->writeUInt32BE($this->_parentSize);
 }
Exemple #5
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->writeUInt16BE(ord($this->_language[0]) - 0x60 << 10 | ord($this->_language[1]) - 0x60 << 5 | ord($this->_language[2]) - 0x60);
     $this->_tag->write($writer);
 }
Exemple #6
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->writeUInt32BE($entryCount = count($this->_syncSampleTable));
     for ($i = 1; $i <= $entryCount; $i++) {
         $writer->writeUInt32BE($this->_syncSampleTable[$i]);
     }
 }
Exemple #7
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->write(str_pad('', 4, ""))->write($this->_handlerType)->writeUInt32BE(0)->writeUInt32BE(0)->writeUInt32BE(0)->writeString8($this->_name, 1);
 }
Exemple #8
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->writeUInt16BE($this->_graphicsMode)->writeUInt16BE($this->_opcolor[0])->writeUInt16BE($this->_opcolor[1])->writeUInt16BE($this->_opcolor[2]);
 }
Exemple #9
0
 /**
  * Returns the box heap size in bytes.
  *
  * @return integer
  */
 public function getHeapSize()
 {
     return parent::getHeapSize() + 4 + count($this->_chunkOffsetTable) * 8;
 }
Exemple #10
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     if ($this->getVersion() == 1) {
         $writer->writeInt64BE($this->_creationTime)->writeInt64BE($this->_modificationTime)->writeUInt32BE($this->_timescale)->writeInt64BE($this->_duration);
     } else {
         $writer->writeUInt32BE($this->_creationTime)->writeUInt32BE($this->_modificationTime)->writeUInt32BE($this->_timescale)->writeUInt32BE($this->_duration);
     }
     $writer->writeUInt16BE(ord($this->_language[0]) - 0x60 << 10 | ord($this->_language[1]) - 0x60 << 5 | ord($this->_language[2]) - 0x60)->write(str_pad('', 2, ""));
 }
Exemple #11
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->writeString8($this->_name, 1)->write($this->_location);
 }
Exemple #12
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     if ($this->getVersion() == 1) {
         $writer->writeInt64BE($this->_creationTime)->writeInt64BE($this->_modificationTime)->writeUInt32BE($this->_timescale)->writeInt64BE($this->_duration);
     } else {
         $writer->writeUInt32BE($this->_creationTime)->writeUInt32BE($this->_modificationTime)->writeUInt32BE($this->_timescale)->writeUInt32BE($this->_duration);
     }
     @(list(, $rateDecimals) = explode('.', (double) $this->_rate));
     @(list(, $volumeDecimals) = explode('.', (double) $this->_volume));
     $writer->writeUInt32BE(floor($this->_rate) << 16 | $rateDecimals)->writeUInt16BE(floor($this->_volume) << 8 | $volumeDecimals)->write(str_pad('', 10, ""));
     for ($i = 0; $i < 9; $i++) {
         $writer->writeUInt32BE($this->_matrix[$i]);
     }
     $writer->write(str_pad('', 24, ""))->writeUInt32BE($this->_nextTrackId);
 }
Exemple #13
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->writeUInt16BE($this->_maxPDUSize)->writeUInt16BE($this->_avgPDUSize)->writeUInt16BE($this->_maxBitrate)->writeUInt16BE($this->_avgBitrate);
 }
Exemple #14
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     if ($this->getVersion() == 1) {
         $writer->writeInt64BE($this->_fragmentDuration);
     } else {
         $writer->writeUInt32BE($this->_fragmentDuration);
     }
 }
Exemple #15
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->writeUInt32BE($this->_sequenceNumber);
 }
Exemple #16
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->writeUInt16BE($this->_itemId)->writeUInt16BE($this->_itemProtectionIndex)->writeString8($this->_itemName, 1)->writeString8($this->_contentType, 1)->writeString8($this->_contentEncoding, 1);
 }
Exemple #17
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->writeUInt16BE(ord($this->_language[0]) - 0x60 << 10 | ord($this->_language[1]) - 0x60 << 5 | ord($this->_language[2]) - 0x60)->writeString8($this->_notice, 1);
 }
Exemple #18
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     @(list(, $balanceDecimals) = explode('.', (double) $this->_balance));
     $writer->writeInt16BE(floor($this->_balance) << 8 | $balanceDecimals)->writeInt16BE(0);
 }
Exemple #19
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->writeUInt32BE($entryCount = count($this->_timeToSampleTable));
     for ($i = 1; $i <= $entryCount; $i++) {
         $writer->writeUInt32BE($this->_timeToSampleTable[$i]['sampleCount'])->writeUInt32BE($this->_timeToSampleTable[$i]['sampleDelta']);
     }
 }
Exemple #20
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->write($this->_schemeType);
     $writer->writeUInt32BE($this->_schemeVersion);
     if ($this->hasFlag(1)) {
         $writer->writeString8($this->_schemeUri, 1);
     }
 }
Exemple #21
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     if ($this->getVersion() == 1) {
         $writer->writeInt64BE($this->_creationTime)->writeInt64BE($this->_modificationTime)->writeUInt32BE($this->_trackId)->writeUInt32BE(0)->writeInt64BE($this->_duration);
     } else {
         $writer->writeUInt32BE($this->_creationTime)->writeUInt32BE($this->_modificationTime)->writeUInt32BE($this->_trackId)->writeUInt32BE(0)->writeUInt32BE($this->_duration);
     }
     @(list(, $volumeDecimals) = explode('.', (double) $this->_volume));
     $writer->write(str_pad('', 8, ""))->writeInt16BE($this->_layer)->writeInt16BE($this->_alternateGroup)->writeUInt16BE(floor($this->_volume) << 8 | $volumeDecimals)->write(str_pad('', 2, ""));
     for ($i = 0; $i < 9; $i++) {
         $writer->writeUInt32BE($this->_matrix[$i]);
     }
     @(list(, $widthDecimals) = explode('.', (double) $this->_width));
     @(list(, $heightDecimals) = explode('.', (double) $this->_height));
     $writer->writeUInt32BE(floor($this->_width) << 16 | $widthDecimals)->writeUInt32BE(floor($this->_height) << 16 | $heightDecimals);
 }
Exemple #22
0
 /**
  * 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->_values); $i++) {
         $writer->writeUInt16BE($this->_values[$i]['priority']);
     }
 }
Exemple #23
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->writeUInt32BE($this->_groupingType);
     $writer->writeUInt32BE($entryCount = count($this->_sampleToGroupTable));
     for ($i = 1; $i <= $entryCount; $i++) {
         $writer->writeUInt32BE($this->_sampleToGroupTable[$i]['sampleCount'])->writeUInt32BE($this->_sampleToGroupTable[$i]['groupDescriptionIndex']);
     }
 }
Exemple #24
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $lengthSizes = $this->_getLengthSizes();
     $writer->writeUInt32BE($this->_trackId)->writeUInt32BE($lengthSizes['trafNum'] << 4 | $lengthSizes['trunNum'] << 2 | $lengthSizes['sampleNum'])->writeUInt32BE($entryCount = count($this->_entries));
     for ($i = 0; $i < $entryCount; $i++) {
         if ($this->getVersion() == 1) {
             $writer->writeInt64BE($this->_entries[$i]['time'])->writeInt64BE($this->_entries[$i]['mediaTime']);
         } else {
             $writer->writeUInt32BE($this->_entries[$i]['time'])->writeInt32BE($this->_entries[$i]['moofOffset']);
         }
         switch ($lengthSizes['trafNum']) {
             case 0:
                 $writer->writeUInt8($this->_entries[$i]['trafNumber']);
                 break;
             case 1:
                 $writer->writeUInt16BE($this->_entries[$i]['trafNumber']);
                 break;
             case 2:
                 $writer->writeUInt32BE($this->_entries[$i]['trafNumber']);
                 break;
             case 3:
                 $writer->writeInt64BE($this->_entries[$i]['trafNumber']);
                 break;
         }
         switch ($lengthSizes['trunNum']) {
             case 0:
                 $writer->writeUInt8($this->_entries[$i]['trunNumber']);
                 break;
             case 1:
                 $writer->writeUInt16BE($this->_entries[$i]['trunNumber']);
                 break;
             case 2:
                 $writer->writeUInt32BE($this->_entries[$i]['trunNumber']);
                 break;
             case 3:
                 $writer->writeInt64BE($this->_entries[$i]['trunNumber']);
                 break;
         }
         switch ($lengthSizes['sampleNum']) {
             case 0:
                 $writer->writeUInt8($this->_entries[$i]['sampleNumber']);
                 break;
             case 1:
                 $writer->writeUInt16BE($this->_entries[$i]['sampleNumber']);
                 break;
             case 2:
                 $writer->writeUInt32BE($this->_entries[$i]['sampleNumber']);
                 break;
             case 3:
                 $writer->writeInt64BE($this->_entries[$i]['sampleNumber']);
                 break;
         }
     }
 }
Exemple #25
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->write($this->_location);
 }
Exemple #26
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->writeUInt32BE($entryCount = count($this->_compositionOffsetTable));
     for ($i = 1; $i <= $entryCount; $i++) {
         $writer->writeUInt32BE($this->_compositionOffsetTable[$i]['sampleCount'])->writeUInt32BE($this->_compositionOffsetTable[$i]['sampleOffset']);
     }
 }
Exemple #27
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->writeUInt32BE($this->getBoxCount());
 }
Exemple #28
0
 /**
  * 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->_timeToSampleTable); $i++) {
         $writer->writeUInt32BE($this->_progressiveDownloadInfo[$i]['rate'])->writeUInt32BE($this->_progressiveDownloadInfo[$i]['initialDelay']);
     }
 }
Exemple #29
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     $writer->writeUInt16BE($this->_itemId);
 }
Exemple #30
0
 /**
  * Writes the box data.
  *
  * @param HausDesign_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     parent::_writeData($writer);
     for ($i = 1; $i <= count($this->_sampleDependencyTypeTable); $i++) {
         $writer->write(chr(($this->_sampleDependencyTypeTable[$i]['sampleDependsOn'] & 0x3) << 4 | ($this->_sampleDependencyTypeTable[$i]['sampleIsDependedOn'] & 0x3) << 2 | $this->_sampleDependencyTypeTable[$i]['sampleHasRedundancy'] & 0x3));
     }
 }