Mercurial > mplayer.hg
comparison libaf/af_format.c @ 36384:e79bac50b920
Use correct types for constants.
Otherwise the compiler might insert a conversion from float
to double and back.
author | reimar |
---|---|
date | Sun, 20 Oct 2013 12:51:35 +0000 |
parents | d206960484fe |
children | 3b1fb70800f4 |
comparison
equal
deleted
inserted
replaced
36383:12b7f66d1a47 | 36384:e79bac50b920 |
---|---|
489 float f; | 489 float f; |
490 register int i; | 490 register int i; |
491 switch(bps){ | 491 switch(bps){ |
492 case(1): | 492 case(1): |
493 for(i=0;i<len;i++) | 493 for(i=0;i<len;i++) |
494 ((int8_t *)out)[i] = av_clip_int8(lrintf(128.0 * in[i])); | 494 ((int8_t *)out)[i] = av_clip_int8(lrintf(128.0f * in[i])); |
495 break; | 495 break; |
496 case(2): | 496 case(2): |
497 for(i=0;i<len;i++) | 497 for(i=0;i<len;i++) |
498 ((int16_t*)out)[i] = av_clip_int16(lrintf(32768.0 * in[i])); | 498 ((int16_t*)out)[i] = av_clip_int16(lrintf(32768.0f * in[i])); |
499 break; | 499 break; |
500 case(3): | 500 case(3): |
501 for(i=0;i<len;i++){ | 501 for(i=0;i<len;i++){ |
502 f = in[i] * 8388608; | 502 f = in[i] * 8388608.0f; |
503 store24bit(out, i, av_clip(lrintf(f), -1*(1<<23), (1<<23)-1) << 8); | 503 store24bit(out, i, av_clip(lrintf(f), -1*(1<<23), (1<<23)-1) << 8); |
504 } | 504 } |
505 break; | 505 break; |
506 case(4): | 506 case(4): |
507 for(i=0;i<len;i++){ | 507 for(i=0;i<len;i++){ |
508 f = in[i]; | 508 f = in[i]; |
509 if (f <= -1.0) | 509 if (f <= -1.0f) |
510 ((int32_t*)out)[i] = INT_MIN; | 510 ((int32_t*)out)[i] = INT_MIN; |
511 else | 511 else |
512 if (f >= 1.0)//no need to use corrected constant, rounding won't cause overflow | 512 if (f >= 1.0f)//no need to use corrected constant, rounding won't cause overflow |
513 ((int32_t*)out)[i] = INT_MAX; | 513 ((int32_t*)out)[i] = INT_MAX; |
514 else | 514 else |
515 ((int32_t*)out)[i] = lrintf(f*2147483648.0); | 515 ((int32_t*)out)[i] = lrintf(f*2147483648.0f); |
516 | 516 |
517 } | 517 } |
518 break; | 518 break; |
519 } | 519 } |
520 } | 520 } |
523 { | 523 { |
524 register int i; | 524 register int i; |
525 switch(bps){ | 525 switch(bps){ |
526 case(1): | 526 case(1): |
527 for(i=0;i<len;i++) | 527 for(i=0;i<len;i++) |
528 out[i]=(1.0/128.0)*((int8_t*)in)[i]; | 528 out[i]=(1.0f/128.0f)*((int8_t*)in)[i]; |
529 break; | 529 break; |
530 case(2): | 530 case(2): |
531 for(i=0;i<len;i++) | 531 for(i=0;i<len;i++) |
532 out[i]=(1.0/32768.0)*((int16_t*)in)[i]; | 532 out[i]=(1.0f/32768.0f)*((int16_t*)in)[i]; |
533 break; | 533 break; |
534 case(3): | 534 case(3): |
535 for(i=0;i<len;i++) | 535 for(i=0;i<len;i++) |
536 out[i]=(1.0/2147483648.0)*((int32_t)load24bit(in, i)); | 536 out[i]=(1.0f/2147483648.0f)*((int32_t)load24bit(in, i)); |
537 break; | 537 break; |
538 case(4): | 538 case(4): |
539 for(i=0;i<len;i++) | 539 for(i=0;i<len;i++) |
540 out[i]=(1.0/2147483648.0)*((int32_t*)in)[i]; | 540 out[i]=(1.0f/2147483648.0f)*((int32_t*)in)[i]; |
541 break; | 541 break; |
542 } | 542 } |
543 } | 543 } |