Ensure that recordings that never start are given a fault state. Fixes #1094.
This commit is contained in:
parent
9c85095f61
commit
b65a3a4ebd
2 changed files with 20 additions and 12 deletions
|
@ -755,14 +755,17 @@ dvr_stop_recording(dvr_entry_t *de, int stopcode)
|
|||
{
|
||||
dvr_config_t *cfg = dvr_config_find_by_name_default(de->de_config_name);
|
||||
|
||||
dvr_rec_unsubscribe(de, stopcode);
|
||||
if (de->de_rec_state == DVR_RS_PENDING || de->de_rec_state == DVR_RS_WAIT_PROGRAM_START)
|
||||
de->de_sched_state = DVR_MISSED_TIME;
|
||||
else
|
||||
de->de_sched_state = DVR_COMPLETED;
|
||||
|
||||
de->de_sched_state = DVR_COMPLETED;
|
||||
dvr_rec_unsubscribe(de, stopcode);
|
||||
|
||||
tvhlog(LOG_INFO, "dvr", "\"%s\" on \"%s\": "
|
||||
"End of program: %s",
|
||||
lang_str_get(de->de_title, NULL), de->de_channel->ch_name,
|
||||
streaming_code2txt(de->de_last_error) ?: "Program ended");
|
||||
dvr_entry_status(de));
|
||||
|
||||
dvr_entry_save(de);
|
||||
htsp_dvr_entry_update(de);
|
||||
|
@ -773,7 +776,6 @@ dvr_stop_recording(dvr_entry_t *de, int stopcode)
|
|||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
|
|
@ -298,13 +298,19 @@ dvr_rec_fatal_error(dvr_entry_t *de, const char *fmt, ...)
|
|||
static void
|
||||
dvr_rec_set_state(dvr_entry_t *de, dvr_rs_state_t newstate, int error)
|
||||
{
|
||||
if(de->de_rec_state == newstate)
|
||||
return;
|
||||
de->de_rec_state = newstate;
|
||||
de->de_last_error = error;
|
||||
if(error)
|
||||
de->de_errors++;
|
||||
dvr_entry_notify(de);
|
||||
int notify = 0;
|
||||
if(de->de_rec_state != newstate) {
|
||||
de->de_rec_state = newstate;
|
||||
notify = 1;
|
||||
}
|
||||
if(de->de_last_error != error) {
|
||||
de->de_last_error = error;
|
||||
notify = 1;
|
||||
if(error)
|
||||
de->de_errors++;
|
||||
}
|
||||
if (notify)
|
||||
dvr_entry_notify(de);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -501,7 +507,7 @@ dvr_thread(void *aux)
|
|||
case SMT_NOSTART:
|
||||
|
||||
if(de->de_last_error != sm->sm_code) {
|
||||
dvr_rec_set_state(de, DVR_RS_ERROR, sm->sm_code);
|
||||
dvr_rec_set_state(de, DVR_RS_PENDING, sm->sm_code);
|
||||
|
||||
tvhlog(LOG_ERR,
|
||||
"dvr", "Recording unable to start: \"%s\": %s",
|
||||
|
|
Loading…
Add table
Reference in a new issue