ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinha...@outlook.com> | Fri Oct 21 19:54:27 2022 +0200| [9a6cdd1ba3bd6fe592761dc7e9e6b5273495d048] | committer: Andreas Rheinhardt
avutil/integer: Fix undefined left shifts of negative numbers Affected the integers FATE-test. Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9a6cdd1ba3bd6fe592761dc7e9e6b5273495d048 --- libavutil/integer.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/libavutil/integer.c b/libavutil/integer.c index b709c6d487..3bc33dbca2 100644 --- a/libavutil/integer.c +++ b/libavutil/integer.c @@ -103,7 +103,7 @@ AVInteger av_shr_i(AVInteger a, int s){ for(i=0; i<AV_INTEGER_SIZE; i++){ unsigned int index= i + (s>>4); unsigned int v=0; - if(index+1<AV_INTEGER_SIZE) v = a.v[index+1]<<16; + if (index + 1 < AV_INTEGER_SIZE) v = a.v[index + 1] * (1U << 16); if(index <AV_INTEGER_SIZE) v+= a.v[index ]; out.v[i]= v >> (s&15); } @@ -158,11 +158,9 @@ AVInteger av_int2i(int64_t a){ } int64_t av_i2int(AVInteger a){ - int i; - int64_t out=(int8_t)a.v[AV_INTEGER_SIZE-1]; + uint64_t out = a.v[3]; - for(i= AV_INTEGER_SIZE-2; i>=0; i--){ + for (int i = 2; i >= 0; i--) out = (out<<16) + a.v[i]; - } return out; } _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".