diff --git a/Emby.Dlna/Didl/DidlBuilder.cs b/Emby.Dlna/Didl/DidlBuilder.cs
index c7eae91dd4..c308d9c632 100644
--- a/Emby.Dlna/Didl/DidlBuilder.cs
+++ b/Emby.Dlna/Didl/DidlBuilder.cs
@@ -488,7 +488,8 @@ namespace Emby.Dlna.Didl
var mediaProfile = _profile.GetAudioMediaProfile(streamInfo.Container,
streamInfo.TargetAudioCodec,
targetChannels,
- targetAudioBitrate);
+ targetAudioBitrate,
+ targetSampleRate);
var filename = url.Substring(0, url.IndexOf('?'));
diff --git a/Emby.Server.Implementations/Dto/DtoService.cs b/Emby.Server.Implementations/Dto/DtoService.cs
index 78d76fd761..d784bcb09b 100644
--- a/Emby.Server.Implementations/Dto/DtoService.cs
+++ b/Emby.Server.Implementations/Dto/DtoService.cs
@@ -883,15 +883,6 @@ namespace Emby.Server.Implementations.Dto
dto.AspectRatio = hasAspectRatio.AspectRatio;
}
- if (fields.Contains(ItemFields.AwardSummary))
- {
- var hasAwards = item as IHasAwards;
- if (hasAwards != null)
- {
- dto.AwardSummary = hasAwards.AwardSummary;
- }
- }
-
var backdropLimit = options.GetImageLimit(ImageType.Backdrop);
if (backdropLimit > 0)
{
diff --git a/MediaBrowser.Api/ItemUpdateService.cs b/MediaBrowser.Api/ItemUpdateService.cs
index 29530688c0..cdc33dfd49 100644
--- a/MediaBrowser.Api/ItemUpdateService.cs
+++ b/MediaBrowser.Api/ItemUpdateService.cs
@@ -335,12 +335,6 @@ namespace MediaBrowser.Api
video.Video3DFormat = request.Video3DFormat;
}
- var hasAwards = item as IHasAwards;
- if (hasAwards != null)
- {
- hasAwards.AwardSummary = request.AwardSummary;
- }
-
var game = item as Game;
if (game != null)
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index 67921ab348..6edeb960a8 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -866,7 +866,7 @@ namespace MediaBrowser.Api.Playback
var videoCodec = state.ActualOutputVideoCodec;
var mediaProfile = state.VideoRequest == null ?
- profile.GetAudioMediaProfile(state.OutputContainer, audioCodec, state.OutputAudioChannels, state.OutputAudioBitrate) :
+ profile.GetAudioMediaProfile(state.OutputContainer, audioCodec, state.OutputAudioChannels, state.OutputAudioBitrate, state.OutputAudioSampleRate) :
profile.GetVideoMediaProfile(state.OutputContainer,
audioCodec,
videoCodec,
diff --git a/MediaBrowser.Controller/Entities/IHasAwards.cs b/MediaBrowser.Controller/Entities/IHasAwards.cs
deleted file mode 100644
index 6661702fa5..0000000000
--- a/MediaBrowser.Controller/Entities/IHasAwards.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-
-namespace MediaBrowser.Controller.Entities
-{
- ///
- /// Interface IHasAwards
- ///
- public interface IHasAwards
- {
- ///
- /// Gets or sets the awards summary.
- ///
- /// The awards summary.
- string AwardSummary { get; set; }
- }
-}
diff --git a/MediaBrowser.Controller/Entities/Movies/Movie.cs b/MediaBrowser.Controller/Entities/Movies/Movie.cs
index 371be3dfeb..c2a01f4fff 100644
--- a/MediaBrowser.Controller/Entities/Movies/Movie.cs
+++ b/MediaBrowser.Controller/Entities/Movies/Movie.cs
@@ -17,7 +17,7 @@ namespace MediaBrowser.Controller.Entities.Movies
///
/// Class Movie
///
- public class Movie : Video, IHasSpecialFeatures, IHasTrailers, IHasAwards, IHasLookupInfo, ISupportsBoxSetGrouping
+ public class Movie : Video, IHasSpecialFeatures, IHasTrailers, IHasLookupInfo, ISupportsBoxSetGrouping
{
public List SpecialFeatureIds { get; set; }
@@ -29,8 +29,6 @@ namespace MediaBrowser.Controller.Entities.Movies
RemoteTrailerIds = new List();
}
- public string AwardSummary { get; set; }
-
public List LocalTrailerIds { get; set; }
public List RemoteTrailerIds { get; set; }
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index 1f10fab739..38cff6d674 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
@@ -131,7 +131,6 @@
-
diff --git a/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs
index 2500ee4820..53327deca7 100644
--- a/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs
+++ b/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs
@@ -207,21 +207,6 @@ namespace MediaBrowser.LocalMetadata.Parsers
break;
}
- case "AwardSummary":
- {
- var text = reader.ReadElementContentAsString();
- var hasAwards = item as IHasAwards;
- if (hasAwards != null)
- {
- if (!string.IsNullOrWhiteSpace(text))
- {
- hasAwards.AwardSummary = text;
- }
- }
-
- break;
- }
-
case "SortTitle":
{
var val = reader.ReadElementContentAsString();
diff --git a/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs b/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs
index 57e2ec450d..dd93380fa8 100644
--- a/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs
+++ b/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs
@@ -35,7 +35,6 @@ namespace MediaBrowser.LocalMetadata.Savers
"AspectRatio",
"AudioDbAlbumId",
"AudioDbArtistId",
- "AwardSummary",
"BirthDate",
// Deprecated. No longer saving in this field.
@@ -403,12 +402,6 @@ namespace MediaBrowser.LocalMetadata.Savers
writer.WriteElementString("DisplayOrder", hasDisplayOrder.DisplayOrder);
}
- var hasAwards = item as IHasAwards;
- if (hasAwards != null && !string.IsNullOrEmpty(hasAwards.AwardSummary))
- {
- writer.WriteElementString("AwardSummary", hasAwards.AwardSummary);
- }
-
if (item.CommunityRating.HasValue)
{
writer.WriteElementString("Rating", item.CommunityRating.Value.ToString(UsCulture));
diff --git a/MediaBrowser.MediaEncoding/Encoder/EncodingJobFactory.cs b/MediaBrowser.MediaEncoding/Encoder/EncodingJobFactory.cs
index 3e99d68ce3..df067f3c86 100644
--- a/MediaBrowser.MediaEncoding/Encoder/EncodingJobFactory.cs
+++ b/MediaBrowser.MediaEncoding/Encoder/EncodingJobFactory.cs
@@ -263,7 +263,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
var outputContainer = state.Options.OutputContainer;
var mediaProfile = state.IsVideoRequest ?
- profile.GetAudioMediaProfile(outputContainer, audioCodec, state.OutputAudioChannels, state.OutputAudioBitrate) :
+ profile.GetAudioMediaProfile(outputContainer, audioCodec, state.OutputAudioChannels, state.OutputAudioBitrate, state.OutputAudioSampleRate) :
profile.GetVideoMediaProfile(outputContainer,
audioCodec,
videoCodec,
diff --git a/MediaBrowser.Model/Dlna/ConditionProcessor.cs b/MediaBrowser.Model/Dlna/ConditionProcessor.cs
index 1c11e6a3ca..63e962c4e3 100644
--- a/MediaBrowser.Model/Dlna/ConditionProcessor.cs
+++ b/MediaBrowser.Model/Dlna/ConditionProcessor.cs
@@ -76,7 +76,7 @@ namespace MediaBrowser.Model.Dlna
}
}
- public bool IsAudioConditionSatisfied(ProfileCondition condition, int? audioChannels, int? audioBitrate)
+ public bool IsAudioConditionSatisfied(ProfileCondition condition, int? audioChannels, int? audioBitrate, int? audioSampleRate)
{
switch (condition.Property)
{
@@ -84,6 +84,8 @@ namespace MediaBrowser.Model.Dlna
return IsConditionSatisfied(condition, audioBitrate);
case ProfileConditionValue.AudioChannels:
return IsConditionSatisfied(condition, audioChannels);
+ case ProfileConditionValue.AudioSampleRate:
+ return IsConditionSatisfied(condition, audioSampleRate);
default:
throw new ArgumentException("Unexpected condition on audio file: " + condition.Property);
}
@@ -92,6 +94,7 @@ namespace MediaBrowser.Model.Dlna
public bool IsVideoAudioConditionSatisfied(ProfileCondition condition,
int? audioChannels,
int? audioBitrate,
+ int? audioSampleRate,
string audioProfile,
bool? isSecondaryTrack)
{
@@ -105,6 +108,8 @@ namespace MediaBrowser.Model.Dlna
return IsConditionSatisfied(condition, audioChannels);
case ProfileConditionValue.IsSecondaryAudio:
return IsConditionSatisfied(condition, isSecondaryTrack);
+ case ProfileConditionValue.AudioSampleRate:
+ return IsConditionSatisfied(condition, audioSampleRate);
default:
throw new ArgumentException("Unexpected condition on audio file: " + condition.Property);
}
diff --git a/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs b/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs
index 4a16a27805..cd1a29d6b6 100644
--- a/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs
+++ b/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs
@@ -85,7 +85,8 @@ namespace MediaBrowser.Model.Dlna
ResponseProfile mediaProfile = _profile.GetAudioMediaProfile(container,
audioCodec,
audioChannels,
- audioBitrate);
+ audioBitrate,
+ audioSampleRate);
string orgPn = mediaProfile == null ? null : mediaProfile.OrgPn;
diff --git a/MediaBrowser.Model/Dlna/DeviceProfile.cs b/MediaBrowser.Model/Dlna/DeviceProfile.cs
index d99a21e6d1..cd3c9e92b5 100644
--- a/MediaBrowser.Model/Dlna/DeviceProfile.cs
+++ b/MediaBrowser.Model/Dlna/DeviceProfile.cs
@@ -185,7 +185,7 @@ namespace MediaBrowser.Model.Dlna
return null;
}
- public ResponseProfile GetAudioMediaProfile(string container, string audioCodec, int? audioChannels, int? audioBitrate)
+ public ResponseProfile GetAudioMediaProfile(string container, string audioCodec, int? audioChannels, int? audioBitrate, int? audioSampleRate)
{
container = StringHelper.TrimStart(container ?? string.Empty, '.');
@@ -213,7 +213,7 @@ namespace MediaBrowser.Model.Dlna
var anyOff = false;
foreach (ProfileCondition c in i.Conditions)
{
- if (!conditionProcessor.IsAudioConditionSatisfied(GetModelProfileCondition(c), audioChannels, audioBitrate))
+ if (!conditionProcessor.IsAudioConditionSatisfied(GetModelProfileCondition(c), audioChannels, audioBitrate, audioSampleRate))
{
anyOff = true;
break;
diff --git a/MediaBrowser.Model/Dlna/ProfileConditionValue.cs b/MediaBrowser.Model/Dlna/ProfileConditionValue.cs
index dbd574f864..208a7df7e8 100644
--- a/MediaBrowser.Model/Dlna/ProfileConditionValue.cs
+++ b/MediaBrowser.Model/Dlna/ProfileConditionValue.cs
@@ -22,6 +22,7 @@
IsSecondaryAudio = 18,
VideoCodecTag = 19,
IsAvc = 20,
- IsInterlaced = 21
+ IsInterlaced = 21,
+ AudioSampleRate = 22
}
}
\ No newline at end of file
diff --git a/MediaBrowser.Model/Dlna/StreamBuilder.cs b/MediaBrowser.Model/Dlna/StreamBuilder.cs
index 1202389675..6ff3ce94c5 100644
--- a/MediaBrowser.Model/Dlna/StreamBuilder.cs
+++ b/MediaBrowser.Model/Dlna/StreamBuilder.cs
@@ -139,6 +139,7 @@ namespace MediaBrowser.Model.Dlna
int? inputAudioChannels = audioStream == null ? null : audioStream.Channels;
int? inputAudioBitrate = audioStream == null ? null : audioStream.BitDepth;
+ int? inputAudioSampleRate = audioStream == null ? null : audioStream.SampleRate;
if (directPlayMethods.Count > 0)
{
@@ -155,7 +156,7 @@ namespace MediaBrowser.Model.Dlna
bool applyConditions = true;
foreach (ProfileCondition applyCondition in i.ApplyConditions)
{
- if (!conditionProcessor.IsAudioConditionSatisfied(applyCondition, inputAudioChannels, inputAudioBitrate))
+ if (!conditionProcessor.IsAudioConditionSatisfied(applyCondition, inputAudioChannels, inputAudioBitrate, inputAudioSampleRate))
{
LogConditionFailure(options.Profile, "AudioCodecProfile", applyCondition, item);
applyConditions = false;
@@ -176,7 +177,7 @@ namespace MediaBrowser.Model.Dlna
bool all = true;
foreach (ProfileCondition c in conditions)
{
- if (!conditionProcessor.IsAudioConditionSatisfied(c, inputAudioChannels, inputAudioBitrate))
+ if (!conditionProcessor.IsAudioConditionSatisfied(c, inputAudioChannels, inputAudioBitrate, inputAudioSampleRate))
{
LogConditionFailure(options.Profile, "AudioCodecProfile", c, item);
all = false;
@@ -251,7 +252,7 @@ namespace MediaBrowser.Model.Dlna
bool applyConditions = true;
foreach (ProfileCondition applyCondition in i.ApplyConditions)
{
- if (!conditionProcessor.IsAudioConditionSatisfied(applyCondition, inputAudioChannels, inputAudioBitrate))
+ if (!conditionProcessor.IsAudioConditionSatisfied(applyCondition, inputAudioChannels, inputAudioBitrate, inputAudioSampleRate))
{
LogConditionFailure(options.Profile, "AudioCodecProfile", applyCondition, item);
applyConditions = false;
@@ -519,8 +520,9 @@ namespace MediaBrowser.Model.Dlna
int? inputAudioBitrate = audioStream == null ? null : audioStream.BitRate;
int? audioChannels = audioStream == null ? null : audioStream.Channels;
string audioProfile = audioStream == null ? null : audioStream.Profile;
+ int? inputAudioSampleRate = audioStream == null ? null : audioStream.SampleRate;
- if (!conditionProcessor.IsVideoAudioConditionSatisfied(applyCondition, audioChannels, inputAudioBitrate, audioProfile, isSecondaryAudio))
+ if (!conditionProcessor.IsVideoAudioConditionSatisfied(applyCondition, audioChannels, inputAudioBitrate, inputAudioSampleRate, audioProfile, isSecondaryAudio))
{
LogConditionFailure(options.Profile, "AudioCodecProfile", applyCondition, item);
applyConditions = false;
@@ -752,6 +754,7 @@ namespace MediaBrowser.Model.Dlna
int? audioBitrate = audioStream == null ? null : audioStream.BitRate;
int? audioChannels = audioStream == null ? null : audioStream.Channels;
string audioProfile = audioStream == null ? null : audioStream.Profile;
+ int? audioSampleRate = audioStream == null ? null : audioStream.SampleRate;
TransportStreamTimestamp? timestamp = videoStream == null ? TransportStreamTimestamp.None : mediaSource.Timestamp;
int? packetLength = videoStream == null ? null : videoStream.PacketLength;
@@ -841,7 +844,7 @@ namespace MediaBrowser.Model.Dlna
bool applyConditions = true;
foreach (ProfileCondition applyCondition in i.ApplyConditions)
{
- if (!conditionProcessor.IsVideoAudioConditionSatisfied(applyCondition, audioChannels, audioBitrate, audioProfile, isSecondaryAudio))
+ if (!conditionProcessor.IsVideoAudioConditionSatisfied(applyCondition, audioChannels, audioBitrate, audioSampleRate, audioProfile, isSecondaryAudio))
{
LogConditionFailure(profile, "VideoAudioCodecProfile", applyCondition, mediaSource);
applyConditions = false;
@@ -861,7 +864,7 @@ namespace MediaBrowser.Model.Dlna
foreach (ProfileCondition i in conditions)
{
- if (!conditionProcessor.IsVideoAudioConditionSatisfied(i, audioChannels, audioBitrate, audioProfile, isSecondaryAudio))
+ if (!conditionProcessor.IsVideoAudioConditionSatisfied(i, audioChannels, audioBitrate, audioSampleRate, audioProfile, isSecondaryAudio))
{
LogConditionFailure(profile, "VideoAudioCodecProfile", i, mediaSource);
diff --git a/MediaBrowser.Model/Dto/BaseItemDto.cs b/MediaBrowser.Model/Dto/BaseItemDto.cs
index 1a752892ee..9384446eb2 100644
--- a/MediaBrowser.Model/Dto/BaseItemDto.cs
+++ b/MediaBrowser.Model/Dto/BaseItemDto.cs
@@ -79,8 +79,6 @@ namespace MediaBrowser.Model.Dto
public string PreferredMetadataLanguage { get; set; }
public string PreferredMetadataCountryCode { get; set; }
- public string AwardSummary { get; set; }
-
///
/// Gets or sets a value indicating whether [supports synchronize].
///
diff --git a/MediaBrowser.Model/Querying/ItemFields.cs b/MediaBrowser.Model/Querying/ItemFields.cs
index 75ba09b609..ab560875ec 100644
--- a/MediaBrowser.Model/Querying/ItemFields.cs
+++ b/MediaBrowser.Model/Querying/ItemFields.cs
@@ -15,11 +15,6 @@
///
AlternateEpisodeNumbers,
- ///
- /// The awards summary
- ///
- AwardSummary,
-
///
/// The can delete
///
diff --git a/MediaBrowser.Providers/Manager/ProviderUtils.cs b/MediaBrowser.Providers/Manager/ProviderUtils.cs
index d5494c21fd..1e107d0be1 100644
--- a/MediaBrowser.Providers/Manager/ProviderUtils.cs
+++ b/MediaBrowser.Providers/Manager/ProviderUtils.cs
@@ -198,7 +198,6 @@ namespace MediaBrowser.Providers.Manager
MergeAlbumArtist(source, target, lockedFields, replaceData);
MergeCriticRating(source, target, lockedFields, replaceData);
- MergeAwards(source, target, lockedFields, replaceData);
MergeTrailers(source, target, lockedFields, replaceData);
MergeVideoInfo(source, target, lockedFields, replaceData);
@@ -273,20 +272,6 @@ namespace MediaBrowser.Providers.Manager
}
}
- private static void MergeAwards(BaseItem source, BaseItem target, List lockedFields, bool replaceData)
- {
- var sourceCast = source as IHasAwards;
- var targetCast = target as IHasAwards;
-
- if (sourceCast != null && targetCast != null)
- {
- if (replaceData || string.IsNullOrEmpty(targetCast.AwardSummary))
- {
- targetCast.AwardSummary = sourceCast.AwardSummary;
- }
- }
- }
-
private static void MergeCriticRating(BaseItem source, BaseItem target, List lockedFields, bool replaceData)
{
if (replaceData || !target.CriticRating.HasValue)
diff --git a/MediaBrowser.Providers/Omdb/OmdbProvider.cs b/MediaBrowser.Providers/Omdb/OmdbProvider.cs
index b89105376a..dd3ba23db1 100644
--- a/MediaBrowser.Providers/Omdb/OmdbProvider.cs
+++ b/MediaBrowser.Providers/Omdb/OmdbProvider.cs
@@ -406,12 +406,6 @@ namespace MediaBrowser.Providers.Omdb
}
}
- var hasAwards = item as IHasAwards;
- if (hasAwards != null && !string.IsNullOrEmpty(result.Awards))
- {
- hasAwards.AwardSummary = WebUtility.HtmlDecode(result.Awards);
- }
-
if (isConfiguredForEnglish)
{
// Omdb is currently english only, so for other languages skip this and let secondary providers fill it in
diff --git a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
index d8f7cb57f4..c9ec195d9c 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
@@ -341,21 +341,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
break;
}
- case "awardsummary":
- {
- var text = reader.ReadElementContentAsString();
- var hasAwards = item as IHasAwards;
- if (hasAwards != null)
- {
- if (!string.IsNullOrWhiteSpace(text))
- {
- hasAwards.AwardSummary = text;
- }
- }
-
- break;
- }
-
case "sorttitle":
{
var val = reader.ReadElementContentAsString();
diff --git a/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs
index ae24928028..8658f512bf 100644
--- a/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs
@@ -81,7 +81,6 @@ namespace MediaBrowser.XbmcMetadata.Savers
"country",
"audiodbalbumid",
"audiodbartistid",
- "awardsummary",
"enddate",
"lockedfields",
"zap2itid",
@@ -711,12 +710,6 @@ namespace MediaBrowser.XbmcMetadata.Savers
writer.WriteElementString("plotkeyword", tag);
}
- var hasAwards = item as IHasAwards;
- if (hasAwards != null && !string.IsNullOrEmpty(hasAwards.AwardSummary))
- {
- writer.WriteElementString("awardsummary", hasAwards.AwardSummary);
- }
-
var externalId = item.GetProviderId(MetadataProviders.AudioDbArtist);
if (!string.IsNullOrEmpty(externalId))