mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-11-16 18:42:52 -07:00
commit
f92e245dff
@ -305,8 +305,8 @@
|
|||||||
<Project>{4f26d5d8-a7b0-42b3-ba42-7cb7d245934e}</Project>
|
<Project>{4f26d5d8-a7b0-42b3-ba42-7cb7d245934e}</Project>
|
||||||
<Name>SocketHttpListener.Portable</Name>
|
<Name>SocketHttpListener.Portable</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
<Reference Include="Emby.XmlTv, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Emby.XmlTv, Version=1.0.6175.23736, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Emby.XmlTv.1.0.1\lib\portable-net45+win8\Emby.XmlTv.dll</HintPath>
|
<HintPath>..\packages\Emby.XmlTv.1.0.2\lib\portable-net45+win8\Emby.XmlTv.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MediaBrowser.Naming, Version=1.0.6159.25070, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="MediaBrowser.Naming, Version=1.0.6159.25070, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
@ -4,6 +4,7 @@ using System.IO;
|
|||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using MediaBrowser.Model.Logging;
|
using MediaBrowser.Model.Logging;
|
||||||
|
using SocketHttpListener.Net;
|
||||||
using HttpListenerResponse = SocketHttpListener.Net.HttpListenerResponse;
|
using HttpListenerResponse = SocketHttpListener.Net.HttpListenerResponse;
|
||||||
using IHttpResponse = MediaBrowser.Model.Services.IHttpResponse;
|
using IHttpResponse = MediaBrowser.Model.Services.IHttpResponse;
|
||||||
using IRequest = MediaBrowser.Model.Services.IRequest;
|
using IRequest = MediaBrowser.Model.Services.IRequest;
|
||||||
@ -101,12 +102,15 @@ namespace Emby.Server.Implementations.HttpServer.SocketSharp
|
|||||||
var outputStream = response.OutputStream;
|
var outputStream = response.OutputStream;
|
||||||
|
|
||||||
// This is needed with compression
|
// This is needed with compression
|
||||||
//if (!string.IsNullOrWhiteSpace(GetHeader("Content-Encoding")))
|
if (outputStream is ResponseStream)
|
||||||
{
|
{
|
||||||
outputStream.Flush();
|
//if (!string.IsNullOrWhiteSpace(GetHeader("Content-Encoding")))
|
||||||
}
|
{
|
||||||
|
outputStream.Flush();
|
||||||
|
}
|
||||||
|
|
||||||
outputStream.Dispose();
|
outputStream.Dispose();
|
||||||
|
}
|
||||||
response.Close();
|
response.Close();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -141,7 +141,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
|
|||||||
ProductionYear = !p.CopyrightDate.HasValue ? (int?)null : p.CopyrightDate.Value.Year,
|
ProductionYear = !p.CopyrightDate.HasValue ? (int?)null : p.CopyrightDate.Value.Year,
|
||||||
SeasonNumber = p.Episode == null ? null : p.Episode.Series,
|
SeasonNumber = p.Episode == null ? null : p.Episode.Series,
|
||||||
IsSeries = p.Episode != null,
|
IsSeries = p.Episode != null,
|
||||||
IsRepeat = p.IsRepeat,
|
IsRepeat = p.IsPreviouslyShown && !p.IsNew,
|
||||||
IsPremiere = p.Premiere != null,
|
IsPremiere = p.Premiere != null,
|
||||||
IsKids = p.Categories.Any(c => info.KidsCategories.Contains(c, StringComparer.OrdinalIgnoreCase)),
|
IsKids = p.Categories.Any(c => info.KidsCategories.Contains(c, StringComparer.OrdinalIgnoreCase)),
|
||||||
IsMovie = p.Categories.Any(c => info.MovieCategories.Contains(c, StringComparer.OrdinalIgnoreCase)),
|
IsMovie = p.Categories.Any(c => info.MovieCategories.Contains(c, StringComparer.OrdinalIgnoreCase)),
|
||||||
|
@ -100,18 +100,6 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
|
|||||||
|
|
||||||
extInf = extInf.Trim();
|
extInf = extInf.Trim();
|
||||||
|
|
||||||
//Check for channel number with the format from SatIp
|
|
||||||
//int number;
|
|
||||||
//var numberIndex = channel.Name.IndexOf('.');
|
|
||||||
//if (numberIndex > 0)
|
|
||||||
//{
|
|
||||||
// if (int.TryParse(channel.Name.Substring(0, numberIndex), out number))
|
|
||||||
// {
|
|
||||||
// channel.Number = number.ToString();
|
|
||||||
// channel.Name = channel.Name.Substring(numberIndex + 1);
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
channel.ImageUrl = FindProperty("tvg-logo", extInf);
|
channel.ImageUrl = FindProperty("tvg-logo", extInf);
|
||||||
|
|
||||||
channel.Name = GetChannelName(extInf);
|
channel.Name = GetChannelName(extInf);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="Emby.XmlTv" version="1.0.1" targetFramework="portable45-net45+win8" />
|
<package id="Emby.XmlTv" version="1.0.2" targetFramework="portable45-net45+win8" />
|
||||||
<package id="MediaBrowser.Naming" version="1.0.2" targetFramework="portable45-net45+win8" />
|
<package id="MediaBrowser.Naming" version="1.0.2" targetFramework="portable45-net45+win8" />
|
||||||
<package id="SQLitePCL.pretty" version="1.1.0" targetFramework="portable45-net45+win8" />
|
<package id="SQLitePCL.pretty" version="1.1.0" targetFramework="portable45-net45+win8" />
|
||||||
<package id="SQLitePCLRaw.core" version="1.1.1-pre20161109081005" targetFramework="portable45-net45+win8" />
|
<package id="SQLitePCLRaw.core" version="1.1.1-pre20161109081005" targetFramework="portable45-net45+win8" />
|
||||||
|
@ -153,7 +153,8 @@ namespace MediaBrowser.Api.Playback.Hls
|
|||||||
|
|
||||||
var newDuration = "#EXT-X-TARGETDURATION:" + segmentLength.ToString(UsCulture);
|
var newDuration = "#EXT-X-TARGETDURATION:" + segmentLength.ToString(UsCulture);
|
||||||
|
|
||||||
text = text.Replace("#EXT-X-TARGETDURATION:" + (segmentLength + 1).ToString(UsCulture), newDuration, StringComparison.OrdinalIgnoreCase);
|
text = text.Replace("#EXT-X-TARGETDURATION:" + (segmentLength - 1).ToString(UsCulture), newDuration, StringComparison.OrdinalIgnoreCase);
|
||||||
|
//text = text.Replace("#EXT-X-TARGETDURATION:" + (segmentLength + 1).ToString(UsCulture), newDuration, StringComparison.OrdinalIgnoreCase);
|
||||||
|
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
@ -130,7 +130,7 @@ namespace ServiceStack
|
|||||||
{
|
{
|
||||||
foreach (var responseHeaders in responseOptions.Headers)
|
foreach (var responseHeaders in responseOptions.Headers)
|
||||||
{
|
{
|
||||||
if (responseHeaders.Key == "Content-Length")
|
if (string.Equals(responseHeaders.Key, "Content-Length", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
response.SetContentLength(long.Parse(responseHeaders.Value));
|
response.SetContentLength(long.Parse(responseHeaders.Value));
|
||||||
continue;
|
continue;
|
||||||
|
@ -209,7 +209,9 @@ namespace SocketHttpListener.Net
|
|||||||
// TODO: can we get this stream before reading the input?
|
// TODO: can we get this stream before reading the input?
|
||||||
if (o_stream == null)
|
if (o_stream == null)
|
||||||
{
|
{
|
||||||
if (context.Response.SendChunked || isExpect100Continue || context.Response.ContentLength64 <= 0)
|
context.Response.DetermineIfChunked();
|
||||||
|
|
||||||
|
if (context.Response.SendChunked || isExpect100Continue || context.Request.IsWebSocketRequest)
|
||||||
{
|
{
|
||||||
o_stream = new ResponseStream(stream, context.Response, _memoryStreamFactory, _textEncoding);
|
o_stream = new ResponseStream(stream, context.Response, _memoryStreamFactory, _textEncoding);
|
||||||
}
|
}
|
||||||
|
@ -362,6 +362,22 @@ namespace SocketHttpListener.Net
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void DetermineIfChunked()
|
||||||
|
{
|
||||||
|
if (chunked)
|
||||||
|
{
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
Version v = context.Request.ProtocolVersion;
|
||||||
|
if (!cl_set && !chunked && v >= HttpVersion.Version11)
|
||||||
|
chunked = true;
|
||||||
|
if (!chunked && string.Equals(headers["Transfer-Encoding"], "chunked"))
|
||||||
|
{
|
||||||
|
chunked = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
internal void SendHeaders(bool closing, MemoryStream ms)
|
internal void SendHeaders(bool closing, MemoryStream ms)
|
||||||
{
|
{
|
||||||
Encoding encoding = content_encoding;
|
Encoding encoding = content_encoding;
|
||||||
|
@ -14,7 +14,7 @@ namespace SocketHttpListener.Net
|
|||||||
// Update: we send a single packet for the first non-chunked Write
|
// Update: we send a single packet for the first non-chunked Write
|
||||||
// What happens when we set content-length to X and write X-1 bytes then close?
|
// What happens when we set content-length to X and write X-1 bytes then close?
|
||||||
// what if we don't set content-length at all?
|
// what if we don't set content-length at all?
|
||||||
class ResponseStream : Stream
|
public class ResponseStream : Stream
|
||||||
{
|
{
|
||||||
HttpListenerResponse response;
|
HttpListenerResponse response;
|
||||||
bool disposed;
|
bool disposed;
|
||||||
|
Loading…
Reference in New Issue
Block a user