TAILQ_REMOVE(&hmq->hmq_q, hm, hm_link);
htsp_msg_destroy(hm);
}
+
+ // reset
+ hmq->hmq_length = 0;
+ hmq->hmq_payload = 0;
pthread_mutex_unlock(&htsp->htsp_out_mutex);
}
htsmsg_t *m = htsmsg_create_map();
htsmsg_add_str(m, "method", "subscriptionSkip");
htsmsg_add_u32(m, "subscriptionId", hs->hs_sid);
+
+ /* Flush pkt buffers */
+ if (skip->type != SMT_SKIP_ERROR)
+ htsp_flush_queue(hs->hs_htsp, &hs->hs_q);
+
if (skip->type == SMT_SKIP_ABS_TIME || skip->type == SMT_SKIP_ABS_SIZE)
htsmsg_add_u32(m, "absolute", 1);
if (skip->type == SMT_SKIP_ERROR)
/* Convert */
skip_time = ts_rescale(skip->time, 1000000);
- tvhlog(LOG_DEBUG, "timeshift", "ts %d skip %"PRId64" requested", ts->id, skip->time);
+ tvhlog(LOG_DEBUG, "timeshift", "ts %d skip %"PRId64" requested %"PRId64, ts->id, skip_time, skip->time);
/* Live playback (stage1) */
if (ts->state == TS_LIVE) {
/* May have failed */
if (skip) {
- tvhlog(LOG_DEBUG, "timeshift", "ts %d skip last_time %"PRId64, ts->id, last_time);
+ tvhlog(LOG_DEBUG, "timeshift", "ts %d skip last_time %"PRId64" pts_delta %"PRId64,
+ ts->id, last_time, ts->pts_delta);
skip_time += (skip->type == SMT_SKIP_ABS_TIME) ? ts->pts_delta : last_time;
/* Live (stage2) */