mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-09-07 11:57:55 +02:00
commit
3cd37ed3c7
4 changed files with 18 additions and 165 deletions
|
@ -82,19 +82,24 @@ namespace Emby.Server.Implementations.LiveTv
|
|||
{
|
||||
var width = videoStream.Width ?? 1920;
|
||||
|
||||
if (width >= 1900)
|
||||
if (width >= 3000)
|
||||
{
|
||||
videoStream.BitRate = 25000000;
|
||||
}
|
||||
|
||||
else if (width >= 1900)
|
||||
{
|
||||
videoStream.BitRate = 15000000;
|
||||
}
|
||||
|
||||
else if (width >= 1260)
|
||||
else if (width >= 1200)
|
||||
{
|
||||
videoStream.BitRate = 3000000;
|
||||
videoStream.BitRate = 4000000;
|
||||
}
|
||||
|
||||
else if (width >= 700)
|
||||
{
|
||||
videoStream.BitRate = 1000000;
|
||||
videoStream.BitRate = 1500000;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -183,19 +183,24 @@ namespace Emby.Server.Implementations.LiveTv
|
|||
{
|
||||
var width = videoStream.Width ?? 1920;
|
||||
|
||||
if (width >= 1900)
|
||||
if (width >= 3000)
|
||||
{
|
||||
videoStream.BitRate = 25000000;
|
||||
}
|
||||
|
||||
else if (width >= 1900)
|
||||
{
|
||||
videoStream.BitRate = 15000000;
|
||||
}
|
||||
|
||||
else if (width >= 1260)
|
||||
else if (width >= 1200)
|
||||
{
|
||||
videoStream.BitRate = 4000000;
|
||||
}
|
||||
|
||||
else if (width >= 700)
|
||||
{
|
||||
videoStream.BitRate = 1000000;
|
||||
videoStream.BitRate = 1500000;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -256,8 +256,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||
{
|
||||
var item = itemResult.Item;
|
||||
|
||||
var userDataUserId = _config.GetNfoConfiguration().UserId;
|
||||
|
||||
switch (reader.Name)
|
||||
{
|
||||
// DateCreated
|
||||
|
@ -792,117 +790,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||
break;
|
||||
}
|
||||
|
||||
case "watched":
|
||||
{
|
||||
var val = reader.ReadElementContentAsString();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(val) && !string.IsNullOrWhiteSpace(userDataUserId))
|
||||
{
|
||||
bool parsedValue;
|
||||
if (bool.TryParse(val, out parsedValue))
|
||||
{
|
||||
var userData = GetOrAdd(itemResult, userDataUserId);
|
||||
|
||||
userData.Played = parsedValue;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case "playcount":
|
||||
{
|
||||
var val = reader.ReadElementContentAsString();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(val) && !string.IsNullOrWhiteSpace(userDataUserId))
|
||||
{
|
||||
int parsedValue;
|
||||
if (int.TryParse(val, NumberStyles.Integer, _usCulture, out parsedValue))
|
||||
{
|
||||
var userData = GetOrAdd(itemResult, userDataUserId);
|
||||
|
||||
userData.PlayCount = parsedValue;
|
||||
|
||||
if (parsedValue > 0)
|
||||
{
|
||||
userData.Played = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case "lastplayed":
|
||||
{
|
||||
var val = reader.ReadElementContentAsString();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(val) && !string.IsNullOrWhiteSpace(userDataUserId))
|
||||
{
|
||||
DateTime parsedValue;
|
||||
if (DateTime.TryParseExact(val, "yyyy-MM-dd HH:mm:ss", _usCulture, DateTimeStyles.AssumeLocal, out parsedValue))
|
||||
{
|
||||
var userData = GetOrAdd(itemResult, userDataUserId);
|
||||
|
||||
userData.LastPlayedDate = parsedValue.ToUniversalTime();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case "resume":
|
||||
{
|
||||
if (!reader.IsEmptyElement)
|
||||
{
|
||||
using (var subtree = reader.ReadSubtree())
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(userDataUserId))
|
||||
{
|
||||
var userData = GetOrAdd(itemResult, userDataUserId);
|
||||
|
||||
FetchFromResumeNode(subtree, item, userData);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
reader.Read();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case "isuserfavorite":
|
||||
{
|
||||
var val = reader.ReadElementContentAsString();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(val) && !string.IsNullOrWhiteSpace(userDataUserId))
|
||||
{
|
||||
bool parsedValue;
|
||||
if (bool.TryParse(val, out parsedValue))
|
||||
{
|
||||
var userData = GetOrAdd(itemResult, userDataUserId);
|
||||
|
||||
userData.IsFavorite = parsedValue;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case "userrating":
|
||||
{
|
||||
var val = reader.ReadElementContentAsString();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(val) && !string.IsNullOrWhiteSpace(userDataUserId))
|
||||
{
|
||||
double parsedValue;
|
||||
if (double.TryParse(val, NumberStyles.Any, _usCulture, out parsedValue))
|
||||
{
|
||||
var userData = GetOrAdd(itemResult, userDataUserId);
|
||||
|
||||
userData.Rating = parsedValue;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
string readerName = reader.Name;
|
||||
string providerIdValue;
|
||||
|
@ -922,50 +809,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||
}
|
||||
}
|
||||
|
||||
private UserItemData GetOrAdd(MetadataResult<T> result, string userId)
|
||||
{
|
||||
return result.GetOrAddUserData(userId);
|
||||
}
|
||||
|
||||
private void FetchFromResumeNode(XmlReader reader, T item, UserItemData userData)
|
||||
{
|
||||
reader.MoveToContent();
|
||||
reader.Read();
|
||||
|
||||
// Loop through each element
|
||||
while (!reader.EOF && reader.ReadState == ReadState.Interactive)
|
||||
{
|
||||
if (reader.NodeType == XmlNodeType.Element)
|
||||
{
|
||||
switch (reader.Name)
|
||||
{
|
||||
case "position":
|
||||
{
|
||||
var val = reader.ReadElementContentAsString();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(val))
|
||||
{
|
||||
double parsedValue;
|
||||
if (double.TryParse(val, NumberStyles.Any, _usCulture, out parsedValue))
|
||||
{
|
||||
userData.PlaybackPositionTicks = TimeSpan.FromSeconds(parsedValue).Ticks;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
reader.Skip();
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
reader.Read();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void FetchFromFileInfoNode(XmlReader reader, T item)
|
||||
{
|
||||
reader.MoveToContent();
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
using System.Reflection;
|
||||
|
||||
[assembly: AssemblyVersion("3.2.12.9")]
|
||||
[assembly: AssemblyVersion("3.2.12.10")]
|
||||
|
|
Loading…
Reference in a new issue