ffmpeg | branch: master | Paul B Mahol <[email protected]> | Thu Sep 26 16:19:06 
2019 +0200| [ccd18b4731f12baf486f893a6e31e3d219a7a1cf] | committer: Paul B Mahol

swresample/audioconvert: fix invalid left shift for 64bit sample format

Fixes #8002.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ccd18b4731f12baf486f893a6e31e3d219a7a1cf
---

 libswresample/audioconvert.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libswresample/audioconvert.c b/libswresample/audioconvert.c
index 96ce84ac44..d21fc8ef42 100644
--- a/libswresample/audioconvert.c
+++ b/libswresample/audioconvert.c
@@ -73,18 +73,18 @@ CONV_FUNC(AV_SAMPLE_FMT_U8 , uint8_t, AV_SAMPLE_FMT_S64, 
(*(const int64_t*)pi>>5
 CONV_FUNC(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_S64,  *(const 
int64_t*)pi>>48)
 CONV_FUNC(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_S64,  *(const 
int64_t*)pi>>32)
 CONV_FUNC(AV_SAMPLE_FMT_S64, int64_t, AV_SAMPLE_FMT_S64,  *(const int64_t*)pi)
-CONV_FUNC(AV_SAMPLE_FMT_FLT, float  , AV_SAMPLE_FMT_S64,  *(const 
int64_t*)pi*(1.0f/ (INT64_C(1)<<63)))
-CONV_FUNC(AV_SAMPLE_FMT_DBL, double , AV_SAMPLE_FMT_S64,  *(const 
int64_t*)pi*(1.0 / (INT64_C(1)<<63)))
+CONV_FUNC(AV_SAMPLE_FMT_FLT, float  , AV_SAMPLE_FMT_S64,  *(const 
int64_t*)pi*(1.0f/ (UINT64_C(1)<<63)))
+CONV_FUNC(AV_SAMPLE_FMT_DBL, double , AV_SAMPLE_FMT_S64,  *(const 
int64_t*)pi*(1.0 / (UINT64_C(1)<<63)))
 CONV_FUNC(AV_SAMPLE_FMT_U8 , uint8_t, AV_SAMPLE_FMT_FLT, av_clip_uint8(  
lrintf(*(const float*)pi * (1<<7)) + 0x80))
 CONV_FUNC(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, av_clip_int16(  
lrintf(*(const float*)pi * (1<<15))))
 CONV_FUNC(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, 
av_clipl_int32(llrintf(*(const float*)pi * (1U<<31))))
-CONV_FUNC(AV_SAMPLE_FMT_S64, int64_t, AV_SAMPLE_FMT_FLT, llrintf(*(const 
float*)pi * (INT64_C(1)<<63)))
+CONV_FUNC(AV_SAMPLE_FMT_S64, int64_t, AV_SAMPLE_FMT_FLT, llrintf(*(const 
float*)pi * (UINT64_C(1)<<63)))
 CONV_FUNC(AV_SAMPLE_FMT_FLT, float  , AV_SAMPLE_FMT_FLT, *(const float*)pi)
 CONV_FUNC(AV_SAMPLE_FMT_DBL, double , AV_SAMPLE_FMT_FLT, *(const float*)pi)
 CONV_FUNC(AV_SAMPLE_FMT_U8 , uint8_t, AV_SAMPLE_FMT_DBL, av_clip_uint8(  
lrint(*(const double*)pi * (1<<7)) + 0x80))
 CONV_FUNC(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, av_clip_int16(  
lrint(*(const double*)pi * (1<<15))))
 CONV_FUNC(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, 
av_clipl_int32(llrint(*(const double*)pi * (1U<<31))))
-CONV_FUNC(AV_SAMPLE_FMT_S64, int64_t, AV_SAMPLE_FMT_DBL, llrint(*(const 
double*)pi * (INT64_C(1)<<63)))
+CONV_FUNC(AV_SAMPLE_FMT_S64, int64_t, AV_SAMPLE_FMT_DBL, llrint(*(const 
double*)pi * (UINT64_C(1)<<63)))
 CONV_FUNC(AV_SAMPLE_FMT_FLT, float  , AV_SAMPLE_FMT_DBL, *(const double*)pi)
 CONV_FUNC(AV_SAMPLE_FMT_DBL, double , AV_SAMPLE_FMT_DBL, *(const double*)pi)
 

_______________________________________________
ffmpeg-cvslog mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to