From de9cd28a7959f6920c82ff536339653334246c76 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 14 Dec 2016 15:58:55 -0500 Subject: [PATCH] remove tvos dts hack no longer needed --- Emby.Dlna/ContentDirectory/ControlHandler.cs | 27 ++++++++----------- Emby.Dlna/Didl/DidlBuilder.cs | 6 ++--- Emby.Dlna/PlayTo/PlayToController.cs | 3 +-- .../Playback/BaseStreamingService.cs | 6 ++--- MediaBrowser.Api/Playback/StreamState.cs | 11 -------- .../Encoder/EncodingJob.cs | 11 -------- .../Encoder/EncodingJobFactory.cs | 3 +-- MediaBrowser.Model/Dlna/ConditionProcessor.cs | 24 +---------------- .../Dlna/ContentFeatureBuilder.cs | 6 ++--- MediaBrowser.Model/Dlna/DeviceProfile.cs | 5 ++-- .../Dlna/ProfileConditionValue.cs | 3 +-- MediaBrowser.Model/Dlna/StreamBuilder.cs | 11 +++----- MediaBrowser.Model/Dlna/StreamInfo.cs | 11 -------- 13 files changed, 27 insertions(+), 100 deletions(-) diff --git a/Emby.Dlna/ContentDirectory/ControlHandler.cs b/Emby.Dlna/ContentDirectory/ControlHandler.cs index 98a151f295..bba8c53d9b 100644 --- a/Emby.Dlna/ContentDirectory/ControlHandler.cs +++ b/Emby.Dlna/ContentDirectory/ControlHandler.cs @@ -98,6 +98,9 @@ namespace Emby.Dlna.ContentDirectory if (string.Equals(methodName, "Search", StringComparison.OrdinalIgnoreCase)) return HandleSearch(methodParams, user, deviceId).Result; + if (string.Equals(methodName, "X_BrowseByLetter", StringComparison.OrdinalIgnoreCase)) + return HandleX_BrowseByLetter(methodParams, user, deviceId).Result; + throw new ResourceNotFoundException("Unexpected control request name: " + methodName); } @@ -118,7 +121,7 @@ namespace Emby.Dlna.ContentDirectory _userDataManager.SaveUserData(user.Id, item, userdata, UserDataSaveReason.TogglePlayed, CancellationToken.None); - return new Dictionary(StringComparer.OrdinalIgnoreCase); + return new Dictionary(StringComparer.OrdinalIgnoreCase); } private IEnumerable> HandleGetSearchCapabilities() @@ -147,7 +150,7 @@ namespace Emby.Dlna.ContentDirectory private IEnumerable> HandleGetSystemUpdateID() { - var headers = new Dictionary(StringComparer.OrdinalIgnoreCase); + var headers = new Dictionary(StringComparer.OrdinalIgnoreCase); headers.Add("Id", _systemUpdateId.ToString(_usCulture)); return headers; } @@ -309,6 +312,12 @@ namespace Emby.Dlna.ContentDirectory }; } + private Task>> HandleX_BrowseByLetter(IDictionary sparams, User user, string deviceId) + { + // TODO: Implement this method + return HandleSearch(sparams, user, deviceId); + } + private async Task>> HandleSearch(IDictionary sparams, User user, string deviceId) { var searchCriteria = new SearchCriteria(GetValueOrDefault(sparams, "SearchCriteria", "")); @@ -553,20 +562,6 @@ namespace Emby.Dlna.ContentDirectory return result; } - private bool EnablePeopleDisplay(BaseItem item) - { - if (_libraryManager.GetPeopleNames(new InternalPeopleQuery - { - ItemId = item.Id - - }).Count > 0) - { - return item is Movie; - } - - return false; - } - private ServerItem GetItemFromObjectId(string id, User user) { return DidlBuilder.IsIdRoot(id) diff --git a/Emby.Dlna/Didl/DidlBuilder.cs b/Emby.Dlna/Didl/DidlBuilder.cs index e968509b5e..3dcdaf2efc 100644 --- a/Emby.Dlna/Didl/DidlBuilder.cs +++ b/Emby.Dlna/Didl/DidlBuilder.cs @@ -207,8 +207,7 @@ namespace Emby.Dlna.Didl streamInfo.TargetVideoStreamCount, streamInfo.TargetAudioStreamCount, streamInfo.TargetVideoCodecTag, - streamInfo.IsTargetAVC, - streamInfo.AllAudioCodecs); + streamInfo.IsTargetAVC); foreach (var contentFeature in contentFeatureList) { @@ -348,8 +347,7 @@ namespace Emby.Dlna.Didl streamInfo.TargetVideoStreamCount, streamInfo.TargetAudioStreamCount, streamInfo.TargetVideoCodecTag, - streamInfo.IsTargetAVC, - streamInfo.AllAudioCodecs); + streamInfo.IsTargetAVC); var filename = url.Substring(0, url.IndexOf('?')); diff --git a/Emby.Dlna/PlayTo/PlayToController.cs b/Emby.Dlna/PlayTo/PlayToController.cs index bfc29d0f5f..7dff8bda13 100644 --- a/Emby.Dlna/PlayTo/PlayToController.cs +++ b/Emby.Dlna/PlayTo/PlayToController.cs @@ -541,8 +541,7 @@ namespace Emby.Dlna.PlayTo streamInfo.TargetVideoStreamCount, streamInfo.TargetAudioStreamCount, streamInfo.TargetVideoCodecTag, - streamInfo.IsTargetAVC, - streamInfo.AllAudioCodecs); + streamInfo.IsTargetAVC); return list.FirstOrDefault(); } diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs index 288553ade0..3718edba49 100644 --- a/MediaBrowser.Api/Playback/BaseStreamingService.cs +++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs @@ -2358,8 +2358,7 @@ namespace MediaBrowser.Api.Playback state.TargetVideoStreamCount, state.TargetAudioStreamCount, state.TargetVideoCodecTag, - state.IsTargetAVC, - state.AllAudioCodecs); + state.IsTargetAVC); if (mediaProfile != null) { @@ -2581,8 +2580,7 @@ namespace MediaBrowser.Api.Playback state.TargetVideoStreamCount, state.TargetAudioStreamCount, state.TargetVideoCodecTag, - state.IsTargetAVC, - state.AllAudioCodecs + state.IsTargetAVC ).FirstOrDefault() ?? string.Empty; } diff --git a/MediaBrowser.Api/Playback/StreamState.cs b/MediaBrowser.Api/Playback/StreamState.cs index 9c337781cb..d1ef996aea 100644 --- a/MediaBrowser.Api/Playback/StreamState.cs +++ b/MediaBrowser.Api/Playback/StreamState.cs @@ -245,17 +245,6 @@ namespace MediaBrowser.Api.Playback public int? OutputAudioBitrate; public int? OutputVideoBitrate; - public List AllAudioCodecs - { - get - { - return MediaSource.MediaStreams.Where(i => i.Type == MediaStreamType.Audio) - .Select(i => i.Codec) - .Where(i => !string.IsNullOrWhiteSpace(i)) - .ToList(); - } - } - public string ActualOutputVideoCodec { get diff --git a/MediaBrowser.MediaEncoding/Encoder/EncodingJob.cs b/MediaBrowser.MediaEncoding/Encoder/EncodingJob.cs index 145337a2a4..b5ff5cbb6a 100644 --- a/MediaBrowser.MediaEncoding/Encoder/EncodingJob.cs +++ b/MediaBrowser.MediaEncoding/Encoder/EncodingJob.cs @@ -118,17 +118,6 @@ namespace MediaBrowser.MediaEncoding.Encoder } } - public List AllAudioCodecs - { - get - { - return MediaSource.MediaStreams.Where(i => i.Type == MediaStreamType.Audio) - .Select(i => i.Codec) - .Where(i => !string.IsNullOrWhiteSpace(i)) - .ToList(); - } - } - private void DisposeIsoMount() { if (IsoMount != null) diff --git a/MediaBrowser.MediaEncoding/Encoder/EncodingJobFactory.cs b/MediaBrowser.MediaEncoding/Encoder/EncodingJobFactory.cs index 70d02901ec..e197bdb6fd 100644 --- a/MediaBrowser.MediaEncoding/Encoder/EncodingJobFactory.cs +++ b/MediaBrowser.MediaEncoding/Encoder/EncodingJobFactory.cs @@ -846,8 +846,7 @@ namespace MediaBrowser.MediaEncoding.Encoder state.TargetVideoStreamCount, state.TargetAudioStreamCount, state.TargetVideoCodecTag, - state.IsTargetAVC, - state.AllAudioCodecs); + state.IsTargetAVC); if (mediaProfile != null) { diff --git a/MediaBrowser.Model/Dlna/ConditionProcessor.cs b/MediaBrowser.Model/Dlna/ConditionProcessor.cs index aa0b6f4319..e9e76a993e 100644 --- a/MediaBrowser.Model/Dlna/ConditionProcessor.cs +++ b/MediaBrowser.Model/Dlna/ConditionProcessor.cs @@ -24,15 +24,12 @@ namespace MediaBrowser.Model.Dlna int? numVideoStreams, int? numAudioStreams, string videoCodecTag, - bool? isAvc, - List allAudioCodecs ) + bool? isAvc ) { switch (condition.Property) { case ProfileConditionValue.IsAnamorphic: return IsConditionSatisfied(condition, isAnamorphic); - case ProfileConditionValue.HasAudioCodec: - return IsHasAudioCodecConditionSatisfied(condition, allAudioCodecs); case ProfileConditionValue.IsAvc: return IsConditionSatisfied(condition, isAvc); case ProfileConditionValue.VideoFramerate: @@ -167,25 +164,6 @@ namespace MediaBrowser.Model.Dlna } } - private bool IsHasAudioCodecConditionSatisfied(ProfileCondition condition, List allAudioCodecs) - { - if (allAudioCodecs.Count == 0) - { - // If the value is unknown, it satisfies if not marked as required - return !condition.IsRequired; - } - - switch (condition.Condition) - { - case ProfileConditionType.Equals: - return allAudioCodecs.Contains(condition.Value, StringComparer.Ordinal); - case ProfileConditionType.NotEquals: - return !allAudioCodecs.Contains(condition.Value, StringComparer.Ordinal); - default: - throw new InvalidOperationException("Unexpected ProfileConditionType"); - } - } - private bool IsConditionSatisfied(ProfileCondition condition, bool? currentValue) { if (!currentValue.HasValue) diff --git a/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs b/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs index c6a5116b4d..4a16a27805 100644 --- a/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs +++ b/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs @@ -119,8 +119,7 @@ namespace MediaBrowser.Model.Dlna int? numVideoStreams, int? numAudioStreams, string videoCodecTag, - bool? isAvc, - List allAudioCodecs) + bool? isAvc) { // first bit means Time based seek supported, second byte range seek supported (not sure about the order now), so 01 = only byte seek, 10 = time based, 11 = both, 00 = none string orgOp = ";DLNA.ORG_OP=" + DlnaMaps.GetOrgOpValue(runtimeTicks.HasValue, isDirectStream, transcodeSeekInfo); @@ -162,8 +161,7 @@ namespace MediaBrowser.Model.Dlna numVideoStreams, numAudioStreams, videoCodecTag, - isAvc, - allAudioCodecs); + isAvc); List orgPnValues = new List(); diff --git a/MediaBrowser.Model/Dlna/DeviceProfile.cs b/MediaBrowser.Model/Dlna/DeviceProfile.cs index 638f78dcbb..821531ed06 100644 --- a/MediaBrowser.Model/Dlna/DeviceProfile.cs +++ b/MediaBrowser.Model/Dlna/DeviceProfile.cs @@ -297,8 +297,7 @@ namespace MediaBrowser.Model.Dlna int? numVideoStreams, int? numAudioStreams, string videoCodecTag, - bool? isAvc, - List allAudioCodecs) + bool? isAvc) { container = StringHelper.TrimStart(container ?? string.Empty, '.'); @@ -332,7 +331,7 @@ namespace MediaBrowser.Model.Dlna var anyOff = false; foreach (ProfileCondition c in i.Conditions) { - if (!conditionProcessor.IsVideoConditionSatisfied(GetModelProfileCondition(c), width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, refFrames, numVideoStreams, numAudioStreams, videoCodecTag, isAvc, allAudioCodecs)) + if (!conditionProcessor.IsVideoConditionSatisfied(GetModelProfileCondition(c), width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, refFrames, numVideoStreams, numAudioStreams, videoCodecTag, isAvc)) { anyOff = true; break; diff --git a/MediaBrowser.Model/Dlna/ProfileConditionValue.cs b/MediaBrowser.Model/Dlna/ProfileConditionValue.cs index 9d6321c848..7e2002f179 100644 --- a/MediaBrowser.Model/Dlna/ProfileConditionValue.cs +++ b/MediaBrowser.Model/Dlna/ProfileConditionValue.cs @@ -21,7 +21,6 @@ NumVideoStreams = 17, IsSecondaryAudio = 18, VideoCodecTag = 19, - IsAvc = 20, - HasAudioCodec = 21 + IsAvc = 20 } } \ No newline at end of file diff --git a/MediaBrowser.Model/Dlna/StreamBuilder.cs b/MediaBrowser.Model/Dlna/StreamBuilder.cs index dee1605f36..aac4ed4d16 100644 --- a/MediaBrowser.Model/Dlna/StreamBuilder.cs +++ b/MediaBrowser.Model/Dlna/StreamBuilder.cs @@ -411,7 +411,6 @@ namespace MediaBrowser.Model.Dlna } var allMediaStreams = item.MediaStreams; - var allAudioCodecs = allMediaStreams.Where(i => i.Type == MediaStreamType.Audio).Select(i => i.Codec).Where(i => !string.IsNullOrWhiteSpace(i)).ToList(); MediaStream videoStream = item.VideoStream; @@ -556,7 +555,7 @@ namespace MediaBrowser.Model.Dlna int? numAudioStreams = item.GetStreamCount(MediaStreamType.Audio); int? numVideoStreams = item.GetStreamCount(MediaStreamType.Video); - if (!conditionProcessor.IsVideoConditionSatisfied(applyCondition, width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, refFrames, numVideoStreams, numAudioStreams, videoCodecTag, isAvc, allAudioCodecs)) + if (!conditionProcessor.IsVideoConditionSatisfied(applyCondition, width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, refFrames, numVideoStreams, numAudioStreams, videoCodecTag, isAvc)) { LogConditionFailure(options.Profile, "VideoCodecProfile", applyCondition, item); applyConditions = false; @@ -739,12 +738,10 @@ namespace MediaBrowser.Model.Dlna int? numAudioStreams = mediaSource.GetStreamCount(MediaStreamType.Audio); int? numVideoStreams = mediaSource.GetStreamCount(MediaStreamType.Video); - var allAudioCodecs = allMediaStreams.Where(i => i.Type == MediaStreamType.Audio).Select(i => i.Codec).Where(i => !string.IsNullOrWhiteSpace(i)).ToList(); - // Check container conditions foreach (ProfileCondition i in conditions) { - if (!conditionProcessor.IsVideoConditionSatisfied(i, width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, refFrames, numVideoStreams, numAudioStreams, videoCodecTag, isAvc, allAudioCodecs)) + if (!conditionProcessor.IsVideoConditionSatisfied(i, width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, refFrames, numVideoStreams, numAudioStreams, videoCodecTag, isAvc)) { LogConditionFailure(profile, "VideoContainerProfile", i, mediaSource); @@ -771,7 +768,7 @@ namespace MediaBrowser.Model.Dlna bool applyConditions = true; foreach (ProfileCondition applyCondition in i.ApplyConditions) { - if (!conditionProcessor.IsVideoConditionSatisfied(applyCondition, width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, refFrames, numVideoStreams, numAudioStreams, videoCodecTag, isAvc, allAudioCodecs)) + if (!conditionProcessor.IsVideoConditionSatisfied(applyCondition, width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, refFrames, numVideoStreams, numAudioStreams, videoCodecTag, isAvc)) { LogConditionFailure(profile, "VideoCodecProfile", applyCondition, mediaSource); applyConditions = false; @@ -791,7 +788,7 @@ namespace MediaBrowser.Model.Dlna foreach (ProfileCondition i in conditions) { - if (!conditionProcessor.IsVideoConditionSatisfied(i, width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, refFrames, numVideoStreams, numAudioStreams, videoCodecTag, isAvc, allAudioCodecs)) + if (!conditionProcessor.IsVideoConditionSatisfied(i, width, height, bitDepth, videoBitrate, videoProfile, videoLevel, videoFramerate, packetLength, timestamp, isAnamorphic, refFrames, numVideoStreams, numAudioStreams, videoCodecTag, isAvc)) { LogConditionFailure(profile, "VideoCodecProfile", i, mediaSource); diff --git a/MediaBrowser.Model/Dlna/StreamInfo.cs b/MediaBrowser.Model/Dlna/StreamInfo.cs index 105edb131e..eb3b7d8fbf 100644 --- a/MediaBrowser.Model/Dlna/StreamInfo.cs +++ b/MediaBrowser.Model/Dlna/StreamInfo.cs @@ -413,17 +413,6 @@ namespace MediaBrowser.Model.Dlna } } - public List AllAudioCodecs - { - get - { - return MediaSource.MediaStreams.Where(i => i.Type == MediaStreamType.Audio) - .Select(i => i.Codec) - .Where(i => !string.IsNullOrWhiteSpace(i)) - .ToList(); - } - } - /// /// Returns the video stream that will be used ///