int mm_tsid_accept_zero_value;
tvhlog_limit_t mm_tsid_loglimit;
int64_t mm_start_monoclock;
+ time_t mm_created;
int mm_update_pids_flag;
mtimer_t mm_update_pids_timer;
* Scanning
*/
+ time_t mm_scan_first; ///< Time for the first successful scan
+ time_t mm_scan_last_seen; ///< Time for the last successful scan
+
mpegts_mux_scan_result_t mm_scan_result; ///< Result of last scan
int mm_scan_weight; ///< Scan priority
int mm_scan_flags; ///< Subscription flags
TAILQ_ENTRY(mpegts_mux) mm_scan_link; ///< Link to Queue
mpegts_mux_scan_state_t mm_scan_state; ///< Scanning state
-#if 0
- enum {
- MM_ORIG_USER, ///< Manually added
- MM_ORIG_FILE, ///< Added from scan file
- MM_ORIG_AUTO ///< From NIT
- } mm_dmc_origin2;
-#endif
void *mm_dmc_origin;
int64_t mm_dmc_origin_expire;
.off = offsetof(mpegts_mux_t, mm_sid_filter),
.opts = PO_HIDDEN | PO_EXPERT
},
+ {
+ .type = PT_TIME,
+ .id = "created",
+ .name = N_("Created"),
+ .desc = N_("When the mux was created."),
+ .off = offsetof(mpegts_mux_t, mm_created),
+ .opts = PO_ADVANCED | PO_RDONLY,
+ },
+ {
+ .type = PT_TIME,
+ .id = "scan_first",
+ .name = N_("First scan"),
+ .desc = N_("When the mux was successfully scanned for the first time."),
+ .off = offsetof(mpegts_mux_t, mm_scan_first),
+ .opts = PO_ADVANCED | PO_RDONLY,
+ },
+ {
+ .type = PT_TIME,
+ .id = "scan_last",
+ .name = N_("Last scan"),
+ .desc = N_("When the mux was successfully scanned."),
+ .off = offsetof(mpegts_mux_t, mm_scan_last_seen),
+ .opts = PO_ADVANCED | PO_RDONLY,
+ },
{}
}
};
pthread_mutex_init(&mm->mm_descrambler_lock, NULL);
mm->mm_last_pid = -1;
+ mm->mm_created = gclk();
#if ENABLE_TSDEBUG
pthread_mutex_init(&mm->mm_tsdebug_lock, NULL);
mpegts_network_t *mn = mm->mm_network;
mpegts_mux_scan_state_t state = mm->mm_scan_state;
+ if (result == MM_SCAN_OK || result == MM_SCAN_PARTIAL) {
+ mm->mm_scan_last_seen = gclk();
+ if (mm->mm_scan_first == 0)
+ mm->mm_scan_first = mm->mm_scan_last_seen;
+ idnode_changed(&mm->mm_id);
+ }
+
/* prevent double del: */
/* mpegts_mux_stop -> mpegts_network_scan_mux_cancel */
mm->mm_scan_state = MM_SCAN_STATE_IDLE;