/** * Return a VOD entry (sourceType = RECORDED_LIVE) based on the flavorAsset that is * associated with the given mediaInfo object * @param mediaInfo $mediaInfo * @return entry|null */ public static function getVodEntryBasedOnMediaInfoFlavorAsset($mediaInfo) { if (!$mediaInfo instanceof mediaInfo) { return null; } $flavorAsset = $mediaInfo->getasset(); if (!$flavorAsset || !$flavorAsset->hasTag(assetParams::TAG_RECORDING_ANCHOR)) { return null; } $vodEntry = $flavorAsset->getentry(); if (!$vodEntry || $vodEntry->getSourceType() != EntrySourceType::RECORDED_LIVE) { return null; } return $vodEntry; }
/** * Adds an object to the instance pool. * * Propel keeps cached copies of objects in an instance pool when they are retrieved * from the database. In some cases -- especially when you override doSelect*() * methods in your stub classes -- you may need to explicitly add objects * to the cache in order to ensure that the same objects are always returned by doSelect*() * and retrieveByPK*() calls. * * @param mediaInfo $value A mediaInfo object. * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). */ public static function addInstanceToPool(mediaInfo $obj, $key = null) { if (Propel::isInstancePoolingEnabled()) { if ($key === null) { $key = (string) $obj->getId(); } // if key === null self::$instances[$key] = $obj; } }
/** * validateThumbAndMediaInfo validate and manipulate a thumbnail params according to the given media info * * @param thumbParams $thumbParams * @param mediaInfo $mediaInfo * @param string $errDescription * @return thumbParamsOutput or null for fail */ protected static function validateThumbAndMediaInfo(thumbParams $thumbParams, mediaInfo $mediaInfo = null, &$errDescription) { $thumbParamsOutput = new thumbParamsOutput(); $thumbParamsOutput->setFlavorParamsId($thumbParams->getId()); $thumbParamsOutput->setFlavorParamsVersion($thumbParams->getVersion()); $thumbParamsOutput->setName($thumbParams->getName()); $thumbParamsOutput->setTags($thumbParams->getTags()); $thumbParamsOutput->setDescription($thumbParams->getDescription()); $thumbParamsOutput->setReadyBehavior($thumbParams->getReadyBehavior()); $thumbParamsOutput->setFormat($thumbParams->getFormat()); $thumbParamsOutput->setWidth($thumbParams->getWidth()); $thumbParamsOutput->setHeight($thumbParams->getHeight()); $thumbParamsOutput->setConversionEngines($thumbParams->getConversionEngines()); $thumbParamsOutput->setConversionEnginesExtraParams($thumbParams->getConversionEnginesExtraParams()); $thumbParamsOutput->setOperators($thumbParams->getOperators()); $thumbParamsOutput->setEngineVersion($thumbParams->getEngineVersion()); $thumbParamsOutput->setFileExt('jpg'); $thumbParamsOutput->setCropType($thumbParams->getCropType()); $thumbParamsOutput->setQuality($thumbParams->getQuality()); $thumbParamsOutput->setCropX($thumbParams->getCropX()); $thumbParamsOutput->setCropY($thumbParams->getCropY()); $thumbParamsOutput->setCropWidth($thumbParams->getCropWidth()); $thumbParamsOutput->setCropHeight($thumbParams->getCropHeight()); $thumbParamsOutput->setCropProvider($thumbParams->getCropProvider()); $thumbParamsOutput->setCropProviderData($thumbParams->getCropProviderData()); $thumbParamsOutput->setVideoOffset($thumbParams->getVideoOffset()); $thumbParamsOutput->setWidth($thumbParams->getWidth()); $thumbParamsOutput->setHeight($thumbParams->getHeight()); $thumbParamsOutput->setScaleWidth($thumbParams->getScaleWidth()); $thumbParamsOutput->setScaleHeight($thumbParams->getScaleHeight()); $thumbParamsOutput->setBackgroundColor($thumbParams->getBackgroundColor()); if ($mediaInfo) { if ($thumbParamsOutput->getVideoOffset() && $mediaInfo->getVideoDuration()) { $videoDurationSec = floor($mediaInfo->getVideoDuration() / 1000); if ($thumbParamsOutput->getVideoOffset() > $videoDurationSec) { $thumbParamsOutput->setVideoOffset($videoDurationSec); } } } return $thumbParamsOutput; }
public static function ConvertMediainfoCdl2Mediadataset(mediaInfo $cdlMediaInfo, KDLMediaDataSet &$medSet) { // KalturaLog::log(__METHOD__."->".$cdlMediaInfo->getRawData()); $medSet->_container = new KDLContainerData(); $medSet->_streamsCollectionStr = $cdlMediaInfo->getMultiStreamInfo(); $medSet->_container->_id = $cdlMediaInfo->getContainerId(); $medSet->_container->_format = $cdlMediaInfo->getContainerFormat(); $medSet->_container->_duration = $cdlMediaInfo->getContainerDuration(); $medSet->_container->_bitRate = $cdlMediaInfo->getContainerBitRate(); $medSet->_container->_fileSize = $cdlMediaInfo->getFileSize(); if ($medSet->_container->IsDataSet() == false) { $medSet->_container = null; } $medSet->_video = new KDLVideoData(); $medSet->_video->_id = $cdlMediaInfo->getVideoCodecId(); $medSet->_video->_format = $cdlMediaInfo->getVideoFormat(); $medSet->_video->_duration = $cdlMediaInfo->getVideoDuration(); $medSet->_video->_bitRate = $cdlMediaInfo->getVideoBitRate(); $medSet->_video->_width = $cdlMediaInfo->getVideoWidth(); $medSet->_video->_height = $cdlMediaInfo->getVideoHeight(); $medSet->_video->_frameRate = $cdlMediaInfo->getVideoFrameRate(); $medSet->_video->_dar = $cdlMediaInfo->getVideoDar(); $medSet->_video->_rotation = $cdlMediaInfo->getVideoRotation(); $medSet->_video->_scanType = $cdlMediaInfo->getScanType(); /* { $medLoader = new KDLMediaInfoLoader($cdlMediaInfo->getRawData()); $md = new KDLMediadataset(); $medLoader->Load($md); if($md->_video) $medSet->_video->_scanType = $md->_video->_scanType; } */ if ($medSet->_video->IsDataSet() == false) { $medSet->_video = null; } $medSet->_audio = new KDLAudioData(); $medSet->_audio->_id = $cdlMediaInfo->getAudioCodecId(); $medSet->_audio->_format = $cdlMediaInfo->getAudioFormat(); $medSet->_audio->_duration = $cdlMediaInfo->getAudioDuration(); $medSet->_audio->_bitRate = $cdlMediaInfo->getAudioBitRate(); $medSet->_audio->_channels = $cdlMediaInfo->getAudioChannels(); $medSet->_audio->_sampleRate = $cdlMediaInfo->getAudioSamplingRate(); $medSet->_audio->_resolution = $cdlMediaInfo->getAudioResolution(); if ($medSet->_audio->IsDataSet() == false) { $medSet->_audio = null; } return $medSet; }
/** * validateThumbAndMediaInfo validate and manipulate a thumbnail params according to the given media info * * @param thumbParams $thumbParams * @param mediaInfo $mediaInfo * @param string $errDescription * @return thumbParamsOutput or null for fail */ protected static function validateThumbAndMediaInfo(thumbParams $thumbParams, mediaInfo $mediaInfo = null, &$errDescription, $srcAsset = null) { $thumbParamsOutput = new thumbParamsOutput(); $thumbParamsOutput->setFlavorParamsId($thumbParams->getId()); $thumbParamsOutput->setFlavorParamsVersion($thumbParams->getVersion()); $thumbParamsOutput->setName($thumbParams->getName()); $thumbParamsOutput->setTags($thumbParams->getTags()); $thumbParamsOutput->setDescription($thumbParams->getDescription()); $thumbParamsOutput->setReadyBehavior($thumbParams->getReadyBehavior()); $thumbParamsOutput->setFormat($thumbParams->getFormat()); $thumbParamsOutput->setWidth($thumbParams->getWidth()); $thumbParamsOutput->setHeight($thumbParams->getHeight()); $thumbParamsOutput->setConversionEngines($thumbParams->getConversionEngines()); $thumbParamsOutput->setConversionEnginesExtraParams($thumbParams->getConversionEnginesExtraParams()); $thumbParamsOutput->setOperators($thumbParams->getOperators()); $thumbParamsOutput->setEngineVersion($thumbParams->getEngineVersion()); $extensionTypes = kConf::hasParam('image_file_ext') ? kConf::get('image_file_ext') : array(); $ext = null; if ($srcAsset) { $ext = $srcAsset->getFileExt(); } if (!is_null($ext) && in_array($ext, $extensionTypes)) { $thumbParamsOutput->setFileExt($ext); } else { $thumbParamsOutput->setFileExt('jpg'); } $thumbParamsOutput->setRotate($mediaInfo ? $mediaInfo->getVideoRotation() : null); $thumbParamsOutput->setCropType($thumbParams->getCropType()); $thumbParamsOutput->setQuality($thumbParams->getQuality()); $thumbParamsOutput->setCropX($thumbParams->getCropX()); $thumbParamsOutput->setCropY($thumbParams->getCropY()); $thumbParamsOutput->setCropWidth($thumbParams->getCropWidth()); $thumbParamsOutput->setCropHeight($thumbParams->getCropHeight()); $thumbParamsOutput->setCropProvider($thumbParams->getCropProvider()); $thumbParamsOutput->setCropProviderData($thumbParams->getCropProviderData()); $thumbParamsOutput->setVideoOffset($thumbParams->getVideoOffset()); $thumbParamsOutput->setWidth($thumbParams->getWidth()); $thumbParamsOutput->setHeight($thumbParams->getHeight()); $thumbParamsOutput->setScaleWidth($thumbParams->getScaleWidth()); $thumbParamsOutput->setScaleHeight($thumbParams->getScaleHeight()); $thumbParamsOutput->setBackgroundColor($thumbParams->getBackgroundColor()); if ($mediaInfo && $mediaInfo->getVideoDuration()) { $videoDurationSec = floor($mediaInfo->getVideoDuration() / 1000); if ($thumbParamsOutput->getVideoOffset()) { if ($thumbParamsOutput->getVideoOffset() > $videoDurationSec) { $thumbParamsOutput->setVideoOffset($videoDurationSec); } } elseif (!is_null($thumbParams->getVideoOffsetInPercentage())) { $percentage = $thumbParams->getVideoOffsetInPercentage() / 100; $thumbParamsOutput->setVideoOffset(floor($videoDurationSec * $percentage)); } } return $thumbParamsOutput; }
public static function ConvertMediainfoCdl2Mediadataset(mediaInfo $cdlMediaInfo, KDLMediaDataSet &$medSet) { $medSet->_container = new KDLContainerData(); /**/ $contentStreams = $cdlMediaInfo->getContentStreams(); if (isset($contentStreams)) { if (is_string($contentStreams)) { $fromJson = json_decode($contentStreams); $medSet->_contentStreams = isset($fromJson) ? $fromJson : null; } else { $medSet->_contentStreams = $contentStreams; } } $medSet->_container->_id = $cdlMediaInfo->getContainerId(); $medSet->_container->_format = $cdlMediaInfo->getContainerFormat(); $medSet->_container->_duration = $cdlMediaInfo->getContainerDuration(); $medSet->_container->_bitRate = $cdlMediaInfo->getContainerBitRate(); $medSet->_container->_fileSize = $cdlMediaInfo->getFileSize(); $medSet->_container->_isFastStart = $cdlMediaInfo->getIsFastStart(); if ($medSet->_container->IsDataSet() == false) { $medSet->_container = null; } $medSet->_video = new KDLVideoData(); $medSet->_video->_id = $cdlMediaInfo->getVideoCodecId(); $medSet->_video->_format = $cdlMediaInfo->getVideoFormat(); $medSet->_video->_duration = $cdlMediaInfo->getVideoDuration(); $medSet->_video->_bitRate = $cdlMediaInfo->getVideoBitRate(); $medSet->_video->_width = $cdlMediaInfo->getVideoWidth(); $medSet->_video->_height = $cdlMediaInfo->getVideoHeight(); $medSet->_video->_frameRate = $cdlMediaInfo->getVideoFrameRate(); $medSet->_video->_dar = $cdlMediaInfo->getVideoDar(); $medSet->_video->_rotation = $cdlMediaInfo->getVideoRotation(); $medSet->_video->_scanType = $cdlMediaInfo->getScanType(); /* { $medLoader = new KDLMediaInfoLoader($cdlMediaInfo->getRawData()); $md = new KDLMediadataset(); $medLoader->Load($md); if($md->_video) $medSet->_video->_scanType = $md->_video->_scanType; } */ if ($medSet->_video->IsDataSet() == false) { $medSet->_video = null; } $medSet->_audio = new KDLAudioData(); $medSet->_audio->_id = $cdlMediaInfo->getAudioCodecId(); $medSet->_audio->_format = $cdlMediaInfo->getAudioFormat(); $medSet->_audio->_duration = $cdlMediaInfo->getAudioDuration(); $medSet->_audio->_bitRate = $cdlMediaInfo->getAudioBitRate(); $medSet->_audio->_channels = $cdlMediaInfo->getAudioChannels(); $medSet->_audio->_sampleRate = $cdlMediaInfo->getAudioSamplingRate(); $medSet->_audio->_resolution = $cdlMediaInfo->getAudioResolution(); if ($medSet->_audio->IsDataSet() == false) { $medSet->_audio = null; } return $medSet; }
/** * batch addMediaInfo adds a media info and updates the flavor asset * * @param mediaInfo $mediaInfoDb * @return mediaInfo */ public static function addMediaInfo(mediaInfo $mediaInfoDb) { $mediaInfoDb->save(); KalturaLog::log("Added media info [" . $mediaInfoDb->getId() . "] for flavor asset [" . $mediaInfoDb->getFlavorAssetId() . "]"); if (!$mediaInfoDb->getFlavorAssetId()) { return $mediaInfoDb; } $flavorAsset = assetPeer::retrieveById($mediaInfoDb->getFlavorAssetId()); if (!$flavorAsset) { return $mediaInfoDb; } if ($flavorAsset->getIsOriginal()) { KalturaLog::log("Media info is for the original flavor asset"); $tags = null; $profile = myPartnerUtils::getConversionProfile2ForEntry($flavorAsset->getEntryId()); if ($profile) { $tags = $profile->getInputTagsMap(); } KalturaLog::log("Flavor asset tags from profile [{$tags}]"); if (!is_null($tags)) { $tagsArray = explode(',', $tags); // support for old migrated profiles if ($profile->getCreationMode() == conversionProfile2::CONVERSION_PROFILE_2_CREATION_MODE_AUTOMATIC_BYPASS_FLV) { if (!KDLWrap::CDLIsFLV($mediaInfoDb)) { $key = array_search(flavorParams::TAG_MBR, $tagsArray); if ($key !== false) { unset($tagsArray[$key]); } } } $finalTagsArray = KDLWrap::CDLMediaInfo2Tags($mediaInfoDb, $tagsArray); $finalTags = join(',', array_unique($finalTagsArray)); KalturaLog::log("Flavor asset tags from KDL [{$finalTags}]"); //KalturaLog::log("Flavor asset tags [".print_r($flavorAsset->setTags(),1)."]"); $flavorAsset->addTags($finalTagsArray); } } else { KalturaLog::log("Media info is for the destination flavor asset"); $tags = null; $flavorParams = assetParamsPeer::retrieveByPK($flavorAsset->getFlavorParamsId()); if ($flavorParams) { $tags = $flavorParams->getTags(); } KalturaLog::log("Flavor asset tags from flavor params [{$tags}]"); if (!is_null($tags)) { $tagsArray = explode(',', $tags); $assetTagsArray = $flavorAsset->getTagsArray(); foreach ($assetTagsArray as $tag) { $tagsArray[] = $tag; } $maxMbrBitrate = 8000; if (kConf::hasParam('max_mbr_flavor_bitrate')) { $maxMbrBitrate = kConf::get('max_mbr_flavor_bitrate'); } if ($mediaInfoDb->getContainerBitRate() >= $maxMbrBitrate) { $tagsArray = array_unique($tagsArray); $key = array_search(flavorParams::TAG_MBR, $tagsArray); if ($key !== false) { unset($tagsArray[$key]); } } $finalTagsArray = $tagsArray; // bypass, KDLWrap::CDLMediaInfo2Tags doesn't support destination flavors and mobile tags // $finalTagsArray = KDLWrap::CDLMediaInfo2Tags($mediaInfoDb, $tagsArray); $finalTags = join(',', array_unique($finalTagsArray)); KalturaLog::log("Flavor asset tags from KDL [{$finalTags}]"); $flavorAsset->setTags($finalTags); } } KalturaLog::log("KDLWrap::ConvertMediainfoCdl2FlavorAsset(" . $mediaInfoDb->getId() . ", " . $flavorAsset->getId() . ");"); KDLWrap::ConvertMediainfoCdl2FlavorAsset($mediaInfoDb, $flavorAsset); $flavorAsset->save(); // if(!$flavorAsset->hasTag(flavorParams::TAG_MBR)) // return $mediaInfoDb; $entry = entryPeer::retrieveByPK($flavorAsset->getEntryId()); if (!$entry) { return $mediaInfoDb; } $contentDuration = $mediaInfoDb->getContainerDuration(); if (!$contentDuration) { $contentDuration = $mediaInfoDb->getVideoDuration(); if (!$contentDuration) { $contentDuration = $mediaInfoDb->getAudioDuration(); } } if ($contentDuration && $entry->getCalculateDuration()) { $entry->setLengthInMsecs($contentDuration); } if ($mediaInfoDb->getVideoWidth() && $mediaInfoDb->getVideoHeight()) { $entry->setDimensionsIfBigger($mediaInfoDb->getVideoWidth(), $mediaInfoDb->getVideoHeight()); } $entry->save(); return $mediaInfoDb; }
/** * Adds an object to the instance pool. * * Propel keeps cached copies of objects in an instance pool when they are retrieved * from the database. In some cases -- especially when you override doSelect*() * methods in your stub classes -- you may need to explicitly add objects * to the cache in order to ensure that the same objects are always returned by doSelect*() * and retrieveByPK*() calls. * * @param mediaInfo $value A mediaInfo object. * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). */ public static function addInstanceToPool(mediaInfo $obj, $key = null) { if (Propel::isInstancePoolingEnabled()) { if ($key === null) { $key = (string) $obj->getId(); } if (isset(self::$instances[$key]) || count(self::$instances) < kConf::get('max_num_instances_in_pool')) { self::$instances[$key] = $obj; kMemoryManager::registerPeer('mediaInfoPeer'); } } }
/** * batch addMediaInfo adds a media info and updates the flavor asset * * @param mediaInfo $mediaInfoDb * @return mediaInfo */ public static function addMediaInfo(mediaInfo $mediaInfoDb) { $mediaInfoDb->save(); KalturaLog::log("Added media info [" . $mediaInfoDb->getId() . "] for flavor asset [" . $mediaInfoDb->getFlavorAssetId() . "]"); if (!$mediaInfoDb->getFlavorAssetId()) { return $mediaInfoDb; } $flavorAsset = flavorAssetPeer::retrieveById($mediaInfoDb->getFlavorAssetId()); if (!$flavorAsset) { return $mediaInfoDb; } if ($flavorAsset->getIsOriginal()) { KalturaLog::log("Media info is for the original flavor asset"); $tags = null; $profile = myPartnerUtils::getConversionProfile2ForEntry($flavorAsset->getEntryId()); if ($profile) { $tags = $profile->getInputTagsMap(); } KalturaLog::log("Flavor asset tags from profile [{$tags}]"); if (!is_null($tags)) { $tagsArray = explode(',', $tags); // support for old migrated profiles if ($profile->getCreationMode() == conversionProfile2::CONVERSION_PROFILE_2_CREATION_MODE_AUTOMATIC_BYPASS_FLV) { if (!KDLWrap::CDLIsFLV($mediaInfoDb)) { $key = array_search(flavorParams::TAG_MBR, $tagsArray); unset($tagsArray[$key]); } } $finalTagsArray = KDLWrap::CDLMediaInfo2Tags($mediaInfoDb, $tagsArray); $finalTags = join(',', $finalTagsArray); KalturaLog::log("Flavor asset tags from KDL [{$finalTags}]"); $flavorAsset->setTags($finalTags); } } KalturaLog::log("KDLWrap::ConvertMediainfoCdl2FlavorAsset(" . $mediaInfoDb->getId() . ", " . $flavorAsset->getId() . ");"); KDLWrap::ConvertMediainfoCdl2FlavorAsset($mediaInfoDb, $flavorAsset); $flavorAsset->save(); // if(!$flavorAsset->hasTag(flavorParams::TAG_MBR)) // return $mediaInfoDb; $entry = entryPeer::retrieveByPK($flavorAsset->getEntryId()); if (!$entry) { return $mediaInfoDb; } $contentDuration = $mediaInfoDb->getContainerDuration(); if (!$contentDuration) { $contentDuration = $mediaInfoDb->getVideoDuration(); if (!$contentDuration) { $contentDuration = $mediaInfoDb->getAudioDuration(); } } $entry->setLengthInMsecs($contentDuration); if ($mediaInfoDb->getVideoWidth() && $mediaInfoDb->getVideoHeight()) { $entry->setDimensions($mediaInfoDb->getVideoWidth(), $mediaInfoDb->getVideoHeight()); } $entry->save(); return $mediaInfoDb; }
function runWrapperTest($contentDir, $patern) { echo "<br>\n"; $kdlSrcMedSet = getMediasetFromFile("{$contentDir}\\{$patern}"); $cdlSrcMedInf = new mediaInfo(); $cdlSrcMedInf->LoadFromMediaset($kdlSrcMedSet); $cdlFlavors[] = new flavorParams(); $cdlFlavors[0]->simulate(KDLContainerTarget::MP4, KDLVideoTarget::H264B, 0, 352, 2500, KDLAudioTarget::AAC, 96, 22050, "2,3"); $cdlTargets; $cdlTargets = KDLWrap::CDLGenerateTargetFlavors($cdlSrcMedInf, $cdlFlavors); $cmdLine = KDLWrap::CDLProceessFlavorsForCollection($cdlTargets->_targetList); if ($cdlTargets->_targetList[0]->engine_version == 0) { $cmdLine = $cdlTargets->_targetList[0]->command_lines; } else { $cmdLine = $cdlTargets->_targetList[0]->operators; $oprSets = new kOperatorSets(); // $operators = stripslashes($operators); //kLog::log(__METHOD__."\ncdlOperators(stripslsh)==>\n".print_r($operators,true)); $oprSets->setSerialized($cdlTargets->_targetList[0]->operators); $oprArr = $oprSets->getSets(); $cmdLine = $oprArr[0][0]->command; } $outFile = "aaa111.mpg"; $exec_cmd = str_replace(array(KDLCmdlinePlaceholders::InFileName, KDLCmdlinePlaceholders::OutFileName, KDLCmdlinePlaceholders::ConfigFileName), array("{$contentDir}\\{$patern}", $outFile, "mko"), $cmdLine); /* $xmlFileName = "k:\\pre.xml"; $fHd = fopen($xmlFileName, "w"); fwrite($fHd,$exec_cmd); fclose($fHd); //c:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -file C:\opt\kaltura\app\batch\batches\Convert\scripts\runee3.ps1 C:\expressionencoder\ExpressionEncoder.dll W:\/content/entry/data/29/399/0_0bybp8ez_0_t75dk08i_1.mov C:\opt\kaltura\tmp\convert\convert_0_0bybp8ez_4c24801bbb92f.xml >> "C:\opt\kaltura\tmp\convert\0_0bybp8ez_0_2.log" 2>&1 $fHd = fopen("k:\\run.bat", "w"); fwrite($fHd,"c:\\Windows\\SysWOW64\\WindowsPowerShell\\v1.0\\powershell.exe -file K:\\opt\\kaltura\\app\\batch\\batches\\Convert\\scripts\\runee3.ps1 C:\\expressionencoder\\ExpressionEncoder.dll $contentDir\\$patern $xmlFileName\npause"); fclose($fHd); */ echo "1<br>\n"; echo $exec_cmd; // exec("ffmpeg ".$exec_cmd); if (!file_exists($outFile) || kFile::fileSize($outFile) == 0) { kLog::log("\nFailed"); } else { kLog::log("\nSucceeded, Filesize:" . kFile::fileSize($outFile)); } // $cdlAsset = new flavorAsset; // KDLWrap::ConvertMediainfoCdl2FlavorAsset($cdlMedInf, $cdlAsset); $cdlMedInf = new mediaInfo(); $kdlMedSet = getMediasetFromFile("{$outFile}"); $cdlMedInf->LoadFromMediaset($kdlMedSet); kLog::log("\npre CDLValidateProduct\n"); KDLWrap::CDLValidateProduct($cdlSrclMedInf, $cdlTargets->_targetList[0], $cdlMedInf); // print_r($kdlFlavor); return; }