aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Api/Playback/BaseStreamingService.cs4
-rw-r--r--MediaBrowser.Dlna/PlayTo/DlnaController.cs37
2 files changed, 22 insertions, 19 deletions
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index f57927f87..fe45cd39e 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -1749,11 +1749,11 @@ namespace MediaBrowser.Api.Playback
if (isStaticallyStreamed)
{
- flagValue = flagValue | DlnaFlags.DLNA_ORG_FLAG_BYTE_BASED_SEEK;
+ //flagValue = flagValue | DlnaFlags.DLNA_ORG_FLAG_BYTE_BASED_SEEK;
}
else if (state.RunTimeTicks.HasValue)
{
- flagValue = flagValue | DlnaFlags.DLNA_ORG_FLAG_TIME_BASED_SEEK;
+ //flagValue = flagValue | DlnaFlags.DLNA_ORG_FLAG_TIME_BASED_SEEK;
}
var dlnaflags = string.Format(";DLNA.ORG_FLAGS={0}000000000000000000000000",
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;
}