Fixed freezing replay if a timer starts while in Transfer Mode

This commit is contained in:
Klaus Schmidinger 2003-08-16 13:24:23 +02:00
parent 2e9ef13f1c
commit 2eec57fe18
3 changed files with 13 additions and 3 deletions

View File

@ -757,3 +757,7 @@ Ernst F
Reinhard Nissl <rnissl@gmx.de>
for reporting a name clash because of function crc32() in libdtv/libsi/si_parser.c
when using other libraries that also implement a function by that name
Richard Robson <richard_robson@beeb.net>
for reporting freezing replay if a timer starts while in Transfer Mode from the
device used by the timer, and the timer needs a different transponder

View File

@ -2283,7 +2283,7 @@ Video Disk Recorder Revision History
or Makefile.config as defaults (thanks to Steffen Barszus).
- Added the usual menu timeout to the CAM menus.
2003-08-09: Version 1.2.3
2003-08-16: Version 1.2.3
- Fixed the TS to PES repacker so that it works with MPEG1 streams (thanks to
Andreas Kool).
@ -2304,3 +2304,6 @@ Video Disk Recorder Revision History
read correctly at program startup (suggested by Rainer Zocholl).
- Fixed a crash when starting "Pause live video" twice within the same minute on
the same channel.
- Fixed freezing replay if a timer starts while in Transfer Mode from the device
used by the timer, and the timer needs a different transponder (thanks to
Richard Robson for reporting this one).

7
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menu.c 1.266 2003/08/16 10:17:49 kls Exp $
* $Id: menu.c 1.267 2003/08/16 13:12:26 kls Exp $
*/
#include "menu.h"
@ -3099,8 +3099,11 @@ bool cRecordControls::Start(cTimer *Timer, bool Pause)
int Priority = Timer ? Timer->Priority() : Pause ? Setup.PausePriority : Setup.DefaultPriority;
cDevice *device = cDevice::GetDevice(channel, Priority, &NeedsDetachReceivers);
if (device) {
if (NeedsDetachReceivers)
if (NeedsDetachReceivers) {
Stop(device);
if (device == cDevice::ActualDevice())
cControl::Shutdown(); // in case this device was used for Transfer Mode
}
if (!device->SwitchChannel(channel, false)) {
cThread::EmergencyExit(true);
return false;