mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-11-03 19:17:24 -05:00 
			
		
		
		
	update taglib
This commit is contained in:
		
							parent
							
								
									b91dcdbff4
								
							
						
					
					
						commit
						9c813f9aed
					
				@ -39,11 +39,12 @@
 | 
				
			|||||||
    <Reference Include="System.Data" />
 | 
					    <Reference Include="System.Data" />
 | 
				
			||||||
    <Reference Include="System.Net.Http" />
 | 
					    <Reference Include="System.Net.Http" />
 | 
				
			||||||
    <Reference Include="System.Xml" />
 | 
					    <Reference Include="System.Xml" />
 | 
				
			||||||
    <Reference Include="taglib-sharp">
 | 
					    <Reference Include="TagLib.Portable">
 | 
				
			||||||
      <HintPath>..\ThirdParty\taglib\taglib-sharp.dll</HintPath>
 | 
					      <HintPath>..\ThirdParty\taglib\TagLib.Portable.dll</HintPath>
 | 
				
			||||||
    </Reference>
 | 
					    </Reference>
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <Compile Include="StreamFileAbstraction.cs" />
 | 
				
			||||||
    <Compile Include="PhotoProvider.cs" />
 | 
					    <Compile Include="PhotoProvider.cs" />
 | 
				
			||||||
    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
					    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,5 @@
 | 
				
			|||||||
using System;
 | 
					using System;
 | 
				
			||||||
 | 
					using System.IO;
 | 
				
			||||||
using System.Linq;
 | 
					using System.Linq;
 | 
				
			||||||
using System.Threading;
 | 
					using System.Threading;
 | 
				
			||||||
using System.Threading.Tasks;
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
@ -6,6 +7,7 @@ using MediaBrowser.Controller.Entities;
 | 
				
			|||||||
using MediaBrowser.Controller.Library;
 | 
					using MediaBrowser.Controller.Library;
 | 
				
			||||||
using MediaBrowser.Controller.Providers;
 | 
					using MediaBrowser.Controller.Providers;
 | 
				
			||||||
using MediaBrowser.Model.Entities;
 | 
					using MediaBrowser.Model.Entities;
 | 
				
			||||||
 | 
					using MediaBrowser.Model.IO;
 | 
				
			||||||
using MediaBrowser.Model.Logging;
 | 
					using MediaBrowser.Model.Logging;
 | 
				
			||||||
using TagLib;
 | 
					using TagLib;
 | 
				
			||||||
using TagLib.IFD;
 | 
					using TagLib.IFD;
 | 
				
			||||||
@ -17,10 +19,12 @@ namespace Emby.Photos
 | 
				
			|||||||
    public class PhotoProvider : ICustomMetadataProvider<Photo>, IHasItemChangeMonitor, IForcedProvider
 | 
					    public class PhotoProvider : ICustomMetadataProvider<Photo>, IHasItemChangeMonitor, IForcedProvider
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        private readonly ILogger _logger;
 | 
					        private readonly ILogger _logger;
 | 
				
			||||||
 | 
					        private readonly IFileSystem _fileSystem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public PhotoProvider(ILogger logger)
 | 
					        public PhotoProvider(ILogger logger, IFileSystem fileSystem)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            _logger = logger;
 | 
					            _logger = logger;
 | 
				
			||||||
 | 
					            _fileSystem = fileSystem;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public Task<ItemUpdateType> FetchAsync(Photo item, MetadataRefreshOptions options, CancellationToken cancellationToken)
 | 
					        public Task<ItemUpdateType> FetchAsync(Photo item, MetadataRefreshOptions options, CancellationToken cancellationToken)
 | 
				
			||||||
@ -31,7 +35,7 @@ namespace Emby.Photos
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            try
 | 
					            try
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                using (var file = TagLib.File.Create(item.Path))
 | 
					                using (var file = TagLib.File.Create(new StreamFileAbstraction(Path.GetFileName(item.Path), _fileSystem.OpenRead(item.Path))))
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    var image = file as TagLib.Image.File;
 | 
					                    var image = file as TagLib.Image.File;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										33
									
								
								Emby.Photos/StreamFileAbstraction.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								Emby.Photos/StreamFileAbstraction.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.IO;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using MediaBrowser.Model.IO;
 | 
				
			||||||
 | 
					using File = TagLib.File;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Emby.Photos
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class StreamFileAbstraction : File.IFileAbstraction
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public StreamFileAbstraction(string name, Stream readStream)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            // TODO: Fix deadlock when setting an actual writable Stream
 | 
				
			||||||
 | 
					            WriteStream = readStream;
 | 
				
			||||||
 | 
					            ReadStream = readStream;
 | 
				
			||||||
 | 
					            Name = name;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public string Name { get; private set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public Stream ReadStream { get; private set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public Stream WriteStream { get; private set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public void CloseStream(Stream stream)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            stream.Dispose();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -10,7 +10,7 @@ namespace MediaBrowser.Controller.Entities
 | 
				
			|||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// Class Trailer
 | 
					    /// Class Trailer
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public class Trailer : Video, IHasBudget, IHasMetascore, IHasLookupInfo<TrailerInfo>
 | 
					    public class Trailer : Video, IHasLookupInfo<TrailerInfo>
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        public Trailer()
 | 
					        public Trailer()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
@ -21,8 +21,6 @@ namespace MediaBrowser.Controller.Entities
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        public List<TrailerType> TrailerTypes { get; set; }
 | 
					        public List<TrailerType> TrailerTypes { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public float? Metascore { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public List<MediaUrl> RemoteTrailers { get; set; }
 | 
					        public List<MediaUrl> RemoteTrailers { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [IgnoreDataMember]
 | 
					        [IgnoreDataMember]
 | 
				
			||||||
@ -31,18 +29,6 @@ namespace MediaBrowser.Controller.Entities
 | 
				
			|||||||
            get { return TrailerTypes.Contains(TrailerType.LocalTrailer); }
 | 
					            get { return TrailerTypes.Contains(TrailerType.LocalTrailer); }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Gets or sets the budget.
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        /// <value>The budget.</value>
 | 
					 | 
				
			||||||
        public double? Budget { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Gets or sets the revenue.
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        /// <value>The revenue.</value>
 | 
					 | 
				
			||||||
        public double? Revenue { get; set; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override UnratedItem GetBlockUnratedType()
 | 
					        public override UnratedItem GetBlockUnratedType()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            return UnratedItem.Trailer;
 | 
					            return UnratedItem.Trailer;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user