Repository navigation
fix: keep what a seek decoded at the new position - #433
Merged
Merged
Conversation
MediaPlayer::Seek flushed the pacer after releasing its lock. When the decode thread performed the seek in between and decoded at the new position, that flush threw it away: an audio source, decoded seconds ahead, skipped ahead or ended at once. The flush now happens under the lock the decode thread takes the request with. This made MediaPlayerTest.positionFollowsABackwardSeekOfAudio fail now and then, which now also checks that playback goes on.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
MediaPlayer::Seekflushed the pacer after releasing its lock. When the decode thread carried out the seek in between and decoded at the new position, the late flush threw that away. An audio source, decoded seconds ahead, then skipped ahead or ended at once. The flush now happens under the lock the decode thread takes the request with.This is what made
MediaPlayerTest.positionFollowsABackwardSeekOfAudiofail now and then (1.19 s on linux_arm64, 3.9 s on windows_x86_64). The test now also checks that playback goes on after the seek.