OSDN Git Service

lavu/hash: Fix adler32 calculation
authorJames Almer <jamrial@gmail.com>
Wed, 15 May 2013 21:34:58 +0000 (18:34 -0300)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 15 May 2013 21:53:40 +0000 (23:53 +0200)
Adler must be initialized with a non zero value.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavutil/hash.c

index 80bf164..a08d2cf 100644 (file)
@@ -115,8 +115,8 @@ void av_hash_init(AVHashContext *ctx)
     case SHA160:  av_sha_init(ctx->ctx, 160); break;
     case SHA224:  av_sha_init(ctx->ctx, 224); break;
     case SHA256:  av_sha_init(ctx->ctx, 256); break;
-    case CRC32:
-    case ADLER32: ctx->crc = 0; break;
+    case CRC32:   ctx->crc = 0; break;
+    case ADLER32: ctx->crc = 1; break;
     }
 }
 
@@ -141,8 +141,8 @@ void av_hash_final(AVHashContext *ctx, uint8_t *dst)
     case SHA160:
     case SHA224:
     case SHA256:  av_sha_final(ctx->ctx, dst); break;
-    case CRC32:
-    case ADLER32: AV_WL32(dst, ctx->crc); break;
+    case CRC32:   AV_WL32(dst, ctx->crc); break;
+    case ADLER32: AV_WB32(dst, ctx->crc); break;
     }
 }