diff --git a/src/dvr/dvr_db.c b/src/dvr/dvr_db.c index fb25c6cd4..fd82f7508 100644 --- a/src/dvr/dvr_db.c +++ b/src/dvr/dvr_db.c @@ -1528,9 +1528,13 @@ dvr_entry_create_by_autorec(int enabled, epg_broadcast_t *e, dvr_autorec_entry_t /* Identical duplicate detection NOTE: Semantic duplicate detection is deferred to the start time of recording and then done using _dvr_duplicate_event by dvr_timer_start_recording. */ LIST_FOREACH(de, &dvrentries, de_global_link) { - if (de->de_bcast == e || (de->de_bcast && de->de_bcast->episode == e->episode)) - if (strcmp(dae->dae_owner ?: "", de->de_owner ?: "") == 0) - return; + if ((de->de_bcast == e || (de->de_bcast && de->de_bcast->episode == e->episode)) && e->start == de->de_start) + if (strcmp(dae->dae_owner ?: "", de->de_owner ?: "") == 0) { + char estartbuf[64], destartbuf[64]; + tvhinfo(LS_DVR, "Autorecord \"%s\": Not scheduling \"%s\" on channel \"%s\" because dup on \"%s\" start: %"PRId64 " and de start: %"PRId64 " (e: %s de: %s)", + dae->dae_name?:"", lang_str_get(e->episode->title, NULL), channel_get_name(e->channel, channel_blank_name), channel_get_name(de->de_channel, channel_blank_name), (int64_t)e->start, (int64_t)de->de_start, gmtime2local(e->start, estartbuf, sizeof estartbuf), gmtime2local(de->de_start, destartbuf, sizeof destartbuf)); + return; + } } /* Handle max schedules limit for autorrecord */