diff --git a/components/st3m/st3m_media.c b/components/st3m/st3m_media.c index dc2fe68269ddff31ff13e69342cabfa5d0faf43e..93aaf50352f811e2acd4df4967cb6bd52810a56c 100644 --- a/components/st3m/st3m_media.c +++ b/components/st3m/st3m_media.c @@ -31,10 +31,15 @@ static void st3m_media_task(void *_arg) { vTaskDelayUntil(&wake_time, 20 / portTICK_PERIOD_MS); if (media_item->think) { if (xSemaphoreTake(media_lock, portMAX_DELAY)) { + bool seeking = media_item->seek != -1; ticks = xTaskGetTickCount(); media_item->think(media_item, (ticks - last_think) * portTICK_PERIOD_MS); last_think = ticks; + if (seeking && media_item->seek == -1) { + // don't count seeking time into delta + last_think = xTaskGetTickCount(); + } xSemaphoreGive(media_lock); } }