aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-10-17 21:18:29 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-10-17 21:18:29 -0400
commit8f5609df3af966fa0bb520ffbc3ca9614d7213df (patch)
treed06e027aa8da1c8aed54f9c316b934a9a105b871
parent3da90bc103bc12761b7863ab652300988203f47e (diff)
support ac3 audio in edge browser
-rw-r--r--MediaBrowser.Common/ScheduledTasks/IntervalTrigger.cs2
-rw-r--r--MediaBrowser.Dlna/Ssdp/Datagram.cs17
-rw-r--r--MediaBrowser.Dlna/Ssdp/SsdpHandler.cs8
-rw-r--r--MediaBrowser.Server.Implementations/Library/LibraryManager.cs24
-rw-r--r--MediaBrowser.Server.Startup.Common/Migrations/Release5767.cs2
5 files changed, 38 insertions, 15 deletions
diff --git a/MediaBrowser.Common/ScheduledTasks/IntervalTrigger.cs b/MediaBrowser.Common/ScheduledTasks/IntervalTrigger.cs
index 8bcefed58..a12fea14c 100644
--- a/MediaBrowser.Common/ScheduledTasks/IntervalTrigger.cs
+++ b/MediaBrowser.Common/ScheduledTasks/IntervalTrigger.cs
@@ -62,7 +62,7 @@ namespace MediaBrowser.Common.ScheduledTasks
}
else
{
- triggerDate = DateTime.UtcNow.AddSeconds(10);
+ triggerDate = DateTime.UtcNow.AddMinutes(1);
}
}
diff --git a/MediaBrowser.Dlna/Ssdp/Datagram.cs b/MediaBrowser.Dlna/Ssdp/Datagram.cs
index 791297b0c..590194534 100644
--- a/MediaBrowser.Dlna/Ssdp/Datagram.cs
+++ b/MediaBrowser.Dlna/Ssdp/Datagram.cs
@@ -11,17 +11,17 @@ namespace MediaBrowser.Dlna.Ssdp
public EndPoint ToEndPoint { get; private set; }
public EndPoint FromEndPoint { get; private set; }
public string Message { get; private set; }
- public bool IgnoreBindFailure { get; private set; }
+ public bool IsBroadcast { get; private set; }
public bool EnableDebugLogging { get; private set; }
private readonly ILogger _logger;
- public Datagram(EndPoint toEndPoint, EndPoint fromEndPoint, ILogger logger, string message, bool ignoreBindFailure, bool enableDebugLogging)
+ public Datagram(EndPoint toEndPoint, EndPoint fromEndPoint, ILogger logger, string message, bool isBroadcast, bool enableDebugLogging)
{
Message = message;
_logger = logger;
EnableDebugLogging = enableDebugLogging;
- IgnoreBindFailure = ignoreBindFailure;
+ IsBroadcast = isBroadcast;
FromEndPoint = fromEndPoint;
ToEndPoint = toEndPoint;
}
@@ -50,10 +50,9 @@ namespace MediaBrowser.Dlna.Ssdp
_logger.ErrorException("Error binding datagram socket", ex);
}
- if (!IgnoreBindFailure)
+ if (IsBroadcast)
{
CloseSocket(socket, false);
-
return;
}
}
@@ -107,12 +106,14 @@ namespace MediaBrowser.Dlna.Ssdp
try
{
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
-
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
-
- socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true);
socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 4);
+ if (IsBroadcast)
+ {
+ socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true);
+ }
+
return socket;
}
catch (Exception ex)
diff --git a/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs b/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs
index 93d81427b..5dd05fd64 100644
--- a/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs
+++ b/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs
@@ -139,14 +139,14 @@ namespace MediaBrowser.Dlna.Ssdp
values["MX"] = "3";
// UDP is unreliable, so send 3 requests at a time (per Upnp spec, sec 1.1.2)
- SendDatagram("M-SEARCH * HTTP/1.1", values, _ssdpEndp, localIp, false, 2);
+ SendDatagram("M-SEARCH * HTTP/1.1", values, _ssdpEndp, localIp, true, 2);
}
public void SendDatagram(string header,
Dictionary<string, string> values,
EndPoint endpoint,
EndPoint localAddress,
- bool ignoreBindFailure,
+ bool isBroadcast,
int sendCount)
{
var msg = new SsdpMessageBuilder().BuildMessage(header, values);
@@ -156,7 +156,7 @@ namespace MediaBrowser.Dlna.Ssdp
for (var i = 0; i < sendCount; i++)
{
- var dgram = new Datagram(endpoint, localAddress, _logger, msg, ignoreBindFailure, enableDebugLogging);
+ var dgram = new Datagram(endpoint, localAddress, _logger, msg, isBroadcast, enableDebugLogging);
if (_messageQueue.Count == 0)
{
@@ -516,7 +516,7 @@ namespace MediaBrowser.Dlna.Ssdp
_logger.Debug("{0} said {1}", dev.USN, type);
}
- SendDatagram(header, values, _ssdpEndp, new IPEndPoint(dev.Address, 0), false, sendCount);
+ SendDatagram(header, values, _ssdpEndp, new IPEndPoint(dev.Address, 0), true, sendCount);
}
public void RegisterNotification(Guid uuid, Uri descriptionUri, IPAddress address, IEnumerable<string> services)
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
index 4ccfca1bf..92acd08d1 100644
--- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
@@ -1723,6 +1723,12 @@ namespace MediaBrowser.Server.Implementations.Library
refresh = (DateTime.UtcNow - item.DateLastRefreshed) >= _viewRefreshInterval;
}
+ if (!refresh && item.DisplayParentId != Guid.Empty)
+ {
+ var displayParent = GetItemById(item.DisplayParentId);
+ refresh = displayParent != null && displayParent.DateLastSaved > item.DateLastRefreshed;
+ }
+
if (refresh)
{
await item.UpdateToRepository(ItemUpdateType.MetadataImport, CancellationToken.None).ConfigureAwait(false);
@@ -1819,6 +1825,12 @@ namespace MediaBrowser.Server.Implementations.Library
var refresh = isNew || (DateTime.UtcNow - item.DateLastRefreshed) >= _viewRefreshInterval;
+ if (!refresh && item.DisplayParentId != Guid.Empty)
+ {
+ var displayParent = GetItemById(item.DisplayParentId);
+ refresh = displayParent != null && displayParent.DateLastSaved > item.DateLastRefreshed;
+ }
+
if (refresh)
{
_providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(_fileSystem)
@@ -1888,6 +1900,12 @@ namespace MediaBrowser.Server.Implementations.Library
var refresh = isNew || (DateTime.UtcNow - item.DateLastRefreshed) >= _viewRefreshInterval;
+ if (!refresh && item.DisplayParentId != Guid.Empty)
+ {
+ var displayParent = GetItemById(item.DisplayParentId);
+ refresh = displayParent != null && displayParent.DateLastSaved > item.DateLastRefreshed;
+ }
+
if (refresh)
{
_providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(_fileSystem)
@@ -1958,6 +1976,12 @@ namespace MediaBrowser.Server.Implementations.Library
var refresh = isNew || (DateTime.UtcNow - item.DateLastRefreshed) >= _viewRefreshInterval;
+ if (!refresh && item.DisplayParentId != Guid.Empty)
+ {
+ var displayParent = GetItemById(item.DisplayParentId);
+ refresh = displayParent != null && displayParent.DateLastSaved > item.DateLastRefreshed;
+ }
+
if (refresh)
{
_providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(_fileSystem)
diff --git a/MediaBrowser.Server.Startup.Common/Migrations/Release5767.cs b/MediaBrowser.Server.Startup.Common/Migrations/Release5767.cs
index d1c085734..168230b87 100644
--- a/MediaBrowser.Server.Startup.Common/Migrations/Release5767.cs
+++ b/MediaBrowser.Server.Startup.Common/Migrations/Release5767.cs
@@ -33,9 +33,7 @@ namespace MediaBrowser.Server.Startup.Common.Migrations
{
await Task.Delay(3000).ConfigureAwait(false);
- _taskManager.QueueScheduledTask<RefreshChannelsScheduledTask>();
_taskManager.QueueScheduledTask<CleanDatabaseScheduledTask>();
- _taskManager.QueueScheduledTask<RefreshMediaLibraryTask>();
});
// Wait a few minutes before marking this as done. Make sure the server doesn't get restarted.