From ae864bf9402ae5d6d4f39a95f2f865dc1f91aa8b Mon Sep 17 00:00:00 2001 From: spicyjpeg Date: Fri, 5 Dec 2025 02:02:17 +0100 Subject: [PATCH] Add support for FFmpeg loop_start metadata tag --- psxavenc/decoding.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/psxavenc/decoding.c b/psxavenc/decoding.c index 251d7bf..5a24a69 100644 --- a/psxavenc/decoding.c +++ b/psxavenc/decoding.c @@ -341,6 +341,16 @@ int get_av_loop_point(decoder_t *decoder, const args_t *args) { } } + AVDictionaryEntry *loop_start_tag = av_dict_get(av->format->metadata, "loop_start", 0, 0); + + if (loop_start_tag != NULL) { + int loop_point = (int)((strtoll(loop_start_tag->value, NULL, 10) * 1000) / AV_TIME_BASE); + + if (!(args->flags & FLAG_QUIET)) + fprintf(stderr, "Detected loop point (from metadata): %d ms\n", loop_point); + return loop_point; + } + if (av->format->nb_chapters > 0) { if (av->format->nb_chapters > 1 && !(args->flags & FLAG_QUIET)) fprintf(stderr, "Warning: input file has %d chapters, using first one as loop point\n", av->format->nb_chapters);