]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Write more tags in MKV files #127
authorAndreas Öman <andreas@lonelycoder.com>
Mon, 30 Aug 2010 10:06:13 +0000 (10:06 +0000)
committerAndreas Öman <andreas@lonelycoder.com>
Mon, 30 Aug 2010 10:06:13 +0000 (10:06 +0000)
src/dvr/dvr.h
src/dvr/dvr_db.c
src/dvr/mkmux.c
src/webui/extjs.c

index 5b7768fa2837a6bcee393481a0b57131229e8e64..703443f4f764bd4f7cffce694b4bb9bbe203d941 100644 (file)
@@ -93,7 +93,6 @@ typedef struct dvr_entry {
 
   gtimer_t de_timer;
 
-
   /**
    * These meta fields will stay valid as long as reference count > 0
    */
@@ -115,6 +114,7 @@ typedef struct dvr_entry {
   dvr_prio_t de_pri;
 
   epg_episode_t de_episode;
+  uint8_t de_content_type;
 
   uint32_t de_dont_reschedule;
 
@@ -216,7 +216,8 @@ dvr_entry_t *dvr_entry_create_by_event(event_t *e, const char *creator,
 dvr_entry_t *dvr_entry_create(channel_t *ch, time_t start, time_t stop, 
                              const char *title, const char *description,
                              const char *creator, dvr_autorec_entry_t *dae,
-                             epg_episode_t *ee, dvr_prio_t pri);
+                             epg_episode_t *ee, uint8_t content_type,
+                             dvr_prio_t pri);
 
 void dvr_init(void);
 
index 7b12410265e842b7558a5461da3e4df320e11947..a05a98472a66a35a6b485e4b5aa029c3328fe4e9 100644 (file)
@@ -249,7 +249,7 @@ dvr_entry_t *
 dvr_entry_create(channel_t *ch, time_t start, time_t stop, 
                 const char *title, const char *description,
                 const char *creator, dvr_autorec_entry_t *dae,
-                epg_episode_t *ee, dvr_prio_t pri)
+                epg_episode_t *ee, uint8_t content_type, dvr_prio_t pri)
 {
   dvr_entry_t *de;
   char tbuf[30];
@@ -288,6 +288,8 @@ dvr_entry_create(channel_t *ch, time_t start, time_t stop,
     tvh_str_set(&de->de_episode.ee_onscreen, ee->ee_onscreen);
   }
 
+  de->de_content_type = content_type;
+
   dvr_entry_link(de);
 
   t = de->de_start - de->de_start_extra * 60;
@@ -321,7 +323,7 @@ dvr_entry_create_by_event(event_t *e, const char *creator,
 
   return dvr_entry_create(e->e_channel, e->e_start, e->e_stop, 
                          e->e_title, e->e_desc, creator, dae, &e->e_episode,
-                         pri);
+                         e->e_content_type, pri);
 }
 
 
@@ -471,6 +473,8 @@ dvr_db_load_one(htsmsg_t *c, int id)
   if(!htsmsg_get_s32(c, "part", &d))
     de->de_episode.ee_part = d;
 
+  de->de_content_type = htsmsg_get_u32_or_default(c, "contenttype", 0);
+
   tvh_str_set(&de->de_episode.ee_onscreen, htsmsg_get_str(c, "episodename"));
 
   dvr_entry_link(de);
@@ -547,6 +551,9 @@ dvr_entry_save(dvr_entry_t *de)
   if(de->de_episode.ee_onscreen)
     htsmsg_add_str(m, "episodename", de->de_episode.ee_onscreen);
 
+  if(de->de_content_type)
+    htsmsg_add_u32(m, "contenttype", de->de_content_type);
+
   hts_settings_save(m, "dvr/log/%d", de->de_id);
   htsmsg_destroy(m);
 }
index ebf00ef94de2e5a1d426cf69bfe91301f12da40c..1eafaa4596ad3a0e28f3c4e6647d0223d2399b5e 100644 (file)
@@ -419,9 +419,29 @@ static htsbuf_queue_t *
 mk_build_metadata(const dvr_entry_t *de)
 {
   htsbuf_queue_t *q = htsbuf_queue_alloc(0);
+  char datestr[64];
+  struct tm tm;
+
+  localtime_r(&de->de_start, &tm);
+
+  snprintf(datestr, sizeof(datestr),
+          "%04d-%02d-%02d %02d:%02d:%02d",
+          tm.tm_year + 1900,
+          tm.tm_mon + 1,
+          tm.tm_mday,
+          tm.tm_hour,
+          tm.tm_min,
+          tm.tm_sec);
+
+  addtag(q, build_tag_string("DATE_BROADCASTED", datestr, 0, NULL));
 
   addtag(q, build_tag_string("ORIGINAL_MEDIA_TYPE", "TV", 0, NULL));
 
+  if(de->de_content_type)
+    addtag(q, build_tag_string("CONTENT_TYPE", 
+                              epg_content_group_get_name(de->de_content_type),
+                              0, NULL));
+
   if(de->de_channel != NULL)
     addtag(q, build_tag_string("TVCHANNEL", de->de_channel->ch_name, 0, NULL));
 
index 686f6f0a89022eb8fdffefa6090670a56867405f..c2891a337b1b6031327fd503566dc5484b0d8c86 100644 (file)
@@ -788,7 +788,7 @@ extjs_dvr(http_connection_t *hc, const char *remain, void *opaque)
       stop += 86400;
 
     dvr_entry_create(ch, start, stop, title, NULL, hc->hc_representative, 
-                    NULL, NULL, dvr_pri2val(pri));
+                    NULL, NULL, 0, dvr_pri2val(pri));
 
     out = htsmsg_create_map();
     htsmsg_add_u32(out, "success", 1);