aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.MediaEncoding/Encoder
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-08-16 11:53:30 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-08-16 11:53:30 -0400
commit1f1f7642c3df2f9ec67bbdbdb4d5ed66e126f3ab (patch)
tree386023cdd0a39ec8611cb540ec4c489c06371111 /MediaBrowser.MediaEncoding/Encoder
parentf6dcef0cfdb4364f11836e395ff8933974bcf627 (diff)
update subtitle escaping
Diffstat (limited to 'MediaBrowser.MediaEncoding/Encoder')
-rw-r--r--MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs4
-rw-r--r--MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs5
2 files changed, 7 insertions, 2 deletions
diff --git a/MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs b/MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs
index dd88512fb..181f147b4 100644
--- a/MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs
+++ b/MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs
@@ -865,13 +865,13 @@ namespace MediaBrowser.MediaEncoding.Encoder
// TODO: Perhaps also use original_size=1920x800 ??
return string.Format("subtitles=filename='{0}'{1},setpts=PTS -{2}/TB",
- subtitlePath.Replace('\\', '/').Replace(":/", "\\:/"),
+ MediaEncoder.EscapeSubtitleFilterPath(subtitlePath),
charsetParam,
seconds.ToString(UsCulture));
}
return string.Format("subtitles='{0}:si={1}',setpts=PTS -{2}/TB",
- state.MediaPath.Replace('\\', '/').Replace(":/", "\\:/"),
+ MediaEncoder.EscapeSubtitleFilterPath(state.MediaPath),
state.InternalSubtitleStreamOffset.ToString(UsCulture),
seconds.ToString(UsCulture));
}
diff --git a/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs b/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
index c059a8b54..50b6a94aa 100644
--- a/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
+++ b/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
@@ -765,6 +765,11 @@ namespace MediaBrowser.MediaEncoding.Encoder
}
}
+ public string EscapeSubtitleFilterPath(string path)
+ {
+ return path.Replace('\\', '/').Replace(":/", "\\:/").Replace("'", "'\\\\\\'");
+ }
+
/// <summary>
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
/// </summary>