示例#1
0
 /**
  * @param BatchJob $dbBatchJob
  * @param kExtractMediaJobData $data
  * @param BatchJob $twinJob
  * @return BatchJob
  */
 public static function handleExtractMediaClosed(BatchJob $dbBatchJob, kExtractMediaJobData $data, BatchJob $twinJob = null)
 {
     KalturaLog::debug("Extract media closed");
     if ($dbBatchJob->getAbort()) {
         return $dbBatchJob;
     }
     $rootBatchJob = $dbBatchJob->getRootJob();
     if (!$rootBatchJob) {
         return $dbBatchJob;
     }
     if ($twinJob) {
         // copy media info
         $twinData = $twinJob->getData();
         if ($twinData->getMediaInfoId()) {
             $twinMediaInfo = mediaInfoPeer::retrieveByPK($twinData->getMediaInfoId());
             if ($twinMediaInfo) {
                 $mediaInfo = $twinMediaInfo->copy();
                 $mediaInfo->setFlavorAssetId($data->getFlavorAssetId());
                 $mediaInfo = kBatchManager::addMediaInfo($mediaInfo);
                 $data->setMediaInfoId($mediaInfo->getId());
                 $dbBatchJob->setData($data);
                 $dbBatchJob->save();
             }
         }
     }
     if ($dbBatchJob->getStatus() == BatchJob::BATCHJOB_STATUS_FINISHED) {
         $entry = $dbBatchJob->getEntry();
         if ($entry->getStatus() < entryStatus::READY) {
             kBatchManager::updateEntry($dbBatchJob, entryStatus::PRECONVERT);
         }
     }
     switch ($dbBatchJob->getJobSubType()) {
         case mediaInfo::ASSET_TYPE_ENTRY_INPUT:
             if ($rootBatchJob->getJobType() == BatchJobType::CONVERT_PROFILE) {
                 $conversionsCreated = kBusinessPreConvertDL::decideProfileConvert($dbBatchJob, $rootBatchJob, $data->getMediaInfoId());
                 if ($conversionsCreated) {
                     // handle the source flavor as if it was converted, makes the entry ready according to ready behavior rules
                     $currentFlavorAsset = flavorAssetPeer::retrieveById($data->getFlavorAssetId());
                     if ($currentFlavorAsset) {
                         $dbBatchJob = kBusinessPostConvertDL::handleConvertFinished($dbBatchJob, $currentFlavorAsset);
                     }
                 }
             }
             break;
         case mediaInfo::ASSET_TYPE_FLAVOR_INPUT:
             if ($rootBatchJob->getJobType() == BatchJobType::REMOTE_CONVERT) {
                 $remoteConvertData = $rootBatchJob->getData();
                 $errDescription = null;
                 $syncKey = null;
                 // TODO - how to get or create the sync key?
                 $newConvertJob = kBusinessPreConvertDL::decideFlavorConvert($syncKey, $remoteConvertData->getFlavorParamsOutputId(), $errDescription, $remoteConvertData->getMediaInfoId(), $dbBatchJob);
                 if (!$newConvertJob) {
                     kJobsManager::failBatchJob($rootBatchJob);
                 }
             }
             break;
         default:
             // currently do nothing
             break;
     }
     return $dbBatchJob;
 }
示例#2
0
 /**
  * batch addMediaInfoAction action saves a media info object
  * 
  * @action addMediaInfo
  * @param KalturaMediaInfo $mediaInfo
  * @return KalturaMediaInfo 
  */
 function addMediaInfoAction(KalturaMediaInfo $mediaInfo)
 {
     $mediaInfoDb = null;
     $flavorAsset = null;
     if ($mediaInfo->flavorAssetId) {
         $flavorAsset = flavorAssetPeer::retrieveById($mediaInfo->flavorAssetId);
         $mediaInfoDb = mediaInfoPeer::retrieveByFlavorAssetId($mediaInfo->flavorAssetId);
         if ($mediaInfoDb && $mediaInfoDb->getFlavorAssetVersion() == $flavorAsset->getVersion()) {
             $mediaInfoDb = $mediaInfo->toUpdatableObject($mediaInfoDb);
         } else {
             $mediaInfoDb = null;
         }
     }
     if (!$mediaInfoDb) {
         $mediaInfoDb = $mediaInfo->toInsertableObject();
     }
     if ($flavorAsset) {
         $mediaInfoDb->setFlavorAssetVersion($flavorAsset->getVersion());
     }
     $mediaInfoDb = kBatchManager::addMediaInfo($mediaInfoDb);
     $mediaInfo->fromObject($mediaInfoDb);
     return $mediaInfo;
 }
 /**
  * batch addMediaInfoAction action saves a media info object
  * 
  * @action addMediaInfo
  * @param KalturaMediaInfo $mediaInfo
  * @return KalturaMediaInfo 
  * @throws KalturaErrors::FLAVOR_ASSET_ID_NOT_FOUND
  */
 function addMediaInfoAction(KalturaMediaInfo $mediaInfo)
 {
     $mediaInfoDb = null;
     $flavorAsset = null;
     if ($mediaInfo->flavorAssetId) {
         $flavorAsset = assetPeer::retrieveByIdNoFilter($mediaInfo->flavorAssetId);
         if (!$flavorAsset) {
             throw new KalturaAPIException(KalturaErrors::FLAVOR_ASSET_ID_NOT_FOUND, $mediaInfo->flavorAssetId);
         }
         $mediaInfoDb = mediaInfoPeer::retrieveByFlavorAssetId($mediaInfo->flavorAssetId);
         if ($mediaInfoDb && $mediaInfoDb->getFlavorAssetVersion() == $flavorAsset->getVersion()) {
             $mediaInfoDb = $mediaInfo->toUpdatableObject($mediaInfoDb);
         } else {
             $mediaInfoDb = null;
         }
     }
     if (!$mediaInfoDb) {
         $mediaInfoDb = $mediaInfo->toInsertableObject();
     }
     if ($flavorAsset) {
         $mediaInfoDb->setFlavorAssetVersion($flavorAsset->getVersion());
     }
     $mediaInfoDb = kBatchManager::addMediaInfo($mediaInfoDb);
     $mediaInfo->fromObject($mediaInfoDb);
     return $mediaInfo;
 }
 /**
  * @param BatchJob $dbBatchJob
  * @param kExtractMediaJobData $data
  * @param BatchJob $twinJob
  * @return BatchJob
  */
 public static function handleExtractMediaClosed(BatchJob $dbBatchJob, kExtractMediaJobData $data, BatchJob $twinJob = null)
 {
     KalturaLog::debug("Extract media closed");
     if ($dbBatchJob->getAbort()) {
         return $dbBatchJob;
     }
     $rootBatchJob = $dbBatchJob->getRootJob();
     if (!$rootBatchJob) {
         return $dbBatchJob;
     }
     if ($twinJob) {
         // copy media info
         $twinData = $twinJob->getData();
         if ($twinData->getMediaInfoId()) {
             $twinMediaInfo = mediaInfoPeer::retrieveByPK($twinData->getMediaInfoId());
             if ($twinMediaInfo) {
                 $mediaInfo = $twinMediaInfo->copy();
                 $mediaInfo->setFlavorAssetId($data->getFlavorAssetId());
                 $mediaInfo = kBatchManager::addMediaInfo($mediaInfo);
                 $data->setMediaInfoId($mediaInfo->getId());
                 $dbBatchJob->setData($data);
                 $dbBatchJob->save();
             }
         }
     }
     if ($dbBatchJob->getStatus() == BatchJob::BATCHJOB_STATUS_FINISHED) {
         $entry = entryPeer::retrieveByPKNoFilter($dbBatchJob->getEntryId());
         if ($entry->getStatus() != entryStatus::READY && $entry->getStatus() != entryStatus::DELETED) {
             kBatchManager::updateEntry($dbBatchJob->getEntryId(), entryStatus::PRECONVERT);
         }
     }
     if ($rootBatchJob->getJobType() == BatchJobType::CONVERT_PROFILE) {
         kBusinessPreConvertDL::decideProfileConvert($dbBatchJob, $rootBatchJob, $data->getMediaInfoId());
         // handle the source flavor as if it was converted, makes the entry ready according to ready behavior rules
         $currentFlavorAsset = assetPeer::retrieveById($data->getFlavorAssetId());
         if ($currentFlavorAsset && $currentFlavorAsset->getStatus() == asset::FLAVOR_ASSET_STATUS_READY) {
             $dbBatchJob = kBusinessPostConvertDL::handleConvertFinished($dbBatchJob, $currentFlavorAsset);
         }
     }
     return $dbBatchJob;
 }