Write more tags in MKV files #127

This commit is contained in:
Andreas Öman 2010-08-30 10:06:13 +00:00
parent 2bd91b3110
commit ecbccb25bf
4 changed files with 33 additions and 5 deletions

View 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);

View 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);
}

View 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));

View 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);