diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-01-24 13:09:50 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-01-24 13:09:50 -0500 |
| commit | 3cc608d781b72b9e9c2dd91f90d90a5cf6f0a57a (patch) | |
| tree | 0da58114f04b53bdcfd51b52169908e35a5549d1 | |
| parent | e92688fbec10fe54cf0425bb9262578e5bed1e12 (diff) | |
update next/previous buttons
| -rw-r--r-- | MediaBrowser.Api/Playback/BaseStreamingService.cs | 34 | ||||
| -rw-r--r-- | MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.Api/Playback/Hls/VideoHlsService.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.Api/Playback/Progressive/VideoService.cs | 16 | ||||
| -rw-r--r-- | MediaBrowser.Api/Playback/StreamState.cs | 3 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/BaseItem.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Providers/BaseItemXmlParser.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.Providers/Movies/MovieDbProvider.cs | 3 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/Dto/DtoService.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs | 15 | ||||
| -rw-r--r-- | Nuget/MediaBrowser.Common.Internal.nuspec | 4 | ||||
| -rw-r--r-- | Nuget/MediaBrowser.Common.nuspec | 2 | ||||
| -rw-r--r-- | Nuget/MediaBrowser.Server.Core.nuspec | 4 |
15 files changed, 83 insertions, 45 deletions
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs index 394ca69d5..76cce0d66 100644 --- a/MediaBrowser.Api/Playback/BaseStreamingService.cs +++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs @@ -307,7 +307,7 @@ namespace MediaBrowser.Api.Playback if (videoCodec.Equals("libvpx", StringComparison.OrdinalIgnoreCase)) { // http://www.webmproject.org/docs/encoder-parameters/ - return "-speed 16 -quality good -profile:v 0 -slices 8"; + return "-speed 16 -quality good -profile:v 0 -slices 8 -crf 18"; } // asf/wmv @@ -321,11 +321,11 @@ namespace MediaBrowser.Api.Playback switch (GetQualitySetting()) { case EncodingQuality.HighSpeed: - return "-preset ultrafast"; + return "-preset ultrafast -crf 18"; case EncodingQuality.HighQuality: - return "-preset superfast"; + return "-preset superfast -crf 18"; case EncodingQuality.MaxQuality: - return "-preset superfast"; + return "-preset superfast -crf 18"; default: throw new Exception("Unrecognized MediaEncodingQuality value."); } @@ -381,7 +381,7 @@ namespace MediaBrowser.Api.Playback audioSampleRate, volParam, pts, - state.AudioSync.ToString(UsCulture)); + state.AudioSync); } /// <summary> @@ -994,6 +994,26 @@ namespace MediaBrowser.Api.Playback } } + protected double? GetFramerateParam(StreamState state) + { + if (state.VideoRequest != null && state.VideoRequest.Framerate.HasValue) + { + return state.VideoRequest.Framerate.Value; + } + + if (state.VideoStream != null) + { + var contentRate = state.VideoStream.AverageFrameRate ?? state.VideoStream.RealFrameRate; + + if (contentRate.HasValue && contentRate.Value > 23.976) + { + return 23.976; + } + } + + return null; + } + /// <summary> /// Gets the state. /// </summary> @@ -1068,7 +1088,7 @@ namespace MediaBrowser.Api.Playback //state.RunTimeTicks = recording.RunTimeTicks; state.ReadInputAtNativeFramerate = recording.RecordingInfo.Status == RecordingStatus.InProgress; state.SendInputOverStandardInput = recording.RecordingInfo.Status == RecordingStatus.InProgress; - state.AudioSync = 1000; + state.AudioSync = "1000"; state.DeInterlace = true; } else if (item is LiveTvChannel) @@ -1096,7 +1116,7 @@ namespace MediaBrowser.Api.Playback state.SendInputOverStandardInput = true; state.ReadInputAtNativeFramerate = true; - state.AudioSync = 1000; + state.AudioSync = "1000"; state.DeInterlace = true; } else diff --git a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs index f064a13c6..388339f17 100644 --- a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs +++ b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs @@ -317,12 +317,16 @@ namespace MediaBrowser.Api.Playback.Hls } } - if (state.VideoRequest.Framerate.HasValue) + var framerate = GetFramerateParam(state); + if (framerate.HasValue) { - args += string.Format(" -r {0}", state.VideoRequest.Framerate.Value); + args += string.Format(" -r {0}", framerate.Value.ToString(UsCulture)); } - args += " -vsync vfr"; + if (!string.IsNullOrEmpty(state.VideoSync)) + { + args += " -vsync " + state.VideoSync; + } if (!string.IsNullOrEmpty(state.VideoRequest.Profile)) { diff --git a/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs b/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs index 7e7e8ba5b..9d9c62a28 100644 --- a/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs +++ b/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs @@ -194,12 +194,16 @@ namespace MediaBrowser.Api.Playback.Hls } } - if (state.VideoRequest.Framerate.HasValue) + var framerate = GetFramerateParam(state); + if (framerate.HasValue) { - args += string.Format(" -r {0}", state.VideoRequest.Framerate.Value); + args += string.Format(" -r {0}", framerate.Value.ToString(UsCulture)); } - args += " -vsync vfr"; + if (!string.IsNullOrEmpty(state.VideoSync)) + { + args += " -vsync " + state.VideoSync; + } if (!string.IsNullOrEmpty(state.VideoRequest.Profile)) { diff --git a/MediaBrowser.Api/Playback/Progressive/VideoService.cs b/MediaBrowser.Api/Playback/Progressive/VideoService.cs index 826b03440..b16761595 100644 --- a/MediaBrowser.Api/Playback/Progressive/VideoService.cs +++ b/MediaBrowser.Api/Playback/Progressive/VideoService.cs @@ -156,9 +156,10 @@ namespace MediaBrowser.Api.Playback.Progressive } } - if (request.Framerate.HasValue) + var framerate = GetFramerateParam(state); + if (framerate.HasValue) { - args += string.Format(" -r {0}", request.Framerate.Value); + args += string.Format(" -r {0}", framerate.Value.ToString(UsCulture)); } var qualityParam = GetVideoQualityParam(state, codec); @@ -169,11 +170,13 @@ namespace MediaBrowser.Api.Playback.Progressive { if (string.Equals(codec, "libvpx", StringComparison.OrdinalIgnoreCase)) { - qualityParam += string.Format(" -minrate:v ({0}*.90) -maxrate:v ({0}*1.10) -bufsize:v {0} -b:v {0}", bitrate.Value.ToString(UsCulture)); + qualityParam += string.Format(" -b:v {0}", bitrate.Value.ToString(UsCulture)); } else { - qualityParam += string.Format(" -b:v {0}", bitrate.Value.ToString(UsCulture)); + qualityParam += string.Format(" -maxrate {0} -bufsize {1}", + bitrate.Value.ToString(UsCulture), + (bitrate.Value * 2).ToString(UsCulture)); } } @@ -182,7 +185,10 @@ namespace MediaBrowser.Api.Playback.Progressive args += " " + qualityParam.Trim(); } - args += " -vsync vfr"; + if (!string.IsNullOrEmpty(state.VideoSync)) + { + args += " -vsync " + state.VideoSync; + } if (!string.IsNullOrEmpty(state.VideoRequest.Profile)) { diff --git a/MediaBrowser.Api/Playback/StreamState.cs b/MediaBrowser.Api/Playback/StreamState.cs index 84cc8ecd3..55d7b22e2 100644 --- a/MediaBrowser.Api/Playback/StreamState.cs +++ b/MediaBrowser.Api/Playback/StreamState.cs @@ -59,7 +59,8 @@ namespace MediaBrowser.Api.Playback public long? RunTimeTicks; - public int AudioSync = 1; + public string AudioSync = "1"; + public string VideoSync = "vfr"; public bool DeInterlace { get; set; } diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 58d5f1b94..7840fb3f0 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -542,11 +542,6 @@ namespace MediaBrowser.Controller.Entities public long? RunTimeTicks { get; set; } /// <summary> - /// Gets or sets the original run time ticks. - /// </summary> - /// <value>The original run time ticks.</value> - public long? OriginalRunTimeTicks { get; set; } - /// <summary> /// Gets or sets the production year. /// </summary> /// <value>The production year.</value> diff --git a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs index 416437d35..7bd6d824a 100644 --- a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs +++ b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs @@ -423,11 +423,7 @@ namespace MediaBrowser.Controller.Providers if (int.TryParse(text.Split(' ')[0], NumberStyles.Integer, _usCulture, out runtime)) { // For audio and video don't replace ffmpeg data - if (item is Video || item is Audio) - { - item.OriginalRunTimeTicks = TimeSpan.FromMinutes(runtime).Ticks; - } - else + if (!(item is Video || item is Audio)) { item.RunTimeTicks = TimeSpan.FromMinutes(runtime).Ticks; } diff --git a/MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs b/MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs index e764e679b..85f58be3b 100644 --- a/MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs +++ b/MediaBrowser.Model/LiveTv/LiveTvServiceInfo.cs @@ -145,6 +145,12 @@ namespace MediaBrowser.Model.LiveTv public string ChannelId { get; set; } /// <summary> + /// Gets or sets the name of the channel. + /// </summary> + /// <value>The name of the channel.</value> + public string ChannelName { get; set; } + + /// <summary> /// Gets or sets the recording identifier. /// </summary> /// <value>The recording identifier.</value> diff --git a/MediaBrowser.Providers/Movies/MovieDbProvider.cs b/MediaBrowser.Providers/Movies/MovieDbProvider.cs index d4367a5db..d6937293c 100644 --- a/MediaBrowser.Providers/Movies/MovieDbProvider.cs +++ b/MediaBrowser.Providers/Movies/MovieDbProvider.cs @@ -796,9 +796,6 @@ namespace MediaBrowser.Providers.Movies boxset.OfficialRating = firstChild != null ? firstChild.OfficialRating : null; } - if (movieData.runtime > 0) - movie.OriginalRunTimeTicks = TimeSpan.FromMinutes(movieData.runtime).Ticks; - //studios if (movieData.production_companies != null && !movie.LockedFields.Contains(MetadataFields.Studios)) { diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs index 7fa299050..7a9735e0e 100644 --- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs +++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs @@ -649,11 +649,6 @@ namespace MediaBrowser.Server.Implementations.Dto dto.DateCreated = item.DateCreated; } - if (fields.Contains(ItemFields.OriginalRunTimeTicks)) - { - dto.OriginalRunTimeTicks = item.OriginalRunTimeTicks; - } - dto.DisplayMediaType = item.DisplayMediaType; if (fields.Contains(ItemFields.Settings)) diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs index 5b25e259a..4805adb1f 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs @@ -271,7 +271,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv return dto; } - public LiveTvTunerInfoDto GetTunerInfoDto(string serviceName, LiveTvTunerInfo info) + public LiveTvTunerInfoDto GetTunerInfoDto(string serviceName, LiveTvTunerInfo info, string channelName) { var dto = new LiveTvTunerInfoDto { @@ -280,7 +280,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv Clients = info.Clients, ProgramName = info.ProgramName, SourceType = info.SourceType, - Status = info.Status + Status = info.Status, + ChannelName = channelName }; if (!string.IsNullOrEmpty(info.ChannelId)) diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index 0d2f323b4..e256d7da5 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -1435,7 +1435,20 @@ namespace MediaBrowser.Server.Implementations.LiveTv info.HasUpdateAvailable = statusInfo.HasUpdateAvailable; info.HomePageUrl = service.HomePageUrl; - info.Tuners = statusInfo.Tuners.Select(i => _tvDtoService.GetTunerInfoDto(service.Name, i)).ToList(); + info.Tuners = statusInfo.Tuners.Select(i => + { + string channelName = null; + + if (!string.IsNullOrEmpty(i.ChannelId)) + { + var internalChannelId = _tvDtoService.GetInternalChannelId(service.Name, i.ChannelId); + var channel = GetInternalChannel(internalChannelId); + channelName = channel == null ? null : channel.Name; + } + + return _tvDtoService.GetTunerInfoDto(service.Name, i, channelName); + + }).ToList(); } catch (Exception ex) { diff --git a/Nuget/MediaBrowser.Common.Internal.nuspec b/Nuget/MediaBrowser.Common.Internal.nuspec index 175ca99c4..47e2e841b 100644 --- a/Nuget/MediaBrowser.Common.Internal.nuspec +++ b/Nuget/MediaBrowser.Common.Internal.nuspec @@ -2,7 +2,7 @@ <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> <metadata> <id>MediaBrowser.Common.Internal</id> - <version>3.0.308</version> + <version>3.0.309</version> <title>MediaBrowser.Common.Internal</title> <authors>Luke</authors> <owners>ebr,Luke,scottisafool</owners> @@ -12,7 +12,7 @@ <description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description> <copyright>Copyright © Media Browser 2013</copyright> <dependencies> - <dependency id="MediaBrowser.Common" version="3.0.308" /> + <dependency id="MediaBrowser.Common" version="3.0.309" /> <dependency id="NLog" version="2.1.0" /> <dependency id="SimpleInjector" version="2.4.0" /> <dependency id="sharpcompress" version="0.10.2" /> diff --git a/Nuget/MediaBrowser.Common.nuspec b/Nuget/MediaBrowser.Common.nuspec index f4cafce40..376cc722d 100644 --- a/Nuget/MediaBrowser.Common.nuspec +++ b/Nuget/MediaBrowser.Common.nuspec @@ -2,7 +2,7 @@ <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> <metadata> <id>MediaBrowser.Common</id> - <version>3.0.308</version> + <version>3.0.309</version> <title>MediaBrowser.Common</title> <authors>Media Browser Team</authors> <owners>ebr,Luke,scottisafool</owners> diff --git a/Nuget/MediaBrowser.Server.Core.nuspec b/Nuget/MediaBrowser.Server.Core.nuspec index dea375326..22dd1aa9a 100644 --- a/Nuget/MediaBrowser.Server.Core.nuspec +++ b/Nuget/MediaBrowser.Server.Core.nuspec @@ -2,7 +2,7 @@ <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <metadata> <id>MediaBrowser.Server.Core</id> - <version>3.0.308</version> + <version>3.0.309</version> <title>Media Browser.Server.Core</title> <authors>Media Browser Team</authors> <owners>ebr,Luke,scottisafool</owners> @@ -12,7 +12,7 @@ <description>Contains core components required to build plugins for Media Browser Server.</description> <copyright>Copyright © Media Browser 2013</copyright> <dependencies> - <dependency id="MediaBrowser.Common" version="3.0.308" /> + <dependency id="MediaBrowser.Common" version="3.0.309" /> </dependencies> </metadata> <files> |
