Luke Pulverenti пре 10 година
родитељ
комит
4309455c37

+ 1 - 0
MediaBrowser.Controller/MediaBrowser.Controller.csproj

@@ -350,6 +350,7 @@
     <Compile Include="Sync\ISyncManager.cs" />
     <Compile Include="Sync\ISyncProvider.cs" />
     <Compile Include="Sync\ISyncRepository.cs" />
+    <Compile Include="Sync\SendFileResult.cs" />
     <Compile Include="Themes\IAppThemeManager.cs" />
     <Compile Include="Themes\InternalThemeImage.cs" />
     <Compile Include="TV\ITVSeriesManager.cs" />

+ 1 - 1
MediaBrowser.Controller/Sync/IServerSyncProvider.cs

@@ -18,7 +18,7 @@ namespace MediaBrowser.Controller.Sync
         /// <param name="progress">The progress.</param>
         /// <param name="cancellationToken">The cancellation token.</param>
         /// <returns>Task.</returns>
-        Task SendFile(Stream stream, string remotePath, SyncTarget target, IProgress<double> progress, CancellationToken cancellationToken);
+        Task<SendFileResult> SendFile(Stream stream, string remotePath, SyncTarget target, IProgress<double> progress, CancellationToken cancellationToken);
 
         /// <summary>
         /// Deletes the file.

+ 18 - 0
MediaBrowser.Controller/Sync/SendFileResult.cs

@@ -0,0 +1,18 @@
+using MediaBrowser.Model.MediaInfo;
+
+namespace MediaBrowser.Controller.Sync
+{
+    public class SendFileResult
+    {
+        /// <summary>
+        /// Gets or sets the path.
+        /// </summary>
+        /// <value>The path.</value>
+        public string Path { get; set; }
+        /// <summary>
+        /// Gets or sets the protocol.
+        /// </summary>
+        /// <value>The protocol.</value>
+        public MediaProtocol Protocol { get; set; }
+    }
+}

+ 14 - 3
MediaBrowser.Server.Implementations/Sync/MediaSync.cs

@@ -152,7 +152,18 @@ namespace MediaBrowser.Server.Implementations.Sync
 
             try
             {
-                await SendFile(provider, internalSyncJobItem.OutputPath, localItem, target, cancellationToken).ConfigureAwait(false);
+                var sendFileResult = await SendFile(provider, internalSyncJobItem.OutputPath, localItem, target, cancellationToken).ConfigureAwait(false);
+
+                if (localItem.Item.MediaSources != null)
+                {
+                    var mediaSource = localItem.Item.MediaSources.FirstOrDefault();
+                    if (mediaSource != null)
+                    {
+                        mediaSource.Path = sendFileResult.Path;
+                        mediaSource.Protocol = sendFileResult.Protocol;
+                        mediaSource.SupportsTranscoding = false;
+                    }
+                }
 
                 // Create db record
                 await dataProvider.AddOrUpdate(target, localItem).ConfigureAwait(false);
@@ -203,11 +214,11 @@ namespace MediaBrowser.Server.Implementations.Sync
             }
         }
 
-        private async Task SendFile(IServerSyncProvider provider, string inputPath, LocalItem item, SyncTarget target, CancellationToken cancellationToken)
+        private async Task<SendFileResult> SendFile(IServerSyncProvider provider, string inputPath, LocalItem item, SyncTarget target, CancellationToken cancellationToken)
         {
             using (var stream = _fileSystem.GetFileStream(inputPath, FileMode.Open, FileAccess.Read, FileShare.Read, true))
             {
-                await provider.SendFile(stream, item.LocalPath, target, new Progress<double>(), cancellationToken).ConfigureAwait(false);
+                return await provider.SendFile(stream, item.LocalPath, target, new Progress<double>(), cancellationToken).ConfigureAwait(false);
             }
         }
 

+ 4 - 0
MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs

@@ -581,6 +581,8 @@ namespace MediaBrowser.Server.Implementations.Sync
                 jobItem.MediaSource = mediaSource;
             }
 
+            jobItem.MediaSource.SupportsTranscoding = false;
+
             if (externalSubs.Count > 0)
             {
                 // Save the job item now since conversion could take a while
@@ -757,6 +759,8 @@ namespace MediaBrowser.Server.Implementations.Sync
                 jobItem.MediaSource = mediaSource;
             }
 
+            jobItem.MediaSource.SupportsTranscoding = false;
+
             jobItem.Progress = 50;
             jobItem.Status = SyncJobItemStatus.ReadyToTransfer;
             await _syncManager.UpdateSyncJobItemInternal(jobItem).ConfigureAwait(false);

+ 1 - 22
MediaBrowser.Server.Implementations/Sync/SyncedMediaSourceProvider.cs

@@ -3,11 +3,9 @@ using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Library;
 using MediaBrowser.Controller.Sync;
 using MediaBrowser.Model.Dto;
-using MediaBrowser.Model.MediaInfo;
 using MediaBrowser.Model.Sync;
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
@@ -58,7 +56,7 @@ namespace MediaBrowser.Server.Implementations.Sync
 
                         foreach (var localItem in localItems)
                         {
-                            list.AddRange(GetPlayableMediaSources(localItem));
+                            list.AddRange(localItem.Item.MediaSources);
                         }
                     }
                 }
@@ -66,24 +64,5 @@ namespace MediaBrowser.Server.Implementations.Sync
 
             return list;
         }
-
-        private IEnumerable<MediaSourceInfo> GetPlayableMediaSources(LocalItem item)
-        {
-            return item.Item.MediaSources
-                .Where(IsMediaSourcePlayable);
-        }
-
-        private bool IsMediaSourcePlayable(MediaSourceInfo mediaSource)
-        {
-            if (mediaSource.Protocol == MediaProtocol.File)
-            {
-                if (!File.Exists(mediaSource.Path))
-                {
-                    return false;
-                }
-            }
-
-            return true;
-        }
     }
 }

+ 2 - 2
Nuget/MediaBrowser.Common.Internal.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
     <metadata>
         <id>MediaBrowser.Common.Internal</id>
-        <version>3.0.584</version>
+        <version>3.0.585</version>
         <title>MediaBrowser.Common.Internal</title>
         <authors>Luke</authors>
         <owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
         <description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description>
         <copyright>Copyright © Media Browser 2013</copyright>
         <dependencies>
-            <dependency id="MediaBrowser.Common" version="3.0.584" />
+            <dependency id="MediaBrowser.Common" version="3.0.585" />
             <dependency id="NLog" version="3.2.0.0" />
             <dependency id="SimpleInjector" version="2.7.0" />
         </dependencies>

+ 1 - 1
Nuget/MediaBrowser.Common.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
     <metadata>
         <id>MediaBrowser.Common</id>
-        <version>3.0.584</version>
+        <version>3.0.585</version>
         <title>MediaBrowser.Common</title>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>

+ 1 - 1
Nuget/MediaBrowser.Model.Signed.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
     <metadata>
         <id>MediaBrowser.Model.Signed</id>
-        <version>3.0.584</version>
+        <version>3.0.585</version>
         <title>MediaBrowser.Model - Signed Edition</title>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>

+ 2 - 2
Nuget/MediaBrowser.Server.Core.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
     <metadata>
         <id>MediaBrowser.Server.Core</id>
-        <version>3.0.584</version>
+        <version>3.0.585</version>
         <title>Media Browser.Server.Core</title>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
         <description>Contains core components required to build plugins for Media Browser Server.</description>
         <copyright>Copyright © Media Browser 2013</copyright>
         <dependencies>
-            <dependency id="MediaBrowser.Common" version="3.0.584" />
+            <dependency id="MediaBrowser.Common" version="3.0.585" />
         </dependencies>
     </metadata>
     <files>