aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-04-26 19:39:40 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-04-26 20:23:07 +0200
commit56f89bae521dfbccc3836c1158f52b0cfdfbd92d (patch)
tree26a0fd058b9c146397d062b2146917a259f28aa5
parent5473a98e45aff6635a6f742518a33ef6565ba2c3 (diff)
downloadffmpeg-56f89bae521dfbccc3836c1158f52b0cfdfbd92d.tar.gz
swr-test: improve rounding in set()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libswresample/swresample_test.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/libswresample/swresample_test.c b/libswresample/swresample_test.c
index d4b60706b2..7fa4d37627 100644
--- a/libswresample/swresample_test.c
+++ b/libswresample/swresample_test.c
@@ -59,11 +59,11 @@ static void set(uint8_t *a[], int ch, int index, int ch_count, enum AVSampleFor
index= ch + index*ch_count;
}
switch(f){
- case AV_SAMPLE_FMT_U8 : ((uint8_t*)p)[index]= (v+1.0)*255.0/2; break;
- case AV_SAMPLE_FMT_S16: ((int16_t*)p)[index]= v*32767; break;
- case AV_SAMPLE_FMT_S32: ((int32_t*)p)[index]= v*2147483647; break;
- case AV_SAMPLE_FMT_FLT: ((float *)p)[index]= v; break;
- case AV_SAMPLE_FMT_DBL: ((double *)p)[index]= v; break;
+ case AV_SAMPLE_FMT_U8 : ((uint8_t*)p)[index]= av_clip_uint8 (lrint((v+1.0)*255.0/2)); break;
+ case AV_SAMPLE_FMT_S16: ((int16_t*)p)[index]= av_clip_int16 (lrint(v*32767)); break;
+ case AV_SAMPLE_FMT_S32: ((int32_t*)p)[index]= av_clipl_int32(lrint(v*2147483647)); break;
+ case AV_SAMPLE_FMT_FLT: ((float *)p)[index]= v; break;
+ case AV_SAMPLE_FMT_DBL: ((double *)p)[index]= v; break;
default: av_assert2(0);
}
}