[fix] use correct start/stop times
This commit is contained in:
parent
b7a45dfaee
commit
d7b7f72845
5 changed files with 14 additions and 12 deletions
|
@ -315,6 +315,10 @@ int dvr_entry_get_mc(dvr_entry_t *de);
|
|||
|
||||
int dvr_entry_get_retention( dvr_entry_t *de );
|
||||
|
||||
int dvr_entry_get_start_time( dvr_entry_t *de );
|
||||
|
||||
int dvr_entry_get_stop_time( dvr_entry_t *de );
|
||||
|
||||
int dvr_entry_get_extra_time_post( dvr_entry_t *de );
|
||||
|
||||
int dvr_entry_get_extra_time_pre( dvr_entry_t *de );
|
||||
|
|
|
@ -56,14 +56,14 @@ static inline int extra_valid(time_t extra)
|
|||
return extra != 0 && extra != (time_t)-1;
|
||||
}
|
||||
|
||||
static int
|
||||
int
|
||||
dvr_entry_get_start_time( dvr_entry_t *de )
|
||||
{
|
||||
/* Note 30 seconds might not be enough (rotors) */
|
||||
return de->de_start - (60 * dvr_entry_get_extra_time_pre(de)) - 30;
|
||||
}
|
||||
|
||||
static int
|
||||
int
|
||||
dvr_entry_get_stop_time( dvr_entry_t *de )
|
||||
{
|
||||
return de->de_stop + (60 * dvr_entry_get_extra_time_post(de));
|
||||
|
|
|
@ -85,7 +85,7 @@ dvr_rec_subscribe(dvr_entry_t *de)
|
|||
streaming_queue_init(&de->de_sq, 0);
|
||||
de->de_gh = globalheaders_create(&de->de_sq.sq_st);
|
||||
st = de->de_tsfix = tsfix_create(de->de_gh);
|
||||
tsfix_set_start_time(de->de_tsfix, de->de_start - (60 * de->de_start_extra));
|
||||
tsfix_set_start_time(de->de_tsfix, dvr_entry_get_start_time(de));
|
||||
flags = 0;
|
||||
}
|
||||
|
||||
|
@ -634,8 +634,8 @@ dvr_spawn_postproc(dvr_entry_t *de, const char *dvr_postproc)
|
|||
}
|
||||
|
||||
fbasename = tvh_strdupa(de->de_filename);
|
||||
snprintf(start, sizeof(start), "%"PRItime_t, de->de_start - (60 * de->de_start_extra));
|
||||
snprintf(stop, sizeof(stop), "%"PRItime_t, de->de_stop + (60 * de->de_stop_extra));
|
||||
snprintf(start, sizeof(start), "%"PRItime_t, (time_t)dvr_entry_get_start_time(de));
|
||||
snprintf(stop, sizeof(stop), "%"PRItime_t, (time_t)dvr_entry_get_stop_time(de));
|
||||
|
||||
memset(fmap, 0, sizeof(fmap));
|
||||
fmap['f'] = de->de_filename; /* full path to recoding */
|
||||
|
|
|
@ -412,7 +412,7 @@ page_status(http_connection_t *hc,
|
|||
|
||||
if (DVR_SCHEDULED == de->de_sched_state)
|
||||
{
|
||||
timelefttemp = (int) ((de->de_start - now) / 60) - de->de_start_extra; // output minutes
|
||||
timelefttemp = (int) ((dvr_entry_get_start_time(de) - now) / 60); // output minutes
|
||||
if (timelefttemp < timeleft)
|
||||
timeleft = timelefttemp;
|
||||
}
|
||||
|
@ -440,11 +440,11 @@ page_status(http_connection_t *hc,
|
|||
a.tm_year + 1900, a.tm_mon + 1, a.tm_mday,
|
||||
a.tm_hour, a.tm_min,
|
||||
de->de_start,
|
||||
de->de_start_extra,
|
||||
(time_t)dvr_entry_get_extra_time_pre(de),
|
||||
b.tm_year+1900, b.tm_mon + 1, b.tm_mday,
|
||||
b.tm_hour, b.tm_min,
|
||||
de->de_stop,
|
||||
de->de_stop_extra,
|
||||
(time_t)dvr_entry_get_extra_time_post(de),
|
||||
buf);
|
||||
|
||||
rstatus = val2str(de->de_sched_state, recstatustxt);
|
||||
|
|
|
@ -612,8 +612,7 @@ http_dvr_list_playlist(http_connection_t *hc)
|
|||
continue;
|
||||
|
||||
|
||||
durration = de->de_stop - de->de_start;
|
||||
durration += (de->de_stop_extra + de->de_start_extra)*60;
|
||||
durration = dvr_entry_get_stop_time(de) - dvr_entry_get_start_time(de);
|
||||
bandwidth = ((8*fsize) / (durration*1024.0));
|
||||
strftime(buf, sizeof(buf), "%FT%T%z", localtime_r(&(de->de_start), &tm));
|
||||
|
||||
|
@ -649,8 +648,7 @@ http_dvr_playlist(http_connection_t *hc, dvr_entry_t *de)
|
|||
struct tm tm;
|
||||
const char *host = http_arg_get(&hc->hc_args, "Host");
|
||||
|
||||
durration = de->de_stop - de->de_start;
|
||||
durration += (de->de_stop_extra + de->de_start_extra)*60;
|
||||
durration = dvr_entry_get_stop_time(de) - dvr_entry_get_start_time(de);
|
||||
|
||||
fsize = dvr_get_filesize(de);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue