aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Dlna/DlnaManager.cs67
-rw-r--r--MediaBrowser.Dlna/PlayTo/Device.cs11
-rw-r--r--MediaBrowser.Dlna/PlayTo/DlnaController.cs2
-rw-r--r--MediaBrowser.Dlna/PlayTo/PlaylistItem.cs11
-rw-r--r--MediaBrowser.Dlna/PlayTo/StreamHelper.cs8
5 files changed, 78 insertions, 21 deletions
diff --git a/MediaBrowser.Dlna/DlnaManager.cs b/MediaBrowser.Dlna/DlnaManager.cs
index d08b0fd55..1c9cba2be 100644
--- a/MediaBrowser.Dlna/DlnaManager.cs
+++ b/MediaBrowser.Dlna/DlnaManager.cs
@@ -24,6 +24,11 @@ namespace MediaBrowser.Dlna
{
Container = "mp3",
Type = DlnaProfileType.Audio
+ },
+ new TranscodingProfile
+ {
+ Container = "ts",
+ Type = DlnaProfileType.Video
}
},
@@ -31,6 +36,11 @@ namespace MediaBrowser.Dlna
{
new DirectPlayProfile
{
+ Containers = new[]{"mp3"},
+ Type = DlnaProfileType.Audio
+ },
+ new DirectPlayProfile
+ {
Containers = new[]{"mkv"},
MimeType = "x-mkv",
Type = DlnaProfileType.Video
@@ -40,6 +50,11 @@ namespace MediaBrowser.Dlna
Containers = new[]{"avi"},
MimeType = "x-msvideo",
Type = DlnaProfileType.Video
+ },
+ new DirectPlayProfile
+ {
+ Containers = new[]{"mp4"},
+ Type = DlnaProfileType.Video
}
}
});
@@ -57,6 +72,11 @@ namespace MediaBrowser.Dlna
{
Container = "mp3",
Type = DlnaProfileType.Audio
+ },
+ new TranscodingProfile
+ {
+ Container = "ts",
+ Type = DlnaProfileType.Video
}
},
@@ -64,6 +84,11 @@ namespace MediaBrowser.Dlna
{
new DirectPlayProfile
{
+ Containers = new[]{"mp3"},
+ Type = DlnaProfileType.Audio
+ },
+ new DirectPlayProfile
+ {
Containers = new[]{"mkv"},
MimeType = "x-mkv",
Type = DlnaProfileType.Video
@@ -73,6 +98,11 @@ namespace MediaBrowser.Dlna
Containers = new[]{"avi"},
MimeType = "x-msvideo",
Type = DlnaProfileType.Video
+ },
+ new DirectPlayProfile
+ {
+ Containers = new[]{"mp4"},
+ Type = DlnaProfileType.Video
}
}
});
@@ -89,6 +119,11 @@ namespace MediaBrowser.Dlna
{
Container = "mp3",
Type = DlnaProfileType.Audio
+ },
+ new TranscodingProfile
+ {
+ Container = "ts",
+ Type = DlnaProfileType.Video
}
},
@@ -96,6 +131,11 @@ namespace MediaBrowser.Dlna
{
new DirectPlayProfile
{
+ Containers = new[]{"mp3"},
+ Type = DlnaProfileType.Audio
+ },
+ new DirectPlayProfile
+ {
Containers = new[]{"mkv"},
MimeType = "x-mkv",
Type = DlnaProfileType.Video
@@ -105,6 +145,11 @@ namespace MediaBrowser.Dlna
Containers = new[]{"avi"},
MimeType = "x-msvideo",
Type = DlnaProfileType.Video
+ },
+ new DirectPlayProfile
+ {
+ Containers = new[]{"mp4"},
+ Type = DlnaProfileType.Video
}
}
});
@@ -132,6 +177,11 @@ namespace MediaBrowser.Dlna
{
new DirectPlayProfile
{
+ Containers = new[]{"mp3"},
+ Type = DlnaProfileType.Audio
+ },
+ new DirectPlayProfile
+ {
Containers = new[]{"avi"},
MimeType = "x-msvideo",
Type = DlnaProfileType.Video
@@ -163,6 +213,11 @@ namespace MediaBrowser.Dlna
{
new DirectPlayProfile
{
+ Containers = new[]{"mp3"},
+ Type = DlnaProfileType.Audio
+ },
+ new DirectPlayProfile
+ {
Containers = new[]{"avi"},
MimeType = "x-msvideo",
Type = DlnaProfileType.Video
@@ -172,8 +227,7 @@ namespace MediaBrowser.Dlna
list.Add(new DlnaProfile
{
- //Linksys DMA2100us does not need any transcoding of the formats we support statically
- Name = "Sony Bravia TV (2012)",
+ Name = "Sony Bravia (2012)",
ClientType = "DLNA",
FriendlyName = @"BRAVIA KDL-\d{2}[A-Z]X\d5(\d|G).*",
@@ -195,6 +249,11 @@ namespace MediaBrowser.Dlna
{
new DirectPlayProfile
{
+ Containers = new[]{"mp3"},
+ Type = DlnaProfileType.Audio
+ },
+ new DirectPlayProfile
+ {
Containers = new[]{"avi"},
Type = DlnaProfileType.Video,
MimeType = "avi"
@@ -273,7 +332,7 @@ namespace MediaBrowser.Dlna
{
new DirectPlayProfile
{
- Containers = new[]{"mp3", "wma", "m4a"},
+ Containers = new[]{"mp3", "wma"},
Type = DlnaProfileType.Audio
},
@@ -314,4 +373,4 @@ namespace MediaBrowser.Dlna
return GetDefaultProfile();
}
}
-}
+} \ No newline at end of file
diff --git a/MediaBrowser.Dlna/PlayTo/Device.cs b/MediaBrowser.Dlna/PlayTo/Device.cs
index c1436fa3c..802fdc31d 100644
--- a/MediaBrowser.Dlna/PlayTo/Device.cs
+++ b/MediaBrowser.Dlna/PlayTo/Device.cs
@@ -269,11 +269,10 @@ namespace MediaBrowser.Dlna.PlayTo
var result = await new SsdpHttpClient(_httpClient).SendCommandAsync(Properties.BaseUrl, service, command.Name, AvCommands.BuildPost(command, service.ServiceType, url, dictionary), header)
.ConfigureAwait(false);
- if (!IsPlaying)
- {
- await Task.Delay(50).ConfigureAwait(false);
- await SetPlay().ConfigureAwait(false);
- }
+
+ await Task.Delay(50).ConfigureAwait(false);
+ await SetPlay().ConfigureAwait(false);
+
_lapsCount = GetLapsCount();
RestartTimer();
@@ -350,7 +349,6 @@ namespace MediaBrowser.Dlna.PlayTo
var result = await new SsdpHttpClient(_httpClient).SendCommandAsync(Properties.BaseUrl, service, command.Name, RendererCommands.BuildPost(command, service.ServiceType, 1))
.ConfigureAwait(false);
-
await Task.Delay(50).ConfigureAwait(false);
return true;
}
@@ -799,4 +797,3 @@ namespace MediaBrowser.Dlna.PlayTo
}
}
-
diff --git a/MediaBrowser.Dlna/PlayTo/DlnaController.cs b/MediaBrowser.Dlna/PlayTo/DlnaController.cs
index fdf8d3930..5836a1639 100644
--- a/MediaBrowser.Dlna/PlayTo/DlnaController.cs
+++ b/MediaBrowser.Dlna/PlayTo/DlnaController.cs
@@ -446,6 +446,7 @@ namespace MediaBrowser.Dlna.PlayTo
return true;
}
nextTrack.PlayState = 1;
+ _logger.Debug("{0} - SetAvTransport Uri: {1} DlnaHeaders: {2}", _device.Properties.Name, nextTrack.StreamUrl, nextTrack.DlnaHeaders);
await _device.SetAvTransport(nextTrack.StreamUrl, nextTrack.DlnaHeaders, nextTrack.Didl);
if (nextTrack.StartPositionTicks > 0 && !nextTrack.Transcode)
await _device.Seek(TimeSpan.FromTicks(nextTrack.StartPositionTicks));
@@ -489,4 +490,3 @@ namespace MediaBrowser.Dlna.PlayTo
}
}
}
-
diff --git a/MediaBrowser.Dlna/PlayTo/PlaylistItem.cs b/MediaBrowser.Dlna/PlayTo/PlaylistItem.cs
index d841f06ed..cfb2c7d1c 100644
--- a/MediaBrowser.Dlna/PlayTo/PlaylistItem.cs
+++ b/MediaBrowser.Dlna/PlayTo/PlaylistItem.cs
@@ -57,7 +57,7 @@ namespace MediaBrowser.Dlna.PlayTo
if (directPlay != null)
{
playlistItem.Transcode = false;
- playlistItem.FileFormat = Path.GetExtension(path).TrimStart('.');
+ playlistItem.FileFormat = Path.GetExtension(path);
playlistItem.MimeType = directPlay.MimeType;
return playlistItem;
}
@@ -67,7 +67,8 @@ namespace MediaBrowser.Dlna.PlayTo
if (transcodingProfile != null)
{
playlistItem.Transcode = true;
- playlistItem.FileFormat = transcodingProfile.Container;
+ //Just to make sure we have a "." for the url, remove it in case a user adds it or not
+ playlistItem.FileFormat = "." + transcodingProfile.Container.TrimStart('.');
playlistItem.MimeType = transcodingProfile.MimeType;
}
@@ -77,9 +78,9 @@ namespace MediaBrowser.Dlna.PlayTo
private static bool IsSupported(DirectPlayProfile profile, string path)
{
- var mediaContainer = Path.GetExtension(path).TrimStart('.');
+ var mediaContainer = Path.GetExtension(path);
- if (!profile.Containers.Any(i => string.Equals(i.TrimStart('.'), mediaContainer, StringComparison.OrdinalIgnoreCase)))
+ if (!profile.Containers.Any(i => string.Equals("." + i.TrimStart('.'), mediaContainer, StringComparison.OrdinalIgnoreCase)))
{
return false;
}
@@ -97,4 +98,4 @@ namespace MediaBrowser.Dlna.PlayTo
return true;
}
}
-}
+} \ No newline at end of file
diff --git a/MediaBrowser.Dlna/PlayTo/StreamHelper.cs b/MediaBrowser.Dlna/PlayTo/StreamHelper.cs
index a044ee7ec..ea95ea8e6 100644
--- a/MediaBrowser.Dlna/PlayTo/StreamHelper.cs
+++ b/MediaBrowser.Dlna/PlayTo/StreamHelper.cs
@@ -77,7 +77,7 @@ namespace MediaBrowser.Dlna.PlayTo
internal static string GetAudioUrl(PlaylistItem item, string serverAddress)
{
if (!item.Transcode)
- return string.Format("{0}/audio/{1}/stream.{2}?Static=True", serverAddress, item.ItemId, item.FileFormat);
+ return string.Format("{0}/audio/{1}/stream{2}?Static=True", serverAddress, item.ItemId, item.FileFormat);
return string.Format("{0}/audio/{1}/stream.mp3?AudioCodec=Mp3", serverAddress, item.ItemId);
}
@@ -100,7 +100,7 @@ namespace MediaBrowser.Dlna.PlayTo
if (!item.Transcode)
{
dlnaCommand = BuildDlnaUrl(deviceProperties.UUID, !item.Transcode, null, null, null, null, null, null, null, null, null, null, item.MimeType);
- return string.Format("{0}/Videos/{1}/stream.{2}?{3}", serverAddress, item.ItemId, item.FileFormat, dlnaCommand);
+ return string.Format("{0}/Videos/{1}/stream{2}?{3}", serverAddress, item.ItemId, item.FileFormat, dlnaCommand);
}
var videostream = streams.Where(m => m.Type == MediaStreamType.Video).OrderBy(m => m.IsDefault).FirstOrDefault();
var audiostream = streams.Where(m => m.Type == MediaStreamType.Audio).OrderBy(m => m.IsDefault).FirstOrDefault();
@@ -121,7 +121,7 @@ namespace MediaBrowser.Dlna.PlayTo
}
dlnaCommand = BuildDlnaUrl(deviceProperties.UUID, !item.Transcode, videoCodec, audioCodec, null, null, videoBitrate, audioChannels, audioBitrate, item.StartPositionTicks, "baseline", "3", item.MimeType);
- return string.Format("{0}/Videos/{1}/stream.{2}?{3}", serverAddress, item.ItemId, item.FileFormat, dlnaCommand);
+ return string.Format("{0}/Videos/{1}/stream{2}?{3}", serverAddress, item.ItemId, item.FileFormat, dlnaCommand);
}
/// <summary>
@@ -189,4 +189,4 @@ namespace MediaBrowser.Dlna.PlayTo
#endregion
}
-}
+} \ No newline at end of file