uint8_t om_save; ///< something changed
mtimer_t om_timer; ///< Per mux active timer
mtimer_t om_data_timer; ///< Any EPG data seen?
+ int64_t om_retry_time; ///< Next time to retry
char *om_force_modname;///< Force this module
extern const idclass_t mpegts_mux_class;
epggrab_ota_map_t *map;
epggrab_ota_mux_t *om = TAILQ_FIRST(&epggrab_ota_pending);
- epggrab_ota_mux_t *first = NULL;
mpegts_mux_t *mm;
char name[256];
struct {
}
TAILQ_INSERT_TAIL(&epggrab_ota_pending, om, om_q_link);
om->om_q_type = EPGGRAB_OTA_MUX_PENDING;
+ om->om_retry_time = mclk() + mono2sec(60);
if (r == SM_CODE_NO_FREE_ADAPTER)
net->failed = 1;
- if (first == NULL)
- first = om;
} else {
if (tvhtrace_enabled()) {
mpegts_mux_nice_name(mm, name, sizeof(name));
done:
om = TAILQ_FIRST(&epggrab_ota_pending);
- if (networks_count < ARRAY_SIZE(networks) && om && first != om)
+ if (networks_count < ARRAY_SIZE(networks) && om && om->om_retry_time < mclk())
goto next_one;
if (kick)
epggrab_ota_kick(64); /* a random number? */