aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/HttpServer/StreamWriter.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/HttpServer/StreamWriter.cs')
-rw-r--r--MediaBrowser.Server.Implementations/HttpServer/StreamWriter.cs12
1 files changed, 11 insertions, 1 deletions
diff --git a/MediaBrowser.Server.Implementations/HttpServer/StreamWriter.cs b/MediaBrowser.Server.Implementations/HttpServer/StreamWriter.cs
index a8774f1b7..f1112ae0b 100644
--- a/MediaBrowser.Server.Implementations/HttpServer/StreamWriter.cs
+++ b/MediaBrowser.Server.Implementations/HttpServer/StreamWriter.cs
@@ -36,6 +36,9 @@ namespace MediaBrowser.Server.Implementations.HttpServer
get { return _options; }
}
+ public bool Throttle { get; set; }
+ public long ThrottleLimit { get; set; }
+
/// <summary>
/// Initializes a new instance of the <see cref="StreamWriter" /> class.
/// </summary>
@@ -77,6 +80,13 @@ namespace MediaBrowser.Server.Implementations.HttpServer
/// <param name="responseStream">The response stream.</param>
public void WriteTo(Stream responseStream)
{
+ if (Throttle)
+ {
+ responseStream = new ThrottledStream(responseStream, ThrottleLimit)
+ {
+ MinThrottlePosition = ThrottleLimit * 180
+ };
+ }
var task = WriteToAsync(responseStream);
Task.WaitAll(task);
@@ -98,7 +108,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer
}
catch (Exception ex)
{
- Logger.ErrorException("Error streaming media", ex);
+ Logger.ErrorException("Error streaming data", ex);
throw;
}