aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Model')
-rw-r--r--MediaBrowser.Model/Dlna/ILocalPlayer.cs13
-rw-r--r--MediaBrowser.Model/Dlna/StreamBuilder.cs36
-rw-r--r--MediaBrowser.Model/Dlna/TranscodingProfile.cs2
-rw-r--r--MediaBrowser.Model/Dto/BaseItemDto.cs2
-rw-r--r--MediaBrowser.Model/Entities/MediaStream.cs2
-rw-r--r--MediaBrowser.Model/LiveTv/LiveTvOptions.cs1
-rw-r--r--MediaBrowser.Model/Querying/ItemFields.cs2
-rw-r--r--MediaBrowser.Model/Sync/SyncJobItem.cs2
8 files changed, 55 insertions, 5 deletions
diff --git a/MediaBrowser.Model/Dlna/ILocalPlayer.cs b/MediaBrowser.Model/Dlna/ILocalPlayer.cs
index 55e11ec4b..9de360023 100644
--- a/MediaBrowser.Model/Dlna/ILocalPlayer.cs
+++ b/MediaBrowser.Model/Dlna/ILocalPlayer.cs
@@ -23,4 +23,17 @@ namespace MediaBrowser.Model.Dlna
/// <returns><c>true</c> if this instance [can access URL] the specified URL; otherwise, <c>false</c>.</returns>
bool CanAccessUrl(string url, bool requiresCustomRequestHeaders);
}
+
+ public interface ITranscoderSupport
+ {
+ bool CanEncodeToAudioCodec(string codec);
+ }
+
+ public class FullTranscoderSupport : ITranscoderSupport
+ {
+ public bool CanEncodeToAudioCodec(string codec)
+ {
+ return true;
+ }
+ }
}
diff --git a/MediaBrowser.Model/Dlna/StreamBuilder.cs b/MediaBrowser.Model/Dlna/StreamBuilder.cs
index 1e6b7c729..07a4b8995 100644
--- a/MediaBrowser.Model/Dlna/StreamBuilder.cs
+++ b/MediaBrowser.Model/Dlna/StreamBuilder.cs
@@ -13,15 +13,27 @@ namespace MediaBrowser.Model.Dlna
{
private readonly ILocalPlayer _localPlayer;
private readonly ILogger _logger;
+ private readonly ITranscoderSupport _transcoderSupport;
- public StreamBuilder(ILocalPlayer localPlayer, ILogger logger)
+ public StreamBuilder(ILocalPlayer localPlayer, ITranscoderSupport transcoderSupport, ILogger logger)
{
+ _transcoderSupport = transcoderSupport;
_localPlayer = localPlayer;
_logger = logger;
}
+ public StreamBuilder(ITranscoderSupport transcoderSupport, ILogger logger)
+ : this(new NullLocalPlayer(), transcoderSupport, logger)
+ {
+ }
+
+ public StreamBuilder(ILocalPlayer localPlayer, ILogger logger)
+ : this(localPlayer, new FullTranscoderSupport(), logger)
+ {
+ }
+
public StreamBuilder(ILogger logger)
- : this(new NullLocalPlayer(), logger)
+ : this(new NullLocalPlayer(), new FullTranscoderSupport(), logger)
{
}
@@ -185,8 +197,11 @@ namespace MediaBrowser.Model.Dlna
{
if (i.Type == playlistItem.MediaType && i.Context == options.Context)
{
- transcodingProfile = i;
- break;
+ if (_transcoderSupport.CanEncodeToAudioCodec(i.AudioCodec ?? i.Container))
+ {
+ transcodingProfile = i;
+ break;
+ }
}
}
@@ -1038,6 +1053,18 @@ namespace MediaBrowser.Model.Dlna
}
}
+ // Check audio codec
+ List<string> audioCodecs = profile.GetAudioCodecs();
+ if (audioCodecs.Count > 0)
+ {
+ // Check audio codecs
+ string audioCodec = audioStream == null ? null : audioStream.Codec;
+ if (string.IsNullOrEmpty(audioCodec) || !ListHelper.ContainsIgnoreCase(audioCodecs, audioCodec))
+ {
+ return false;
+ }
+ }
+
return true;
}
@@ -1073,6 +1100,7 @@ namespace MediaBrowser.Model.Dlna
}
}
+ // Check audio codec
List<string> audioCodecs = profile.GetAudioCodecs();
if (audioCodecs.Count > 0)
{
diff --git a/MediaBrowser.Model/Dlna/TranscodingProfile.cs b/MediaBrowser.Model/Dlna/TranscodingProfile.cs
index bf6bf092f..36c357926 100644
--- a/MediaBrowser.Model/Dlna/TranscodingProfile.cs
+++ b/MediaBrowser.Model/Dlna/TranscodingProfile.cs
@@ -19,7 +19,7 @@ namespace MediaBrowser.Model.Dlna
[XmlAttribute("protocol")]
public string Protocol { get; set; }
-
+
[XmlAttribute("estimateContentLength")]
public bool EstimateContentLength { get; set; }
diff --git a/MediaBrowser.Model/Dto/BaseItemDto.cs b/MediaBrowser.Model/Dto/BaseItemDto.cs
index 7928d0bf9..49ec9f8ef 100644
--- a/MediaBrowser.Model/Dto/BaseItemDto.cs
+++ b/MediaBrowser.Model/Dto/BaseItemDto.cs
@@ -26,6 +26,8 @@ namespace MediaBrowser.Model.Dto
/// <value>The name.</value>
public string Name { get; set; }
+ public string OriginalTitle { get; set; }
+
/// <summary>
/// Gets or sets the server identifier.
/// </summary>
diff --git a/MediaBrowser.Model/Entities/MediaStream.cs b/MediaBrowser.Model/Entities/MediaStream.cs
index fa7a51291..25252956b 100644
--- a/MediaBrowser.Model/Entities/MediaStream.cs
+++ b/MediaBrowser.Model/Entities/MediaStream.cs
@@ -42,6 +42,8 @@ namespace MediaBrowser.Model.Entities
/// <value><c>true</c> if this instance is interlaced; otherwise, <c>false</c>.</value>
public bool IsInterlaced { get; set; }
+ public bool? IsAVC { get; set; }
+
/// <summary>
/// Gets or sets the channel layout.
/// </summary>
diff --git a/MediaBrowser.Model/LiveTv/LiveTvOptions.cs b/MediaBrowser.Model/LiveTv/LiveTvOptions.cs
index 46f630fe0..fc2b155ec 100644
--- a/MediaBrowser.Model/LiveTv/LiveTvOptions.cs
+++ b/MediaBrowser.Model/LiveTv/LiveTvOptions.cs
@@ -9,6 +9,7 @@ namespace MediaBrowser.Model.LiveTv
public string RecordingPath { get; set; }
public bool EnableAutoOrganize { get; set; }
public bool EnableRecordingEncoding { get; set; }
+ public bool EnableOriginalAudioWithEncodedRecordings { get; set; }
public List<TunerHostInfo> TunerHosts { get; set; }
public List<ListingsProviderInfo> ListingProviders { get; set; }
diff --git a/MediaBrowser.Model/Querying/ItemFields.cs b/MediaBrowser.Model/Querying/ItemFields.cs
index 1540f178a..cea638a39 100644
--- a/MediaBrowser.Model/Querying/ItemFields.cs
+++ b/MediaBrowser.Model/Querying/ItemFields.cs
@@ -130,6 +130,8 @@
/// </summary>
Metascore,
+ OriginalTitle,
+
/// <summary>
/// The item overview
/// </summary>
diff --git a/MediaBrowser.Model/Sync/SyncJobItem.cs b/MediaBrowser.Model/Sync/SyncJobItem.cs
index 77464be58..1c72ccd52 100644
--- a/MediaBrowser.Model/Sync/SyncJobItem.cs
+++ b/MediaBrowser.Model/Sync/SyncJobItem.cs
@@ -102,6 +102,8 @@ namespace MediaBrowser.Model.Sync
/// <value>The index of the job item.</value>
public int JobItemIndex { get; set; }
+ public long ItemDateModifiedTicks { get; set; }
+
public SyncJobItem()
{
AdditionalFiles = new List<ItemFileInfo>();