aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-03-13 17:36:19 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-03-13 17:36:19 -0400
commit3de715ab884b36a67892159b6465519bc799ee82 (patch)
treed8385967c78c51bf75113d54a157e44051b8d75c
parent2c7aaa529360edae1973280d186145da87404bc8 (diff)
add avi to play to profiles
-rw-r--r--MediaBrowser.Dlna/DlnaManager.cs146
-rw-r--r--MediaBrowser.Dlna/PlayTo/PlaylistItem.cs4
2 files changed, 111 insertions, 39 deletions
diff --git a/MediaBrowser.Dlna/DlnaManager.cs b/MediaBrowser.Dlna/DlnaManager.cs
index 468053740..9a102da1d 100644
--- a/MediaBrowser.Dlna/DlnaManager.cs
+++ b/MediaBrowser.Dlna/DlnaManager.cs
@@ -8,9 +8,11 @@ namespace MediaBrowser.Dlna
{
public IEnumerable<DlnaProfile> GetProfiles()
{
- var profile0 = new DlnaProfile
+ var list = new List<DlnaProfile>();
+
+ list.Add(new DlnaProfile
{
- Name = "Samsung TV (B Series) [Profile]",
+ Name = "Samsung TV (B Series)",
ClientType = "DLNA",
FriendlyName = "^TV$",
ModelNumber = @"1\.0",
@@ -32,13 +34,19 @@ namespace MediaBrowser.Dlna
Containers = new[]{"mkv"},
MimeType = "x-mkv",
Type = DlnaProfileType.Video
+ },
+ new DirectPlayProfile
+ {
+ Containers = new[]{"avi"},
+ MimeType = "x-msvideo",
+ Type = DlnaProfileType.Video
}
}
- };
+ });
- var profile1 = new DlnaProfile
+ list.Add(new DlnaProfile
{
- Name = "Samsung TV (E/F-series) [Profile]",
+ Name = "Samsung TV (E/F-series)",
ClientType = "DLNA",
FriendlyName = @"(^\[TV\][A-Z]{2}\d{2}(E|F)[A-Z]?\d{3,4}.*)|^\[TV\] Samsung",
ModelNumber = @"(1\.0)|(AllShare1\.0)",
@@ -59,13 +67,19 @@ namespace MediaBrowser.Dlna
Containers = new[]{"mkv"},
MimeType = "x-mkv",
Type = DlnaProfileType.Video
+ },
+ new DirectPlayProfile
+ {
+ Containers = new[]{"avi"},
+ MimeType = "x-msvideo",
+ Type = DlnaProfileType.Video
}
}
- };
+ });
- var profile2 = new DlnaProfile
+ list.Add(new DlnaProfile
{
- Name = "Samsung TV (C/D-series) [Profile]",
+ Name = "Samsung TV (C/D-series)",
ClientType = "DLNA",
FriendlyName = @"(^TV-\d{2}C\d{3}.*)|(^\[TV\][A-Z]{2}\d{2}(D)[A-Z]?\d{3,4}.*)|^\[TV\] Samsung",
ModelNumber = @"(1\.0)|(AllShare1\.0)",
@@ -85,13 +99,19 @@ namespace MediaBrowser.Dlna
Containers = new[]{"mkv"},
MimeType = "x-mkv",
Type = DlnaProfileType.Video
+ },
+ new DirectPlayProfile
+ {
+ Containers = new[]{"avi"},
+ MimeType = "x-msvideo",
+ Type = DlnaProfileType.Video
}
}
- };
+ });
- var profile3 = new DlnaProfile
+ list.Add(new DlnaProfile
{
- Name = "Xbox 360 [Profile]",
+ Name = "Xbox 360",
ClientType = "DLNA",
ModelName = "Xbox 360",
TranscodingProfiles = new[]
@@ -106,12 +126,22 @@ namespace MediaBrowser.Dlna
Container = "ts",
Type = DlnaProfileType.Video
}
+ },
+
+ DirectPlayProfiles = new[]
+ {
+ new DirectPlayProfile
+ {
+ Containers = new[]{"avi"},
+ MimeType = "x-msvideo",
+ Type = DlnaProfileType.Video
+ }
}
- };
+ });
- var profile4 = new DlnaProfile
+ list.Add(new DlnaProfile
{
- Name = "Xbox One [Profile]",
+ Name = "Xbox One",
ModelName = "Xbox One",
ClientType = "DLNA",
FriendlyName = "Xbox-SystemOS",
@@ -127,18 +157,55 @@ namespace MediaBrowser.Dlna
Container = "ts",
Type = DlnaProfileType.Video
}
+ },
+
+ DirectPlayProfiles = new[]
+ {
+ new DirectPlayProfile
+ {
+ Containers = new[]{"avi"},
+ MimeType = "x-msvideo",
+ Type = DlnaProfileType.Video
+ }
}
- };
+ });
- var profile5 = GetDefaultProfile();
- profile5.Name = "Sony Bravia TV (2012)";
- profile5.ClientType = "TV";
- profile5.FriendlyName = @"BRAVIA KDL-\d{2}[A-Z]X\d5(\d|G).*";
+ list.Add(new DlnaProfile
+ {
+ //Linksys DMA2100us does not need any transcoding of the formats we support statically
+ Name = "Sony Bravia TV (2012)",
+ ClientType = "DLNA",
+ FriendlyName = @"BRAVIA KDL-\d{2}[A-Z]X\d5(\d|G).*",
+
+ TranscodingProfiles = new[]
+ {
+ new TranscodingProfile
+ {
+ Container = "mp3",
+ Type = DlnaProfileType.Audio
+ },
+ new TranscodingProfile
+ {
+ Container = "ts",
+ Type = DlnaProfileType.Video
+ }
+ },
+
+ DirectPlayProfiles = new[]
+ {
+ new DirectPlayProfile
+ {
+ Containers = new[]{"avi"},
+ Type = DlnaProfileType.Video,
+ MimeType = "avi"
+ }
+ }
+ });
//WDTV does not need any transcoding of the formats we support statically
- var profile6 = new DlnaProfile
+ list.Add(new DlnaProfile
{
- Name = "WDTV Live [Profile]",
+ Name = "WDTV Live",
ClientType = "DLNA",
ModelName = "WD TV HD Live",
@@ -156,27 +223,32 @@ namespace MediaBrowser.Dlna
Type = DlnaProfileType.Video
}
}
- };
+ });
- var profile7 = new DlnaProfile
+ list.Add(new DlnaProfile
{
//Linksys DMA2100us does not need any transcoding of the formats we support statically
- Name = "Linksys DMA2100 [Profile]",
+ Name = "Linksys DMA2100",
ClientType = "DLNA",
- ModelName = "DMA2100us"
- };
+ ModelName = "DMA2100us",
- return new[]
- {
- profile0,
- profile1,
- profile2,
- profile3,
- profile4,
- profile5,
- profile6,
- profile7
- };
+ DirectPlayProfiles = new[]
+ {
+ new DirectPlayProfile
+ {
+ Containers = new[]{"mp3", "flac", "m4a", "wma"},
+ Type = DlnaProfileType.Audio
+ },
+
+ new DirectPlayProfile
+ {
+ Containers = new[]{"avi", "mp4", "mkv", "ts"},
+ Type = DlnaProfileType.Video
+ }
+ }
+ });
+
+ return list;
}
public DlnaProfile GetDefaultProfile()
diff --git a/MediaBrowser.Dlna/PlayTo/PlaylistItem.cs b/MediaBrowser.Dlna/PlayTo/PlaylistItem.cs
index 0c63e3322..d841f06ed 100644
--- a/MediaBrowser.Dlna/PlayTo/PlaylistItem.cs
+++ b/MediaBrowser.Dlna/PlayTo/PlaylistItem.cs
@@ -77,8 +77,6 @@ namespace MediaBrowser.Dlna.PlayTo
private static bool IsSupported(DirectPlayProfile profile, string path)
{
- // TODO: Support codec list as additional restriction
-
var mediaContainer = Path.GetExtension(path).TrimStart('.');
if (!profile.Containers.Any(i => string.Equals(i.TrimStart('.'), mediaContainer, StringComparison.OrdinalIgnoreCase)))
@@ -88,6 +86,8 @@ namespace MediaBrowser.Dlna.PlayTo
// Placeholder for future conditions
+ // TODO: Support codec list as additional restriction
+
return true;
}