本文整理汇总了PHP中assetPeer::retrieveByEntryIdAndParams方法的典型用法代码示例。如果您正苦于以下问题:PHP assetPeer::retrieveByEntryIdAndParams方法的具体用法?PHP assetPeer::retrieveByEntryIdAndParams怎么用?PHP assetPeer::retrieveByEntryIdAndParams使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类assetPeer
的用法示例。
在下文中一共展示了assetPeer::retrieveByEntryIdAndParams方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: addAction
/**
* Add flavor asset
*
* @action add
* @param string $entryId
* @param KalturaFlavorAsset $flavorAsset
* @return KalturaFlavorAsset
* @throws KalturaErrors::ENTRY_ID_NOT_FOUND
* @throws KalturaErrors::FLAVOR_ASSET_ALREADY_EXISTS
* @validateUser entry entryId edit
*/
function addAction($entryId, KalturaFlavorAsset $flavorAsset)
{
$dbEntry = entryPeer::retrieveByPK($entryId);
if (!$dbEntry || $dbEntry->getType() != KalturaEntryType::MEDIA_CLIP || !in_array($dbEntry->getMediaType(), array(KalturaMediaType::VIDEO, KalturaMediaType::AUDIO))) {
throw new KalturaAPIException(KalturaErrors::ENTRY_ID_NOT_FOUND, $entryId);
}
if (!is_null($flavorAsset->flavorParamsId)) {
$dbFlavorAsset = assetPeer::retrieveByEntryIdAndParams($entryId, $flavorAsset->flavorParamsId);
if ($dbFlavorAsset) {
throw new KalturaAPIException(KalturaErrors::FLAVOR_ASSET_ALREADY_EXISTS, $dbFlavorAsset->getId(), $flavorAsset->flavorParamsId);
}
}
if (!is_null($flavorAsset->flavorParamsId)) {
$flavorParams = assetParamsPeer::retrieveByPK($flavorAsset->flavorParamsId);
}
$type = null;
if ($flavorParams) {
$type = $flavorParams->getType();
}
$dbFlavorAsset = flavorAsset::getInstance($type);
$dbFlavorAsset = $flavorAsset->toInsertableObject($dbFlavorAsset);
/* @var $dbFlavorAsset flavorAsset */
if ($flavorParams && $flavorParams->hasTag(flavorParams::TAG_SOURCE)) {
$dbFlavorAsset->setIsOriginal(true);
}
$dbFlavorAsset->setEntryId($entryId);
$dbFlavorAsset->setPartnerId($dbEntry->getPartnerId());
$dbFlavorAsset->setStatus(flavorAsset::FLAVOR_ASSET_STATUS_QUEUED);
$dbFlavorAsset->save();
$flavorAsset = KalturaFlavorAsset::getInstance($dbFlavorAsset, $this->getResponseProfile());
return $flavorAsset;
}
示例2: addFlavorByMsnId
protected function addFlavorByMsnId(array &$flavorAssetsByMsnId, $msnId, $entryId, $flavorAssetId)
{
if ($flavorAssetId != -1) {
$flavorAsset = assetPeer::retrieveByEntryIdAndParams($entryId, $flavorAssetId);
if ($flavorAsset) {
$flavorAssetsByMsnId[$msnId] = $flavorAsset;
}
}
}
示例3: getDownloadFileSyncAndLocal
/**
*
* @param $version
* @param $format
* @return FileSync
*/
public function getDownloadFileSyncAndLocal($version = NULL, $format = null, $sub_type = null)
{
$flavorParams = myConversionProfileUtils::getFlavorParamsFromFileFormat($this->getPartnerId(), $format);
if (!$flavorParams) {
return null;
}
$flavorAssets = assetPeer::retrieveByEntryIdAndParams($this->getId(), $flavorParams->getId());
if (!$flavorAssets) {
return null;
}
$syncKey = $flavorAssets->getSyncKey(flavorAsset::FILE_SYNC_FLAVOR_ASSET_SUB_TYPE_ASSET);
if (!$syncKey) {
return null;
}
return kFileSyncUtils::getReadyFileSyncForKey($syncKey, true, false);
}
示例4: createErrorFlavorAsset
/**
* batch createFlavorAsset orgenize a convert job data
*
* @param flavorParamsOutputWrap $flavor
* @param int $partnerId
* @param int $entryId
* @param string $description
* @return flavorAsset
*/
public static function createErrorFlavorAsset(flavorParamsOutputWrap $flavor, $partnerId, $entryId, $description)
{
$flavorAsset = assetPeer::retrieveByEntryIdAndParams($entryId, $flavor->getFlavorParamsId());
if ($flavorAsset) {
$description = $flavorAsset->getDescription() . "\n" . $description;
$flavorAsset->setDescription($description);
// $flavorAsset->incrementVersion();
} else {
// creates the flavor asset
$flavorAsset = flavorAsset::getInstance($flavor->getType());
$flavorAsset->setPartnerId($partnerId);
$flavorAsset->setEntryId($entryId);
$flavorAsset->setDescription($description);
}
$flavorAsset->setTags($flavor->getTags());
$flavorAsset->setStatus(flavorAsset::FLAVOR_ASSET_STATUS_ERROR);
$flavorAsset->setFlavorParamsId($flavor->getFlavorParamsId());
$flavorAsset->setFileExt($flavor->getFileExt());
$flavorAsset->save();
// save flavor params
$flavor->setPartnerId($partnerId);
$flavor->setEntryId($entryId);
$flavor->setFlavorAssetId($flavorAsset->getId());
$flavor->setFlavorAssetVersion($flavorAsset->getVersion());
$flavor->save();
return $flavorAsset;
}
示例5: serveByFlavorParamsIdAction
/**
* Serves the file content
*
* @action serveByFlavorParamsId
* @param string $entryId Document entry id
* @param string $flavorParamsId Flavor params id
* @param bool $forceProxy force to get the content without redirect
* @return file
*
* @throws KalturaErrors::ENTRY_ID_NOT_FOUND
* @throws KalturaErrors::FLAVOR_ASSET_IS_NOT_READY
* @throws KalturaErrors::FLAVOR_ASSET_ID_NOT_FOUND
*/
public function serveByFlavorParamsIdAction($entryId, $flavorParamsId = null, $forceProxy = false)
{
// temporary workaround for getting the referrer from a url with the format ....&forceProxy/true/referrer/...
$referrer = null;
if (isset($_GET["forceProxy"]) && kString::beginsWith($_GET["forceProxy"], "true/referrer/")) {
$referrer = substr($_GET["forceProxy"], strlen("true/referrer/"));
$referrer = base64_decode($referrer);
}
KalturaResponseCacher::disableCache();
myPartnerUtils::resetPartnerFilter('entry');
$dbEntry = entryPeer::retrieveByPK($entryId);
if (!$dbEntry || $dbEntry->getType() != entryType::DOCUMENT) {
throw new KalturaAPIException(KalturaErrors::ENTRY_ID_NOT_FOUND, $entryId);
}
$ksObj = $this->getKs();
$ks = $ksObj ? $ksObj->getOriginalString() : null;
$securyEntryHelper = new KSecureEntryHelper($dbEntry, $ks, $referrer, ContextType::DOWNLOAD);
$securyEntryHelper->validateForDownload();
$flavorAsset = null;
if ($flavorParamsId) {
$flavorAsset = assetPeer::retrieveByEntryIdAndParams($entryId, $flavorParamsId);
if (!$flavorAsset) {
throw new KalturaAPIException(KalturaErrors::FLAVOR_ASSET_IS_NOT_READY, $flavorParamsId);
}
} else {
$flavorAsset = assetPeer::retrieveOriginalByEntryId($entryId);
if (!$flavorAsset) {
throw new KalturaAPIException(KalturaErrors::FLAVOR_ASSET_ID_NOT_FOUND, $flavorParamsId);
}
}
if (!$securyEntryHelper->isAssetAllowed($flavorAsset)) {
throw new KalturaAPIException(KalturaErrors::FLAVOR_ASSET_ID_NOT_FOUND, $flavorParamsId);
}
$fileName = $dbEntry->getName() . '.' . $flavorAsset->getFileExt();
return $this->serveFlavorAsset($flavorAsset, $fileName, $forceProxy);
}
示例6: attachRemoteAssetResource
protected function attachRemoteAssetResource(entry $entry, kDistributionSubmitJobData $data)
{
$distributionProfile = DistributionProfilePeer::retrieveByPK($data->getDistributionProfileId());
/* @var $distributionProfile UnicornDistributionProfile */
$domainGuid = $distributionProfile->getDomainGuid();
$applicationGuid = $distributionProfile->getAdFreeApplicationGuid();
$assetParamsId = $distributionProfile->getRemoteAssetParamsId();
$mediaItemGuid = $data->getRemoteId();
$url = "{$domainGuid}/{$applicationGuid}/{$mediaItemGuid}/content.m3u8";
$entry->setSource(KalturaSourceType::URL);
$entry->save();
$isNewAsset = false;
$asset = assetPeer::retrieveByEntryIdAndParams($entry->getId(), $assetParamsId);
if (!$asset) {
$isNewAsset = true;
$assetParams = assetParamsPeer::retrieveByPK($assetParamsId);
$asset = assetPeer::getNewAsset($assetParams->getType());
$asset->setPartnerId($entry->getPartnerId());
$asset->setEntryId($entry->getId());
$asset->setStatus(asset::FLAVOR_ASSET_STATUS_QUEUED);
$asset->setFlavorParamsId($assetParamsId);
$asset->setFromAssetParams($assetParams);
if ($assetParams->hasTag(assetParams::TAG_SOURCE)) {
$asset->setIsOriginal(true);
}
}
$asset->incrementVersion();
$asset->setFileExt('m3u8');
$asset->setStatus(asset::FLAVOR_ASSET_STATUS_READY);
$asset->save();
$syncKey = $asset->getSyncKey(flavorAsset::FILE_SYNC_FLAVOR_ASSET_SUB_TYPE_ASSET);
$storageProfile = StorageProfilePeer::retrieveByPK($distributionProfile->getStorageProfileId());
$fileSync = kFileSyncUtils::createReadyExternalSyncFileForKey($syncKey, $url, $storageProfile);
if ($isNewAsset) {
kEventsManager::raiseEvent(new kObjectAddedEvent($asset));
}
kEventsManager::raiseEvent(new kObjectDataChangedEvent($asset));
kBusinessPostConvertDL::handleConvertFinished(null, $asset);
}
示例7: decideThumbGenerate
/**
* decideThumbGenerate is the decision layer for a single thumbnail generation
*
* @param entry $entry
* @param thumbParams $destThumbParams
* @param BatchJob $parentJob
* @return thumbAsset
*/
public static function decideThumbGenerate(entry $entry, thumbParams $destThumbParams, BatchJob $parentJob = null, $sourceAssetId = null, $runSync = false)
{
$srcAsset = null;
assetPeer::resetInstanceCriteriaFilter();
if ($sourceAssetId) {
$srcAsset = assetPeer::retrieveById($sourceAssetId);
} else {
if ($destThumbParams->getSourceParamsId()) {
KalturaLog::debug("Look for flavor params [" . $destThumbParams->getSourceParamsId() . "]");
$srcAsset = assetPeer::retrieveByEntryIdAndParams($entry->getId(), $destThumbParams->getSourceParamsId());
}
if (is_null($srcAsset)) {
KalturaLog::debug("Look for original flavor");
$srcAsset = flavorAssetPeer::retrieveOriginalByEntryId($entry->getId());
}
if (is_null($srcAsset) || $srcAsset->getStatus() != flavorAsset::FLAVOR_ASSET_STATUS_READY) {
KalturaLog::debug("Look for highest bitrate flavor");
$srcAsset = flavorAssetPeer::retrieveHighestBitrateByEntryId($entry->getId());
}
}
if (is_null($srcAsset)) {
throw new APIException(APIErrors::FLAVOR_ASSET_IS_NOT_READY);
}
$errDescription = null;
$mediaInfo = mediaInfoPeer::retrieveByFlavorAssetId($srcAsset->getId());
$destThumbParamsOutput = self::validateThumbAndMediaInfo($destThumbParams, $mediaInfo, $errDescription);
$thumbAsset = thumbAssetPeer::retrieveByEntryIdAndParams($entry->getId(), $destThumbParams->getId());
if ($thumbAsset) {
$description = $thumbAsset->getDescription() . "\n" . $errDescription;
$thumbAsset->setDescription($description);
} else {
$thumbAsset = new thumbAsset();
$thumbAsset->setPartnerId($entry->getPartnerId());
$thumbAsset->setEntryId($entry->getId());
$thumbAsset->setDescription($errDescription);
$thumbAsset->setFlavorParamsId($destThumbParams->getId());
}
$thumbAsset->incrementVersion();
$thumbAsset->setStatus(flavorAsset::FLAVOR_ASSET_STATUS_CONVERTING);
$thumbAsset->setTags($destThumbParamsOutput->getTags());
$thumbAsset->setFileExt($destThumbParamsOutput->getFileExt());
if (!$destThumbParamsOutput) {
$thumbAsset->setStatus(thumbAsset::FLAVOR_ASSET_STATUS_ERROR);
$thumbAsset->save();
return null;
}
$thumbAsset->save();
// save flavor params
$destThumbParamsOutput->setPartnerId($entry->getPartnerId());
$destThumbParamsOutput->setEntryId($entry->getId());
$destThumbParamsOutput->setFlavorAssetId($thumbAsset->getId());
$destThumbParamsOutput->setFlavorAssetVersion($thumbAsset->getVersion());
$destThumbParamsOutput->save();
$srcSyncKey = $srcAsset->getSyncKey(flavorAsset::FILE_SYNC_FLAVOR_ASSET_SUB_TYPE_ASSET);
$srcAssetType = $srcAsset->getType();
if (!$runSync) {
$job = kJobsManager::addCapturaThumbJob($parentJob, $entry->getPartnerId(), $entry->getId(), $thumbAsset->getId(), $srcSyncKey, $srcAssetType, $destThumbParamsOutput);
return $thumbAsset;
}
$errDescription = null;
$capturedPath = self::generateThumbnail($srcAsset, $destThumbParamsOutput, $errDescription);
// failed
if (!$capturedPath) {
$thumbAsset->incrementVersion();
$thumbAsset->setStatus(thumbAsset::FLAVOR_ASSET_STATUS_ERROR);
$thumbAsset->setDescription($thumbAsset->getDescription() . "\n{$errDescription}");
$thumbAsset->save();
return $thumbAsset;
}
$thumbAsset->incrementVersion();
$thumbAsset->setStatus(thumbAsset::FLAVOR_ASSET_STATUS_READY);
if (file_exists($capturedPath)) {
list($width, $height, $type, $attr) = getimagesize($capturedPath);
$thumbAsset->setWidth($width);
$thumbAsset->setHeight($height);
$thumbAsset->setSize(filesize($capturedPath));
}
$logPath = $capturedPath . '.log';
if (file_exists($logPath)) {
$thumbAsset->incLogFileVersion();
$thumbAsset->save();
// creats the file sync
$logSyncKey = $thumbAsset->getSyncKey(flavorAsset::FILE_SYNC_FLAVOR_ASSET_SUB_TYPE_CONVERT_LOG);
kFileSyncUtils::moveFromFile($logPath, $logSyncKey);
KalturaLog::debug("Log archived file to: " . kFileSyncUtils::getLocalFilePathForKey($logSyncKey));
} else {
$thumbAsset->save();
}
$syncKey = $thumbAsset->getSyncKey(thumbAsset::FILE_SYNC_FLAVOR_ASSET_SUB_TYPE_ASSET);
kFileSyncUtils::moveFromFile($capturedPath, $syncKey);
KalturaLog::debug("Thumbnail archived file to: " . kFileSyncUtils::getLocalFilePathForKey($syncKey));
if ($thumbAsset->hasTag(thumbParams::TAG_DEFAULT_THUMB)) {
//.........这里部分代码省略.........
示例8: decideAddEntryFlavor
/**
* batch decideAddEntryFlavor is the decision layer for adding a single flavor conversion to an entry
*
* @param BatchJob $parentJob
* @param int $entryId
* @param int $flavorParamsId
* @param string $errDescription
* @param string $flavorAssetId
* @param array<kOperationAttributes> $dynamicAttributes
* @return BatchJob
*/
public static function decideAddEntryFlavor(BatchJob $parentJob = null, $entryId, $flavorParamsId, &$errDescription, $flavorAssetId = null, array $dynamicAttributes = array())
{
KalturaLog::log("entryId [{$entryId}], flavorParamsId [{$flavorParamsId}]");
$originalFlavorAsset = assetPeer::retrieveOriginalByEntryId($entryId);
if (is_null($originalFlavorAsset)) {
$errDescription = 'Original flavor asset not found';
KalturaLog::err($errDescription);
return null;
}
if ($originalFlavorAsset->getId() != $flavorAssetId && !$originalFlavorAsset->isLocalReadyStatus()) {
$errDescription = 'Original flavor asset not ready';
KalturaLog::err($errDescription);
return null;
}
// TODO - if source flavor is remote storage, create import job and mark the flavor as FLAVOR_ASSET_STATUS_WAIT_FOR_CONVERT
$mediaInfoId = null;
$mediaInfo = mediaInfoPeer::retrieveByFlavorAssetId($originalFlavorAsset->getId());
if ($mediaInfo) {
$mediaInfoId = $mediaInfo->getId();
}
$flavorParams = assetParamsPeer::retrieveByPK($flavorParamsId);
if (!$flavorParams) {
KalturaLog::err("Flavor Params Id [{$flavorParamsId}] not found");
return null;
}
$flavorParams->setDynamicAttributes($dynamicAttributes);
$flavor = self::validateFlavorAndMediaInfo($flavorParams, $mediaInfo, $errDescription);
if (is_null($flavor)) {
KalturaLog::err("Failed to validate media info [{$errDescription}]");
return null;
}
if ($parentJob) {
// prefer the partner id from the parent job, although it should be the same
$partnerId = $parentJob->getPartnerId();
} else {
$partnerId = $originalFlavorAsset->getPartnerId();
}
if (is_null($flavorAssetId)) {
$flavorAsset = assetPeer::retrieveByEntryIdAndParams($entryId, $flavorParamsId);
if ($flavorAsset) {
$flavorAssetId = $flavorAsset->getId();
}
}
$srcSyncKey = $originalFlavorAsset->getSyncKey(flavorAsset::FILE_SYNC_FLAVOR_ASSET_SUB_TYPE_ASSET);
$flavor->_force = true;
// force to convert the flavor, even if none complied
$flavor->setReadyBehavior(flavorParamsConversionProfile::READY_BEHAVIOR_IGNORE);
// should not be taken in completion rules check
$conversionProfile = myPartnerUtils::getConversionProfile2ForEntry($entryId);
if ($conversionProfile) {
$flavorParamsConversionProfile = flavorParamsConversionProfilePeer::retrieveByFlavorParamsAndConversionProfile($flavor->getFlavorParamsId(), $conversionProfile->getId());
if ($flavorParamsConversionProfile) {
$flavor->setReadyBehavior($flavorParamsConversionProfile->getReadyBehavior());
}
}
$flavorAsset = kBatchManager::createFlavorAsset($flavor, $partnerId, $entryId, $flavorAssetId);
if (!$flavorAsset) {
KalturaLog::err("Failed to create flavor asset");
return null;
}
$flavorAssetId = $flavorAsset->getId();
$collectionTag = $flavor->getCollectionTag();
if ($collectionTag) {
$entry = entryPeer::retrieveByPK($entryId);
if (!$entry) {
throw new APIException(APIErrors::INVALID_ENTRY, $parentJob, $entryId);
}
$dbConvertCollectionJob = null;
if ($parentJob) {
$dbConvertCollectionJob = $parentJob->createChild(false);
$dbConvertCollectionJob->setEntryId($entryId);
$dbConvertCollectionJob->save();
}
$flavorAssets = assetPeer::retrieveFlavorsByEntryId($entryId);
$flavorAssets = assetPeer::filterByTag($flavorAssets, $collectionTag);
$flavors = array();
foreach ($flavorAssets as $tagedFlavorAsset) {
if ($tagedFlavorAsset->getStatus() == flavorAsset::FLAVOR_ASSET_STATUS_NOT_APPLICABLE || $tagedFlavorAsset->getStatus() == flavorAsset::FLAVOR_ASSET_STATUS_DELETED) {
continue;
}
$flavorParamsOutput = assetParamsOutputPeer::retrieveByAssetId($tagedFlavorAsset->getId());
if (is_null($flavorParamsOutput)) {
KalturaLog::log("Creating flavor params output for asset [" . $tagedFlavorAsset->getId() . "]");
$flavorParams = assetParamsPeer::retrieveByPK($tagedFlavorAsset->getId());
$flavorParamsOutput = self::validateFlavorAndMediaInfo($flavorParams, $mediaInfo, $errDescription);
if (is_null($flavorParamsOutput)) {
KalturaLog::err("Failed to validate media info [{$errDescription}]");
continue;
}
//.........这里部分代码省略.........
示例9: addConvertProfileJob
/**
* @param BatchJob $batchJob
* @param entry $entry
* @param string $flavorAssetId
* @param string $inputFileSyncLocalPath
* @return BatchJob
*/
public static function addConvertProfileJob(BatchJob $parentJob = null, entry $entry, $flavorAssetId, $inputFileSyncLocalPath)
{
KalturaLog::debug("Parent job [" . ($parentJob ? $parentJob->getId() : 'none') . "] entry [" . $entry->getId() . "] flavor asset [{$flavorAssetId}] input file [{$inputFileSyncLocalPath}]");
if ($entry->getConversionQuality() == conversionProfile2::CONVERSION_PROFILE_NONE) {
$entry->setStatus(entryStatus::PENDING);
$entry->save();
KalturaLog::notice('Entry should not be converted');
return null;
}
$importingSources = false;
// if file size is 0, do not create conversion profile and set entry status as error converting
if (!file_exists($inputFileSyncLocalPath) || kFile::fileSize($inputFileSyncLocalPath) == 0) {
KalturaLog::debug("Input file [{$inputFileSyncLocalPath}] does not exist");
$partner = $entry->getPartner();
$conversionProfile = myPartnerUtils::getConversionProfile2ForEntry($entry->getId());
// load the asset params to the instance pool
$flavorIds = flavorParamsConversionProfilePeer::getFlavorIdsByProfileId($conversionProfile->getId());
assetParamsPeer::retrieveByPKs($flavorIds);
$conversionRequired = false;
$sourceFileRequiredStorages = array();
$sourceIncludedInProfile = false;
$flavorAsset = assetPeer::retrieveById($flavorAssetId);
$flavors = flavorParamsConversionProfilePeer::retrieveByConversionProfile($conversionProfile->getId());
KalturaLog::debug("Found flavors [" . count($flavors) . "] in conversion profile [" . $conversionProfile->getId() . "]");
foreach ($flavors as $flavor) {
/* @var $flavor flavorParamsConversionProfile */
if ($flavor->getFlavorParamsId() == $flavorAsset->getFlavorParamsId()) {
KalturaLog::debug("Flavor [" . $flavor->getFlavorParamsId() . "] is ingested source");
$sourceIncludedInProfile = true;
continue;
}
$flavorParams = assetParamsPeer::retrieveByPK($flavor->getFlavorParamsId());
if ($flavorParams instanceof liveParams || $flavor->getOrigin() == assetParamsOrigin::INGEST) {
KalturaLog::debug("Flavor [" . $flavor->getFlavorParamsId() . "] should be ingested");
continue;
}
if ($flavor->getOrigin() == assetParamsOrigin::CONVERT_WHEN_MISSING) {
$siblingFlavorAsset = assetPeer::retrieveByEntryIdAndParams($entry->getId(), $flavor->getFlavorParamsId());
if ($siblingFlavorAsset) {
KalturaLog::debug("Flavor [" . $flavor->getFlavorParamsId() . "] already ingested");
continue;
}
}
$sourceFileRequiredStorages[] = $flavorParams->getSourceRemoteStorageProfileId();
$conversionRequired = true;
break;
}
if ($conversionRequired) {
foreach ($sourceFileRequiredStorages as $storageId) {
if ($storageId == StorageProfile::STORAGE_KALTURA_DC) {
$key = $flavorAsset->getSyncKey(flavorAsset::FILE_SYNC_FLAVOR_ASSET_SUB_TYPE_ASSET);
list($syncFile, $local) = kFileSyncUtils::getReadyFileSyncForKey($key, true, false);
if ($syncFile && $syncFile->getFileType() == FileSync::FILE_SYNC_FILE_TYPE_URL && $partner && $partner->getImportRemoteSourceForConvert()) {
KalturaLog::debug("Creates import job for remote file sync");
$url = $syncFile->getExternalUrl($entry->getId());
kJobsManager::addImportJob($parentJob, $entry->getId(), $partner->getId(), $url, $flavorAsset, null, null, true);
$importingSources = true;
continue;
}
} elseif ($flavorAsset->getExternalUrl($storageId)) {
continue;
}
kBatchManager::updateEntry($entry->getId(), entryStatus::ERROR_CONVERTING);
$flavorAsset = assetPeer::retrieveById($flavorAssetId);
$flavorAsset->setStatus(flavorAsset::FLAVOR_ASSET_STATUS_ERROR);
$flavorAsset->setDescription('Entry of size 0 should not be converted');
$flavorAsset->save();
KalturaLog::err('Entry of size 0 should not be converted');
return null;
}
} else {
if ($flavorAsset->getStatus() == asset::FLAVOR_ASSET_STATUS_QUEUED) {
if ($sourceIncludedInProfile) {
$flavorAsset->setStatusLocalReady();
} else {
$flavorAsset->setStatus(asset::FLAVOR_ASSET_STATUS_DELETED);
$flavorAsset->setDeletedAt(time());
}
$flavorAsset->save();
if ($sourceIncludedInProfile) {
kBusinessPostConvertDL::handleConvertFinished(null, $flavorAsset);
}
}
return null;
}
}
if ($entry->getStatus() != entryStatus::READY) {
$entry->setStatus(entryStatus::PRECONVERT);
}
$jobData = new kConvertProfileJobData();
$jobData->setFlavorAssetId($flavorAssetId);
$jobData->setInputFileSyncLocalPath($inputFileSyncLocalPath);
$jobData->setExtractMedia(true);
//.........这里部分代码省略.........
示例10: execute
//.........这里部分代码省略.........
$request = str_replace("/seek_from_bytes/{$seek_from_bytes}", "", $request);
if ($seek_from_bytes <= 0) {
$seek_from_bytes = -1;
}
// grab seek_from parameter and normalize url
$seek_from = $this->getRequestParameter("seek_from", -1);
$request = str_replace("/seek_from/{$seek_from}", "", $request);
if ($seek_from <= 0) {
$seek_from = -1;
}
$this->dump_from_byte = 0;
// reset accurate seek from timestamp
$seek_from_timestamp = -1;
// backward compatibility
if ($flavor === "0") {
// for edit version
$flavor = "edit";
}
if ($flavor === "1" || $flavor === 1) {
// for play version
$flavor = null;
}
// when flavor is null, we will get a default flavor
if ($flavor == "edit") {
$flavorAsset = assetPeer::retrieveBestEditByEntryId($entry->getId());
} elseif (!is_null($flavor)) {
$flavorAsset = assetPeer::retrieveById($flavor);
// when specific asset was request, we don't validate its tags
if ($flavorAsset && ($flavorAsset->getEntryId() != $entry->getId() || $flavorAsset->getStatus() != flavorAsset::FLAVOR_ASSET_STATUS_READY)) {
$flavorAsset = null;
}
// we will throw an error later
} elseif (is_null($flavor) && !is_null($flavor_param_id)) {
$flavorAsset = assetPeer::retrieveByEntryIdAndParams($entry->getId(), $flavor_param_id);
if ($flavorAsset && $flavorAsset->getStatus() != flavorAsset::FLAVOR_ASSET_STATUS_READY) {
$flavorAsset = null;
}
// we will throw an error later
} else {
if ($entry->getSource() == entry::ENTRY_MEDIA_SOURCE_WEBCAM) {
$flavorAsset = assetPeer::retrieveOriginalByEntryId($entry->getId());
} else {
$flavorAsset = assetPeer::retrieveBestPlayByEntryId($entry->getId());
}
if (!$flavorAsset) {
$flavorAssets = assetPeer::retrieveReadyFlavorsByEntryIdAndTag($entry->getId(), flavorParams::TAG_WEB);
if (count($flavorAssets) > 0) {
$flavorAsset = $flavorAssets[0];
}
}
}
if (is_null($flavorAsset)) {
KExternalErrors::dieError(KExternalErrors::FLAVOR_NOT_FOUND);
}
$syncKey = $flavorAsset->getSyncKey(flavorAsset::FILE_SYNC_FLAVOR_ASSET_SUB_TYPE_ASSET);
if (kFileSyncUtils::file_exists($syncKey, false)) {
$path = kFileSyncUtils::getReadyLocalFilePathForKey($syncKey);
} else {
list($fileSync, $local) = kFileSyncUtils::getReadyFileSyncForKey($syncKey, true, false);
if (is_null($fileSync)) {
KalturaLog::log("Error - no FileSync for flavor [" . $flavorAsset->getId() . "]");
KExternalErrors::dieError(KExternalErrors::FILE_NOT_FOUND);
}
if ($fileSync->getFileType() == FileSync::FILE_SYNC_FILE_TYPE_URL) {
$urlManager = DeliveryProfilePeer::getRemoteDeliveryByStorageId(DeliveryProfileDynamicAttributes::init($fileSync->getDc(), $flavorAsset->getEntryId()), null, $flavorAsset);
if (!$urlManager) {
示例11: entryHandled
public function entryHandled(entry $dbEntry)
{
$srcEntry = entryPeer::retrieveByPK($this->entryId);
if ($srcEntry->getType() == KalturaEntryType::MEDIA_CLIP && $dbEntry->getType() == KalturaEntryType::MEDIA_CLIP && $dbEntry->getMediaType() == KalturaMediaType::IMAGE) {
if ($dbEntry->getMediaType() == KalturaMediaType::IMAGE) {
$dbEntry->setDimensions($srcEntry->getWidth(), $srcEntry->getHeight());
$dbEntry->setMediaDate($srcEntry->getMediaDate(null));
$dbEntry->save();
} else {
$srcFlavorAsset = null;
if (is_null($this->flavorParamsId)) {
$srcFlavorAsset = assetPeer::retrieveOriginalByEntryId($this->entryId);
} else {
$srcFlavorAsset = assetPeer::retrieveByEntryIdAndParams($this->entryId, $this->flavorParamsId);
}
if ($srcFlavorAsset) {
$dbEntry->setDimensions($srcFlavorAsset->getWidth(), $srcFlavorAsset->getHeight());
$dbEntry->save();
}
}
}
return parent::entryHandled($dbEntry);
}
示例12: retrieveByEntryIdAndParams
/**
*
* @return thumbAsset
*/
public static function retrieveByEntryIdAndParams($entryId, $paramsId)
{
self::getInstance();
return parent::retrieveByEntryIdAndParams($entryId, $paramsId);
}
示例13: initFlavorIds
protected function initFlavorIds()
{
$flavorIdsStr = $this->getRequestParameter("flavorIds", null);
if ($flavorIdsStr) {
$this->flavorIds = explode(",", $flavorIdsStr);
}
$this->flavorId = $this->getRequestParameter("flavorId", null);
if (!$this->flavorId) {
$flavorParamIds = $this->getRequestParameter("flavorParamIds", null);
if ($flavorParamIds !== null) {
$this->flavorIds = assetPeer::retrieveReadyFlavorsIdsByEntryId($this->entry->getId(), explode(",", $flavorParamIds));
if (!$this->flavorIds || count($this->flavorIds) == 0) {
KExternalErrors::dieError(KExternalErrors::FLAVOR_NOT_FOUND);
}
} else {
$flavorParamId = $this->getRequestParameter("flavorParamId", null);
if ($flavorParamId || $flavorParamId === "0") {
$flavorAsset = assetPeer::retrieveByEntryIdAndParams($this->entry->getId(), $flavorParamId);
if (!$flavorAsset) {
KExternalErrors::dieError(KExternalErrors::FLAVOR_NOT_FOUND);
}
$this->flavorId = $flavorAsset->getId();
}
}
}
}
示例14: getFlavorAssetUrl
private function getFlavorAssetUrl($kalturaEntry)
{
$partner = PartnerPeer::retrieveByPK($this->syndicationFeed->partnerId);
if (!$partner) {
return null;
}
$flavorAsset = assetPeer::retrieveByEntryIdAndParams($kalturaEntry->id, $this->syndicationFeed->flavorParamId);
if (!$flavorAsset) {
return null;
}
$syncKey = $flavorAsset->getSyncKey(flavorAsset::FILE_SYNC_FLAVOR_ASSET_SUB_TYPE_ASSET);
$externalStorageUrl = $this->getExternalStorageUrl($partner, $flavorAsset, $syncKey);
if ($externalStorageUrl) {
return $externalStorageUrl;
}
if ($partner->getStorageServePriority() == StorageProfile::STORAGE_SERVE_PRIORITY_EXTERNAL_ONLY) {
return null;
}
if ($this->syndicationFeedDb->getServePlayManifest()) {
$shouldAddKtToken = false;
if ($this->syndicationFeed->type == KalturaSyndicationFeedType::ITUNES) {
$entry = $flavorAsset->getentry();
$accessControl = $entry->getaccessControl();
if ($accessControl && $accessControl->hasRules()) {
$shouldAddKtToken = true;
}
}
$cdnHost = requestUtils::getApiCdnHost();
$clientTag = 'feed:' . $this->syndicationFeedDb->getId();
$url = $cdnHost . $flavorAsset->getPlayManifestUrl($clientTag, null, PlaybackProtocol::HTTP, $shouldAddKtToken);
} else {
$urlManager = DeliveryProfilePeer::getDeliveryProfile($flavorAsset->getEntryId());
$urlManager->initDeliveryDynamicAttributes(null, $flavorAsset);
$protocol = requestUtils::getProtocol();
if (!$urlManager->isProtocolSupported($protocol)) {
$protocol = $protocol == 'http' ? 'https' : 'http';
if (!$urlManager->isProtocolSupported($protocol)) {
$protocol = 'http';
}
}
$url = $protocol . '://' . $urlManager->getFullAssetUrl($flavorAsset);
}
return $url;
}
示例15: getFlavorAssetUrl
private function getFlavorAssetUrl($kalturaEntry)
{
$partner = PartnerPeer::retrieveByPK($this->syndicationFeed->partnerId);
if (!$partner) {
return null;
}
$flavorAsset = assetPeer::retrieveByEntryIdAndParams($kalturaEntry->id, $this->syndicationFeed->flavorParamId);
if (!$flavorAsset) {
return null;
}
$syncKey = $flavorAsset->getSyncKey(flavorAsset::FILE_SYNC_FLAVOR_ASSET_SUB_TYPE_ASSET);
$externalStorageUrl = $this->getExternalStorageUrl($partner, $flavorAsset, $syncKey);
if ($externalStorageUrl) {
return $externalStorageUrl;
}
if ($partner->getStorageServePriority() == StorageProfile::STORAGE_SERVE_PRIORITY_EXTERNAL_ONLY) {
return null;
}
if ($this->syndicationFeedDb->getServePlayManifest()) {
$cdnHost = requestUtils::getApiCdnHost();
$clientTag = 'feed:' . $this->syndicationFeedDb->getId();
$url = $cdnHost . $flavorAsset->getPlayManifestUrl($clientTag);
} else {
$urlManager = DeliveryProfilePeer::getDeliveryProfile($flavorAsset->getEntryId());
$urlManager->initDeliveryDynamicAttributes(null, $flavorAsset);
$url = "http://" . $urlManager->getFullAssetUrl($flavorAsset);
}
return $url;
}