public function linkFromAsset(asset $fromAsset) { $this->setWidth($fromAsset->getWidth()); $this->setHeight($fromAsset->getHeight()); $this->setContainerFormat($fromAsset->getContainerFormat()); $this->setSize($fromAsset->getSize()); $this->setFileExt($fromAsset->getFileExt()); $this->setTags($fromAsset->getTags()); $this->setDescription($fromAsset->getDescription()); $this->incrementVersion(); $this->setStatusLocalReady(); }
private static function generateThumbnail(asset $srcAsset, thumbParamsOutput $destThumbParamsOutput, &$errDescription, $rotate = null) { $srcSyncKey = $srcAsset->getSyncKey(flavorAsset::FILE_SYNC_FLAVOR_ASSET_SUB_TYPE_ASSET); list($fileSync, $local) = kFileSyncUtils::getReadyFileSyncForKey($srcSyncKey, true, false); if (!$fileSync || $fileSync->getFileType() == FileSync::FILE_SYNC_FILE_TYPE_URL) { $errDescription = 'Source asset could has no valid file sync'; return false; } $srcPath = $fileSync->getFullPath(); $srcWamsAssetId = $fileSync->getWamsAssetId(); $uniqid = uniqid('thumb_'); $destPath = kConf::get('temp_folder') . "/thumb/{$uniqid}.jpg"; $logPath = $destPath . '.log'; if (is_null($srcWamsAssetId)) { if (!file_exists($srcPath)) { $errDescription = "Source file [{$srcPath}] does not exist"; return false; } if (!is_file($srcPath)) { $errDescription = "Source file [{$srcPath}] is not a file"; return false; } } try { if ($srcAsset->getType() == assetType::FLAVOR) { /* @var $srcAsset flavorAsset */ $dar = null; $mediaInfo = mediaInfoPeer::retrieveByFlavorAssetId($srcAsset->getId()); if ($mediaInfo) { $dar = $mediaInfo->getVideoDar(); } // generates the thumbnail if (!is_null($srcWamsAssetId)) { $thumbMaker = new KWAMSThumbnailMaker($srcWamsAssetId, $destPath); $created = $thumbMaker->createThumbnail($destThumbParamsOutput->getVideoOffset(), $srcAsset->getWidth(), $srcAsset->getHeight(), $dar); } else { $thumbMaker = new KFFMpegThumbnailMaker($srcPath, $destPath, kConf::get('bin_path_ffmpeg')); $created = $thumbMaker->createThumnail($destThumbParamsOutput->getVideoOffset(), $srcAsset->getWidth(), $srcAsset->getHeight(), null, null, $dar); } if (!$created || !file_exists($destPath)) { $errDescription = "Thumbnail not captured"; return false; } $srcPath = $destPath; $uniqid = uniqid('thumb_'); $destPath = kConf::get('temp_folder') . "/thumb/{$uniqid}.jpg"; } $quality = $destThumbParamsOutput->getQuality(); $cropType = $destThumbParamsOutput->getCropType(); $cropX = $destThumbParamsOutput->getCropX(); $cropY = $destThumbParamsOutput->getCropY(); $cropWidth = $destThumbParamsOutput->getCropWidth(); $cropHeight = $destThumbParamsOutput->getCropHeight(); $bgcolor = $destThumbParamsOutput->getBackgroundColor(); $width = $destThumbParamsOutput->getWidth(); $height = $destThumbParamsOutput->getHeight(); $scaleWidth = $destThumbParamsOutput->getScaleWidth(); $scaleHeight = $destThumbParamsOutput->getScaleHeight(); $density = $destThumbParamsOutput->getDensity(); $stripProfiles = $destThumbParamsOutput->getStripProfiles(); $cropper = new KImageMagickCropper($srcPath, $destPath, kConf::get('bin_path_imagemagick'), true); $cropped = $cropper->crop($quality, $cropType, $width, $height, $cropX, $cropY, $cropWidth, $cropHeight, $scaleWidth, $scaleHeight, $bgcolor, $density, $rotate, $stripProfiles); if (!$cropped || !file_exists($destPath)) { $errDescription = "Crop failed"; return false; } return $destPath; } catch (Exception $ex) { $errDescription = $ex->getMessage(); return false; } }
public function setFlavorAsset(DOMElement $item, asset $flavorAsset, $flavorAssetRemoteUrl, $lang) { $this->setNodeValue('media:content/@url', $flavorAssetRemoteUrl, $item); $this->setNodeValue('media:content/@width', $flavorAsset->getWidth(), $item); $this->setNodeValue('media:content/@height', $flavorAsset->getHeight(), $item); $this->setNodeValue('media:content/@type', $this->getContentType($flavorAssetRemoteUrl), $item); if ($lang) { $this->setNodeValue('media:content/@lang', $lang, $item); } }