|
|
@@ -95,11 +95,9 @@ function fetchfrom(reader, seqNo, segment, cb) {
|
|
|
}
|
|
|
|
|
|
function onmeta(meta) {
|
|
|
- debug('got segment info', meta);
|
|
|
+ debug('got segment meta', meta);
|
|
|
|
|
|
- if (meta.mime !== 'video/mp2t' &&
|
|
|
- meta.mime !== 'audio/aac' && meta.mime !== 'audio/x-aac' &&
|
|
|
- meta.mime !== 'audio/ac3') {
|
|
|
+ if (reader.segmentMimeTypes.indexOf(meta.mime.toLowerCase()) === -1) {
|
|
|
if (stream.abort) stream.abort();
|
|
|
return stream.emit(new Error('Unsupported segment MIME type: '+meta.mime));
|
|
|
}
|
|
|
@@ -211,8 +209,9 @@ function HlsStreamReader(src, options) {
|
|
|
if (!self.readable) return;
|
|
|
var stream = uristream(url.format(self.url), { timeout:30*1000 });
|
|
|
stream.on('meta', function(meta) {
|
|
|
- if (meta.mime !== 'application/vnd.apple.mpegurl' &&
|
|
|
- meta.mime !== 'application/x-mpegurl' && meta.mime !== 'audio/mpegurl') {
|
|
|
+ debug('got index meta', meta);
|
|
|
+
|
|
|
+ if (self.indexMimeTypes.indexOf(meta.mime.toLowerCase()) === -1) {
|
|
|
// FIXME: correctly handle .m3u us-ascii encoding
|
|
|
if (stream.abort) stream.abort();
|
|
|
return stream.emit('error', new Error('Invalid MIME type: '+meta.mime));
|
|
|
@@ -244,6 +243,19 @@ function HlsStreamReader(src, options) {
|
|
|
}
|
|
|
util.inherits(HlsStreamReader, Readable);
|
|
|
|
|
|
+HlsStreamReader.prototype.indexMimeTypes = [
|
|
|
+ 'application/vnd.apple.mpegurl',
|
|
|
+ 'application/x-mpegurl',
|
|
|
+ 'audio/mpegurl',
|
|
|
+];
|
|
|
+
|
|
|
+HlsStreamReader.prototype.segmentMimeTypes = [
|
|
|
+ 'video/mp2t',
|
|
|
+ 'audio/aac',
|
|
|
+ 'audio/x-aac',
|
|
|
+ 'audio/ac3',
|
|
|
+];
|
|
|
+
|
|
|
HlsStreamReader.prototype._read = function(n) {
|
|
|
this.readState.active = true;
|
|
|
checknext(this);
|