diff --git a/classes/Video.php b/classes/Video.php index 7995aa4..5c6f7e4 100644 --- a/classes/Video.php +++ b/classes/Video.php @@ -90,12 +90,14 @@ class Video { $this->childid = $video['childid']; // Figure out the URL $this->url = '#'; - if (file_exists('data/video/')) - $this->url = implode('/', array_map('rawurlencode', - array_map('utf8tolocal', - explode('/', - 'data/video/' . preg_replace('#^'.$mythvideo_dir.'/?#', '', $this->filename) - )))); + //// all junk, replacing +// if (file_exists('data/video/')) +// $this->url = implode('/', array_map('rawurlencode', +// array_map('utf8tolocal', +// explode('/', +// 'data/video/' . preg_replace('#^'.$mythvideo_dir.'/?#', '', $this->filename) +// )))); + $this->url = 'video/stream?Id=' . $this->intid; $genre = $db->query('SELECT idgenre FROM videometadatagenre WHERE idvideo = ?', diff --git a/modules/video/handler.php b/modules/video/handler.php index fd769ce..721f186 100644 --- a/modules/video/handler.php +++ b/modules/video/handler.php @@ -15,8 +15,10 @@ * @global string $GLOBALS['mythvideo_dir'] * @name $mythvideo_dir /**/ - global $mythvideo_dir; - $mythvideo_dir = setting('VideoStartupDir', hostname); + +//// dont need this... +// global $mythvideo_dir; +// $mythvideo_dir = setting('VideoStartupDir', hostname); // Load the video storage directories $video_dirs = $db->query_list(' @@ -37,6 +39,7 @@ } } +/** nor any of this... // Make sure the video directory exists if (file_exists('data/video')) { // File is not a directory or a symlink @@ -93,7 +96,7 @@ .' reload this page.'); } // Create a symlink to the first artwork directory that we find. - /** @todo we should really support multiple directories, but it's too much effort to hack in at the moment. */ + // @todo we should really support multiple directories, but it's too much effort to hack in at the moment. else { foreach ($artwork_dirs as $dir) { if (is_dir($dir) || is_link($dir)) { @@ -116,6 +119,7 @@ } } } +*/ define('video_img_height', _or(setting('web_video_thumbnail_height', hostname), 140)); define('video_img_width', _or(setting('web_video_thumbnail_width', hostname), 94)); @@ -125,11 +129,17 @@ case 'edit': require_once 'modules/video/edit.php'; exit; - case 'imdb': - require_once 'modules/video/imdb.php'; - exit; - case 'scan': - require_once 'modules/video/scan.php'; +//// this is probably doing bad things +// case 'imdb': +// require_once 'modules/video/imdb.php'; +// exit; +//// this is broken, so disable it +// case 'scan': +// require_once 'modules/video/scan.php'; +// exit; +//// new stuff + case 'stream': + require_once 'modules/video/stream.php'; exit; } diff --git a/modules/video/stream.php b/modules/video/stream.php new file mode 100644 index 0000000..49a7298 --- /dev/null +++ b/modules/video/stream.php @@ -0,0 +1,69 @@ +query_row('SELECT filename + FROM videometadata + WHERE intid = ?', $vid_id); + +// Mime type + switch (substr($fname, strrpos($fname, '.'))) { + case 'mpg': + case 'mpeg': + $mime = 'video/mpeg'; + break; + case 'mp4': + $mime = 'video/mp4'; + break; + case 'ogg': + case 'ogm': + case 'ogv': + $mime = 'video/ogg'; + break; + case 'qt': + $mime = 'video/quicktime'; + break; + case 'webm': + $mime = 'video/webm'; + break; + case 'mkv': + $mime = 'video/x-matroska'; + break; + case 'wmv': + $mime = 'video/x-ms-wmv'; + break; + case 'flv': + $mime = 'video/x-flv'; + break; + default: + $mime = 'applicatoin/octet-stream'; + } + header('Content-Type: '.$mime); + +// Send the filename + header('Content-Disposition: filename="'.$fname.'"'); + +// Send data via the backend + $Master_Host = setting('MasterServerIP'); + $port = _or(get_backend_setting('BackendStatusPort', $Master_Host), + get_backend_setting('BackendStatusPort')); + if (stripos($Master_Host,':') !== false) { + $Master_Host = '['.$Master_Host.']'; + } + readfile("http://$Master_Host:$port/Content/GetVideo?Id=".$vid_id); + +// Nothing else to do + exit; diff --git a/modules/video/tmpl/default/video.php b/modules/video/tmpl/default/video.php index e80176e..ad7e9a9 100644 --- a/modules/video/tmpl/default/video.php +++ b/modules/video/tmpl/default/video.php @@ -252,7 +252,7 @@