int notify_mask; /* notification event mask */
srs_voice_notify_t notify; /* notification callback */
void *notify_data; /* opaque notification data */
- mrp_timer_t *timer; /* stream timeout timer */
+ mrp_timer_t *timer; /* request timeout timer */
mrp_list_hook_t hook; /* hook to list of requests */
} request_t;
static void request_timer_cb(mrp_timer_t *t, void *user_data)
{
- request_t *req = (request_t *)user_data;
+ queued_t *qr = (queued_t *)user_data;
+ request_t *req = &qr->req;
srs_voice_event_t event;
- mrp_log_info("Voice/TTS request #%u timed out.", req->id);
+ mrp_log_info("Voice/TTS request #%u timed out.", qr->req.id);
- mrp_del_timer(t);
+ mrp_del_timer(req->timer);
req->timer = NULL;
mrp_clear(&event);
mrp_list_delete(&req->hook);
- if (req->vid == SRS_VOICE_INVALID) {
- queued_t *qr = (queued_t *)req;
-
- mrp_free(qr->msg);
- free_tags(qr->tags);
- }
+ mrp_free(qr->msg);
+ free_tags(qr->tags);
- mrp_free(req);
+ mrp_free(qr);
}
if (timeout > 0)
qr->req.timer = mrp_add_timer(r->srs->ml, timeout,
- request_timer_cb, &qr->req);
+ request_timer_cb, qr);
return &qr->req;
}
state->active = req;
- if (timeout > 0)
- req->timer = mrp_add_timer(r->srs->ml, timeout, request_timer_cb, req);
-
return req;
}