Example #1
0
 /**
  * @param string $url
  * @param string $urlPrefix
  * @param flavorAsset|flavorParams $flavor
  * @return array
  */
 protected function getFlavorAssetInfo($url, $urlPrefix = '', $flavor = null)
 {
     $ext = null;
     $audioLanguage = null;
     $audioLanguageName = null;
     if ($flavor) {
         if (is_callable(array($flavor, 'getFileExt'))) {
             $ext = $flavor->getFileExt();
         }
         //Extract the audio language code from flavor
         if ($flavor->hasTag(assetParams::TAG_AUDIO_ONLY)) {
             $audioLanguageData = $this->getAudioLanguage($flavor);
             if (!$audioLanguageData) {
                 $audioLanguage = 'und';
                 $audioLanguageName = 'Undefined';
             } else {
                 list($audioLanguage, $audioLanguageName) = $audioLanguageData;
             }
         }
     }
     if (!$ext) {
         if ($urlPrefix && $url) {
             $urlPrefix = $urlPrefix . "/";
         }
         $urlPath = parse_url($urlPrefix . $url, PHP_URL_PATH);
         $ext = pathinfo($urlPath, PATHINFO_EXTENSION);
     }
     $bitrate = $flavor ? $flavor->getVideoBitrate() : 0;
     $width = $flavor ? $flavor->getWidth() : 0;
     $height = $flavor ? $flavor->getHeight() : 0;
     return array('url' => $url, 'urlPrefix' => $urlPrefix, 'ext' => $ext, 'bitrate' => $bitrate, 'width' => $width, 'height' => $height, 'audioLanguage' => $audioLanguage, 'audioLanguageName' => $audioLanguageName);
 }
Example #2
0
    ?>
><?php 
    echo $editFlavorParam->getDescription();
    ?>
</textarea>
			<br />
			<label for="tags">Tags: </label><br />
			<input type="text" id="tags" name="tags" value="<?php 
    echo $editFlavorParam->getTags();
    ?>
" size="40" <?php 
    echo $disabled;
    ?>
/>
			(<?php 
    echo implode(", ", flavorParams::getValidTags());
    ?>
)
			<br />
			<label for="format"><b>Format: </b></label><br />
			<select id="format" name="format" <?php 
    echo $disabled;
    ?>
>
				<?php 
    foreach ($formats as $name => $format) {
        ?>
				<option value="<?php 
        echo $format;
        ?>
" <?php 
Example #3
0
 protected static function isFlavorLower(flavorParams $target, flavorParams $compare)
 {
     // currently check only the bitrate
     return $target->getVideoBitrate() < $compare->getVideoBitrate();
 }
Example #4
0
 /**
  * @param string $url
  * @param string $urlPrefix
  * @param flavorAsset|flavorParams $flavor
  * @return array
  */
 protected function getFlavorAssetInfo($url, $urlPrefix = '', $flavor = null)
 {
     $ext = null;
     if ($flavor && is_callable(array($flavor, 'getFileExt'))) {
         $ext = $flavor->getFileExt();
     }
     if (!$ext) {
         if ($urlPrefix && $url) {
             $urlPrefix = $urlPrefix . "/";
         }
         $urlPath = parse_url($urlPrefix . $url, PHP_URL_PATH);
         $ext = pathinfo($urlPath, PATHINFO_EXTENSION);
     }
     $bitrate = $flavor ? $flavor->getVideoBitrate() : 0;
     $width = $flavor ? $flavor->getWidth() : 0;
     $height = $flavor ? $flavor->getHeight() : 0;
     return array('url' => $url, 'urlPrefix' => $urlPrefix, 'ext' => $ext, 'bitrate' => $bitrate, 'width' => $width, 'height' => $height);
 }
 public static function doCopy(flavorParams $flavorParams, flavorParamsOutput $flavorParamsOutput)
 {
     $flavorParamsOutput->setFlavorParamsId($flavorParams->getId());
     $flavorParamsOutput->setFlavorParamsVersion($flavorParams->getVersion());
     $flavorParamsOutput->setName($flavorParams->getName());
     $flavorParamsOutput->setTags($flavorParams->getTags());
     $flavorParamsOutput->setDescription($flavorParams->getDescription());
     $flavorParamsOutput->setReadyBehavior($flavorParams->getReadyBehavior());
     $flavorParamsOutput->setIsDefault($flavorParams->getIsDefault());
     $flavorParamsOutput->setFormat($flavorParams->getFormat());
     $flavorParamsOutput->setVideoCodec($flavorParams->getVideoCodec());
     $flavorParamsOutput->setVideoBitrate($flavorParams->getVideoBitrate());
     $flavorParamsOutput->setAudioCodec($flavorParams->getAudioCodec());
     $flavorParamsOutput->setAudioBitrate($flavorParams->getAudioBitrate());
     $flavorParamsOutput->setAudioChannels($flavorParams->getAudioChannels());
     $flavorParamsOutput->setAudioSampleRate($flavorParams->getAudioSampleRate());
     $flavorParamsOutput->setAudioResolution($flavorParams->getAudioResolution());
     $flavorParamsOutput->setWidth($flavorParams->getWidth());
     $flavorParamsOutput->setHeight($flavorParams->getHeight());
     $flavorParamsOutput->setFrameRate($flavorParams->getFrameRate());
     $flavorParamsOutput->setGopSize($flavorParams->getGopSize());
     $flavorParamsOutput->setTwoPass($flavorParams->getTwoPass());
     $flavorParamsOutput->setConversionEngines($flavorParams->getConversionEngines());
     $flavorParamsOutput->setConversionEnginesExtraParams($flavorParams->getConversionEnginesExtraParams());
     $flavorParamsOutput->setCustomData($flavorParams->getCustomData());
     $flavorParamsOutput->save();
     return $flavorParamsOutput;
 }
Example #6
0
 /**
  * @return bool
  */
 public function getReadonly()
 {
     return parent::getFromCustomData(self::CUSTOM_DATA_FIELD_READONLY, null, false);
 }
 /**
  * Will return for each OLD ConversionProfile a new one, IF NEEDED.
  * The old conversionProfile will hold a reference to the new one, so if already created a new one, it will be re-used.
  * All the necessary flavorParams will be added too to fit the old conversion params.
  *  
  * @param ConversionProfile $conversion_profile
  * @return conversionProfile2
  */
 public static function createConversionProfile2FromConversionProfile(ConversionProfile $old_conversion_profile)
 {
     if (!$old_conversion_profile) {
         throw new Exception("Cannot create new conversionProfile2 for null");
     }
     if ($old_conversion_profile->getConversionProfile2Id()) {
         $new_profile = conversionProfile2Peer::retrieveByPK($old_conversion_profile->getConversionProfile2Id());
         if ($new_profile) {
             // found a valid new profile - return it
             return $new_profile;
         }
     }
     // whether there was no id or no profile - create on now and set it to be the conversionProfile2Id
     $new_profile = new conversionProfile2();
     $new_profile->setPartnerId($old_conversion_profile->getPartnerId());
     $new_name = $old_conversion_profile->getName();
     $new_name = $new_name ? $new_name : "From [{$old_conversion_profile->getId()}]";
     $new_profile->setName($new_name . " " . $old_conversion_profile->getProfileType());
     if ($old_conversion_profile->getBypassFlv()) {
         $new_profile->setCreationMode(conversionProfile2::CONVERSION_PROFILE_2_CREATION_MODE_AUTOMATIC_BYPASS_FLV);
         $map = flavorParams::TAG_WEB . "," . flavorParams::TAG_MBR;
     } else {
         $new_profile->setCreationMode(conversionProfile2::CONVERSION_PROFILE_2_CREATION_MODE_AUTOMATIC);
         $map = flavorParams::TAG_WEB;
     }
     $new_profile->setInputTagsMap($map);
     // use the OLD code to simulate what was performed on the old_conversion_profile to retrieve the old_conversion_params list
     $conv_client = new kConversionClientBase("", "", "", "");
     $old_conversion_command = $conv_client->createConversionCommandFromConverionProfile("src", "target", $old_conversion_profile);
     $description = '';
     foreach ($old_conversion_command->conversion_params_list as $old_conversion_params) {
         // use the helper utility to fill the gaps
         $desc = '';
         self::fixDimensionsByAspectRatio($old_conversion_params, $desc);
         $description .= $desc;
     }
     $new_profile->setDescription($description);
     $new_profile->save();
     // at this point - the all $old_conversion_params are filled with the values used by the old conversion servers
     // transform from old to new ...
     // create the flavorParams and the flavorParamsConversionParams table
     foreach ($old_conversion_command->conversion_params_list as $old_conversion_params) {
         $new_flavor_params = new flavorParams();
         // set all the properties for the new flavor_params
         $new_flavor_params->setPartnerId($old_conversion_profile->getPartnerId());
         $new_flavor_params->setCreationMode(flavorParams::FLAVOR_PARAMS_CREATION_MODE_AUTOMATIC);
         $audio_bitrate = $old_conversion_params->audio_bitrate;
         if (!$audio_bitrate) {
             $audio_bitrate = 96;
         }
         // if empty - hard-code 96
         $new_flavor_params->setAudioBitrate($audio_bitrate);
         // default
         $new_flavor_params->setAudioChannels(0);
         // default
         $new_flavor_params->setAudioResolution(0);
         $new_flavor_params->setAudioSampleRate(0);
         if ($old_conversion_profile->getCommercialTranscoder()) {
             // first comes ON2...
             $new_flavor_params->setConversionEngines(conversionEngineType::ON2 . "," . conversionEngineType::ENCODING_COM . "," . conversionEngineType::FFMPEG . "," . conversionEngineType::FFMPEG_AUX . "," . conversionEngineType::MENCODER);
             //
             $new_flavor_params->setConversionEnginesExtraParams($old_conversion_params->flix_params . "|" . $old_conversion_params->flix_params . "|" . $old_conversion_params->ffmpeg_params . "|" . $old_conversion_params->ffmpeg_params . "|" . $old_conversion_params->mencoder_params);
         } else {
             // first comes ffmpeg ...
             $new_flavor_params->setConversionEngines(conversionEngineType::FFMPEG . "," . conversionEngineType::FFMPEG_AUX . "," . conversionEngineType::MENCODER . "," . conversionEngineType::ON2 . "," . conversionEngineType::ENCODING_COM, ",");
             //
             $new_flavor_params->setConversionEnginesExtraParams($old_conversion_params->ffmpeg_params . "|" . $old_conversion_params->ffmpeg_params . "|" . $old_conversion_params->mencoder_params . "|" . $old_conversion_params->flix_params . "|" . $old_conversion_params->flix_params);
         }
         $target_format = "flv";
         // this code will always be called for flv files
         // the format can be flv | mp4 | mov | avi | mp3
         // IMPORTANT:
         // except for the FLV videos, none of the formats should be assumed WEB - they are not supposed to be played using our player at first stage.
         switch ($target_format) {
             case "mp3":
                 $new_flavor_params->setFormat("flv");
                 $new_flavor_params->setAudioCodec(flavorParams::AUDIO_CODEC_MP3);
                 // set default mp3
                 $new_flavor_params->setVideoCodec(flavorParams::VIDEO_CODEC_VP6);
                 /* $new_flavor_params->setTags ( flavorParams::TAG_WEB ); */
                 break;
             case "mp4":
                 $new_flavor_params->setFormat($target_format);
                 $new_flavor_params->setAudioCodec(flavorParams::AUDIO_CODEC_AAC);
                 $new_flavor_params->setVideoCodec(flavorParams::VIDEO_CODEC_H264);
                 $new_flavor_params->setTags(',mp4_export');
                 break;
             case "mov":
                 $new_flavor_params->setFormat($target_format);
                 $new_flavor_params->setAudioCodec(flavorParams::AUDIO_CODEC_AAC);
                 $new_flavor_params->setVideoCodec(flavorParams::VIDEO_CODEC_H264);
                 $new_flavor_params->setTags('mov_export');
                 break;
             case "avi":
                 $new_flavor_params->setFormat($target_format);
                 $new_flavor_params->setAudioCodec(flavorParams::AUDIO_CODEC_MP3);
                 $new_flavor_params->setVideoCodec(flavorParams::VIDEO_CODEC_H264);
                 $new_flavor_params->setTags('avi_export');
                 break;
             case "flv":
                 $new_flavor_params->setFormat($target_format);
                 $new_flavor_params->setAudioCodec(flavorParams::AUDIO_CODEC_MP3);
                 $new_flavor_params->setVideoCodec(flavorParams::VIDEO_CODEC_VP6);
                 $new_flavor_params->setTags(flavorParams::TAG_WEB . "," . flavorParams::TAG_MBR);
                 break;
         }
         $new_flavor_params->setName($new_name);
         $new_flavor_params->setFrameRate(0);
         // DONT set the framerate $old_conversion_params->framerate );
         if ($old_conversion_params->gop_size == 5) {
             $new_flavor_params->setGopSize(5);
             $new_flavor_params->removeTag(flavorParams::TAG_MBR);
             $new_flavor_params->addTag(flavorParams::TAG_EDIT);
         } else {
             $new_flavor_params->setGopSize(0);
             // 0 will automatically allow default gopsize
         }
         $new_flavor_params->setWidth($old_conversion_params->width);
         $new_flavor_params->setHeight($old_conversion_params->height);
         $new_flavor_params->setVersion(1);
         $new_flavor_params->setReadyBehavior(flavorParamsConversionProfile::READY_BEHAVIOR_OPTIONAL);
         $new_flavor_params->setVideoBitrate($old_conversion_params->bitrate ? $old_conversion_params->bitrate : "");
         // TODO - fill the rest ...
         $new_flavor_params->save();
         // add to the 1-to-many table
         $flavor_params_conversion_profile = new flavorParamsConversionProfile();
         $flavor_params_conversion_profile->setConversionProfileId($new_profile->getId());
         $flavor_params_conversion_profile->setFlavorParamsId($new_flavor_params->getId());
         $flavor_params_conversion_profile->setReadyBehavior($new_flavor_params->getReadyBehavior());
         $flavor_params_conversion_profile->save();
     }
     // always add to the *source* flavotParams to the 1-to-many table
     $flavor_params_conversion_profile = new flavorParamsConversionProfile();
     $flavor_params_conversion_profile->setConversionProfileId($new_profile->getId());
     $flavor_params_conversion_profile->setFlavorParamsId(flavorParams::SOURCE_FLAVOR_ID);
     $flavor_params_conversion_profile->save();
     // point to the new profile and save the old one
     $old_conversion_profile->setConversionProfile2Id($new_profile->getId());
     $old_conversion_profile->save();
     return $new_profile;
 }
Example #8
0
 public function getDepth()
 {
     return parent::getFromCustomData(self::CUSTOM_DATA_FIELD_DEPTH);
 }
Example #9
0
 /**
  * @return boolean
  */
 public function getFlatten()
 {
     return parent::getFromCustomData('flatten');
 }
Example #10
0
 /**
  * Applies default values to this object.
  * This method should be called from the object's constructor (or
  * equivalent initialization method).
  * @see        __construct()
  */
 public function applyDefaultValues()
 {
     parent::applyDefaultValues();
     $this->type = WidevinePlugin::getAssetTypeCoreValue(WidevineAssetType::WIDEVINE_FLAVOR);
 }
Example #11
0
 /**
  * Applies default values to this object.
  * This method should be called from the object's constructor (or
  * equivalent initialization method).
  * @see        __construct()
  */
 public function applyDefaultValues()
 {
     parent::applyDefaultValues();
     $this->setType(assetType::LIVE);
 }
Example #12
0
 /**
  * @return boolean
  */
 public function setPoly2bitmap($poly2Bitmap)
 {
     parent::putInCustomData('poly2Bitmap', $poly2Bitmap);
 }