From: Glenn-1990 Date: Fri, 2 Dec 2016 20:47:25 +0000 (+0100) Subject: also rerecord when a removed recording was failed X-Git-Tag: v4.2.1~152 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5b3feafd1739a61205353d381792b24a3d3915c4;p=thirdparty%2Ftvheadend.git also rerecord when a removed recording was failed --- diff --git a/src/api/api_dvr.c b/src/api/api_dvr.c index f6a73fc78..22ae5dd69 100644 --- a/src/api/api_dvr.c +++ b/src/api/api_dvr.c @@ -115,7 +115,7 @@ api_dvr_entry_grid_removed dvr_entry_t *de; LIST_FOREACH(de, &dvrentries, de_global_link) - if (dvr_entry_is_finished(de, DVR_FINISHED_REMOVED)) + if (dvr_entry_is_finished(de, DVR_FINISHED_REMOVED_SUCCESS | DVR_FINISHED_REMOVED_FAILED)) idnode_set_add(ins, (idnode_t*)de, &conf->filter, perm->aa_lang_ui); } diff --git a/src/dvr/dvr.h b/src/dvr/dvr.h index 15bae1cc4..987f95893 100644 --- a/src/dvr/dvr.h +++ b/src/dvr/dvr.h @@ -33,10 +33,11 @@ #define DVR_FILESIZE_UPDATE (1<<0) #define DVR_FILESIZE_TOTAL (1<<1) -#define DVR_FINISHED_ALL (1<<0) -#define DVR_FINISHED_SUCCESS (1<<1) -#define DVR_FINISHED_REMOVED (1<<2) -#define DVR_FINISHED_FAILED (1<<3) +#define DVR_FINISHED_ALL (1<<0) +#define DVR_FINISHED_SUCCESS (1<<1) +#define DVR_FINISHED_FAILED (1<<2) +#define DVR_FINISHED_REMOVED_SUCCESS (1<<3) /* Removed recording, was succesful before */ +#define DVR_FINISHED_REMOVED_FAILED (1<<4) /* Removed recording, was failed before */ typedef struct dvr_vfs { LIST_ENTRY(dvr_vfs) link; diff --git a/src/dvr/dvr_db.c b/src/dvr/dvr_db.c index dfa0b13a2..9944eaa42 100644 --- a/src/dvr/dvr_db.c +++ b/src/dvr/dvr_db.c @@ -142,7 +142,9 @@ int dvr_entry_is_finished(dvr_entry_t *entry, int flags) int success = entry->de_sched_state == DVR_COMPLETED && !entry->de_last_error && entry->de_data_errors < DVR_MAX_DATA_ERRORS; - if ((flags & DVR_FINISHED_REMOVED) && removed) + if ((flags & DVR_FINISHED_REMOVED_SUCCESS) && removed && success) + return 1; + if ((flags & DVR_FINISHED_REMOVED_FAILED) && removed && !success) return 1; if ((flags & DVR_FINISHED_SUCCESS) && success && !removed) return 1; @@ -1332,7 +1334,7 @@ static dvr_entry_t *_dvr_duplicate_event(dvr_entry_t *de) continue; // only successful earlier recordings qualify as master - if (dvr_entry_is_finished(de2, DVR_FINISHED_FAILED)) + if (dvr_entry_is_finished(de2, DVR_FINISHED_FAILED | DVR_FINISHED_REMOVED_FAILED)) continue; // if titles are not defined or do not match, don't dedup @@ -1363,7 +1365,7 @@ static dvr_entry_t *_dvr_duplicate_event(dvr_entry_t *de) continue; // only successful earlier recordings qualify as master - if (dvr_entry_is_finished(de2, DVR_FINISHED_FAILED)) + if (dvr_entry_is_finished(de2, DVR_FINISHED_FAILED | DVR_FINISHED_REMOVED_FAILED)) continue; // if titles are not defined or do not match, don't dedup