aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api')
-rw-r--r--MediaBrowser.Api/LiveTv/LiveTvService.cs14
-rw-r--r--MediaBrowser.Api/Playback/BaseStreamingService.cs16
2 files changed, 30 insertions, 0 deletions
diff --git a/MediaBrowser.Api/LiveTv/LiveTvService.cs b/MediaBrowser.Api/LiveTv/LiveTvService.cs
index 588fad8bd..61883ddaa 100644
--- a/MediaBrowser.Api/LiveTv/LiveTvService.cs
+++ b/MediaBrowser.Api/LiveTv/LiveTvService.cs
@@ -198,6 +198,13 @@ namespace MediaBrowser.Api.LiveTv
public string Id { get; set; }
}
+ [Route("/LiveTv/Channels/{Id}/Stream", "GET")]
+ public class GetInternalChannelStream
+ {
+ [ApiMember(Name = "Id", Description = "Channel Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
+ public string Id { get; set; }
+ }
+
public class LiveTvService : BaseApiService
{
private readonly ILiveTvManager _liveTvManager;
@@ -399,6 +406,13 @@ namespace MediaBrowser.Api.LiveTv
return ToStreamResult(stream.Stream, stream.MimeType);
}
+ public object Get(GetInternalChannelStream request)
+ {
+ var stream = _liveTvManager.GetChannelStream(request.Id, CancellationToken.None).Result;
+
+ return ToStreamResult(stream.Stream, stream.MimeType);
+ }
+
public object Get(GetRecordingGroups request)
{
var result = _liveTvManager.GetRecordingGroups(new RecordingGroupQuery
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index 34ec15a70..1e2ae58b2 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -902,6 +902,22 @@ namespace MediaBrowser.Api.Playback
item = recording;
}
+ else if (string.Equals(request.Type, "Channel", StringComparison.OrdinalIgnoreCase))
+ {
+ var channel = LiveTvManager.GetInternalChannel(request.Id);
+
+ state.VideoType = VideoType.VideoFile;
+ state.IsInputVideo = string.Equals(channel.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase);
+ state.PlayableStreamFileNames = new List<string>();
+
+ state.MediaPath = string.Format("http://localhost:{0}/mediabrowser/LiveTv/Channels/{1}/Stream",
+ ServerConfigurationManager.Configuration.HttpServerPortNumber,
+ request.Id);
+
+ state.IsRemote = true;
+
+ item = channel;
+ }
else
{
item = DtoService.GetItemByDtoId(request.Id);