mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Changed the behaviour when hitting the end of a recording in fast forward mode
This commit is contained in:
		| @@ -1076,6 +1076,7 @@ Reinhard Nissl <rnissl@gmx.de> | ||||
|  for fixing replaying recordings of radio channels with many audio tracks | ||||
|  for speeding up cRemux::ScanVideoPacket() | ||||
|  for implementing cDevice::ForceTransferMode() | ||||
|  for changing the behaviour when hitting the end of a recording in fast forward mode | ||||
|  | ||||
| Richard Robson <richard_robson@beeb.net> | ||||
|  for reporting freezing replay if a timer starts while in Transfer Mode from the | ||||
|   | ||||
							
								
								
									
										3
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -4492,3 +4492,6 @@ Video Disk Recorder Revision History | ||||
|   respectively. | ||||
| - The initial channel and volume can now be defined in the "Setup/Miscellaneous" | ||||
|   menu (based on a patch from Thomas Keil). | ||||
| - When hitting the end of a recording in fast forward mode, VDR no longer switches | ||||
|   back to normal speed if the recording is already finished (thanks to Reinhard | ||||
|   Nissl). | ||||
|   | ||||
							
								
								
									
										11
									
								
								dvbplayer.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								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.43 2006/02/19 14:20:15 kls Exp $ | ||||
|  * $Id: dvbplayer.c 1.44 2006/04/09 13:47:11 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #include "dvbplayer.h" | ||||
| @@ -399,12 +399,19 @@ void cDvbPlayer::Action(void) | ||||
|                     if (playMode == pmFast || (playMode == pmSlow && playDir == pdBackward)) { | ||||
|                        uchar FileNumber; | ||||
|                        int FileOffset; | ||||
|                        int Index = index->GetNextIFrame(readIndex, playDir == pdForward, &FileNumber, &FileOffset, &Length, true); | ||||
|                        bool TimeShiftMode = index->IsStillRecording(); | ||||
|                        int Index = index->GetNextIFrame(readIndex, playDir == pdForward, &FileNumber, &FileOffset, &Length, TimeShiftMode); | ||||
|                        if (Index >= 0) { | ||||
|                           if (!NextFile(FileNumber, FileOffset)) | ||||
|                              continue; | ||||
|                           } | ||||
|                        else { | ||||
|                           if (!TimeShiftMode && playDir == pdForward) { | ||||
|                              // hit end of recording: signal end of file but don't change playMode | ||||
|                              readIndex = -1; | ||||
|                              eof = true; | ||||
|                              continue; | ||||
|                              } | ||||
|                           // hit begin of recording: wait for device buffers to drain | ||||
|                           // before changing play mode: | ||||
|                           if (!DeviceFlush(100)) | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
|  * See the main source file 'vdr.c' for copyright information and | ||||
|  * how to reach the author. | ||||
|  * | ||||
|  * $Id: recording.c 1.143 2006/03/26 09:11:00 kls Exp $ | ||||
|  * $Id: recording.c 1.144 2006/04/09 13:49:51 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #include "recording.h" | ||||
| @@ -1368,6 +1368,11 @@ int cIndexFile::Get(uchar FileNumber, int FileOffset) | ||||
|   return -1; | ||||
| } | ||||
|  | ||||
| bool cIndexFile::IsStillRecording() | ||||
| { | ||||
|   return f >= 0; | ||||
| } | ||||
|  | ||||
| // --- cFileName ------------------------------------------------------------- | ||||
|  | ||||
| #include <errno.h> | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
|  * See the main source file 'vdr.c' for copyright information and | ||||
|  * how to reach the author. | ||||
|  * | ||||
|  * $Id: recording.h 1.53 2006/02/25 12:24:46 kls Exp $ | ||||
|  * $Id: recording.h 1.54 2006/04/09 13:47:11 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #ifndef __RECORDING_H | ||||
| @@ -210,6 +210,7 @@ public: | ||||
|   int Last(void) { CatchUp(); return last; } | ||||
|   int GetResume(void) { return resumeFile.Read(); } | ||||
|   bool StoreResume(int Index) { return resumeFile.Save(Index); } | ||||
|   bool IsStillRecording(void); | ||||
|   }; | ||||
|  | ||||
| class cFileName { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user