aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Playback/BaseStreamingService.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-04-02 17:55:19 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-04-02 17:55:19 -0400
commit0200911afc125051b4f5e652ef1bebeca984b571 (patch)
treed6f00cd6b521dd2232bf0ac1f9d110773e3abe7e /MediaBrowser.Api/Playback/BaseStreamingService.cs
parentdcf2e70f039a79dd93ac4f6f3cd5b2c8c9a4dcc8 (diff)
add latest translations
Diffstat (limited to 'MediaBrowser.Api/Playback/BaseStreamingService.cs')
-rw-r--r--MediaBrowser.Api/Playback/BaseStreamingService.cs45
1 files changed, 29 insertions, 16 deletions
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index b9eb4db07..a72b2088b 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -328,7 +328,8 @@ namespace MediaBrowser.Api.Playback
{
var param = string.Empty;
- var hasFixedResolution = state.VideoRequest.HasFixedResolution;
+ var isVc1 = state.VideoStream != null &&
+ string.Equals(state.VideoStream.Codec, "vc1", StringComparison.OrdinalIgnoreCase);
var qualitySetting = GetQualitySetting();
@@ -364,24 +365,36 @@ namespace MediaBrowser.Api.Playback
// webm
else if (string.Equals(videoCodec, "libvpx", StringComparison.OrdinalIgnoreCase))
{
- // http://www.webmproject.org/docs/encoder-parameters/
- param = "-speed 16 -quality good -profile:v 0 -slices 8";
+ // Values 0-3, 0 being highest quality but slower
+ var profileScore = 0;
+
+ string crf;
- if (!hasFixedResolution)
+ switch (qualitySetting)
{
- switch (qualitySetting)
- {
- case EncodingQuality.HighSpeed:
- param += " -crf 18";
- break;
- case EncodingQuality.HighQuality:
- param += " -crf 10";
- break;
- case EncodingQuality.MaxQuality:
- param += " -crf 4";
- break;
- }
+ case EncodingQuality.HighSpeed:
+ crf = "18";
+ profileScore++;
+ break;
+ case EncodingQuality.HighQuality:
+ crf = "10";
+ break;
+ case EncodingQuality.MaxQuality:
+ crf = "4";
+ break;
+ default:
+ throw new ArgumentException("Unrecognized quality setting");
+ }
+
+ if (isVc1)
+ {
+ profileScore++;
}
+
+ // http://www.webmproject.org/docs/encoder-parameters/
+ param = string.Format("-speed 16 -quality good -profile:v {0} -slices 8 -crf {1}",
+ profileScore.ToString(UsCulture),
+ crf);
}
else if (string.Equals(videoCodec, "mpeg4", StringComparison.OrdinalIgnoreCase))