aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Connect/IConnectManager.cs5
-rw-r--r--MediaBrowser.Controller/Entities/User.cs1
-rw-r--r--MediaBrowser.Controller/Library/IUserManager.cs27
-rw-r--r--MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs76
-rw-r--r--MediaBrowser.Controller/Session/AuthenticationRequest.cs1
5 files changed, 63 insertions, 47 deletions
diff --git a/MediaBrowser.Controller/Connect/IConnectManager.cs b/MediaBrowser.Controller/Connect/IConnectManager.cs
index f899c7262..70bdc52e6 100644
--- a/MediaBrowser.Controller/Connect/IConnectManager.cs
+++ b/MediaBrowser.Controller/Connect/IConnectManager.cs
@@ -58,10 +58,7 @@ namespace MediaBrowser.Controller.Connect
/// <summary>
/// Authenticates the specified username.
/// </summary>
- /// <param name="username">The username.</param>
- /// <param name="passwordMd5">The password MD5.</param>
- /// <returns>Task.</returns>
- Task<ConnectAuthenticationResult> Authenticate(string username, string passwordMd5);
+ Task<ConnectAuthenticationResult> Authenticate(string username, string password, string passwordMd5);
/// <summary>
/// Gets the local user.
diff --git a/MediaBrowser.Controller/Entities/User.cs b/MediaBrowser.Controller/Entities/User.cs
index 3c89037cc..cca3091c1 100644
--- a/MediaBrowser.Controller/Entities/User.cs
+++ b/MediaBrowser.Controller/Entities/User.cs
@@ -30,6 +30,7 @@ namespace MediaBrowser.Controller.Entities
/// <value>The password.</value>
public string Password { get; set; }
public string EasyPassword { get; set; }
+ public string Salt { get; set; }
public string ConnectUserName { get; set; }
public string ConnectUserId { get; set; }
diff --git a/MediaBrowser.Controller/Library/IUserManager.cs b/MediaBrowser.Controller/Library/IUserManager.cs
index 6da3e53aa..d4232c77e 100644
--- a/MediaBrowser.Controller/Library/IUserManager.cs
+++ b/MediaBrowser.Controller/Library/IUserManager.cs
@@ -59,16 +59,6 @@ namespace MediaBrowser.Controller.Library
User GetUserByName(string name);
/// <summary>
- /// Authenticates a User and returns a result indicating whether or not it succeeded
- /// </summary>
- /// <param name="username">The username.</param>
- /// <param name="passwordSha1">The password sha1.</param>
- /// <param name="remoteEndPoint">The remote end point.</param>
- /// <returns>Task{System.Boolean}.</returns>
- /// <exception cref="System.ArgumentNullException">user</exception>
- Task<User> AuthenticateUser(string username, string passwordSha1, string remoteEndPoint);
-
- /// <summary>
/// Refreshes metadata for each user
/// </summary>
/// <param name="cancellationToken">The cancellation token.</param>
@@ -135,18 +125,12 @@ namespace MediaBrowser.Controller.Library
/// <summary>
/// Changes the password.
/// </summary>
- /// <param name="user">The user.</param>
- /// <param name="newPasswordSha1">The new password sha1.</param>
- /// <returns>Task.</returns>
- void ChangePassword(User user, string newPasswordSha1);
+ void ChangePassword(User user, string newPassword, string newPasswordSha1);
/// <summary>
/// Changes the easy password.
/// </summary>
- /// <param name="user">The user.</param>
- /// <param name="newPasswordSha1">The new password sha1.</param>
- /// <returns>Task.</returns>
- void ChangeEasyPassword(User user, string newPasswordSha1);
+ void ChangeEasyPassword(User user, string newPassword, string newPasswordSha1);
/// <summary>
/// Gets the user dto.
@@ -159,12 +143,7 @@ namespace MediaBrowser.Controller.Library
/// <summary>
/// Authenticates the user.
/// </summary>
- /// <param name="username">The username.</param>
- /// <param name="passwordSha1">The password sha1.</param>
- /// <param name="passwordMd5">The password MD5.</param>
- /// <param name="remoteEndPoint">The remote end point.</param>
- /// <returns>Task&lt;System.Boolean&gt;.</returns>
- Task<User> AuthenticateUser(string username, string passwordSha1, string passwordMd5, string remoteEndPoint);
+ Task<User> AuthenticateUser(string username, string password, string passwordSha1, string passwordMd5, string remoteEndPoint);
/// <summary>
/// Starts the forgot password process.
diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
index 1060dc8de..a10a0bec8 100644
--- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
+++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
@@ -1288,10 +1288,7 @@ namespace MediaBrowser.Controller.MediaEncoding
/// <summary>
/// Gets the internal graphical subtitle param.
/// </summary>
- /// <param name="state">The state.</param>
- /// <param name="outputVideoCodec">The output video codec.</param>
- /// <returns>System.String.</returns>
- public string GetGraphicalSubtitleParam(EncodingJobInfo state, string outputVideoCodec)
+ public string GetGraphicalSubtitleParam(EncodingJobInfo state, EncodingOptions options, string outputVideoCodec)
{
var outputSizeParam = string.Empty;
@@ -1300,7 +1297,7 @@ namespace MediaBrowser.Controller.MediaEncoding
// Add resolution params, if specified
if (request.Width.HasValue || request.Height.HasValue || request.MaxHeight.HasValue || request.MaxWidth.HasValue)
{
- outputSizeParam = GetOutputSizeParam(state, outputVideoCodec).TrimEnd('"');
+ outputSizeParam = GetOutputSizeParam(state, options, outputVideoCodec).TrimEnd('"');
if (string.Equals(outputVideoCodec, "h264_vaapi", StringComparison.OrdinalIgnoreCase))
{
@@ -1343,11 +1340,8 @@ namespace MediaBrowser.Controller.MediaEncoding
/// <summary>
/// If we're going to put a fixed size on the command line, this will calculate it
/// </summary>
- /// <param name="state">The state.</param>
- /// <param name="outputVideoCodec">The output video codec.</param>
- /// <param name="allowTimeStampCopy">if set to <c>true</c> [allow time stamp copy].</param>
- /// <returns>System.String.</returns>
public string GetOutputSizeParam(EncodingJobInfo state,
+ EncodingOptions options,
string outputVideoCodec,
bool allowTimeStampCopy = true)
{
@@ -1365,7 +1359,14 @@ namespace MediaBrowser.Controller.MediaEncoding
if (state.DeInterlace && !string.Equals(outputVideoCodec, "h264_vaapi", StringComparison.OrdinalIgnoreCase))
{
- filters.Add("yadif=0:-1:0");
+ if (string.Equals(options.DeinterlaceMethod, "bobandweave", StringComparison.OrdinalIgnoreCase))
+ {
+ filters.Add("yadif=1:-1:0");
+ }
+ else
+ {
+ filters.Add("yadif=0:-1:0");
+ }
}
if (string.Equals(outputVideoCodec, "h264_vaapi", StringComparison.OrdinalIgnoreCase))
@@ -1400,13 +1401,22 @@ namespace MediaBrowser.Controller.MediaEncoding
}
else
{
+ var isExynosV4L2 = string.Equals(outputVideoCodec, "h264_v4l2m2m", StringComparison.OrdinalIgnoreCase);
+
// If fixed dimensions were supplied
if (request.Width.HasValue && request.Height.HasValue)
{
var widthParam = request.Width.Value.ToString(_usCulture);
var heightParam = request.Height.Value.ToString(_usCulture);
- filters.Add(string.Format("scale=trunc({0}/2)*2:trunc({1}/2)*2", widthParam, heightParam));
+ if (isExynosV4L2)
+ {
+ filters.Add(string.Format("scale=trunc({0}/64)*64:trunc({1}/2)*2", widthParam, heightParam));
+ }
+ else
+ {
+ filters.Add(string.Format("scale=trunc({0}/2)*2:trunc({1}/2)*2", widthParam, heightParam));
+ }
}
// If Max dimensions were supplied, for width selects lowest even number between input width and width req size and selects lowest even number from in width*display aspect and requested size
@@ -1415,7 +1425,14 @@ namespace MediaBrowser.Controller.MediaEncoding
var maxWidthParam = request.MaxWidth.Value.ToString(_usCulture);
var maxHeightParam = request.MaxHeight.Value.ToString(_usCulture);
- filters.Add(string.Format("scale=trunc(min(max(iw\\,ih*dar)\\,min({0}\\,{1}*dar))/2)*2:trunc(min(max(iw/dar\\,ih)\\,min({0}/dar\\,{1}))/2)*2", maxWidthParam, maxHeightParam));
+ if (isExynosV4L2)
+ {
+ filters.Add(string.Format("scale=trunc(min(max(iw\\,ih*dar)\\,min({0}\\,{1}*dar))/64)*64:trunc(min(max(iw/dar\\,ih)\\,min({0}/dar\\,{1}))/2)*2", maxWidthParam, maxHeightParam));
+ }
+ else
+ {
+ filters.Add(string.Format("scale=trunc(min(max(iw\\,ih*dar)\\,min({0}\\,{1}*dar))/2)*2:trunc(min(max(iw/dar\\,ih)\\,min({0}/dar\\,{1}))/2)*2", maxWidthParam, maxHeightParam));
+ }
}
// If a fixed width was requested
@@ -1431,7 +1448,14 @@ namespace MediaBrowser.Controller.MediaEncoding
{
var heightParam = request.Height.Value.ToString(_usCulture);
- filters.Add(string.Format("scale=trunc(oh*a/2)*2:{0}", heightParam));
+ if (isExynosV4L2)
+ {
+ filters.Add(string.Format("scale=trunc(oh*a/64)*64:{0}", heightParam));
+ }
+ else
+ {
+ filters.Add(string.Format("scale=trunc(oh*a/2)*2:{0}", heightParam));
+ }
}
// If a max width was requested
@@ -1439,7 +1463,14 @@ namespace MediaBrowser.Controller.MediaEncoding
{
var maxWidthParam = request.MaxWidth.Value.ToString(_usCulture);
- filters.Add(string.Format("scale=trunc(min(max(iw\\,ih*dar)\\,{0})/2)*2:trunc(ow/dar/2)*2", maxWidthParam));
+ if (isExynosV4L2)
+ {
+ filters.Add(string.Format("scale=trunc(min(max(iw\\,ih*dar)\\,{0})/64)*64:trunc(ow/dar/2)*2", maxWidthParam));
+ }
+ else
+ {
+ filters.Add(string.Format("scale=trunc(min(max(iw\\,ih*dar)\\,{0})/2)*2:trunc(ow/dar/2)*2", maxWidthParam));
+ }
}
// If a max height was requested
@@ -1447,7 +1478,14 @@ namespace MediaBrowser.Controller.MediaEncoding
{
var maxHeightParam = request.MaxHeight.Value.ToString(_usCulture);
- filters.Add(string.Format("scale=trunc(oh*a/2)*2:min(max(iw/dar\\,ih)\\,{0})", maxHeightParam));
+ if (isExynosV4L2)
+ {
+ filters.Add(string.Format("scale=trunc(oh*a/64)*64:min(max(iw/dar\\,ih)\\,{0})", maxHeightParam));
+ }
+ else
+ {
+ filters.Add(string.Format("scale=trunc(oh*a/2)*2:min(max(iw/dar\\,ih)\\,{0})", maxHeightParam));
+ }
}
}
@@ -1903,9 +1941,9 @@ namespace MediaBrowser.Controller.MediaEncoding
{
case "avc":
case "h264":
- if (_mediaEncoder.SupportsDecoder("h264_omx") && encodingOptions.HardwareDecodingCodecs.Contains("h264", StringComparer.OrdinalIgnoreCase))
+ if (_mediaEncoder.SupportsDecoder("h264_mmal") && encodingOptions.HardwareDecodingCodecs.Contains("h264", StringComparer.OrdinalIgnoreCase))
{
- return "-c:v h264_omx ";
+ return "-c:v h264_mmal";
}
break;
}
@@ -2055,7 +2093,7 @@ namespace MediaBrowser.Controller.MediaEncoding
// Add resolution params, if specified
if (!hasGraphicalSubs)
{
- var outputSizeParam = GetOutputSizeParam(state, videoCodec);
+ var outputSizeParam = GetOutputSizeParam(state, encodingOptions, videoCodec);
args += outputSizeParam;
hasCopyTs = outputSizeParam.IndexOf("copyts", StringComparison.OrdinalIgnoreCase) != -1;
}
@@ -2079,7 +2117,7 @@ namespace MediaBrowser.Controller.MediaEncoding
// This is for internal graphical subs
if (hasGraphicalSubs)
{
- args += GetGraphicalSubtitleParam(state, videoCodec);
+ args += GetGraphicalSubtitleParam(state, encodingOptions, videoCodec);
}
if (!state.RunTimeTicks.HasValue)
diff --git a/MediaBrowser.Controller/Session/AuthenticationRequest.cs b/MediaBrowser.Controller/Session/AuthenticationRequest.cs
index 362f5b2b9..1b684fa8f 100644
--- a/MediaBrowser.Controller/Session/AuthenticationRequest.cs
+++ b/MediaBrowser.Controller/Session/AuthenticationRequest.cs
@@ -5,6 +5,7 @@ namespace MediaBrowser.Controller.Session
{
public string Username { get; set; }
public string UserId { get; set; }
+ public string Password { get; set; }
public string PasswordSha1 { get; set; }
public string PasswordMd5 { get; set; }
public string App { get; set; }