aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-04-06 14:50:16 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-04-06 14:50:16 -0400
commitde24402277d6f4b3812818cb9b65da14e4322a45 (patch)
tree225b38f6e4e102fd95533e8f1801dea01af03330
parente221bd5c9e733a8749b477d827323e99c713099f (diff)
parent494e5aab297bdff86f7c2d5de335c0c91146ee5d (diff)
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
-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;
}