Example #1
0
 /**
  * @param array $data
  * @return Entry
  */
 public static function fromStorageArray(array $data)
 {
     $entry = new self();
     $entry->setEndpoint(EndpointDescriptor::fromJson($data['endpoint']));
     $entry->setProcessId($data['processId']);
     $entry->setInstanceId($data['instanceId']);
     $entry->setServiceName($data['serviceName']);
     return $entry;
 }
Example #2
0
 /**
  * @static
  * @param $processId
  * @return int
  */
 public static function getProgress($processId)
 {
     $instance = new self();
     $instance->setProcessId($processId);
     if (is_file($instance->getJobFile())) {
         $instance = Pimcore_Tool_Serialize::unserialize(file_get_contents($instance->getJobFile()));
     }
     return $instance->getStatus();
 }
Example #3
0
 /**
  * @param $processId
  */
 public static function execute($processId)
 {
     $instance = new self();
     $instance->setProcessId($processId);
     $instanceItem = TmpStore::get($instance->getJobStoreId($processId));
     $instance = $instanceItem->getData();
     $formats = [];
     $conversionStatus = "finished";
     // check if there is already a transcoding process running, wait if so ...
     Model\Tool\Lock::acquire("video-transcoding", 7200, 10);
     // expires after 2 hrs, refreshes every 10 secs
     $asset = Model\Asset::getById($instance->getAssetId());
     // start converting
     foreach ($instance->queue as $converter) {
         try {
             Logger::info("start video " . $converter->getFormat() . " to " . $converter->getDestinationFile());
             $success = $converter->save();
             Logger::info("finished video " . $converter->getFormat() . " to " . $converter->getDestinationFile());
             File::rename($converter->getDestinationFile(), $converter->getStorageFile());
             // set proper permissions
             @chmod($converter->getStorageFile(), File::getDefaultMode());
             if ($success) {
                 $formats[$converter->getFormat()] = str_replace($asset->getVideoThumbnailSavePath(), "", $converter->getStorageFile());
             } else {
                 $conversionStatus = "error";
             }
             $converter->destroy();
         } catch (\Exception $e) {
             Logger::error($e);
         }
     }
     Model\Tool\Lock::release("video-transcoding");
     if ($asset) {
         $customSetting = $asset->getCustomSetting("thumbnails");
         $customSetting = is_array($customSetting) ? $customSetting : [];
         if (array_key_exists($instance->getConfig()->getName(), $customSetting) && array_key_exists("formats", $customSetting[$instance->getConfig()->getName()]) && is_array($customSetting[$instance->getConfig()->getName()]["formats"])) {
             $formats = array_merge($customSetting[$instance->getConfig()->getName()]["formats"], $formats);
         }
         $customSetting[$instance->getConfig()->getName()] = ["status" => $conversionStatus, "formats" => $formats];
         $asset->setCustomSetting("thumbnails", $customSetting);
         $asset->save();
     }
     TmpStore::delete($instance->getJobStoreId());
 }
Example #4
0
 /**
  * @static
  * @param $processId
  * @return int
  */
 public static function getProgress($processId)
 {
     $instance = new self();
     $instance->setProcessId($processId);
     $instanceItem = TmpStore::get($instance->getJobStoreId());
     if ($instanceItem) {
         $i = $instanceItem->getData();
         if ($i instanceof Processor) {
             $instance = $i;
         }
     }
     return $instance->getStatus();
 }