Project

General

Profile

Bug #4087

Series Link doesn't work if episodes have different titles

Added by Dave Pickles about 8 years ago. Updated about 8 years ago.

Status:
Accepted
Priority:
Normal
Category:
DVB
Target version:
-
Start date:
2016-11-19
Due date:
% Done:

100%

Estimated time:
Found in version:
4.1.2328
Affected Versions:

Description

(Tested on 4.1.2328 using UK Freeview DVB-T).

When a Series Link recording is scheduled from an EPG entry, the title of that episode is included in the parameters to be checked against events along with the series CRID and channel. This causes a problem if episodes of the series have different titles. For example this current series on UK Freeview:

Avalanche: Dangerous Earth
Volcano: Dangerous Earth
Lightning: Dangerous Earth

A series link based on one episode will not record the other episodes because their titles are different.

It is possible to manually work around the problem by changing the title in the series link (in this case to "Dangerous Earth"), but it would be preferable for the matching algorithm to ignore the event title if a valid series CRID is present.

History

#1

Updated by Dave Pickles about 8 years ago

Here is a simple patch I'm testing which should fix my issue, though I doubt it will be suitable for all of the environments where TVH is used.

--- src/dvr/dvr_autorec.c.orig  2016-11-19 19:00:32.421209344 +0000
+++ src/dvr/dvr_autorec.c       2016-11-19 19:03:04.131251951 +0000
@@ -159,14 +159,17 @@

   // Note: we always test season first, though it will only be set
   //       if configured
+  // Series link match trumps everything else
   if(dae->dae_serieslink) {
     if (!e->serieslink || dae->dae_serieslink != e->serieslink) return 0;
-  } else {
-    if(dae->dae_season)
-      if (!e->episode->season || dae->dae_season != e->episode->season) return 0;
-    if(dae->dae_brand)
-      if (!e->episode->brand || dae->dae_brand != e->episode->brand) return 0;
+    return 1;
   }
+ 
+  if(dae->dae_season)
+    if (!e->episode->season || dae->dae_season != e->episode->season) return 0;
+  if(dae->dae_brand)
+    if (!e->episode->brand || dae->dae_brand != e->episode->brand) return 0;
+  
   if(dae->dae_btype != DVR_AUTOREC_BTYPE_ALL) {
     if (dae->dae_btype == DVR_AUTOREC_BTYPE_NEW && e->is_repeat)
       return 0;

#2

Updated by Jaroslav Kysela about 8 years ago

  • Status changed from New to Fixed
  • % Done changed from 0 to 100

Applied in changeset commit:tvheadend|b93b557359da95c773e3df1675197f34334a186e.

#3

Updated by Jaroslav Kysela about 8 years ago

  • Status changed from Fixed to Accepted
  • Assignee set to Jaroslav Kysela

Reopen for comments.

Also available in: Atom PDF