コード例 #1
0
 /**
  * Writes the object data.
  *
  * @param Zend_Io_Writer $writer The writer object.
  * @return void
  */
 public function write($writer)
 {
     $contentEncryptionRecordsCount = count($this->_contentEncryptionRecords);
     $contentEncryptionRecordsWriter = new Zend_Io_StringWriter();
     for ($i = 0; $i < $contentEncryptionRecordsCount; $i++) {
         $contentEncryptionRecordsWriter->writeGuid($this->_contentEncryptionRecords['systemId'])->writeUInt32LE($this->_contentEncryptionRecords['systemVersion'])->writeUInt16LE($encryptedObjectRecordCount = $this->_contentEncryptionRecords['streamNumbers']);
         for ($j = 0; $j < $encryptedObjectRecordCount; $j++) {
             $contentEncryptionRecordsWriter->writeUInt16LE(1)->writeUInt16LE(2)->writeUInt16LE($this->_contentEncryptionRecords['streamNumbers'][$j]);
         }
         $contentEncryptionRecordsWriter->writeUInt32LE(strlen($this->_contentEncryptionRecords['data']))->write($this->_contentEncryptionRecords['data']);
     }
     $this->setSize(24 + 2 + $contentEncryptionRecordsWriter->getSize());
     $writer->writeGuid($this->getIdentifier())->writeInt64LE($this->getSize())->writeUInt16LE($contentEncryptionRecordsCount)->write($contentEncryptionRecordsWriter->toString());
 }
コード例 #2
0
 /**
  * Writes the object data.
  *
  * @param Zend_Io_Writer $writer The writer object.
  * @return void
  */
 public function write($writer)
 {
     require_once 'Zend/Io/StringWriter.php';
     $typeSpecificData = new Zend_Io_StringWriter();
     switch ($this->_streamType) {
         case self::AUDIO_MEDIA:
             $typeSpecificData->writeUInt16LE($this->_typeSpecificData['codecId'])->writeUInt16LE($this->_typeSpecificData['numberOfChannels'])->writeUInt32LE($this->_typeSpecificData['samplesPerSecond'])->writeUInt32LE($this->_typeSpecificData['avgNumBytesPerSecond'])->writeUInt16LE($this->_typeSpecificData['blockAlignment'])->writeUInt16LE($this->_typeSpecificData['bitsPerSample'])->writeUInt16LE(strlen($this->_typeSpecificData['codecSpecificData']))->write($this->_typeSpecificData['codecSpecificData']);
             break;
         case self::VIDEO_MEDIA:
             $typeSpecificData->writeUInt32LE($this->_typeSpecificData['encodedImageWidth'])->writeUInt32LE($this->_typeSpecificData['encodedImageHeight'])->writeInt8($this->_typeSpecificData['reservedFlags'])->writeUInt16LE(0)->writeUInt32LE(38 + strlen($this->_typeSpecificData['codecSpecificData']))->writeUInt32LE($this->_typeSpecificData['imageWidth'])->writeUInt32LE($this->_typeSpecificData['imageHeight'])->writeUInt16LE($this->_typeSpecificData['reserved'])->writeUInt16LE($this->_typeSpecificData['bitsPerPixelCount'])->writeUInt32LE($this->_typeSpecificData['compressionId'])->writeUInt32LE($this->_typeSpecificData['imageSize'])->writeUInt32LE($this->_typeSpecificData['horizontalPixelsPerMeter'])->writeUInt32LE($this->_typeSpecificData['verticalPixelsPerMeter'])->writeUInt32LE($this->_typeSpecificData['colorsUsedCount'])->writeUInt32LE($this->_typeSpecificData['importantColorsCount'])->write($this->_typeSpecificData['codecSpecificData']);
             break;
         case self::JFIF_MEDIA:
             $typeSpecificData->writeUInt32LE($this->_typeSpecificData['imageWidth'])->writeUInt32LE($this->_typeSpecificData['imageHeight'])->writeUInt32LE(0);
             break;
         case self::DEGRADABLE_JPEG_MEDIA:
             $typeSpecificData->writeUInt32LE($this->_typeSpecificData['imageWidth'])->writeUInt32LE($this->_typeSpecificData['imageHeight'])->writeUInt16LE(0)->writeUInt16LE(0)->writeUInt16LE(0);
             $interchangeDataSize = strlen($this->_typeSpecificData['interchangeData']);
             if ($interchangeDataSize == 1) {
                 $interchangeDataSize = 0;
             }
             $typeSpecificData->writeUInt16LE($interchangeDataSize)->write($this->_typeSpecificData['interchangeData']);
             break;
         case self::FILE_TRANSFER_MEDIA:
             // break intentionally omitted
         // break intentionally omitted
         case self::BINARY_MEDIA:
             $typeSpecificData->writeGuid($this->_typeSpecificData['majorMediaType'])->writeGuid($this->_typeSpecificData['mediaSubtype'])->writeUInt32LE($this->_typeSpecificData['fixedSizeSamples'])->writeUInt32LE($this->_typeSpecificData['temporalCompression'])->writeUInt32LE($this->_typeSpecificData['sampleSize'])->writeGuid($this->_typeSpecificData['formatType'])->writeUInt32LE(strlen($this->_typeSpecificData['formatData']))->write($this->_typeSpecificData['formatData']);
             break;
         case self::COMMAND_MEDIA:
             // break intentionally omitted
         // break intentionally omitted
         default:
             break;
     }
     $errorCorrectionData = new Zend_Io_StringWriter();
     switch ($this->_errorCorrectionType) {
         case self::AUDIO_SPREAD:
             $errorCorrectionData->writeInt8($this->_errorCorrectionData['span'])->writeUInt16LE($this->_errorCorrectionData['virtualPacketLength'])->writeUInt16LE($this->_errorCorrectionData['virtualChunkLength'])->writeUInt16LE(strlen($this->_errorCorrectionData['silenceData']))->write($this->_errorCorrectionData['silenceData']);
             break;
         case self::NO_ERROR_CORRECTION:
             // break intentionally omitted
         // break intentionally omitted
         default:
             break;
     }
     $this->setSize(24 + 54 + $typeSpecificData->getSize() + $errorCorrectionData->getSize());
     $writer->writeGuid($this->getIdentifier())->writeInt64LE($this->getSize())->writeGuid($this->_streamType)->writeGuid($this->_errorCorrectionType)->writeInt64LE($this->_timeOffset)->writeUInt32LE($typeSpecificData->getSize())->writeUInt32LE($errorCorrectionData->getSize())->writeUInt16LE($this->_flags)->writeUInt32LE($this->_reserved)->write($typeSpecificData->toString())->write($errorCorrectionData->toString());
 }
コード例 #3
0
 /**
  * Writes the object data.
  *
  * @param Zend_Io_Writer $writer The writer object.
  * @return void
  */
 public function write($writer)
 {
     require_once 'Zend/Io/StringWriter.php';
     $streamNameCount = count($this->_streamNames);
     $streamNameWriter = new Zend_Io_StringWriter();
     for ($i = 0; $i < $streamNameCount; $i++) {
         $streamNameWriter->writeUInt16LE($this->_streamNames['languageIndex'])->writeUInt16LE(strlen($streamName = iconv($this->getOption('encoding'), 'utf-16le', $this->_streamNames['streamName']) . ""))->writeString16($streamName);
     }
     $payloadExtensionSystemCount = count($this->_payloadExtensionSystems);
     $payloadExtensionSystemWriter = new Zend_Io_StringWriter();
     for ($i = 0; $i < $payloadExtensionSystemCount; $i++) {
         $payloadExtensionSystemWriter->writeGuid($this->_streamNames['extensionSystemId'])->writeUInt16LE($this->_streamNames['extensionDataSize'])->writeUInt16LE(strlen($extensionSystemInfo = iconv($this->getOption('encoding'), 'utf-16le', $this->_streamNames['extensionSystemInfo']) . ""))->writeString16($extensionSystemInfo);
     }
     $this->setSize(24 + 64 + $streamNameWriter->getSize() + $payloadExtensionSystemWriter->getSize());
     $writer->writeGuid($this->getIdentifier())->writeInt64LE($this->getSize())->writeInt64LE($this->_startTime)->writeInt64LE($this->_endTime)->writeUInt32LE($this->_dataBitrate)->writeUInt32LE($this->_bufferSize)->writeUInt32LE($this->_initialBufferFullness)->writeUInt32LE($this->_alternateDataBitrate)->writeUInt32LE($this->_alternateBufferSize)->writeUInt32LE($this->_alternateInitialBufferFullness)->writeUInt32LE($this->_maximumObjectSize)->writeUInt32LE($this->_flags)->writeUInt16LE($this->_streamNumber)->writeUInt16LE($this->_streamLanguageIndex)->writeInt64LE($this->_averageTimePerFrame)->writeUInt16LE($streamNameCount)->writeUInt16LE($payloadExtensionSystemCount)->write($streamNameWriter->toString())->write($payloadExtensionSystemWriter->toString());
 }