mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-06-09 00:25:00 -04:00
updated ffmpeg
This commit is contained in:
parent
2788d8d201
commit
4d4ea6e42c
@ -49,17 +49,17 @@ namespace MediaBrowser.Api.UserLibrary
|
|||||||
/// Limit results to items containing specific genres
|
/// Limit results to items containing specific genres
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The genres.</value>
|
/// <value>The genres.</value>
|
||||||
[ApiMember(Name = "Genres", Description = "Optional. If specified, results will be filtered based on genre. This allows multiple, comma delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
|
[ApiMember(Name = "Genres", Description = "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
|
||||||
public string Genres { get; set; }
|
public string Genres { get; set; }
|
||||||
|
|
||||||
[ApiMember(Name = "AllGenres", Description = "Optional. If specified, results will be filtered based on genre. This allows multiple, comma delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
|
[ApiMember(Name = "AllGenres", Description = "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
|
||||||
public string AllGenres { get; set; }
|
public string AllGenres { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Limit results to items containing specific studios
|
/// Limit results to items containing specific studios
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The studios.</value>
|
/// <value>The studios.</value>
|
||||||
[ApiMember(Name = "Studios", Description = "Optional. If specified, results will be filtered based on studio. This allows multiple, comma delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
|
[ApiMember(Name = "Studios", Description = "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
|
||||||
public string Studios { get; set; }
|
public string Studios { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -805,21 +805,21 @@ namespace MediaBrowser.Api.UserLibrary
|
|||||||
// Apply genre filter
|
// Apply genre filter
|
||||||
if (!string.IsNullOrEmpty(request.Genres))
|
if (!string.IsNullOrEmpty(request.Genres))
|
||||||
{
|
{
|
||||||
var vals = request.Genres.Split(',');
|
var vals = request.Genres.Split('|');
|
||||||
items = items.Where(f => vals.Any(v => f.Genres.Contains(v, StringComparer.OrdinalIgnoreCase)));
|
items = items.Where(f => vals.Any(v => f.Genres.Contains(v, StringComparer.OrdinalIgnoreCase)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply genre filter
|
// Apply genre filter
|
||||||
if (!string.IsNullOrEmpty(request.AllGenres))
|
if (!string.IsNullOrEmpty(request.AllGenres))
|
||||||
{
|
{
|
||||||
var vals = request.AllGenres.Split(',');
|
var vals = request.AllGenres.Split('|');
|
||||||
items = items.Where(f => vals.All(v => f.Genres.Contains(v, StringComparer.OrdinalIgnoreCase)));
|
items = items.Where(f => vals.All(v => f.Genres.Contains(v, StringComparer.OrdinalIgnoreCase)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply studio filter
|
// Apply studio filter
|
||||||
if (!string.IsNullOrEmpty(request.Studios))
|
if (!string.IsNullOrEmpty(request.Studios))
|
||||||
{
|
{
|
||||||
var vals = request.Studios.Split(',');
|
var vals = request.Studios.Split('|');
|
||||||
items = items.Where(f => vals.Any(v => f.Studios.Contains(v, StringComparer.OrdinalIgnoreCase)));
|
items = items.Where(f => vals.Any(v => f.Studios.Contains(v, StringComparer.OrdinalIgnoreCase)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -154,5 +154,13 @@ namespace MediaBrowser.Controller.LiveTv
|
|||||||
/// <param name="cancellationToken">The cancellation token.</param>
|
/// <param name="cancellationToken">The cancellation token.</param>
|
||||||
/// <returns>Task{Stream}.</returns>
|
/// <returns>Task{Stream}.</returns>
|
||||||
Task<LiveStreamInfo> GetChannelStream(string channelId, CancellationToken cancellationToken);
|
Task<LiveStreamInfo> GetChannelStream(string channelId, CancellationToken cancellationToken);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Closes the live stream.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id">The identifier.</param>
|
||||||
|
/// <param name="cancellationToken">The cancellation token.</param>
|
||||||
|
/// <returns>Task.</returns>
|
||||||
|
Task CloseLiveStream(string id, CancellationToken cancellationToken);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,5 +14,11 @@ namespace MediaBrowser.Controller.LiveTv
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The URL.</value>
|
/// <value>The URL.</value>
|
||||||
public string Url { get; set; }
|
public string Url { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the identifier.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The identifier.</value>
|
||||||
|
public string Id { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -226,6 +226,39 @@ namespace MediaBrowser.Model.Web
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Adds the specified name.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="name">The name.</param>
|
||||||
|
/// <param name="value">The value.</param>
|
||||||
|
/// <param name="delimiter">The delimiter.</param>
|
||||||
|
/// <exception cref="System.ArgumentNullException">value</exception>
|
||||||
|
public void Add(string name, IEnumerable<string> value, string delimiter)
|
||||||
|
{
|
||||||
|
if (value == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException("value");
|
||||||
|
}
|
||||||
|
|
||||||
|
var paramValue = string.Join(delimiter, value.ToArray());
|
||||||
|
|
||||||
|
Add(name, paramValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Adds if not null.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="name">The name.</param>
|
||||||
|
/// <param name="value">The value.</param>
|
||||||
|
/// <param name="delimiter">The delimiter.</param>
|
||||||
|
public void AddIfNotNull(string name, IEnumerable<string> value, string delimiter)
|
||||||
|
{
|
||||||
|
if (value != null)
|
||||||
|
{
|
||||||
|
Add(name, value, delimiter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the query string.
|
/// Gets the query string.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
<Properties>
|
<Properties>
|
||||||
<MonoDevelop.Ide.Workspace ActiveConfiguration="Release Mono" />
|
<MonoDevelop.Ide.Workspace ActiveConfiguration="Release Mono" />
|
||||||
<MonoDevelop.Ide.Workbench ActiveDocument="MediaBrowser.Server.Mono\Networking\NetworkManager.cs">
|
<MonoDevelop.Ide.Workbench ActiveDocument="MediaBrowser.Server.Mono\app.config">
|
||||||
<Files>
|
<Files>
|
||||||
<File FileName="MediaBrowser.Server.Mono\app.config" Line="1" Column="1" />
|
<File FileName="MediaBrowser.Server.Mono\app.config" Line="1" Column="1" />
|
||||||
<File FileName="MediaBrowser.Server.Mono\Networking\NetworkManager.cs" Line="7" Column="26" />
|
|
||||||
</Files>
|
</Files>
|
||||||
</MonoDevelop.Ide.Workbench>
|
</MonoDevelop.Ide.Workbench>
|
||||||
<MonoDevelop.Ide.DebuggingService.Breakpoints>
|
<MonoDevelop.Ide.DebuggingService.Breakpoints>
|
||||||
|
@ -78,7 +78,7 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return MediaEncoder.Version;
|
return "ffmpeg20131209";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,57 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace MediaBrowser.ServerApplication.FFMpeg
|
|
||||||
{
|
|
||||||
public static class FFMpegDownloadInfo
|
|
||||||
{
|
|
||||||
public static string Version = ffmpegOsType("Version");
|
|
||||||
|
|
||||||
public static string[] FfMpegUrls = ffmpegOsType("FfMpegUrls").Split(',');
|
|
||||||
|
|
||||||
public static string FFMpegFilename = ffmpegOsType("FFMpegFilename");
|
|
||||||
public static string FFProbeFilename = ffmpegOsType("FFProbeFilename");
|
|
||||||
|
|
||||||
public static string ArchiveType = ffmpegOsType("ArchiveType");
|
|
||||||
|
|
||||||
private static string ffmpegOsType(string arg)
|
|
||||||
{
|
|
||||||
OperatingSystem os = Environment.OSVersion;
|
|
||||||
PlatformID pid = os.Platform;
|
|
||||||
switch (pid)
|
|
||||||
{
|
|
||||||
case PlatformID.Win32NT:
|
|
||||||
switch (arg)
|
|
||||||
{
|
|
||||||
case "Version":
|
|
||||||
return "ffmpeg20131221";
|
|
||||||
case "FfMpegUrls":
|
|
||||||
return "http://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20131221-git-70d6ce7-win32-static.7z,https://www.dropbox.com/s/d38uj7857trbw1g/ffmpeg-20131209-git-a12f679-win32-static.7z?dl=1";
|
|
||||||
case "FFMpegFilename":
|
|
||||||
return "ffmpeg.exe";
|
|
||||||
case "FFProbeFilename":
|
|
||||||
return "ffprobe.exe";
|
|
||||||
case "ArchiveType":
|
|
||||||
return "7z";
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PlatformID.Unix:
|
|
||||||
case PlatformID.MacOSX:
|
|
||||||
switch (arg)
|
|
||||||
{
|
|
||||||
case "Version":
|
|
||||||
return "ffmpeg20131221";
|
|
||||||
case "FfMpegUrls":
|
|
||||||
return "http://ffmpeg.gusari.org/static/32bit/ffmpeg.static.32bit.2013-12-21.tar.gz,https://www.dropbox.com/s/b9v17h105cps7p0/ffmpeg.static.32bit.2013-10-11.tar.gz?dl=1";
|
|
||||||
case "FFMpegFilename":
|
|
||||||
return "ffmpeg";
|
|
||||||
case "FFProbeFilename":
|
|
||||||
return "ffprobe";
|
|
||||||
case "ArchiveType":
|
|
||||||
return "gz";
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -22,7 +22,6 @@
|
|||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
<Externalconsole>true</Externalconsole>
|
<Externalconsole>true</Externalconsole>
|
||||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
@ -32,13 +31,11 @@
|
|||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
<Externalconsole>true</Externalconsole>
|
<Externalconsole>true</Externalconsole>
|
||||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<OutputPath>bin\Release</OutputPath>
|
<OutputPath>bin\Release</OutputPath>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release Mono|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release Mono|AnyCPU' ">
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
@ -78,11 +75,13 @@
|
|||||||
<Compile Include="..\MediaBrowser.ServerApplication\FFMpeg\FFMpegDownloader.cs">
|
<Compile Include="..\MediaBrowser.ServerApplication\FFMpeg\FFMpegDownloader.cs">
|
||||||
<Link>FFMpeg\FFMpegDownloader.cs</Link>
|
<Link>FFMpeg\FFMpegDownloader.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="FFMpeg\FFMpegDownloadInfo.cs" />
|
|
||||||
<Compile Include="IO\FileSystemFactory.cs" />
|
<Compile Include="IO\FileSystemFactory.cs" />
|
||||||
<Compile Include="..\MediaBrowser.ServerApplication\EntryPoints\WanAddressEntryPoint.cs">
|
<Compile Include="..\MediaBrowser.ServerApplication\EntryPoints\WanAddressEntryPoint.cs">
|
||||||
<Link>EntryPoints\WanAddressEntryPoint.cs</Link>
|
<Link>EntryPoints\WanAddressEntryPoint.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="..\MediaBrowser.ServerApplication\FFMpeg\FFMpegDownloadInfo.cs">
|
||||||
|
<Link>FFMpeg\FFMpegDownloadInfo.cs</Link>
|
||||||
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -1,19 +1,81 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
namespace MediaBrowser.ServerApplication.FFMpeg
|
namespace MediaBrowser.ServerApplication.FFMpeg
|
||||||
{
|
{
|
||||||
public static class FFMpegDownloadInfo
|
public static class FFMpegDownloadInfo
|
||||||
{
|
{
|
||||||
public static string Version = "ffmpeg20131209";
|
// Windows builds: http://ffmpeg.zeranoe.com/builds/
|
||||||
|
// Linux builds: http://ffmpeg.gusari.org/static/
|
||||||
|
|
||||||
public static string[] FfMpegUrls = new[]
|
public static string Version = ffmpegOsType("Version");
|
||||||
|
|
||||||
|
public static string[] FfMpegUrls = GetDownloadUrls();
|
||||||
|
|
||||||
|
public static string FFMpegFilename = ffmpegOsType("FFMpegFilename");
|
||||||
|
public static string FFProbeFilename = ffmpegOsType("FFProbeFilename");
|
||||||
|
|
||||||
|
public static string ArchiveType = ffmpegOsType("ArchiveType");
|
||||||
|
|
||||||
|
private static string ffmpegOsType(string arg)
|
||||||
{
|
{
|
||||||
"http://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20131209-git-a12f679-win32-static.7z",
|
OperatingSystem os = Environment.OSVersion;
|
||||||
"https://www.dropbox.com/s/d38uj7857trbw1g/ffmpeg-20131209-git-a12f679-win32-static.7z?dl=1"
|
PlatformID pid = os.Platform;
|
||||||
|
switch (pid)
|
||||||
|
{
|
||||||
|
case PlatformID.Win32NT:
|
||||||
|
switch (arg)
|
||||||
|
{
|
||||||
|
case "Version":
|
||||||
|
return "20140105";
|
||||||
|
case "FFMpegFilename":
|
||||||
|
return "ffmpeg.exe";
|
||||||
|
case "FFProbeFilename":
|
||||||
|
return "ffprobe.exe";
|
||||||
|
case "ArchiveType":
|
||||||
|
return "7z";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case PlatformID.Unix:
|
||||||
|
case PlatformID.MacOSX:
|
||||||
|
switch (arg)
|
||||||
|
{
|
||||||
|
case "Version":
|
||||||
|
return "20140104";
|
||||||
|
case "FFMpegFilename":
|
||||||
|
return "ffmpeg";
|
||||||
|
case "FFProbeFilename":
|
||||||
|
return "ffprobe";
|
||||||
|
case "ArchiveType":
|
||||||
|
return "gz";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string[] GetDownloadUrls()
|
||||||
|
{
|
||||||
|
var pid = Environment.OSVersion.Platform;
|
||||||
|
|
||||||
|
switch (pid)
|
||||||
|
{
|
||||||
|
case PlatformID.Win32NT:
|
||||||
|
return new[]
|
||||||
|
{
|
||||||
|
"http://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20140105-git-70937d9-win32-static.7z",
|
||||||
|
"https://www.dropbox.com/s/oghurnp5zh292ry/ffmpeg-20140105-git-70937d9-win32-static.7z?dl=1"
|
||||||
};
|
};
|
||||||
|
|
||||||
public static string FFMpegFilename = "ffmpeg.exe";
|
case PlatformID.Unix:
|
||||||
public static string FFProbeFilename = "ffprobe.exe";
|
case PlatformID.MacOSX:
|
||||||
|
return new[]
|
||||||
|
{
|
||||||
|
"http://ffmpeg.gusari.org/static/32bit/ffmpeg.static.32bit.2014-01-04.tar.gz",
|
||||||
|
"https://www.dropbox.com/s/b7nkg71sil812hp/ffmpeg.static.32bit.2014-01-04.tar.gz?dl=1"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
public static string ArchiveType = "7z";
|
return new string[] {};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -91,6 +91,15 @@
|
|||||||
<Content Include="dashboard-ui\css\icons.css">
|
<Content Include="dashboard-ui\css\icons.css">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
<Content Include="dashboard-ui\css\images\clients\amazon.png">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="dashboard-ui\css\images\clients\mediaportal.png">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="dashboard-ui\css\images\clients\playstore.png">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
<Content Include="dashboard-ui\css\images\clients\xbmc.png">
|
<Content Include="dashboard-ui\css\images\clients\xbmc.png">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user