diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-04-02 17:55:19 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-04-02 17:55:19 -0400 |
| commit | 0200911afc125051b4f5e652ef1bebeca984b571 (patch) | |
| tree | d6f00cd6b521dd2232bf0ac1f9d110773e3abe7e /MediaBrowser.Api/Playback/BaseStreamingService.cs | |
| parent | dcf2e70f039a79dd93ac4f6f3cd5b2c8c9a4dcc8 (diff) | |
add latest translations
Diffstat (limited to 'MediaBrowser.Api/Playback/BaseStreamingService.cs')
| -rw-r--r-- | MediaBrowser.Api/Playback/BaseStreamingService.cs | 45 |
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)) |
