From: Jaroslav Kysela Date: Wed, 9 Dec 2015 20:39:01 +0000 (+0100) Subject: DVR: add missing timer disarm when retention is set to onremove, fixes #3405 X-Git-Tag: v4.2.1~1327 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7ef441e9f763ede669b0b8fb685f32583b1f5ca3;p=thirdparty%2Ftvheadend.git DVR: add missing timer disarm when retention is set to onremove, fixes #3405 --- diff --git a/src/dvr/dvr_db.c b/src/dvr/dvr_db.c index ff34fcbf6..6b87b4f28 100644 --- a/src/dvr/dvr_db.c +++ b/src/dvr/dvr_db.c @@ -408,9 +408,11 @@ dvr_entry_retention_timer(dvr_entry_t *de) } } - if (retention < DVR_RET_ONREMOVE) { + if (retention < DVR_RET_ONREMOVE) { stop = de->de_stop + retention * (time_t)86400; dvr_entry_retention_arm(de, dvr_timer_expire, stop); + } else { + gtimer_disarm(&de->de_timer); } } @@ -1800,6 +1802,8 @@ static void dvr_timer_stop_recording(void *aux) { dvr_entry_t *de = aux; + if(de->de_sched_state != DVR_RECORDING) + return; /* EPG thinks that the program is running */ if (de->de_running_start > de->de_running_stop) { gtimer_arm(&de->de_timer, dvr_timer_stop_recording, de, 10);