本文整理汇总了PHP中kJobsManager::addConcatJob方法的典型用法代码示例。如果您正苦于以下问题:PHP kJobsManager::addConcatJob方法的具体用法?PHP kJobsManager::addConcatJob怎么用?PHP kJobsManager::addConcatJob使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类kJobsManager
的用法示例。
在下文中一共展示了kJobsManager::addConcatJob方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: handleConvertLiveSegmentFinished
/**
* @param BatchJob $dbBatchJob
* @param kConvertLiveSegmentJobData $data
* @return BatchJob
*/
public static function handleConvertLiveSegmentFinished(BatchJob $dbBatchJob, kConvertLiveSegmentJobData $data)
{
$liveEntry = entryPeer::retrieveByPKNoFilter($dbBatchJob->getEntryId());
/* @var $liveEntry LiveEntry */
if (!$liveEntry) {
KalturaLog::err("Live entry [" . $dbBatchJob->getEntryId() . "] not found");
return $dbBatchJob;
}
$recordedEntry = entryPeer::retrieveByPKNoFilter($liveEntry->getRecordedEntryId());
if (!$recordedEntry) {
KalturaLog::err("Recorded entry [" . $liveEntry->getRecordedEntryId() . "] not found");
return $dbBatchJob;
}
$asset = assetPeer::retrieveByIdNoFilter($data->getAssetId());
/* @var $asset liveAsset */
if (!$asset) {
KalturaLog::err("Live asset [" . $data->getAssetId() . "] not found");
return $dbBatchJob;
}
$keyType = liveAsset::FILE_SYNC_ASSET_SUB_TYPE_LIVE_PRIMARY;
if ($data->getMediaServerIndex() == MediaServerIndex::SECONDARY) {
$keyType = liveAsset::FILE_SYNC_ASSET_SUB_TYPE_LIVE_SECONDARY;
}
$key = $asset->getSyncKey($keyType);
$baseName = $asset->getEntryId() . '_' . $asset->getId() . '.ts';
kFileSyncUtils::moveFromFileToDirectory($key, $data->getDestFilePath(), $baseName);
if ($data->getMediaServerIndex() == MediaServerIndex::SECONDARY) {
return $dbBatchJob;
}
$files = kFileSyncUtils::dir_get_files($key, false);
if (count($files) > 1) {
// find replacing entry id
$replacingEntry = kFlowHelper::getReplacingEntry($recordedEntry, $asset);
if (is_null($replacingEntry)) {
KalturaLog::err('Failed to retrieve replacing entry');
return $dbBatchJob;
}
$flavorParams = assetParamsPeer::retrieveByPKNoFilter($asset->getFlavorParamsId());
if (is_null($flavorParams)) {
KalturaLog::err('Failed to retrieve asset params');
return $dbBatchJob;
}
// create asset
$replacingAsset = assetPeer::getNewAsset(assetType::FLAVOR);
$replacingAsset->setPartnerId($replacingEntry->getPartnerId());
$replacingAsset->setEntryId($replacingEntry->getId());
$replacingAsset->setStatus(asset::FLAVOR_ASSET_STATUS_QUEUED);
$replacingAsset->setFlavorParamsId($flavorParams->getId());
$replacingAsset->setFromAssetParams($flavorParams);
if ($flavorParams->hasTag(assetParams::TAG_SOURCE)) {
$replacingAsset->setIsOriginal(true);
}
$replacingAsset->save();
$job = kJobsManager::addConcatJob($dbBatchJob, $replacingAsset, $files);
}
return $dbBatchJob;
}
示例2: handleConvertLiveSegmentFinished
/**
* @param BatchJob $dbBatchJob
* @param kConvertLiveSegmentJobData $data
* @return BatchJob
*/
public static function handleConvertLiveSegmentFinished(BatchJob $dbBatchJob, kConvertLiveSegmentJobData $data)
{
$liveEntry = entryPeer::retrieveByPKNoFilter($dbBatchJob->getEntryId());
/* @var $liveEntry LiveEntry */
if (!$liveEntry) {
KalturaLog::err("Live entry [" . $dbBatchJob->getEntryId() . "] not found");
return $dbBatchJob;
}
$recordedEntry = entryPeer::retrieveByPKNoFilter($liveEntry->getRecordedEntryId());
if (!$recordedEntry) {
KalturaLog::err("Recorded entry [" . $liveEntry->getRecordedEntryId() . "] not found");
return $dbBatchJob;
}
$asset = assetPeer::retrieveByIdNoFilter($data->getAssetId());
/* @var $asset liveAsset */
if (!$asset) {
KalturaLog::err("Live asset [" . $data->getAssetId() . "] not found");
return $dbBatchJob;
}
$keyType = liveAsset::FILE_SYNC_ASSET_SUB_TYPE_LIVE_PRIMARY;
if ($data->getMediaServerIndex() == MediaServerIndex::SECONDARY) {
$keyType = liveAsset::FILE_SYNC_ASSET_SUB_TYPE_LIVE_SECONDARY;
}
$key = $asset->getSyncKey($keyType);
$baseName = $asset->getEntryId() . '_' . $asset->getId() . '.ts';
kFileSyncUtils::moveFromFileToDirectory($key, $data->getDestFilePath(), $baseName);
if ($data->getMediaServerIndex() == MediaServerIndex::SECONDARY) {
return $dbBatchJob;
}
$files = kFileSyncUtils::dir_get_files($key, false);
// If we have less files on disk than what we should have it means the output file will be missing segments.
// don't generate it, and the next concat will do the work for us.
if (count($files) != $data->getFileIndex() + 1) {
KalturaLog::warning('number of segments on disk ' . count($files) . ' is not equal to segment index ' . $data->getFileIndex() . ' - not running the concat job');
return $dbBatchJob;
}
if (count($files) > 1) {
// find replacing entry id
$replacingEntry = self::getReplacingEntry($recordedEntry, $asset);
if (is_null($replacingEntry)) {
KalturaLog::err("Failed to get replacing entry");
}
$flavorParams = assetParamsPeer::retrieveByPKNoFilter($asset->getFlavorParamsId());
if (is_null($flavorParams)) {
KalturaLog::err('Failed to retrieve asset params');
return $dbBatchJob;
}
// create asset
$replacingAsset = assetPeer::getNewAsset(assetType::FLAVOR);
$replacingAsset->setPartnerId($replacingEntry->getPartnerId());
$replacingAsset->setEntryId($replacingEntry->getId());
$replacingAsset->setStatus(asset::FLAVOR_ASSET_STATUS_QUEUED);
$replacingAsset->setFlavorParamsId($flavorParams->getId());
$replacingAsset->setFromAssetParams($flavorParams);
if ($flavorParams->hasTag(assetParams::TAG_SOURCE)) {
$replacingAsset->setIsOriginal(true);
}
$replacingAsset->save();
$job = kJobsManager::addConcatJob($dbBatchJob, $replacingAsset, $files);
}
return $dbBatchJob;
}