/** * @param string $baseUrl * @param array $flavors */ public function tokenizeMultiUrls(&$baseUrl, &$flavors) { if ($this->usePrefix) { //in case of a cached-in tokenizer - need to require bootstrap require_once dirname(__FILE__) . '/../../../../../../' . 'infra/general/kString.class.php'; $strings = array(); foreach ($flavors as $flavor) { $url = $flavor["url"]; if (substr($url, 0, 4) == "mp4:") { $url = substr($url, 4); } $strings[] = $url; } $prefix = kString::getCommonPrefix($strings); $pos = strrpos($prefix, "/"); if ($pos) { //include slash sign in prefix substr $pos++; $prefix = substr($prefix, 0, $pos); } } else { $prefix = ""; foreach ($flavors as $flavor) { $url = $flavor["url"]; if (substr($url, 0, 4) == "mp4:") { $url = substr($url, 4); } $prefix = $prefix . $url . ";"; } } $factory = new StreamTokenFactory(); $token = $factory->getToken($this->type, $prefix, null, $this->profile, $this->key, null, $this->window, null, null, null); $auth = "?auth=" . $token->getToken() . "&aifp={$this->aifp}&slist={$prefix}"; $baseUrl .= $auth; foreach ($flavors as &$flavor) { $url = $flavor["url"]; $flavor["url"] = $url . $auth; } }
/** * @param string $baseUrl * @param array $flavors */ public function tokenizeMultiUrls(&$baseUrl, &$flavors) { if ($this->usePrefix) { $urls = array(); $minLen = 1024; foreach ($flavors as $flavor) { $url = $flavor["url"]; if (substr($url, 0, 4) == "mp4:") { $url = substr($url, 4); } $urls[] = $url; $minLen = min($minLen, strlen($url)); } $url = array_pop($urls); $scan = true; for ($i = 0; $i < $minLen && $scan; $i++) { $c = substr($url, $i, 1); foreach ($urls as $url) { if ($c != substr($url, $i, 1)) { $scan = false; break; } } } $prefix = substr($url, 0, $i - 1); } else { $prefix = ""; foreach ($flavors as $flavor) { $url = $flavor["url"]; if (substr($url, 0, 4) == "mp4:") { $url = substr($url, 4); } $prefix = $prefix . $url . ";"; } } $factory = new StreamTokenFactory(); $token = $factory->getToken($this->type, $prefix, null, $this->profile, $this->salt, null, $this->window, null, null, null); $auth = "?auth=" . $token->getToken() . "&aifp={$this->aifp}&slist={$prefix}"; $baseUrl .= $auth; foreach ($flavors as &$flavor) { $url = $flavor["url"]; $flavor["url"] = $url . $auth; } }