better encoding
This commit is contained in:
parent
e88eacab09
commit
da5198298c
|
@ -277,11 +277,7 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
|
||||||
{
|
{
|
||||||
stream.Type = MediaStreamType.Subtitle;
|
stream.Type = MediaStreamType.Subtitle;
|
||||||
}
|
}
|
||||||
else if (streamInfo.codec_type.Equals("data", StringComparison.OrdinalIgnoreCase))
|
else if (streamInfo.codec_type.Equals("video", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
|
||||||
stream.Type = MediaStreamType.Data;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
stream.Type = MediaStreamType.Video;
|
stream.Type = MediaStreamType.Video;
|
||||||
|
|
||||||
|
@ -293,6 +289,10 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
|
||||||
stream.AverageFrameRate = GetFrameRate(streamInfo.avg_frame_rate);
|
stream.AverageFrameRate = GetFrameRate(streamInfo.avg_frame_rate);
|
||||||
stream.RealFrameRate = GetFrameRate(streamInfo.r_frame_rate);
|
stream.RealFrameRate = GetFrameRate(streamInfo.r_frame_rate);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
// Get stream bitrate
|
// Get stream bitrate
|
||||||
if (stream.Type != MediaStreamType.Subtitle)
|
if (stream.Type != MediaStreamType.Subtitle)
|
||||||
|
|
|
@ -51,7 +51,9 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
audio.MediaStreams = data.streams.Select(s => GetMediaStream(s, data.format)).ToList();
|
audio.MediaStreams = data.streams.Select(s => GetMediaStream(s, data.format))
|
||||||
|
.Where(i => i != null)
|
||||||
|
.ToList();
|
||||||
|
|
||||||
// Get the first audio stream
|
// Get the first audio stream
|
||||||
var stream = data.streams.First(s => s.codec_type.Equals("audio", StringComparison.OrdinalIgnoreCase));
|
var stream = data.streams.First(s => s.codec_type.Equals("audio", StringComparison.OrdinalIgnoreCase));
|
||||||
|
@ -146,7 +148,7 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="val">The val.</param>
|
/// <param name="val">The val.</param>
|
||||||
/// <returns>System.String[][].</returns>
|
/// <returns>System.String[][].</returns>
|
||||||
private string[] Split(string val)
|
private string[] Split(string val)
|
||||||
{
|
{
|
||||||
// Only use the comma as a delimeter if there are no slashes or pipes.
|
// Only use the comma as a delimeter if there are no slashes or pipes.
|
||||||
// We want to be careful not to split names that have commas in them
|
// We want to be careful not to split names that have commas in them
|
||||||
|
@ -168,7 +170,7 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
|
||||||
if (!string.IsNullOrEmpty(val))
|
if (!string.IsNullOrEmpty(val))
|
||||||
{
|
{
|
||||||
var studios =
|
var studios =
|
||||||
val.Split(new[] {'/', '|'}, StringSplitOptions.RemoveEmptyEntries)
|
val.Split(new[] { '/', '|' }, StringSplitOptions.RemoveEmptyEntries)
|
||||||
.Where(i => !string.Equals(i, audio.Artist, StringComparison.OrdinalIgnoreCase) && !string.Equals(i, audio.AlbumArtist, StringComparison.OrdinalIgnoreCase));
|
.Where(i => !string.Equals(i, audio.Artist, StringComparison.OrdinalIgnoreCase) && !string.Equals(i, audio.AlbumArtist, StringComparison.OrdinalIgnoreCase));
|
||||||
|
|
||||||
audio.Studios.Clear();
|
audio.Studios.Clear();
|
||||||
|
|
|
@ -213,7 +213,9 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
|
||||||
|
|
||||||
if (data.streams != null)
|
if (data.streams != null)
|
||||||
{
|
{
|
||||||
video.MediaStreams = data.streams.Select(s => GetMediaStream(s, data.format)).ToList();
|
video.MediaStreams = data.streams.Select(s => GetMediaStream(s, data.format))
|
||||||
|
.Where(i => i != null)
|
||||||
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.Chapters != null)
|
if (data.Chapters != null)
|
||||||
|
|
|
@ -143,10 +143,6 @@ namespace MediaBrowser.Model.Entities
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The subtitle
|
/// The subtitle
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Subtitle,
|
Subtitle
|
||||||
/// <summary>
|
|
||||||
/// The data
|
|
||||||
/// </summary>
|
|
||||||
Data
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,9 +95,11 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
return name;
|
return name;
|
||||||
}());
|
}());
|
||||||
|
|
||||||
function encodeName(name) {
|
self.encodeName = function (name) {
|
||||||
return encodeURIComponent(name).replace("'", '%27');
|
|
||||||
}
|
var val = $.param({ name: name });
|
||||||
|
return val.substring(val.indexOf('=') + 1).replace("'", '%27');
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wraps around jQuery ajax methods to add additional info to the request.
|
* Wraps around jQuery ajax methods to add additional info to the request.
|
||||||
|
@ -874,7 +876,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
options.userId = userId;
|
options.userId = userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Studios/" + encodeName(name), options);
|
var url = self.getUrl("Studios/" + self.encodeName(name), options);
|
||||||
|
|
||||||
return self.ajax({
|
return self.ajax({
|
||||||
type: "GET",
|
type: "GET",
|
||||||
|
@ -898,7 +900,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
options.userId = userId;
|
options.userId = userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Genres/" + encodeName(name), options);
|
var url = self.getUrl("Genres/" + self.encodeName(name), options);
|
||||||
|
|
||||||
return self.ajax({
|
return self.ajax({
|
||||||
type: "GET",
|
type: "GET",
|
||||||
|
@ -922,7 +924,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
options.userId = userId;
|
options.userId = userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Artists/" + encodeName(name), options);
|
var url = self.getUrl("Artists/" + self.encodeName(name), options);
|
||||||
|
|
||||||
return self.ajax({
|
return self.ajax({
|
||||||
type: "GET",
|
type: "GET",
|
||||||
|
@ -946,7 +948,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
options.userId = userId;
|
options.userId = userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Years/" + encodeName(name), options);
|
var url = self.getUrl("Years/" + self.encodeName(name), options);
|
||||||
|
|
||||||
return self.ajax({
|
return self.ajax({
|
||||||
type: "GET",
|
type: "GET",
|
||||||
|
@ -970,7 +972,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
options.userId = userId;
|
options.userId = userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Persons/" + encodeName(name), options);
|
var url = self.getUrl("Persons/" + self.encodeName(name), options);
|
||||||
|
|
||||||
return self.ajax({
|
return self.ajax({
|
||||||
type: "GET",
|
type: "GET",
|
||||||
|
@ -1096,7 +1098,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var url = "Persons/" + encodeName(name) + "/Images/" + options.type;
|
var url = "Persons/" + self.encodeName(name) + "/Images/" + options.type;
|
||||||
|
|
||||||
if (options.index != null) {
|
if (options.index != null) {
|
||||||
url += "/" + options.index;
|
url += "/" + options.index;
|
||||||
|
@ -1166,7 +1168,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var url = "Genres/" + encodeName(name) + "/Images/" + options.type;
|
var url = "Genres/" + self.encodeName(name) + "/Images/" + options.type;
|
||||||
|
|
||||||
if (options.index != null) {
|
if (options.index != null) {
|
||||||
url += "/" + options.index;
|
url += "/" + options.index;
|
||||||
|
@ -1201,7 +1203,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var url = "Artists/" + encodeName(name) + "/Images/" + options.type;
|
var url = "Artists/" + self.encodeName(name) + "/Images/" + options.type;
|
||||||
|
|
||||||
if (options.index != null) {
|
if (options.index != null) {
|
||||||
url += "/" + options.index;
|
url += "/" + options.index;
|
||||||
|
@ -1236,7 +1238,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var url = "Studios/" + encodeName(name) + "/Images/" + options.type;
|
var url = "Studios/" + self.encodeName(name) + "/Images/" + options.type;
|
||||||
|
|
||||||
if (options.index != null) {
|
if (options.index != null) {
|
||||||
url += "/" + options.index;
|
url += "/" + options.index;
|
||||||
|
@ -1880,7 +1882,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
throw new Error("null name");
|
throw new Error("null name");
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Users/" + userId + "/Favorites/Artists/" + encodeName(name));
|
var url = self.getUrl("Users/" + userId + "/Favorites/Artists/" + self.encodeName(name));
|
||||||
|
|
||||||
var method = isFavorite ? "POST" : "DELETE";
|
var method = isFavorite ? "POST" : "DELETE";
|
||||||
|
|
||||||
|
@ -1900,7 +1902,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
throw new Error("null name");
|
throw new Error("null name");
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Users/" + userId + "/Favorites/Persons/" + encodeName(name));
|
var url = self.getUrl("Users/" + userId + "/Favorites/Persons/" + self.encodeName(name));
|
||||||
|
|
||||||
var method = isFavorite ? "POST" : "DELETE";
|
var method = isFavorite ? "POST" : "DELETE";
|
||||||
|
|
||||||
|
@ -1920,7 +1922,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
throw new Error("null name");
|
throw new Error("null name");
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Users/" + userId + "/Favorites/Studios/" + encodeName(name));
|
var url = self.getUrl("Users/" + userId + "/Favorites/Studios/" + self.encodeName(name));
|
||||||
|
|
||||||
var method = isFavorite ? "POST" : "DELETE";
|
var method = isFavorite ? "POST" : "DELETE";
|
||||||
|
|
||||||
|
@ -1940,7 +1942,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
throw new Error("null name");
|
throw new Error("null name");
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Users/" + userId + "/Favorites/Genres/" + encodeName(name));
|
var url = self.getUrl("Users/" + userId + "/Favorites/Genres/" + self.encodeName(name));
|
||||||
|
|
||||||
var method = isFavorite ? "POST" : "DELETE";
|
var method = isFavorite ? "POST" : "DELETE";
|
||||||
|
|
||||||
|
@ -1966,7 +1968,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
throw new Error("null name");
|
throw new Error("null name");
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Users/" + userId + "/Ratings/Artists/" + encodeName(name), {
|
var url = self.getUrl("Users/" + userId + "/Ratings/Artists/" + self.encodeName(name), {
|
||||||
likes: likes
|
likes: likes
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1986,7 +1988,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
throw new Error("null name");
|
throw new Error("null name");
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Users/" + userId + "/Ratings/Persons/" + encodeName(name), {
|
var url = self.getUrl("Users/" + userId + "/Ratings/Persons/" + self.encodeName(name), {
|
||||||
likes: likes
|
likes: likes
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -2006,7 +2008,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
throw new Error("null name");
|
throw new Error("null name");
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Users/" + userId + "/Ratings/Studios/" + encodeName(name), {
|
var url = self.getUrl("Users/" + userId + "/Ratings/Studios/" + self.encodeName(name), {
|
||||||
likes: likes
|
likes: likes
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -2026,7 +2028,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
throw new Error("null name");
|
throw new Error("null name");
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Users/" + userId + "/Ratings/Genres/" + encodeName(name), {
|
var url = self.getUrl("Users/" + userId + "/Ratings/Genres/" + self.encodeName(name), {
|
||||||
likes: likes
|
likes: likes
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -2051,7 +2053,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
throw new Error("null name");
|
throw new Error("null name");
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Users/" + userId + "/Ratings/Artists/" + encodeName(name));
|
var url = self.getUrl("Users/" + userId + "/Ratings/Artists/" + self.encodeName(name));
|
||||||
|
|
||||||
return self.ajax({
|
return self.ajax({
|
||||||
type: "DELETE",
|
type: "DELETE",
|
||||||
|
@ -2069,7 +2071,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
throw new Error("null name");
|
throw new Error("null name");
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Users/" + userId + "/Ratings/Persons/" + encodeName(name));
|
var url = self.getUrl("Users/" + userId + "/Ratings/Persons/" + self.encodeName(name));
|
||||||
|
|
||||||
return self.ajax({
|
return self.ajax({
|
||||||
type: "DELETE",
|
type: "DELETE",
|
||||||
|
@ -2087,7 +2089,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
throw new Error("null name");
|
throw new Error("null name");
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Users/" + userId + "/Ratings/Studios/" + encodeName(name));
|
var url = self.getUrl("Users/" + userId + "/Ratings/Studios/" + self.encodeName(name));
|
||||||
|
|
||||||
return self.ajax({
|
return self.ajax({
|
||||||
type: "DELETE",
|
type: "DELETE",
|
||||||
|
@ -2105,7 +2107,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
throw new Error("null name");
|
throw new Error("null name");
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Users/" + userId + "/Ratings/Genres/" + encodeName(name));
|
var url = self.getUrl("Users/" + userId + "/Ratings/Genres/" + self.encodeName(name));
|
||||||
|
|
||||||
return self.ajax({
|
return self.ajax({
|
||||||
type: "DELETE",
|
type: "DELETE",
|
||||||
|
@ -2126,7 +2128,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
throw new Error("null name");
|
throw new Error("null name");
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Persons/" + encodeName(name) + "/Counts", {
|
var url = self.getUrl("Persons/" + self.encodeName(name) + "/Counts", {
|
||||||
userId: userId
|
userId: userId
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -2150,7 +2152,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
throw new Error("null name");
|
throw new Error("null name");
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Genres/" + encodeName(name) + "/Counts", {
|
var url = self.getUrl("Genres/" + self.encodeName(name) + "/Counts", {
|
||||||
userId: userId
|
userId: userId
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -2174,7 +2176,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
throw new Error("null name");
|
throw new Error("null name");
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Artists/" + encodeName(name) + "/Counts", {
|
var url = self.getUrl("Artists/" + self.encodeName(name) + "/Counts", {
|
||||||
userId: userId
|
userId: userId
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -2198,7 +2200,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
|
||||||
throw new Error("null name");
|
throw new Error("null name");
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Studios/" + encodeName(name) + "/Counts", {
|
var url = self.getUrl("Studios/" + self.encodeName(name) + "/Counts", {
|
||||||
userId: userId
|
userId: userId
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="MediaBrowser.ApiClient.Javascript" version="3.0.88" targetFramework="net45" />
|
<package id="MediaBrowser.ApiClient.Javascript" version="3.0.91" targetFramework="net45" />
|
||||||
<package id="ServiceStack.Common" version="3.9.43" targetFramework="net45" />
|
<package id="ServiceStack.Common" version="3.9.43" targetFramework="net45" />
|
||||||
<package id="ServiceStack.Text" version="3.9.43" targetFramework="net45" />
|
<package id="ServiceStack.Text" version="3.9.43" targetFramework="net45" />
|
||||||
</packages>
|
</packages>
|
Loading…
Reference in New Issue
Block a user