[fix] use correct start/stop times

This commit is contained in:
Glenn-1990 2014-09-14 22:58:58 +02:00 committed by Jaroslav Kysela
parent b7a45dfaee
commit d7b7f72845
5 changed files with 14 additions and 12 deletions

View file

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

View file

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

View file

@ -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 */

View file

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

View file

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