public function setEntryBroadcastingUrls(LiveStreamEntry $dbEntry)
 {
     $partner = PartnerPeer::retrieveByPK($this->partnerId);
     if (!$partner) {
         KalturaLog::info("Partner with id [{$this->partnerId}] was not found");
         return;
     }
     $hostname = $partner->getPrimaryBroadcastUrl();
     $dbEntry->setPrimaryBroadcastingUrl($this->getBroadcastUrl($dbEntry, kBroadcastUrlManager::PROTOCOL_RTMP, $hostname, self::PRIMARY_MEDIA_SERVER_INDEX));
     $dbEntry->setPrimaryRtspBroadcastingUrl($this->getBroadcastUrl($dbEntry, kBroadcastUrlManager::PROTOCOL_RTSP, $hostname, self::PRIMARY_MEDIA_SERVER_INDEX, true));
     $hostname = $partner->getSecondaryBroadcastUrl();
     $dbEntry->setSecondaryBroadcastingUrl($this->getBroadcastUrl($dbEntry, kBroadcastUrlManager::PROTOCOL_RTMP, $hostname, self::SECONDARY_MEDIA_SERVER_INDEX));
     $dbEntry->setSecondaryRtspBroadcastingUrl($this->getBroadcastUrl($dbEntry, kBroadcastUrlManager::PROTOCOL_RTSP, $hostname, self::SECONDARY_MEDIA_SERVER_INDEX, true));
 }
 protected function appendLiveParams(LiveStreamEntry $entry, MediaServer $mediaServer = null, SimpleXMLElement $encodes, liveParams $liveParams)
 {
     $streamName = $entry->getId() . '_' . $liveParams->getId();
     $videoCodec = 'PassThru';
     $audioCodec = 'AAC';
     $profile = 'main';
     $systemName = $liveParams->getSystemName() ? $liveParams->getSystemName() : $liveParams->getId();
     $encode = $encodes->addChild('Encode');
     $encode->addChild('Enable', 'true');
     $encode->addChild('Name', $systemName);
     $encode->addChild('StreamName', $streamName);
     $video = $encode->addChild('Video');
     $audio = $encode->addChild('Audio');
     if ($liveParams->hasTag(assetParams::TAG_AUDIO_ONLY)) {
         $videoCodec = 'Disable';
     }
     if ($liveParams->hasTag(liveParams::TAG_INGEST)) {
         $video->addChild('Codec', $videoCodec);
         $audio->addChild('Codec', $audioCodec);
         $audio->addChild('Bitrate', 96000);
         return;
     }
     if ($liveParams->getWidth() || $liveParams->getHeight() || $liveParams->getFrameRate()) {
         switch ($liveParams->getVideoCodec()) {
             case flavorParams::VIDEO_CODEC_COPY:
                 $videoCodec = 'PassThru';
                 break;
             case flavorParams::VIDEO_CODEC_FLV:
             case flavorParams::VIDEO_CODEC_VP6:
             case flavorParams::VIDEO_CODEC_H263:
                 $profile = 'baseline';
                 $videoCodec = 'H.263';
                 break;
             case flavorParams::VIDEO_CODEC_H264:
             case flavorParams::VIDEO_CODEC_H264B:
                 $profile = 'baseline';
                 // don't break
             // don't break
             case flavorParams::VIDEO_CODEC_H264H:
             case flavorParams::VIDEO_CODEC_H264M:
                 $streamName = "mp4:{$streamName}";
                 $videoCodec = 'H.264';
                 break;
             default:
                 KalturaLog::err("Live params video codec id [" . $liveParams->getVideoCodec() . "] is not expected");
                 break;
         }
         if ($liveParams->getAudioSampleRate() || $liveParams->getAudioChannels()) {
             switch ($liveParams->getAudioCodec()) {
                 case flavorParams::AUDIO_CODEC_AAC:
                 case flavorParams::AUDIO_CODEC_AACHE:
                     $audioCodec = 'AAC';
                     break;
                 default:
                     KalturaLog::err("Live params audio codec id [" . $liveParams->getAudioCodec() . "] is not expected");
                     break;
             }
         }
     }
     $video->addChild('Transcoder', $mediaServer ? $mediaServer->getTranscoder() : MediaServer::DEFAULT_TRANSCODER);
     $video->addChild('GPUID', $mediaServer ? $mediaServer->getGPUID() : MediaServer::DEFAULT_GPUID);
     $frameSize = $video->addChild('FrameSize');
     if (!$liveParams->getWidth() && !$liveParams->getHeight()) {
         $frameSize->addChild('FitMode', 'match-source');
     } elseif ($liveParams->getWidth() && $liveParams->getHeight()) {
         $frameSize->addChild('FitMode', 'fit-height');
         $frameSize->addChild('Width', $liveParams->getWidth());
         $frameSize->addChild('Height', $liveParams->getHeight());
     } elseif ($liveParams->getWidth()) {
         $frameSize->addChild('FitMode', 'fit-width');
         $frameSize->addChild('Width', $liveParams->getWidth());
     } elseif ($liveParams->getHeight()) {
         $frameSize->addChild('FitMode', 'fit-height');
         $frameSize->addChild('Height', $liveParams->getHeight());
     }
     $video->addChild('Codec', $videoCodec);
     $video->addChild('Profile', $profile);
     $video->addChild('Bitrate', $liveParams->getVideoBitrate() ? $liveParams->getVideoBitrate() * 1024 : 240000);
     $keyFrameInterval = $video->addChild('KeyFrameInterval');
     $keyFrameInterval->addChild('FollowSource', 'true');
     $keyFrameInterval->addChild('Interval', 60);
     $audio->addChild('Codec', $audioCodec);
     $audio->addChild('Bitrate', $liveParams->getAudioBitrate() ? $liveParams->getAudioBitrate() * 1024 : 96000);
 }
 protected function getBroadcastUrl(LiveStreamEntry $entry, $protocol, $hostname, $mediaServerIndex, $concatStreamName = false)
 {
     if (!$hostname) {
         return '';
     }
     $url = "{$protocol}://{$hostname}";
     $params = array('p' => $this->partnerId, 'e' => $entry->getId(), 'i' => $mediaServerIndex, 't' => $entry->getStreamPassword());
     $paramsStr = http_build_query($params);
     $streamName = '';
     if ($concatStreamName) {
         $streamName = $entry->getId() . '_%i';
     }
     return "{$url}/{$streamName}?{$paramsStr}";
 }
 public function populateFromEntry(LiveStreamEntry $entry)
 {
     $this->setStreamName($entry->getStreamName());
     $liveAssets = assetPeer::retrieveByEntryId($entry->getId(), array(assetType::LIVE));
     $playbackProtocols = array();
     $this->provisioningParams = array();
     foreach ($liveAssets as $liveAsset) {
         /* @var $liveAsset liveAsset */
         $tags = explode(',', $liveAsset->getTags());
         foreach ($tags as $tag) {
             if (isset($this->provisioningParams[$tag])) {
                 $bitrates = $this->provisioningParams[$tag];
                 $bitrates = explode(',', $bitrates);
                 $bitrates[] = $liveAsset->getBitrate();
                 $this->provisioningParams[$tag] = implode(',', $bitrates);
             } else {
                 $this->provisioningParams[$tag] = $liveAsset->getBitrate();
             }
         }
     }
 }
 public function populateFromEntry(LiveStreamEntry $entry)
 {
     $this->setEncoderIP($entry->getEncodingIP1());
     $this->setBackupEncoderIP($entry->getEncodingIP2());
     $this->setEncoderPassword($entry->getStreamPassword());
     $this->setEncoderUsername($entry->getStreamUsername());
     $this->setDvrEnabled($entry->getDvrStatus());
     $this->setDvrWindow($entry->getDvrWindow());
     $this->setStreamType(AkamaiUniversalStreamType::UNIVERSAL_STREAMING_LIVE);
     $this->setStreamName(str_replace("_", "", $entry->getId()));
 }
 public function populateFromEntry(LiveStreamEntry $entry)
 {
     $this->setEncoderIP($entry->getEncodingIP1());
     $this->setBackupEncoderIP($entry->getEncodingIP2());
     $this->setEncoderPassword($entry->getStreamPassword());
     $this->setEncoderUsername($entry->getStreamUsername());
     $this->setEndDate($entry->getEndDate(null));
     $this->setMediaType($entry->getMediaType());
 }