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.cs13
1 files changed, 12 insertions, 1 deletions
diff --git a/MediaBrowser.Server.Implementations/HttpServer/StreamWriter.cs b/MediaBrowser.Server.Implementations/HttpServer/StreamWriter.cs
index a8774f1b7..28fc094f7 100644
--- a/MediaBrowser.Server.Implementations/HttpServer/StreamWriter.cs
+++ b/MediaBrowser.Server.Implementations/HttpServer/StreamWriter.cs
@@ -36,6 +36,10 @@ namespace MediaBrowser.Server.Implementations.HttpServer
get { return _options; }
}
+ public bool Throttle { get; set; }
+ public long ThrottleLimit { get; set; }
+ public long MinThrottlePosition;
+
/// <summary>
/// Initializes a new instance of the <see cref="StreamWriter" /> class.
/// </summary>
@@ -77,6 +81,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 = MinThrottlePosition
+ };
+ }
var task = WriteToAsync(responseStream);
Task.WaitAll(task);
@@ -98,7 +109,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer
}
catch (Exception ex)
{
- Logger.ErrorException("Error streaming media", ex);
+ Logger.ErrorException("Error streaming data", ex);
throw;
}