mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-11-03 19:17:24 -05:00 
			
		
		
		
	
						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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user