[vlc-devel] commit: wmafixed: optimize (Jean-Paul Saman )
git version control
git at videolan.org
Sat Feb 7 16:33:40 CET 2009
vlc | branch: master | Jean-Paul Saman <jean-paul.saman at m2x.nl> | Sat Feb 7 16:29:41 2009 +0100| [67415a4c979fc38b6b604b6f87d5e7d4220ba33f] | committer: Jean-Paul Saman
wmafixed: optimize
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=67415a4c979fc38b6b604b6f87d5e7d4220ba33f
---
modules/codec/wmafixed/wmadeci.c | 4 ++--
modules/codec/wmafixed/wmafixed.c | 14 +++++++-------
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/modules/codec/wmafixed/wmadeci.c b/modules/codec/wmafixed/wmadeci.c
index 29a4e48..41ff8fb 100644
--- a/modules/codec/wmafixed/wmadeci.c
+++ b/modules/codec/wmafixed/wmadeci.c
@@ -238,7 +238,7 @@ static void wma_window(WMADecodeContext *s, int32_t *in, int32_t *out)
/*previous block was smaller or the same size, so use it's size to set the window length*/
block_len = 1 << s->prev_block_len_bits;
/*find the middle of the two overlapped blocks, this will be the first overlapped sample*/
- n = (s->block_len - block_len) / 2;
+ n = (s->block_len - block_len) >> 1;
bsize = s->frame_len_bits - s->prev_block_len_bits;
vector_fmul_add_add(out+n, in+n, s->windows[bsize], block_len);
@@ -261,7 +261,7 @@ static void wma_window(WMADecodeContext *s, int32_t *in, int32_t *out)
} else {
block_len = 1 << s->next_block_len_bits;
- n = (s->block_len - block_len) / 2;
+ n = (s->block_len - block_len) >> 1;
bsize = s->frame_len_bits - s->next_block_len_bits;
memcpy(out, in, n*sizeof(int32_t));
diff --git a/modules/codec/wmafixed/wmafixed.c b/modules/codec/wmafixed/wmafixed.c
index 0656c61..c178f44 100644
--- a/modules/codec/wmafixed/wmafixed.c
+++ b/modules/codec/wmafixed/wmafixed.c
@@ -122,7 +122,7 @@ int32_t fixsqrt32(int32_t x)
#undef STEP
- return (int32_t)(r << (PRECISION / 2));
+ return (int32_t)(r << (PRECISION >> 1));
}
/* Inverse gain of circular cordic rotation in s0.31 format. */
@@ -191,17 +191,17 @@ long fsincos(unsigned long phase, int32_t *cos)
z = phase;
/* The phase has to be somewhere between 0..pi for this to work right */
- if (z < 0xffffffff / 4) {
+ if (z < 0xffffffff >> 2) {
/* z in first quadrant, z += pi/2 to correct */
x = -x;
- z += 0xffffffff / 4;
- } else if (z < 3 * (0xffffffff / 4)) {
+ z += 0xffffffff >> 2;
+ } else if (z < 3 * (0xffffffff >> 2)) {
/* z in third quadrant, z -= pi/2 to correct */
- z -= 0xffffffff / 4;
+ z -= 0xffffffff >> 2;
} else {
/* z in fourth quadrant, z -= 3pi/2 to correct */
x = -x;
- z -= 3 * (0xffffffff / 4);
+ z -= 3 * (0xffffffff >> 2);
}
/* Each iteration adds roughly 1-bit of extra precision */
@@ -211,7 +211,7 @@ long fsincos(unsigned long phase, int32_t *cos)
z1 = atan_table[i];
/* Decided which direction to rotate vector. Pivot point is pi/2 */
- if (z >= 0xffffffff / 4) {
+ if (z >= 0xffffffff >> 2) {
x -= y1;
y += x1;
z -= z1;
More information about the vlc-devel
mailing list