aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author7illusions <z@7illusions.com>2014-04-06 20:34:47 +0200
committer7illusions <z@7illusions.com>2014-04-06 20:34:47 +0200
commit871a3cb52c987188f6d65b8944d29b7c7ba403f8 (patch)
tree9f49dddabb5cb912c98a61daeb61ac439bbddb67
parentc60103df64104459883f1244363cc9cd39187545 (diff)
PlayTo Progressreporting
-rw-r--r--MediaBrowser.Dlna/PlayTo/DlnaController.cs37
1 files changed, 20 insertions, 17 deletions
diff --git a/MediaBrowser.Dlna/PlayTo/DlnaController.cs b/MediaBrowser.Dlna/PlayTo/DlnaController.cs
index b1c85889d..6edb9d6f6 100644
--- a/MediaBrowser.Dlna/PlayTo/DlnaController.cs
+++ b/MediaBrowser.Dlna/PlayTo/DlnaController.cs
@@ -167,25 +167,28 @@ namespace MediaBrowser.Dlna.PlayTo
if (_currentItem == null || _device.IsStopped)
return;
- if (!_playbackStarted)
+ var playlistItem = Playlist.FirstOrDefault(p => p.PlayState == 1);
+
+ if (playlistItem != null)
{
- await _sessionManager.OnPlaybackStart(new PlaybackInfo
+ if (!_playbackStarted)
{
- Item = _currentItem,
- SessionId = _session.Id,
- CanSeek = true,
- QueueableMediaTypes = new List<string> { _currentItem.MediaType }
-
- }).ConfigureAwait(false);
+ await _sessionManager.OnPlaybackStart(new PlaybackInfo
+ {
+ Item = _currentItem,
+ SessionId = _session.Id,
+ CanSeek = true,
+ QueueableMediaTypes = new List<string> { _currentItem.MediaType },
+ MediaSourceId = playlistItem.MediaSourceId,
+ AudioStreamIndex = playlistItem.AudioStreamIndex,
+ SubtitleStreamIndex = playlistItem.SubtitleStreamIndex
- _playbackStarted = true;
- }
+ }).ConfigureAwait(false);
- if ((_device.IsPlaying || _device.IsPaused))
- {
- var playlistItem = Playlist.FirstOrDefault(p => p.PlayState == 1);
+ _playbackStarted = true;
+ }
- if (playlistItem != null)
+ if ((_device.IsPlaying || _device.IsPaused))
{
var ticks = _device.Position.Ticks;
@@ -487,7 +490,7 @@ namespace MediaBrowser.Dlna.PlayTo
return (contentFeatures + orgOp + orgCi + dlnaflags).Trim(';');
}
-
+
private PlaylistItem GetPlaylistItem(BaseItem item, List<MediaStream> mediaStreams, DeviceProfile profile)
{
var video = item as Video;
@@ -563,10 +566,10 @@ namespace MediaBrowser.Dlna.PlayTo
_logger.Debug("{0} - SetAvTransport Uri: {1} DlnaHeaders: {2}", _device.Properties.Name, nextTrack.StreamUrl, dlnaheaders);
await _device.SetAvTransport(nextTrack.StreamUrl, dlnaheaders, nextTrack.Didl);
-
+
if (nextTrack.StartPositionTicks > 0 && !nextTrack.Transcode)
await _device.Seek(TimeSpan.FromTicks(nextTrack.StartPositionTicks));
-
+
return true;
}