[FFmpeg-cvslog] avformat/utils: Don't compare pointers when sorting chapters
Andreas Rheinhardt
git at videolan.org
Tue Aug 31 18:43:46 EEST 2021
ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Fri Aug 27 13:17:09 2021 +0200| [e04ddba64f4c389b33b07dba6adb89f3492b151c] | committer: Andreas Rheinhardt
avformat/utils: Don't compare pointers when sorting chapters
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.)
Reviewed-by: Paul B Mahol <onemda at gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e04ddba64f4c389b33b07dba6adb89f3492b151c
---
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)
More information about the ffmpeg-cvslog
mailing list