Skip to content

Commit 58cbf7b

Browse files
Merge pull request #3274 from MediaBrowser/dev
Dev
2 parents 84d38de + c29b4a8 commit 58cbf7b

File tree

170 files changed

+2807
-2519
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

170 files changed

+2807
-2519
lines changed

Emby.Dlna/Api/DlnaServerService.cs

+5-19
Original file line numberDiff line numberDiff line change
@@ -114,18 +114,16 @@ public class DlnaServerService : IService, IRequiresRequest
114114
private readonly IMediaReceiverRegistrar _mediaReceiverRegistrar;
115115

116116
private const string XMLContentType = "text/xml; charset=UTF-8";
117-
private readonly IMemoryStreamFactory _memoryStreamProvider;
118117

119118
public IRequest Request { get; set; }
120119
private IHttpResultFactory _resultFactory;
121120

122-
public DlnaServerService(IDlnaManager dlnaManager, IHttpResultFactory httpResultFactory, IContentDirectory contentDirectory, IConnectionManager connectionManager, IMediaReceiverRegistrar mediaReceiverRegistrar, IMemoryStreamFactory memoryStreamProvider)
121+
public DlnaServerService(IDlnaManager dlnaManager, IHttpResultFactory httpResultFactory, IContentDirectory contentDirectory, IConnectionManager connectionManager, IMediaReceiverRegistrar mediaReceiverRegistrar)
123122
{
124123
_dlnaManager = dlnaManager;
125124
_contentDirectory = contentDirectory;
126125
_connectionManager = connectionManager;
127126
_mediaReceiverRegistrar = mediaReceiverRegistrar;
128-
_memoryStreamProvider = memoryStreamProvider;
129127
_resultFactory = httpResultFactory;
130128
}
131129

@@ -236,24 +234,12 @@ private List<string> Parse(string pathUri)
236234

237235
public object Get(GetIcon request)
238236
{
239-
using (var response = _dlnaManager.GetIcon(request.Filename))
240-
{
241-
using (var ms = new MemoryStream())
242-
{
243-
response.Stream.CopyTo(ms);
244-
245-
ms.Position = 0;
246-
var bytes = ms.ToArray();
247-
248-
var contentType = "image/" + response.Format.ToString().ToLower();
237+
var contentType = "image/" + Path.GetExtension(request.Filename).TrimStart('.').ToLower();
249238

250-
var cacheLength = TimeSpan.FromDays(365);
251-
var cacheKey = Request.RawUrl.GetMD5();
239+
var cacheLength = TimeSpan.FromDays(365);
240+
var cacheKey = Request.RawUrl.GetMD5();
252241

253-
return _resultFactory.GetStaticResult(Request, cacheKey, null, cacheLength, contentType, ()=> Task.FromResult<Stream>(new MemoryStream(bytes)));
254-
//return ResultFactory.GetResult(bytes, contentType);
255-
}
256-
}
242+
return _resultFactory.GetStaticResult(Request, cacheKey, null, cacheLength, contentType, () => Task.FromResult<Stream>(_dlnaManager.GetIcon(request.Filename).Stream));
257243
}
258244

259245
public object Subscribe(ProcessContentDirectoryEventRequest request)

Emby.Dlna/Didl/DidlBuilder.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1214,7 +1214,7 @@ private ImageUrlInfo GetImageUrl(ImageDownloadInfo info, int maxWidth, int maxHe
12141214
Height = height.Value,
12151215
Width = width.Value
12161216

1217-
}, null, null, maxWidth, maxHeight);
1217+
}, 0, 0, maxWidth, maxHeight);
12181218

12191219
width = Convert.ToInt32(newSize.Width);
12201220
height = Convert.ToInt32(newSize.Height);

Emby.Server.Implementations/ApplicationHost.cs

+21-13
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
using MediaBrowser.Controller.Drawing;
6060
using MediaBrowser.Controller.Dto;
6161
using MediaBrowser.Controller.Entities;
62+
using MediaBrowser.Controller.IO;
6263
using MediaBrowser.Controller.Library;
6364
using MediaBrowser.Controller.LiveTv;
6465
using MediaBrowser.Controller.MediaEncoding;
@@ -269,7 +270,6 @@ public virtual string OperatingSystemDisplayName
269270
protected readonly SimpleInjector.Container Container = new SimpleInjector.Container();
270271

271272
protected ISystemEvents SystemEvents { get; set; }
272-
protected IMemoryStreamFactory MemoryStreamFactory { get; set; }
273273

274274
/// <summary>
275275
/// Gets the server configuration manager.
@@ -429,7 +429,6 @@ public ApplicationHost(ServerApplicationPaths applicationPaths,
429429
networkManager.LocalSubnetsFn = GetConfiguredLocalSubnets;
430430
EnvironmentInfo = environmentInfo;
431431
SystemEvents = systemEvents;
432-
MemoryStreamFactory = new MemoryStreamProvider();
433432

434433
ApplicationPaths = applicationPaths;
435434
LogManager = logManager;
@@ -526,6 +525,11 @@ private Tuple<Assembly, string> GetAssembly(Type type)
526525
return new Tuple<Assembly, string>(assembly, path);
527526
}
528527

528+
public virtual IStreamHelper CreateStreamHelper()
529+
{
530+
return new StreamHelper();
531+
}
532+
529533
public virtual bool SupportsAutoRunAtStartup
530534
{
531535
get
@@ -859,9 +863,11 @@ protected virtual void OnLoggerLoaded(bool isFirstLoad)
859863

860864
protected virtual IHttpClient CreateHttpClient()
861865
{
862-
return new HttpClientManager.HttpClientManager(ApplicationPaths, LogManager.GetLogger("HttpClient"), FileSystemManager, MemoryStreamFactory, GetDefaultUserAgent);
866+
return new HttpClientManager.HttpClientManager(ApplicationPaths, LogManager.GetLogger("HttpClient"), FileSystemManager, GetDefaultUserAgent);
863867
}
864868

869+
public static IStreamHelper StreamHelper { get; set; }
870+
865871
/// <summary>
866872
/// Registers resources that classes will depend on
867873
/// </summary>
@@ -873,7 +879,6 @@ protected void RegisterResources()
873879
RegisterSingleInstance<IApplicationPaths>(ApplicationPaths);
874880

875881
RegisterSingleInstance(JsonSerializer);
876-
RegisterSingleInstance(MemoryStreamFactory);
877882
RegisterSingleInstance(SystemEvents);
878883

879884
RegisterSingleInstance(LogManager, false);
@@ -902,6 +907,10 @@ protected void RegisterResources()
902907
TimerFactory = new TimerFactory();
903908
RegisterSingleInstance(TimerFactory);
904909

910+
var streamHelper = CreateStreamHelper();
911+
ApplicationHost.StreamHelper = streamHelper;
912+
RegisterSingleInstance(streamHelper);
913+
905914
RegisterSingleInstance(CryptographyProvider);
906915

907916
SocketFactory = new SocketFactory(LogManager.GetLogger("SocketFactory"));
@@ -918,7 +927,7 @@ protected void RegisterResources()
918927
ZipClient = new ZipClient(FileSystemManager);
919928
RegisterSingleInstance(ZipClient);
920929

921-
HttpResultFactory = new HttpResultFactory(LogManager, FileSystemManager, JsonSerializer, MemoryStreamFactory);
930+
HttpResultFactory = new HttpResultFactory(LogManager, FileSystemManager, JsonSerializer);
922931
RegisterSingleInstance(HttpResultFactory);
923932

924933
RegisterSingleInstance<IServerApplicationHost>(this);
@@ -947,11 +956,11 @@ protected void RegisterResources()
947956
// This is only needed for disposal purposes. If removing this, make sure to have the manager handle disposing it
948957
RegisterSingleInstance(UserRepository);
949958

950-
var displayPreferencesRepo = new SqliteDisplayPreferencesRepository(LogManager.GetLogger("SqliteDisplayPreferencesRepository"), JsonSerializer, ApplicationPaths, MemoryStreamFactory, FileSystemManager);
959+
var displayPreferencesRepo = new SqliteDisplayPreferencesRepository(LogManager.GetLogger("SqliteDisplayPreferencesRepository"), JsonSerializer, ApplicationPaths, FileSystemManager);
951960
DisplayPreferencesRepository = displayPreferencesRepo;
952961
RegisterSingleInstance(DisplayPreferencesRepository);
953962

954-
var itemRepo = new SqliteItemRepository(ServerConfigurationManager, this, JsonSerializer, LogManager.GetLogger("SqliteItemRepository"), MemoryStreamFactory, assemblyInfo, FileSystemManager, EnvironmentInfo, TimerFactory);
963+
var itemRepo = new SqliteItemRepository(ServerConfigurationManager, this, JsonSerializer, LogManager.GetLogger("SqliteItemRepository"), assemblyInfo, FileSystemManager, EnvironmentInfo, TimerFactory);
955964
ItemRepository = itemRepo;
956965
RegisterSingleInstance(ItemRepository);
957966

@@ -975,11 +984,11 @@ protected void RegisterResources()
975984
CertificateInfo = GetCertificateInfo(true);
976985
Certificate = GetCertificate(CertificateInfo);
977986

978-
HttpServer = HttpServerFactory.CreateServer(this, LogManager, ServerConfigurationManager, NetworkManager, MemoryStreamFactory, "Emby", "web/index.html", textEncoding, SocketFactory, CryptographyProvider, JsonSerializer, XmlSerializer, EnvironmentInfo, Certificate, FileSystemManager, SupportsDualModeSockets);
987+
HttpServer = HttpServerFactory.CreateServer(this, LogManager, ServerConfigurationManager, NetworkManager, streamHelper, "Emby", "web/index.html", textEncoding, SocketFactory, CryptographyProvider, JsonSerializer, XmlSerializer, EnvironmentInfo, Certificate, FileSystemManager, SupportsDualModeSockets);
979988
HttpServer.GlobalResponse = LocalizationManager.GetLocalizedString("StartupEmbyServerIsLoading");
980989
RegisterSingleInstance(HttpServer, false);
981990

982-
ServerManager = new ServerManager.ServerManager(this, JsonSerializer, LogManager.GetLogger("ServerManager"), ServerConfigurationManager, MemoryStreamFactory, textEncoding);
991+
ServerManager = new ServerManager.ServerManager(this, JsonSerializer, LogManager.GetLogger("ServerManager"), ServerConfigurationManager, textEncoding);
983992
RegisterSingleInstance(ServerManager);
984993

985994
ImageProcessor = GetImageProcessor();
@@ -1012,7 +1021,7 @@ protected void RegisterResources()
10121021
SubtitleManager = new SubtitleManager(LogManager.GetLogger("SubtitleManager"), FileSystemManager, LibraryMonitor, MediaSourceManager, ServerConfigurationManager, LocalizationManager);
10131022
RegisterSingleInstance(SubtitleManager);
10141023

1015-
ProviderManager = new ProviderManager(HttpClient, SubtitleManager, ServerConfigurationManager, LibraryMonitor, LogManager, FileSystemManager, ApplicationPaths, () => LibraryManager, JsonSerializer, MemoryStreamFactory);
1024+
ProviderManager = new ProviderManager(HttpClient, SubtitleManager, ServerConfigurationManager, LibraryMonitor, LogManager, FileSystemManager, ApplicationPaths, () => LibraryManager, JsonSerializer);
10161025
RegisterSingleInstance(ProviderManager);
10171026

10181027
DtoService = new DtoService(LogManager.GetLogger("DtoService"), LibraryManager, UserDataManager, ItemRepository, ImageProcessor, ServerConfigurationManager, FileSystemManager, ProviderManager, () => ChannelManager, SyncManager, this, () => DeviceManager, () => MediaSourceManager, () => LiveTvManager);
@@ -1072,7 +1081,7 @@ protected void RegisterResources()
10721081
AuthService = new AuthService(UserManager, authContext, ServerConfigurationManager, ConnectManager, SessionManager, NetworkManager);
10731082
RegisterSingleInstance<IAuthService>(AuthService);
10741083

1075-
SubtitleEncoder = new SubtitleEncoder(LibraryManager, LogManager.GetLogger("SubtitleEncoder"), ApplicationPaths, FileSystemManager, MediaEncoder, JsonSerializer, HttpClient, MediaSourceManager, MemoryStreamFactory, ProcessFactory, textEncoding);
1084+
SubtitleEncoder = new SubtitleEncoder(LibraryManager, LogManager.GetLogger("SubtitleEncoder"), ApplicationPaths, FileSystemManager, MediaEncoder, JsonSerializer, HttpClient, MediaSourceManager, ProcessFactory, textEncoding);
10761085
RegisterSingleInstance(SubtitleEncoder);
10771086

10781087
RegisterSingleInstance(CreateResourceFileManager());
@@ -1289,7 +1298,6 @@ private void RegisterMediaEncoder(IAssemblyInfo assemblyInfo)
12891298
() => MediaSourceManager,
12901299
HttpClient,
12911300
ZipClient,
1292-
MemoryStreamFactory,
12931301
ProcessFactory,
12941302
(Environment.ProcessorCount > 2 ? 14000 : 40000),
12951303
EnvironmentInfo.OperatingSystem == MediaBrowser.Model.System.OperatingSystem.Windows,
@@ -1307,7 +1315,7 @@ private void RegisterMediaEncoder(IAssemblyInfo assemblyInfo)
13071315
/// <returns>Task{IUserRepository}.</returns>
13081316
private IUserRepository GetUserRepository()
13091317
{
1310-
var repo = new SqliteUserRepository(LogManager.GetLogger("SqliteUserRepository"), ApplicationPaths, JsonSerializer, MemoryStreamFactory);
1318+
var repo = new SqliteUserRepository(LogManager.GetLogger("SqliteUserRepository"), ApplicationPaths, JsonSerializer);
13111319

13121320
repo.Initialize();
13131321

Emby.Server.Implementations/Data/SqliteDisplayPreferencesRepository.cs

+2-4
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,12 @@ namespace Emby.Server.Implementations.Data
1818
/// </summary>
1919
public class SqliteDisplayPreferencesRepository : BaseSqliteRepository, IDisplayPreferencesRepository
2020
{
21-
private readonly IMemoryStreamFactory _memoryStreamProvider;
2221
protected IFileSystem FileSystem { get; private set; }
2322

24-
public SqliteDisplayPreferencesRepository(ILogger logger, IJsonSerializer jsonSerializer, IApplicationPaths appPaths, IMemoryStreamFactory memoryStreamProvider, IFileSystem fileSystem)
23+
public SqliteDisplayPreferencesRepository(ILogger logger, IJsonSerializer jsonSerializer, IApplicationPaths appPaths, IFileSystem fileSystem)
2524
: base(logger)
2625
{
2726
_jsonSerializer = jsonSerializer;
28-
_memoryStreamProvider = memoryStreamProvider;
2927
FileSystem = fileSystem;
3028
DbFilePath = Path.Combine(appPaths.DataPath, "displaypreferences.db");
3129
}
@@ -119,7 +117,7 @@ public void SaveDisplayPreferences(DisplayPreferences displayPreferences, Guid u
119117

120118
private void SaveDisplayPreferences(DisplayPreferences displayPreferences, Guid userId, string client, IDatabaseConnection connection)
121119
{
122-
var serialized = _jsonSerializer.SerializeToBytes(displayPreferences, _memoryStreamProvider);
120+
var serialized = _jsonSerializer.SerializeToBytes(displayPreferences);
123121

124122
using (var statement = connection.PrepareStatement("replace into userdisplaypreferences (id, userid, client, data) values (@id, @userId, @client, @data)"))
125123
{

Emby.Server.Implementations/Data/SqliteExtensions.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ public static DateTime ReadDateTime(this IResultSetValue result)
130130
/// </summary>
131131
/// <returns>System.Byte[][].</returns>
132132
/// <exception cref="System.ArgumentNullException">obj</exception>
133-
public static byte[] SerializeToBytes(this IJsonSerializer json, object obj, IMemoryStreamFactory streamProvider)
133+
public static byte[] SerializeToBytes(this IJsonSerializer json, object obj)
134134
{
135135
if (obj == null)
136136
{

0 commit comments

Comments
 (0)