commit
5b32d2cd64
|
@ -10,6 +10,9 @@ namespace Emby.Dlna.Profiles
|
|||
{
|
||||
Name = "Sharp Smart TV";
|
||||
|
||||
RequiresPlainFolders = true;
|
||||
RequiresPlainVideoItems = true;
|
||||
|
||||
Identification = new DeviceIdentification
|
||||
{
|
||||
Manufacturer = "Sharp",
|
||||
|
@ -36,10 +39,11 @@ namespace Emby.Dlna.Profiles
|
|||
|
||||
new TranscodingProfile
|
||||
{
|
||||
Container = "mkv",
|
||||
Container = "ts",
|
||||
Type = DlnaProfileType.Video,
|
||||
AudioCodec = "ac3,aac,mp3,dts,dca",
|
||||
VideoCodec = "h264"
|
||||
VideoCodec = "h264",
|
||||
EnableMpegtsM2TsMode = true
|
||||
},
|
||||
|
||||
new TranscodingProfile
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -127,6 +127,10 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
|
|||
{
|
||||
protocol = MediaProtocol.Udp;
|
||||
}
|
||||
else if (path.StartsWith("rtp", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
protocol = MediaProtocol.Rtmp;
|
||||
}
|
||||
|
||||
var mediaSource = new MediaSourceInfo
|
||||
{
|
||||
|
|
|
@ -19,6 +19,7 @@ namespace Emby.Server.Implementations.Sync
|
|||
private readonly IServerSyncProvider _provider;
|
||||
|
||||
private readonly SemaphoreSlim _dataLock = new SemaphoreSlim(1, 1);
|
||||
private readonly SemaphoreSlim _remoteDataLock = new SemaphoreSlim(1, 1);
|
||||
private List<LocalItem> _items;
|
||||
|
||||
private readonly ILogger _logger;
|
||||
|
@ -63,6 +64,10 @@ namespace Emby.Server.Implementations.Sync
|
|||
{
|
||||
_logger.Debug("Getting {0} from {1}", string.Join(MediaSync.PathSeparatorString, GetRemotePath().ToArray()), _provider.Name);
|
||||
|
||||
await _remoteDataLock.WaitAsync(cancellationToken).ConfigureAwait(false);
|
||||
|
||||
try
|
||||
{
|
||||
var fileResult = await _provider.GetFiles(GetRemotePath().ToArray(), _target, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
if (fileResult.Items.Length > 0)
|
||||
|
@ -72,6 +77,11 @@ namespace Emby.Server.Implementations.Sync
|
|||
return _json.DeserializeFromStream<List<LocalItem>>(stream);
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
_remoteDataLock.Release();
|
||||
}
|
||||
|
||||
return new List<LocalItem>();
|
||||
}
|
||||
|
@ -93,10 +103,20 @@ namespace Emby.Server.Implementations.Sync
|
|||
// Save to sync provider
|
||||
stream.Position = 0;
|
||||
var remotePath = GetRemotePath();
|
||||
|
||||
await _remoteDataLock.WaitAsync(cancellationToken).ConfigureAwait(false);
|
||||
|
||||
try
|
||||
{
|
||||
_logger.Debug("Saving data.json to {0}. Remote path: {1}", _provider.Name, string.Join("/", remotePath));
|
||||
|
||||
await _provider.SendFile(stream, remotePath, _target, new Progress<double>(), cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
finally
|
||||
{
|
||||
_remoteDataLock.Release();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async Task<T> GetData<T>(bool enableCache, Func<List<LocalItem>, T> dataFactory)
|
||||
|
|
|
@ -8,25 +8,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
|||
{
|
||||
public static string GetInputArgument(List<string> inputFiles, MediaProtocol protocol)
|
||||
{
|
||||
if (protocol == MediaProtocol.Http)
|
||||
{
|
||||
var url = inputFiles.First();
|
||||
|
||||
return string.Format("\"{0}\"", url);
|
||||
}
|
||||
if (protocol == MediaProtocol.Rtmp)
|
||||
{
|
||||
var url = inputFiles.First();
|
||||
|
||||
return string.Format("\"{0}\"", url);
|
||||
}
|
||||
if (protocol == MediaProtocol.Rtsp)
|
||||
{
|
||||
var url = inputFiles.First();
|
||||
|
||||
return string.Format("\"{0}\"", url);
|
||||
}
|
||||
if (protocol == MediaProtocol.Udp)
|
||||
if (protocol != MediaProtocol.File)
|
||||
{
|
||||
var url = inputFiles.First();
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ namespace MediaBrowser.Model.MediaInfo
|
|||
Http = 1,
|
||||
Rtmp = 2,
|
||||
Rtsp = 3,
|
||||
Udp = 4
|
||||
Udp = 4,
|
||||
Rtp = 5
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user