From 510df90658044262cba4fcd3289b01903cb60dee Mon Sep 17 00:00:00 2001 From: hpi1 Date: Wed, 17 Apr 2019 11:07:56 +0300 Subject: [PATCH] Fix mark triggering when multiple marks are passed during single read() --- src/libbluray/bluray.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c index 05b881a6..892a6ba9 100644 --- a/src/libbluray/bluray.c +++ b/src/libbluray/bluray.c @@ -1579,6 +1579,8 @@ static void _find_next_playmark(BLURAY *bd) static void _playmark_reached(BLURAY *bd) { + while (bd->next_mark >= 0 && bd->s_pos > bd->next_mark_pos) { + BD_DEBUG(DBG_BLURAY, "PlayMark %d reached (%"PRIu64")\n", bd->next_mark, bd->next_mark_pos); _queue_event(bd, BD_EVENT_PLAYMARK, bd->next_mark); @@ -1592,6 +1594,7 @@ static void _playmark_reached(BLURAY *bd) bd->next_mark = -1; bd->next_mark_pos = (uint64_t)-1; } + }; /* chapter tracking */ _update_chapter_psr(bd);