LSP/embed: fix for + in filenames in folder streams
This commit is contained in:
parent
e1fac6248e
commit
b7c37ba60d
3 changed files with 18 additions and 10 deletions
10
lsp/mist.js
10
lsp/mist.js
|
@ -2824,7 +2824,7 @@ var UI = {
|
|||
var embedoptions = {autoplay: true};
|
||||
function embedhtml(opts) {
|
||||
var open = ['div'];
|
||||
var inner = "\n"+' <script src="'+embedbase+'embed_'+other+'.js"><'+'/script>'+"\n"; //don't leave the closing script tag complete
|
||||
var inner = "\n"+' <script src="'+embedbase+'embed_'+encodeURIComponent(other)+'.js"><'+'/script>'+"\n"; //don't leave the closing script tag complete
|
||||
if (!opts.autoplay) {
|
||||
open.push('data-noautoplay');
|
||||
}
|
||||
|
@ -2844,17 +2844,17 @@ var UI = {
|
|||
{
|
||||
label: 'Embedable script',
|
||||
type: 'str',
|
||||
value: embedbase+'embed_'+other+'.js',
|
||||
value: embedbase+'embed_'+encodeURIComponent(other)+'.js',
|
||||
readonly: true
|
||||
},{
|
||||
label: 'Stream info script',
|
||||
type: 'str',
|
||||
value: embedbase+'info_'+other+'.js',
|
||||
value: embedbase+'info_'+encodeURIComponent(other)+'.js',
|
||||
readonly: true
|
||||
},{
|
||||
label: 'Autodetect player',
|
||||
type: 'str',
|
||||
value: embedbase+other+'.html',
|
||||
value: embedbase+encodeURIComponent(other)+'.html',
|
||||
readonly: true,
|
||||
qrcode: true
|
||||
},$('<h3>').text('Embed code'),{
|
||||
|
@ -3027,7 +3027,7 @@ var UI = {
|
|||
|
||||
// jQuery doesn't work -> use DOM magic
|
||||
var script = document.createElement('script');
|
||||
script.src = embedbase+'embed_'+other+'.js';
|
||||
script.src = embedbase+'embed_'+encodeURIComponent(other)+'.js';
|
||||
script.onerror = function(){
|
||||
$c.html('Error loading "'+script.src+'".<br>').append(
|
||||
$('<button>').text('Try again').click(function(){
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
var embedtype = $('input[name=force]').val();
|
||||
|
||||
var info = document.createElement('script');
|
||||
info.src = 'http://'+(window.location.hostname == '' ? 'localhost' : window.location.hostname)+':8080/info_'+streamName+'.js?video=0';
|
||||
info.src = 'http://'+(window.location.hostname == '' ? 'localhost' : window.location.hostname)+':8080/info_'+encodeURIComponent(streamName)+'.js';
|
||||
document.getElementById('embedcontainer').appendChild(info);
|
||||
info.onload = function(){
|
||||
if (embedtype == '') {
|
||||
|
|
14
src/embed.js
14
src/embed.js
|
@ -189,7 +189,7 @@ function mistembed(streamname) {
|
|||
break;
|
||||
|
||||
case 'html5':
|
||||
container.innerHTML += '<video width="' + videowidth + '" height="' + videoheight + '" src="' + encodeURI(src.url) + '" controls="controls" '+(autoplay ? 'autoplay="autoplay"' : '')+'><strong>No HTML5 video support</strong></video>';
|
||||
container.innerHTML += '<video width="' + videowidth + '" height="' + videoheight + '" src="' + src.url + '" controls="controls" '+(autoplay ? 'autoplay="autoplay"' : '')+'><strong>No HTML5 video support</strong></video>';
|
||||
break;
|
||||
|
||||
case 'rtsp':
|
||||
|
@ -264,11 +264,19 @@ function mistembed(streamname) {
|
|||
|
||||
if(video.error) {
|
||||
// there was an error; display it
|
||||
container.innerHTML = ['<strong>Error: ', video.error, '</strong>'].join('');
|
||||
if (video.on_error){
|
||||
container.innerHTML = video.on_error;
|
||||
}else{
|
||||
container.innerHTML = ['<strong>Error: ', video.error, '</strong>'].join('');
|
||||
}
|
||||
}
|
||||
else if ((typeof video.source == 'undefined') || (video.source.length < 1)) {
|
||||
// no stream sources
|
||||
container.innerHTML = '<strong>Error: no protocols found</strong>';
|
||||
if (video.on_error){
|
||||
container.innerHTML = video.on_error;
|
||||
}else{
|
||||
container.innerHTML = '<strong>Error: no active source or compatible protocols for this stream</strong>';
|
||||
}
|
||||
}
|
||||
else {
|
||||
// no error, and sources found. Check the video types and output the best
|
||||
|
|
Loading…
Add table
Reference in a new issue