mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-02 22:08:27 +01:00
fixes #838 - Support rtmp protocol with channels
This commit is contained in:
@@ -8,8 +8,8 @@ using MediaBrowser.Controller.Configuration;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Model.Channels;
|
||||
using MediaBrowser.Model.Dto;
|
||||
using MediaBrowser.Model.Entities;
|
||||
using MediaBrowser.Model.Logging;
|
||||
using MediaBrowser.Model.MediaInfo;
|
||||
using MediaBrowser.Model.Querying;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -182,7 +182,7 @@ namespace MediaBrowser.Server.Implementations.Channels
|
||||
|
||||
var list = sources.ToList();
|
||||
|
||||
var cachedVersions = list.Where(i => i.LocationType == LocationType.FileSystem).ToList();
|
||||
var cachedVersions = list.Where(i => i.Protocol == MediaProtocol.File).ToList();
|
||||
|
||||
if (cachedVersions.Count > 0)
|
||||
{
|
||||
@@ -190,7 +190,12 @@ namespace MediaBrowser.Server.Implementations.Channels
|
||||
return;
|
||||
}
|
||||
|
||||
var source = list.First();
|
||||
var source = list.FirstOrDefault(i => i.Protocol == MediaProtocol.Http);
|
||||
|
||||
if (source == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var options = new HttpRequestOptions
|
||||
{
|
||||
|
||||
@@ -280,7 +280,7 @@ namespace MediaBrowser.Server.Implementations.Channels
|
||||
MediaStreams = GetMediaStreams(info).ToList(),
|
||||
|
||||
Container = info.Container,
|
||||
LocationType = info.IsRemote ? LocationType.Remote : LocationType.FileSystem,
|
||||
Protocol = info.Protocol,
|
||||
Path = info.Path,
|
||||
RequiredHttpHeaders = info.RequiredHttpHeaders,
|
||||
RunTimeTicks = item.RunTimeTicks,
|
||||
@@ -555,17 +555,18 @@ namespace MediaBrowser.Server.Implementations.Channels
|
||||
return GetChannelItemEntity(i.Item2, channelProvider, channel, token);
|
||||
});
|
||||
|
||||
IEnumerable<BaseItem> internalItems = await Task.WhenAll(itemTasks).ConfigureAwait(false);
|
||||
var internalItems = await Task.WhenAll(itemTasks).ConfigureAwait(false);
|
||||
|
||||
internalItems = ApplyFilters(internalItems, query.Filters, user);
|
||||
internalItems = ApplyFilters(internalItems, query.Filters, user).ToArray();
|
||||
await RefreshIfNeeded(internalItems, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
if (query.StartIndex.HasValue)
|
||||
{
|
||||
internalItems = internalItems.Skip(query.StartIndex.Value);
|
||||
internalItems = internalItems.Skip(query.StartIndex.Value).ToArray();
|
||||
}
|
||||
if (query.Limit.HasValue)
|
||||
{
|
||||
internalItems = internalItems.Take(query.Limit.Value);
|
||||
internalItems = internalItems.Take(query.Limit.Value).ToArray();
|
||||
}
|
||||
|
||||
var returnItemArray = internalItems.Select(i => _dtoService.GetBaseItemDto(i, query.Fields, user))
|
||||
@@ -658,6 +659,7 @@ namespace MediaBrowser.Server.Implementations.Channels
|
||||
});
|
||||
|
||||
var internalItems = await Task.WhenAll(itemTasks).ConfigureAwait(false);
|
||||
await RefreshIfNeeded(internalItems, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
var returnItemArray = internalItems.Select(i => _dtoService.GetBaseItemDto(i, query.Fields, user))
|
||||
.ToArray();
|
||||
|
||||
Reference in New Issue
Block a user