diff options
| author | Patrick Barron <18354464+barronpm@users.noreply.github.com> | 2020-05-10 15:00:52 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-10 15:00:52 +0000 |
| commit | 0549d59a5f8fc38c6075e8ca162832ae2edd3571 (patch) | |
| tree | a6e47f85fc1f2b0af5df859ce319d31379a66d1d /MediaBrowser.Api/Playback/Hls/BaseHlsService.cs | |
| parent | 55cfa96b9f8127c6327702fe98407d771bb987b7 (diff) | |
| parent | f33876e7e351129ea2296b537b38f9c87fd67b70 (diff) | |
Merge branch 'master' into generated-code-cleanup
Diffstat (limited to 'MediaBrowser.Api/Playback/Hls/BaseHlsService.cs')
| -rw-r--r-- | MediaBrowser.Api/Playback/Hls/BaseHlsService.cs | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs b/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs index 52962366c..4213193ba 100644 --- a/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs +++ b/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs @@ -209,24 +209,28 @@ namespace MediaBrowser.Api.Playback.Hls try { // Need to use FileShare.ReadWrite because we're reading the file at the same time it's being written - using var fileStream = GetPlaylistFileStream(playlist); - using var reader = new StreamReader(fileStream); - var count = 0; - - while (!reader.EndOfStream) + var fileStream = GetPlaylistFileStream(playlist); + await using (fileStream.ConfigureAwait(false)) { - var line = reader.ReadLine(); + using var reader = new StreamReader(fileStream); + var count = 0; - if (line.IndexOf("#EXTINF:", StringComparison.OrdinalIgnoreCase) != -1) + while (!reader.EndOfStream) { - count++; - if (count >= segmentCount) + var line = await reader.ReadLineAsync().ConfigureAwait(false); + + if (line.IndexOf("#EXTINF:", StringComparison.OrdinalIgnoreCase) != -1) { - Logger.LogDebug("Finished waiting for {0} segments in {1}", segmentCount, playlist); - return; + count++; + if (count >= segmentCount) + { + Logger.LogDebug("Finished waiting for {0} segments in {1}", segmentCount, playlist); + return; + } } } } + await Task.Delay(100, cancellationToken).ConfigureAwait(false); } catch (IOException) |
