summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave <vdr@pickles.me.uk>2009-11-23 16:59:31 +0000
committerDave <vdr@pickles.me.uk>2009-11-23 16:59:31 +0000
commit9397e728cb55970ae06be00b712ad32be9ccdf18 (patch)
tree9f9b19a47ce7dcd68fcd161fe1eead53a557e11f
parent66af592390de8dc1cb6a61e6c2dcf743ad334194 (diff)
parentdb09b2a35cf9d914bc443339a922551e644994ce (diff)
downloadvdrtva-9397e728cb55970ae06be00b712ad32be9ccdf18.tar.gz
vdrtva-9397e728cb55970ae06be00b712ad32be9ccdf18.tar.bz2
Merge git://projects.vdr-developer.org/vdrtva
-rw-r--r--README - vps16
-rw-r--r--vdrtva-1.7.10.diff (renamed from vdrtva-1.7.9.diff)70
2 files changed, 57 insertions, 29 deletions
diff --git a/README - vps b/README - vps
new file mode 100644
index 0000000..966f575
--- /dev/null
+++ b/README - vps
@@ -0,0 +1,16 @@
+One of the important features of a video recorder is the ability to deal with programme schedule changes and to ensure that the wanted programme is always recorded. TVAnytime has its own set of data descriptors to handle late-running or cancelled programmes but these are not used by Freeview Plus. Instead the Running Status from the now/next section of the EIT is used to start and stop the recording.
+
+VDR can control timers from the running status by using 'VPS' functions in conjunction with this patch. Note however that the normal VPS operation will no longer work.
+
+To use VPS for accurate recording, some conditions must be met:
+
+- Parameter 'UseVps' in VDR's setup.conf must be set to 1
+- Timers must have the 'use VPS' flag set in timers.conf
+- The start time of a timer must be set to exactly the scheduled start time of the programme (ie no padding).
+
+With these conditions met, the sequence of events is:
+
+- Shortly before the scheduled time of the recording (set by 'VpsMargin' in VDR's setup.conf) VDR switches to the multiplex containing the channel to be recorded
+- VDR monitors the running status of the programme to be recorded
+- When the running status changes to 'running', VDR starts recording
+- When the running status changes to 'not running', VDR stops recording and deletes the timer.
diff --git a/vdrtva-1.7.9.diff b/vdrtva-1.7.10.diff
index d410ca9..22b962f 100644
--- a/vdrtva-1.7.9.diff
+++ b/vdrtva-1.7.10.diff
@@ -1,6 +1,6 @@
-diff -ur vdr-1.7.9/channels.c vdr-1.7/channels.c
---- vdr-1.7.9/channels.c 2009-08-16 16:08:49.000000000 +0100
-+++ vdr-1.7/channels.c 2009-08-23 15:15:16.000000000 +0100
+diff -ur vdr-1.7.10/channels.c vdr-1.7/channels.c
+--- vdr-1.7.10/channels.c 2009-08-30 12:25:50.000000000 +0100
++++ vdr-1.7/channels.c 2009-11-22 16:12:06.000000000 +0000
@@ -188,6 +188,7 @@
shortName = strdup("");
provider = strdup("");
@@ -47,7 +47,7 @@ diff -ur vdr-1.7.9/channels.c vdr-1.7/channels.c
#define STRDIFF 0x01
#define VALDIFF 0x02
-@@ -752,11 +763,11 @@
+@@ -755,11 +766,11 @@
q += IntArrayToString(q, Channel->dpids, 10, Channel->dlangs);
}
*q = 0;
@@ -61,7 +61,7 @@ diff -ur vdr-1.7.9/channels.c vdr-1.7/channels.c
}
return buffer;
}
-@@ -791,13 +802,16 @@
+@@ -794,13 +805,16 @@
char *vpidbuf = NULL;
char *apidbuf = NULL;
char *caidbuf = NULL;
@@ -79,7 +79,7 @@ diff -ur vdr-1.7.9/channels.c vdr-1.7/channels.c
caids[0] = tpid;
caids[1] = 0;
tpid = 0;
-@@ -904,12 +918,17 @@
+@@ -907,12 +921,17 @@
}
name = strcpyrealloc(name, namebuf);
@@ -97,9 +97,9 @@ diff -ur vdr-1.7.9/channels.c vdr-1.7/channels.c
if (!GetChannelID().Valid()) {
esyslog("ERROR: channel data results in invalid ID!");
return false;
-diff -ur vdr-1.7.9/channels.h vdr-1.7/channels.h
---- vdr-1.7.9/channels.h 2009-08-16 15:58:26.000000000 +0100
-+++ vdr-1.7/channels.h 2009-08-23 15:15:16.000000000 +0100
+diff -ur vdr-1.7.10/channels.h vdr-1.7/channels.h
+--- vdr-1.7.10/channels.h 2009-08-30 12:05:54.000000000 +0100
++++ vdr-1.7/channels.h 2009-11-22 16:12:06.000000000 +0000
@@ -116,6 +116,7 @@
char *shortName;
char *provider;
@@ -124,8 +124,8 @@ diff -ur vdr-1.7.9/channels.h vdr-1.7/channels.h
void SetPids(int Vpid, int Ppid, int Vtype, int *Apids, char ALangs[][MAXLANGCODE2], int *Dpids, char DLangs[][MAXLANGCODE2], int *Spids, char SLangs[][MAXLANGCODE2], int Tpid);
void SetCaIds(const int *CaIds); // list must be zero-terminated
void SetCaDescriptors(int Level);
-diff -ur vdr-1.7.9/eit.c vdr-1.7/eit.c
---- vdr-1.7.9/eit.c 2009-06-21 14:46:20.000000000 +0100
+diff -ur vdr-1.7.10/eit.c vdr-1.7/eit.c
+--- vdr-1.7.10/eit.c 2009-06-21 14:46:20.000000000 +0100
+++ vdr-1.7/eit.c 2009-08-23 15:15:16.000000000 +0100
@@ -121,6 +121,8 @@
SI::Descriptor *d;
@@ -184,9 +184,9 @@ diff -ur vdr-1.7.9/eit.c vdr-1.7/eit.c
pEvent->SetComponents(Components);
-diff -ur vdr-1.7.9/epg.c vdr-1.7/epg.c
---- vdr-1.7.9/epg.c 2008-05-01 15:53:55.000000000 +0100
-+++ vdr-1.7/epg.c 2009-06-06 09:48:00.000000000 +0100
+diff -ur vdr-1.7.10/epg.c vdr-1.7/epg.c
+--- vdr-1.7.10/epg.c 2008-05-01 15:53:55.000000000 +0100
++++ vdr-1.7/epg.c 2009-11-03 18:06:11.000000000 +0000
@@ -115,6 +115,8 @@
startTime = 0;
duration = 0;
@@ -244,8 +244,8 @@ diff -ur vdr-1.7.9/epg.c vdr-1.7/epg.c
default: esyslog("ERROR: unexpected tag while reading EPG data: %s", s);
return false;
}
-diff -ur vdr-1.7.9/epg.h vdr-1.7/epg.h
---- vdr-1.7.9/epg.h 2006-10-07 14:47:19.000000000 +0100
+diff -ur vdr-1.7.10/epg.h vdr-1.7/epg.h
+--- vdr-1.7.10/epg.h 2006-10-07 14:47:19.000000000 +0100
+++ vdr-1.7/epg.h 2009-06-06 09:48:00.000000000 +0100
@@ -66,6 +66,8 @@
int duration; // Duration of this event in seconds
@@ -274,8 +274,8 @@ diff -ur vdr-1.7.9/epg.h vdr-1.7/epg.h
void SetSeen(void);
cString ToDescr(void) const;
void Dump(FILE *f, const char *Prefix = "", bool InfoOnly = false) const;
-diff -ur vdr-1.7.9/libsi/descriptor.c vdr-1.7/libsi/descriptor.c
---- vdr-1.7.9/libsi/descriptor.c 2007-02-03 11:45:58.000000000 +0000
+diff -ur vdr-1.7.10/libsi/descriptor.c vdr-1.7/libsi/descriptor.c
+--- vdr-1.7.10/libsi/descriptor.c 2007-02-03 11:45:58.000000000 +0000
+++ vdr-1.7/libsi/descriptor.c 2009-06-06 09:48:00.000000000 +0100
@@ -643,6 +643,29 @@
textualServiceIdentifier.setData(data+sizeof(descr_service_identifier), getLength()-sizeof(descr_service_identifier));
@@ -307,8 +307,8 @@ diff -ur vdr-1.7.9/libsi/descriptor.c vdr-1.7/libsi/descriptor.c
void MultilingualNameDescriptor::Parse() {
nameLoop.setData(data+sizeof(descr_multilingual_network_name), getLength()-sizeof(descr_multilingual_network_name));
}
-diff -ur vdr-1.7.9/libsi/descriptor.h vdr-1.7/libsi/descriptor.h
---- vdr-1.7.9/libsi/descriptor.h 2007-02-03 11:45:58.000000000 +0000
+diff -ur vdr-1.7.10/libsi/descriptor.h vdr-1.7/libsi/descriptor.h
+--- vdr-1.7.10/libsi/descriptor.h 2007-02-03 11:45:58.000000000 +0000
+++ vdr-1.7/libsi/descriptor.h 2009-06-06 09:48:00.000000000 +0100
@@ -361,6 +361,25 @@
virtual void Parse();
@@ -336,8 +336,8 @@ diff -ur vdr-1.7.9/libsi/descriptor.h vdr-1.7/libsi/descriptor.h
//abstract base class
class MultilingualNameDescriptor : public Descriptor {
public:
-diff -ur vdr-1.7.9/libsi/headers.h vdr-1.7/libsi/headers.h
---- vdr-1.7.9/libsi/headers.h 2007-02-03 11:45:58.000000000 +0000
+diff -ur vdr-1.7.10/libsi/headers.h vdr-1.7/libsi/headers.h
+--- vdr-1.7.10/libsi/headers.h 2007-02-03 11:45:58.000000000 +0000
+++ vdr-1.7/libsi/headers.h 2009-06-06 09:48:00.000000000 +0100
@@ -1673,11 +1673,39 @@
u_char descriptor_length :8;
@@ -379,8 +379,8 @@ diff -ur vdr-1.7.9/libsi/headers.h vdr-1.7/libsi/headers.h
};
/* 0x77 time_slice_fec_identifier_descriptor (ETSI EN 301 192) */
-diff -ur vdr-1.7.9/libsi/si.c vdr-1.7/libsi/si.c
---- vdr-1.7.9/libsi/si.c 2008-03-05 17:00:55.000000000 +0000
+diff -ur vdr-1.7.10/libsi/si.c vdr-1.7/libsi/si.c
+--- vdr-1.7.10/libsi/si.c 2008-03-05 17:00:55.000000000 +0000
+++ vdr-1.7/libsi/si.c 2009-06-06 09:48:00.000000000 +0100
@@ -605,6 +605,12 @@
case ExtensionDescriptorTag:
@@ -406,8 +406,8 @@ diff -ur vdr-1.7.9/libsi/si.c vdr-1.7/libsi/si.c
case TimeSliceFecIdentifierDescriptorTag:
case ECMRepetitionRateDescriptorTag:
case EnhancedAC3DescriptorTag:
-diff -ur vdr-1.7.9/sdt.c vdr-1.7/sdt.c
---- vdr-1.7.9/sdt.c 2008-04-12 14:33:55.000000000 +0100
+diff -ur vdr-1.7.10/sdt.c vdr-1.7/sdt.c
+--- vdr-1.7.10/sdt.c 2008-04-12 14:33:55.000000000 +0100
+++ vdr-1.7/sdt.c 2009-06-06 09:48:00.000000000 +0100
@@ -124,6 +124,12 @@
}
@@ -422,9 +422,21 @@ diff -ur vdr-1.7.9/sdt.c vdr-1.7/sdt.c
default: ;
}
delete d;
-diff -ur vdr-1.7.9/vdr.5 vdr-1.7/vdr.5
---- vdr-1.7.9/vdr.5 2009-01-06 12:37:35.000000000 +0000
-+++ vdr-1.7/vdr.5 2009-06-06 09:48:00.000000000 +0100
+diff -ur vdr-1.7.10/timers.c vdr-1.7/timers.c
+--- vdr-1.7.10/timers.c 2009-08-09 13:43:20.000000000 +0100
++++ vdr-1.7/timers.c 2009-11-01 13:54:46.000000000 +0000
+@@ -423,7 +423,7 @@
+ }
+
+ if (HasFlags(tfActive)) {
+- if (HasFlags(tfVps) && event && event->Vps()) {
++ if (HasFlags(tfVps) && event) {
+ if (Margin || !Directly) {
+ startTime = event->StartTime();
+ stopTime = event->EndTime();
+diff -ur vdr-1.7.10/vdr.5 vdr-1.7/vdr.5
+--- vdr-1.7.10/vdr.5 2009-10-18 15:09:07.000000000 +0100
++++ vdr-1.7/vdr.5 2009-11-22 16:12:06.000000000 +0000
@@ -186,6 +186,9 @@
.B RID
The Radio ID of this channel (typically 0, may be used to distinguish channels where