Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
mpegts service: add created field (timestamp)
  • Loading branch information
perexg committed Dec 4, 2014
1 parent 4fcc326 commit 95ef1c4
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 4 deletions.
1 change: 1 addition & 0 deletions src/input/mpegts.h
Expand Up @@ -445,6 +445,7 @@ struct mpegts_service
uint16_t s_dvb_prefcapid;
int s_dvb_prefcapid_lock;
uint16_t s_dvb_forcecaid;
time_t s_dvb_created;
time_t s_dvb_last_seen;

/*
Expand Down
24 changes: 20 additions & 4 deletions src/input/mpegts/mpegts_service.c
Expand Up @@ -183,6 +183,13 @@ const idclass_t mpegts_service_class =
.off = offsetof(mpegts_service_t, s_dvb_forcecaid),
.opts = PO_ADVANCED | PO_HEXA,
},
{
.type = PT_TIME,
.id = "created",
.name = "Created",
.off = offsetof(mpegts_service_t, s_dvb_created),
.opts = PO_ADVANCED | PO_RDONLY,
},
{
.type = PT_TIME,
.id = "last_seen",
Expand Down Expand Up @@ -519,6 +526,9 @@ mpegts_service_create0
int r;
char buf[256];

/* defaults for older version */
s->s_dvb_created = dispatch_clock;

if (service_create0((service_t*)s, class, uuid, S_MPEG_TS, conf) == NULL)
return NULL;

Expand Down Expand Up @@ -559,6 +569,10 @@ mpegts_service_create0
idnode_notify_simple(&mm->mm_id);
idnode_notify_simple(&mm->mm_network->mn_id);

/* Save the create time */
if (s->s_dvb_created == dispatch_clock)
service_request_save((service_t *)s, 0);

return s;
}

Expand All @@ -582,9 +596,11 @@ mpegts_service_find
s->s_pmt_pid = pmt_pid;
if (save) *save = 1;
}
if (create && (*save || s->s_dvb_last_seen + 3600 < dispatch_clock)) {
s->s_dvb_last_seen = dispatch_clock;
if (save) *save = 1;
if (create) {
if ((save && *save) || s->s_dvb_last_seen + 3600 < dispatch_clock) {
s->s_dvb_last_seen = dispatch_clock;
if (save) *save = 1;
}
}
return s;
}
Expand All @@ -593,7 +609,7 @@ mpegts_service_find
/* Create */
if (create) {
s = mm->mm_network->mn_create_service(mm, sid, pmt_pid);
s->s_dvb_last_seen = dispatch_clock;
s->s_dvb_created = s->s_dvb_last_seen = dispatch_clock;
if (save) *save = 1;
}

Expand Down

0 comments on commit 95ef1c4

Please sign in to comment.