summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS3
-rw-r--r--HISTORY10
-rw-r--r--ci.c4
-rw-r--r--config.h4
-rw-r--r--dvbplayer.c6
-rw-r--r--nit.c53
-rw-r--r--vdr.c4
7 files changed, 48 insertions, 36 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index fd0ad59..f6e5c94 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -1118,6 +1118,7 @@ Reinhard Nissl <rnissl@gmx.de>
for making cCommand::Execute() use cPipe instead of popen() to avoid problems
with open file handles when starting background commands
for fixing handling error status in cDvbTuner::GetFrontendStatus()
+ for fixing a busy loop in fast forward if the next video data file is missing
Richard Robson <richard_robson@beeb.net>
for reporting freezing replay if a timer starts while in Transfer Mode from the
@@ -1392,6 +1393,7 @@ Marco Schlüßler <marco@lordzodiac.de>
for reporting a problem with displaying the replay mode symbol in case of "Multi
speed mode"
for removing 'assert(0)' from cDvbSpuDecoder::setTime()
+ for fixing handling ChannelUp/Down keys if there is currently a replay running
Jürgen Schmitz <j.schmitz@web.de>
for reporting a bug in displaying the current channel when switching via the SVDRP
@@ -2006,6 +2008,7 @@ Anssi Hannula <anssi.hannula@gmail.com>
for suggesting that cDevice::GetDevice() should prefer any device that's already
receiving and doesn't require detatching receivers
for improving handling Transfer Mode devices when selecting a device to receive
+ for fixing handling frequencies in NitFilter::Process()
Antti Hartikainen <ami+vdr@ah.fi>
for updating 'S13E' in 'sources.conf'
diff --git a/HISTORY b/HISTORY
index 038ee27..b3ecc49 100644
--- a/HISTORY
+++ b/HISTORY
@@ -5047,3 +5047,13 @@ Video Disk Recorder Revision History
2007-03-03: Version 1.4.6
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
+
+2007-04-30: Version 1.4.6-1
+
+- Fixed a busy loop in fast forward if the next video data file is missing
+ (thanks to Reinhard Nissl).
+- Fixed handling frequencies in NitFilter::Process() (thanks to Anssi Hannula).
+- Fixed handling ChannelUp/Down keys if there is currently a replay running
+ (thanks to Marco Schlüßler).
+- Increased the maximum number of CA system ids to cope with the AlphaCrypt
+ CAM's version 3.11 firmware.
diff --git a/ci.c b/ci.c
index cce7b5d..4b973de 100644
--- a/ci.c
+++ b/ci.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: ci.c 1.46 2007/01/05 10:08:46 kls Exp $
+ * $Id: ci.c 1.46.1.1 2007/04/30 12:58:41 kls Exp $
*/
#include "ci.h"
@@ -943,7 +943,7 @@ void cCiCaPmt::AddCaDescriptors(int Length, const uint8_t *Data)
// --- cCiConditionalAccessSupport -------------------------------------------
-#define MAXCASYSTEMIDS 16
+#define MAXCASYSTEMIDS 64
// CA Enable Ids:
diff --git a/config.h b/config.h
index 075c774..32ad31b 100644
--- a/config.h
+++ b/config.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: config.h 1.282.1.3 2007/02/25 12:09:29 kls Exp $
+ * $Id: config.h 1.282.1.4 2007/04/30 09:50:37 kls Exp $
*/
#ifndef __CONFIG_H
@@ -21,7 +21,7 @@
// VDR's own version number:
-#define VDRVERSION "1.4.6"
+#define VDRVERSION "1.4.6-1"
#define VDRVERSNUM 10406 // Version * 10000 + Major * 100 + Minor
// The plugin API's version number:
diff --git a/dvbplayer.c b/dvbplayer.c
index 7d50663..99b3f5c 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.45 2006/04/17 12:45:48 kls Exp $
+ * $Id: dvbplayer.c 1.46 2007/04/28 14:55:22 kls Exp $
*/
#include "dvbplayer.h"
@@ -402,8 +402,10 @@ void cDvbPlayer::Action(void)
bool TimeShiftMode = index->IsStillRecording();
int Index = index->GetNextIFrame(readIndex, playDir == pdForward, &FileNumber, &FileOffset, &Length, TimeShiftMode);
if (Index >= 0) {
- if (!NextFile(FileNumber, FileOffset))
+ if (!NextFile(FileNumber, FileOffset)) {
+ readIndex = Index;
continue;
+ }
}
else {
if (!TimeShiftMode && playDir == pdForward) {
diff --git a/nit.c b/nit.c
index 4f53562..9291c96 100644
--- a/nit.c
+++ b/nit.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: nit.c 1.13 2006/10/28 12:31:04 kls Exp $
+ * $Id: nit.c 1.14 2007/04/29 11:35:33 kls Exp $
*/
#include "nit.h"
@@ -144,17 +144,16 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
if (!Channel->GroupSep() && Channel->Source() == Source && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
if (Setup.UpdateChannels >= 5) {
- if (ISTRANSPONDER(cChannel::Transponder(Frequency, Polarization), Transponder())) { // only modify channels if we're actually receiving this transponder
- if (!ISTRANSPONDER(cChannel::Transponder(Frequency, Polarization), Channel->Transponder())) {
- for (int n = 0; n < NumFrequencies; n++) {
- if (ISTRANSPONDER(cChannel::Transponder(Frequencies[n], Polarization), Channel->Transponder())) {
- Frequency = Frequencies[n];
- break;
- }
+ if (!ISTRANSPONDER(cChannel::Transponder(Frequency, Polarization), Channel->Transponder())) {
+ for (int n = 0; n < NumFrequencies; n++) {
+ if (ISTRANSPONDER(cChannel::Transponder(Frequencies[n], Polarization), Channel->Transponder())) {
+ Frequency = Frequencies[n];
+ break;
}
- }
- Channel->SetSatTransponderData(Source, Frequency, Polarization, SymbolRate, CodeRate);
+ }
}
+ if (ISTRANSPONDER(cChannel::Transponder(Frequency, Polarization), Transponder())) // only modify channels if we're actually receiving this transponder
+ Channel->SetSatTransponderData(Source, Frequency, Polarization, SymbolRate, CodeRate);
}
found = true;
}
@@ -195,17 +194,16 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
if (!Channel->GroupSep() && Channel->Source() == Source && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
if (Setup.UpdateChannels >= 5) {
- if (ISTRANSPONDER(Frequency / 1000, Transponder())) { // only modify channels if we're actually receiving this transponder
- if (!ISTRANSPONDER(Frequency / 1000, Channel->Transponder())) {
- for (int n = 0; n < NumFrequencies; n++) {
- if (ISTRANSPONDER(Frequencies[n] / 1000, Channel->Transponder())) {
- Frequency = Frequencies[n];
- break;
- }
+ if (!ISTRANSPONDER(Frequency / 1000, Channel->Transponder())) {
+ for (int n = 0; n < NumFrequencies; n++) {
+ if (ISTRANSPONDER(Frequencies[n] / 1000, Channel->Transponder())) {
+ Frequency = Frequencies[n];
+ break;
}
- }
- Channel->SetCableTransponderData(Source, Frequency, Modulation, SymbolRate, CodeRate);
+ }
}
+ if (ISTRANSPONDER(Frequency / 1000, Transponder())) // only modify channels if we're actually receiving this transponder
+ Channel->SetCableTransponderData(Source, Frequency, Modulation, SymbolRate, CodeRate);
}
found = true;
}
@@ -253,17 +251,16 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
if (!Channel->GroupSep() && Channel->Source() == Source && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
if (Setup.UpdateChannels >= 5) {
- if (ISTRANSPONDER(Frequency / 1000000, Transponder())) { // only modify channels if we're actually receiving this transponder
- if (!ISTRANSPONDER(Frequency / 1000000, Channel->Transponder())) {
- for (int n = 0; n < NumFrequencies; n++) {
- if (ISTRANSPONDER(Frequencies[n] / 1000000, Channel->Transponder())) {
- Frequency = Frequencies[n];
- break;
- }
+ if (!ISTRANSPONDER(Frequency / 1000000, Channel->Transponder())) {
+ for (int n = 0; n < NumFrequencies; n++) {
+ if (ISTRANSPONDER(Frequencies[n] / 1000000, Channel->Transponder())) {
+ Frequency = Frequencies[n];
+ break;
}
- }
- Channel->SetTerrTransponderData(Source, Frequency, Bandwidth, Constellation, Hierarchy, CodeRateHP, CodeRateLP, GuardInterval, TransmissionMode);
+ }
}
+ if (ISTRANSPONDER(Frequency / 1000000, Transponder())) // only modify channels if we're actually receiving this transponder
+ Channel->SetTerrTransponderData(Source, Frequency, Bandwidth, Constellation, Hierarchy, CodeRateHP, CodeRateLP, GuardInterval, TransmissionMode);
}
found = true;
}
diff --git a/vdr.c b/vdr.c
index a628cd0..7d971fb 100644
--- a/vdr.c
+++ b/vdr.c
@@ -22,7 +22,7 @@
*
* The project's page is at http://www.cadsoft.de/vdr
*
- * $Id: vdr.c 1.282 2006/12/02 16:22:12 kls Exp $
+ * $Id: vdr.c 1.282.1.1 2007/04/30 09:48:23 kls Exp $
*/
#include <getopt.h>
@@ -947,7 +947,7 @@ int main(int argc, char *argv[])
case kChanDn:
if (!Interact)
Menu = new cDisplayChannel(NORMALKEY(key));
- else if (cDisplayChannel::IsOpen()) {
+ else if (cDisplayChannel::IsOpen() || cControl::Control()) {
Interact->ProcessKey(key);
continue;
}