From a92abad742cf0866497301c005db5a3aea14be7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Fri, 24 Sep 2010 16:35:11 +0000 Subject: [PATCH] In the unexpected case that an extractor seeked forward while we actually asked to seek backwards, cause us to produce silence. This fixes some occasionally very unpleasant noise after seeking. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38805 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/mediaplayer/supplier/MediaTrackAudioSupplier.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/apps/mediaplayer/supplier/MediaTrackAudioSupplier.cpp b/src/apps/mediaplayer/supplier/MediaTrackAudioSupplier.cpp index e9a68f14d0..f71a7b39d6 100644 --- a/src/apps/mediaplayer/supplier/MediaTrackAudioSupplier.cpp +++ b/src/apps/mediaplayer/supplier/MediaTrackAudioSupplier.cpp @@ -690,6 +690,12 @@ MediaTrackAudioSupplier::_SeekToKeyFrameBackward(int64& position) position = currentPosition; return B_OK; } + if (error == B_OK && position > wantedPosition) { + // We asked to seek backwards, but the extractor seeked + // forwards! Returning an error here will cause silence + // to be produced. + return B_ERROR; + } if (error == B_OK) error = fMediaTrack->SeekToFrame(&position, 0); if (error != B_OK) {