public function doServe(kLiveStreamConfiguration $liveStreamConfig)
 {
     $baseUrl = $liveStreamConfig->getUrl();
     $backupUrl = $liveStreamConfig->getBackupUrl();
     $entry = entryPeer::retrieveByPK($this->params->getEntryId());
     /* @var $entry LiveEntry */
     if ($entry && $entry->getSyncDCs()) {
         $baseUrl = str_replace('_all.smil', '_publish.smil', $baseUrl);
         if ($backupUrl) {
             $backupUrl = str_replace('_all.smil', '_publish.smil', $backupUrl);
         }
     }
     if ($this->params->getUsePlayServer()) {
         $liveStreamConfig->setUrl($this->getPlayServerUrl($baseUrl));
         $liveStreamConfig->setBackupUrl(null);
     }
     if (!$liveStreamConfig->getBackupUrl() && !$this->getForceProxy() || $this->params->getUsePlayServer() || $liveStreamConfig->getIsExternalStream()) {
         return parent::doServe($liveStreamConfig);
     }
     $flavors = array();
     $this->buildM3u8Flavors($baseUrl, $flavors);
     if ($backupUrl) {
         $this->buildM3u8Flavors($backupUrl, $flavors);
     }
     foreach ($flavors as $index => $flavor) {
         $flavors[$index]['index'] = $index;
     }
     usort($flavors, array($this, 'compareFlavors'));
     foreach ($flavors as $index => $flavor) {
         unset($flavors[$index]['index']);
     }
     $this->DEFAULT_RENDERER_CLASS = 'kM3U8ManifestRenderer';
     $renderer = $this->getRenderer($flavors);
     return $renderer;
 }