Mercurial > libavcodec.hg
comparison mpegaudiodec.c @ 9601:21225d993671 libavcodec
mpegaudio: use av_clip()
author | mru |
---|---|
date | Tue, 05 May 2009 18:44:07 +0000 |
parents | f9a7147cc9e6 |
children | 9e7665d68111 |
comparison
equal
deleted
inserted
replaced
9600:b59a8ed50f36 | 9601:21225d993671 |
---|---|
750 static inline int round_sample(int *sum) | 750 static inline int round_sample(int *sum) |
751 { | 751 { |
752 int sum1; | 752 int sum1; |
753 sum1 = (*sum) >> OUT_SHIFT; | 753 sum1 = (*sum) >> OUT_SHIFT; |
754 *sum &= (1<<OUT_SHIFT)-1; | 754 *sum &= (1<<OUT_SHIFT)-1; |
755 if (sum1 < OUT_MIN) | 755 return av_clip(sum1, OUT_MIN, OUT_MAX); |
756 sum1 = OUT_MIN; | |
757 else if (sum1 > OUT_MAX) | |
758 sum1 = OUT_MAX; | |
759 return sum1; | |
760 } | 756 } |
761 | 757 |
762 /* signed 16x16 -> 32 multiply add accumulate */ | 758 /* signed 16x16 -> 32 multiply add accumulate */ |
763 #define MACS(rt, ra, rb) MAC16(rt, ra, rb) | 759 #define MACS(rt, ra, rb) MAC16(rt, ra, rb) |
764 | 760 |
772 static inline int round_sample(int64_t *sum) | 768 static inline int round_sample(int64_t *sum) |
773 { | 769 { |
774 int sum1; | 770 int sum1; |
775 sum1 = (int)((*sum) >> OUT_SHIFT); | 771 sum1 = (int)((*sum) >> OUT_SHIFT); |
776 *sum &= (1<<OUT_SHIFT)-1; | 772 *sum &= (1<<OUT_SHIFT)-1; |
777 if (sum1 < OUT_MIN) | 773 return av_clip(sum1, OUT_MIN, OUT_MAX); |
778 sum1 = OUT_MIN; | |
779 else if (sum1 > OUT_MAX) | |
780 sum1 = OUT_MAX; | |
781 return sum1; | |
782 } | 774 } |
783 | 775 |
784 # define MULS(ra, rb) MUL64(ra, rb) | 776 # define MULS(ra, rb) MUL64(ra, rb) |
785 # define MACS(rt, ra, rb) MAC64(rt, ra, rb) | 777 # define MACS(rt, ra, rb) MAC64(rt, ra, rb) |
786 # define MLSS(rt, ra, rb) MLS64(rt, ra, rb) | 778 # define MLSS(rt, ra, rb) MLS64(rt, ra, rb) |