Ticket #12129: stream.php

File stream.php, 1.7 KB (added by deg@…, 10 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;