diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2005-08-29 15:45:38 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2005-08-29 15:45:38 +0200 |
commit | 3f73166049071f28bc44192b9eedc4f3021bb76d (patch) | |
tree | 1ec8fc525914277994d9a442f67f8fe7146fa4da | |
parent | 97b65c6645cc91a2067d6558b484d59edffb19cb (diff) | |
download | vdr-3f73166049071f28bc44192b9eedc4f3021bb76d.tar.gz vdr-3f73166049071f28bc44192b9eedc4f3021bb76d.tar.bz2 |
Fixed cDvbPlayer::SkipFrames() to properly handle radio recordings
-rw-r--r-- | CONTRIBUTORS | 1 | ||||
-rw-r--r-- | HISTORY | 2 | ||||
-rw-r--r-- | dvbplayer.c | 7 |
3 files changed, 8 insertions, 2 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index bf2df2fd..98a23c54 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -980,6 +980,7 @@ Reinhard Nissl <rnissl@gmx.de> for modifying handling of audio packets for radio channels in remux.c for suggesting to always use stream id 0xE0 for the video stream, to avoid problems with post processing tools that choke on different ids + for fixing cDvbPlayer::SkipFrames() to properly handle radio recordings Richard Robson <richard_robson@beeb.net> for reporting freezing replay if a timer starts while in Transfer Mode from the @@ -3757,3 +3757,5 @@ Video Disk Recorder Revision History - Now always using stream id 0xE0 for the video stream, to avoid problems with post processing tools that choke on different ids (suggested by Reinhard Nissl). - Updated the Estonian OSD texts (thanks to Arthur Konovalov). +- Fixed cDvbPlayer::SkipFrames() to properly handle radio recordings (thanks to + Reinhard Nissl). diff --git a/dvbplayer.c b/dvbplayer.c index e160697a..8f76ab6c 100644 --- a/dvbplayer.c +++ b/dvbplayer.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbplayer.c 1.39 2005/08/28 21:14:04 kls Exp $ + * $Id: dvbplayer.c 1.40 2005/08/29 15:43:30 kls Exp $ */ #include "dvbplayer.h" @@ -621,7 +621,10 @@ int cDvbPlayer::SkipFrames(int Frames) int Current, Total; GetIndex(Current, Total, true); int OldCurrent = Current; - Current = index->GetNextIFrame(Current + Frames, Frames > 0); + // As GetNextIFrame() increments/decrements at least once, the + // destination frame (= Current + Frames) must be adjusted by + // -1/+1 respectively. + Current = index->GetNextIFrame(Current + Frames + (Frames > 0 ? -1 : 1), Frames > 0); return Current >= 0 ? Current : OldCurrent; } return -1; |