ffmpeg | branch: master | Ganesh Ajjanagadde <gajjanaga...@gmail.com> | Fri Oct 9 10:39:27 2015 -0400| [2f4374fae135afeee84f987c8fab8cbad1c7fcc7] | committer: Michael Niedermayer
ffmpeg: avoid possible undefined behavior On lines 1633,1634 FFABS(pts) is performed. However, if av_stream_get_end_pts returns AV_NOPTS_VALUE always, pts remains stuck at INT64_MIN, leading to undefined behavior on FFABS. One could conceive of a solution using FFNABS. However, such a solution has to deal with the implementation defined rounding of integer division with at least one negative operand in ANSI C89. C99 forces truncation to zero, but I am not sure that all of our platforms compile with full C99 support, and in particular whether we can safely assume a fixed rounding behavior across all platforms. This solution is simple, and I doubt changing INT64_MIN to INT64_MIN + 1 has any practical loss - if it is stuck at its initial value, the stream is messed up anyway. Signed-off-by: Ganesh Ajjanagadde <gajjanaga...@gmail.com> Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2f4374fae135afeee84f987c8fab8cbad1c7fcc7 --- ffmpeg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ffmpeg.c b/ffmpeg.c index e31a2c6..85cc6e4 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -1529,7 +1529,7 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti AVCodecContext *enc; int frame_number, vid, i; double bitrate; - int64_t pts = INT64_MIN; + int64_t pts = INT64_MIN + 1; static int64_t last_time = -1; static int qp_histogram[52]; int hours, mins, secs, us; _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog