aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Barbato <lu_zero@gentoo.org>2012-07-05 09:50:59 +0200
committerLuca Barbato <lu_zero@gentoo.org>2012-07-05 10:40:13 +0200
commit669bbedfa863f8a1491a186fac4238baba407037 (patch)
tree653e6e7d0fd624363c53ea595bfc92c3281d2a19
parent5b54a90c8b54e3db862ec3bb3a28b0b9e4fc6554 (diff)
downloadffmpeg-669bbedfa863f8a1491a186fac4238baba407037.tar.gz
blowfish: invert branch and loop precedence
Should slightly improve performance depending on the compiler used.
-rw-r--r--libavutil/blowfish.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/libavutil/blowfish.c b/libavutil/blowfish.c
index b7f5294677..554953e865 100644
--- a/libavutil/blowfish.c
+++ b/libavutil/blowfish.c
@@ -381,8 +381,8 @@ void av_blowfish_crypt(AVBlowfish *ctx, uint8_t *dst, const uint8_t *src,
uint32_t v0, v1;
int i;
- while (count > 0) {
- if (decrypt) {
+ if (decrypt) {
+ while (count > 0) {
v0 = AV_RB32(src);
v1 = AV_RB32(src + 4);
@@ -396,7 +396,13 @@ void av_blowfish_crypt(AVBlowfish *ctx, uint8_t *dst, const uint8_t *src,
dst[i] = dst[i] ^ iv[i];
memcpy(iv, src, 8);
}
- } else {
+
+ src += 8;
+ dst += 8;
+ count -= 8;
+ }
+ } else {
+ while (count > 0) {
if (iv) {
for (i = 0; i < 8; i++)
dst[i] = src[i] ^ iv[i];
@@ -414,11 +420,11 @@ void av_blowfish_crypt(AVBlowfish *ctx, uint8_t *dst, const uint8_t *src,
if (iv)
memcpy(iv, dst, 8);
- }
- src += 8;
- dst += 8;
- count -= 8;
+ src += 8;
+ dst += 8;
+ count -= 8;
+ }
}
}