[FFmpeg-devel] [PATCH 15/25] avformat/utils: Don't compare pointers when sorting chapters
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Fri Aug 27 17:27:15 EEST 2021
The chapters are independently allocated, so that comparing
the pointers is undefined behaviour. Furthermore, its result
is not platform-independent (and may not even be deterministic
on a particular platform). So compare the chapters' ids instead.
(avpriv_new_chapter() ensures that there are no duplicate ids.)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
libavformat/utils.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 78bfb36cd0..264b5b1a4b 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -3160,7 +3160,7 @@ static int chapter_start_cmp(const void *p1, const void *p2)
int delta = av_compare_ts(ch1->start, ch1->time_base, ch2->start, ch2->time_base);
if (delta)
return delta;
- return (ch1 > ch2) - (ch1 < ch2);
+ return FFDIFFSIGN(ch1->id, ch2->id);
}
static int compute_chapters_end(AVFormatContext *s)
--
2.30.2
More information about the ffmpeg-devel
mailing list