]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Improve SUMMARY metadata in matroska files
authorAndreas Öman <andreas@lonelycoder.com>
Tue, 3 May 2011 19:03:49 +0000 (21:03 +0200)
committerAndreas Öman <andreas@lonelycoder.com>
Tue, 3 May 2011 19:03:49 +0000 (21:03 +0200)
Choose longest string from EPG's description, extended description,
extended item or extended text.

src/dvr/dvr_db.c

index 01170fff2db389366954881cf045c92eb762e135..efbc6c178a4ffd387c985e42723862c924fc2d2a 100644 (file)
@@ -320,6 +320,20 @@ dvr_entry_create(const char *config_name,
 }
 
 
+/**
+ *
+ */
+static const char *
+longest_string(const char *a, const char *b)
+{
+  if(b == NULL)
+    return a;
+  if(a == NULL)
+    return b;
+  return strlen(a) > strlen(b) ? a : b;
+}
+
+
 /**
  *
  */
@@ -328,12 +342,19 @@ dvr_entry_create_by_event(const char *config_name,
                           event_t *e, const char *creator, 
                          dvr_autorec_entry_t *dae, dvr_prio_t pri)
 {
+  const char *desc = NULL;
   if(e->e_channel == NULL || e->e_title == NULL)
     return NULL;
 
+  // Try to find best description
+
+  desc = longest_string(e->e_desc, e->e_ext_desc);
+  desc = longest_string(desc, e->e_ext_item);
+  desc = longest_string(desc, e->e_ext_text);
+
   return dvr_entry_create(config_name,
                           e->e_channel, e->e_start, e->e_stop, 
-                         e->e_title, e->e_desc, creator, dae, &e->e_episode,
+                         e->e_title, desc, creator, dae, &e->e_episode,
                          e->e_content_type, pri);
 }