Ticket #12129: stream.php

File stream.php, 1.7 KB (added by deg@…, 12 years ago)

Patched mythweb/modules/video/stream.php

Line 
1<?php
2/**
3 * Stream a music file
4 *
5 * @license GPL
6 *
7 * @package MythWeb
8 * @subpackage Music
9/**/
10
11// Yes, a db connection
12 global $db;
13
14// Pull video ID
15 $vid_id = $_GET['Id'];
16
17// Get filename
18 list($fname) = $db->query_row('SELECT filename
19 FROM videometadata
20 WHERE intid = ?', $vid_id);
21
22// Mime type
23 switch (substr($fname, strrpos($fname, '.')+1)) {
24 case 'mpg':
25 case 'mpeg':
26 $mime = 'video/mpeg';
27 break;
28 case 'mp4':
29 $mime = 'video/mp4';
30 break;
31 case 'ogg':
32 case 'ogm':
33 case 'ogv':
34 $mime = 'video/ogg';
35 break;
36 case 'qt':
37 $mime = 'video/quicktime';
38 break;
39 case 'webm':
40 $mime = 'video/webm';
41 break;
42 case 'mkv':
43 $mime = 'video/x-matroska';
44 break;
45 case 'wmv':
46 $mime = 'video/x-ms-wmv';
47 break;
48 case 'flv':
49 $mime = 'video/x-flv';
50 break;
51 default:
52 $mime = 'application/octet-stream';
53 }
54 header('Content-Type: '.$mime);
55
56// Send the filename
57 header('Content-Disposition: filename="'.$fname.'"');
58
59// Send data via the backend
60 $Master_Host = setting('MasterServerIP');
61 $port = _or(get_backend_setting('BackendStatusPort', $Master_Host),
62 get_backend_setting('BackendStatusPort'));
63 if (stripos($Master_Host,':') !== false) {
64 $Master_Host = '['.$Master_Host.']';
65 }
66 if (ob_get_level()) {
67 ob_end_clean();
68 }
69 readfile("http://$Master_Host:$port/Content/GetVideo?Id=".$vid_id);
70
71// Nothing else to do
72 exit;