[FFmpeg-devel] [PATCH] avformat/argo_cvg: Fix checksum

Michael Niedermayer michael at niedermayer.cc
Tue Feb 15 15:05:17 EET 2022


Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
 libavformat/argo_cvg.c | 15 +++++----------
 libavformat/version.h  |  2 +-
 2 files changed, 6 insertions(+), 11 deletions(-)

diff --git a/libavformat/argo_cvg.c b/libavformat/argo_cvg.c
index c5da32536d..dfdf126c17 100644
--- a/libavformat/argo_cvg.c
+++ b/libavformat/argo_cvg.c
@@ -335,19 +335,14 @@ static int argo_cvg_write_trailer(AVFormatContext *s)
     ArgoCVGMuxContext *ctx = s->priv_data;
     int64_t ret;
 
+    ctx->checksum +=  (ctx->size      & 255)
+                   + ((ctx->size>> 8) & 255)
+                   + ((ctx->size>>16) & 255)
+                   +  (ctx->size>>24);
+
     av_log(s, AV_LOG_TRACE, "size     = %zu\n", ctx->size);
     av_log(s, AV_LOG_TRACE, "checksum = %u\n",  ctx->checksum);
 
-    /*
-     * NB: This is wrong. We're always slightly under the original.
-     *     Verified by remuxing. For reference (orig - remuxed):
-     *     - TCLD.CVG:     4706074 - 4705696 = 378
-     *     - DANLOOP1.CVG: 5684641 - 5684212 = 429
-     *     - CRYS.CVG:     2495499 - 2495367 = 132
-     *     - PICKUP88.CVG: 1348091 - 1347937 = 154
-     *     - SELECT1.CVG:   549987 - 549752  = 235
-     *     Also NB: it doesn't matter, the game doesn't check them.
-     */
     avio_wl32(s->pb, ctx->checksum);
 
     if ((ret = avio_seek(s->pb, 0, SEEK_SET)) < 0)
diff --git a/libavformat/version.h b/libavformat/version.h
index 5439dad170..26234573b8 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -33,7 +33,7 @@
 // Also please add any ticket numbers that you believe might be affected here
 #define LIBAVFORMAT_VERSION_MAJOR  59
 #define LIBAVFORMAT_VERSION_MINOR  17
-#define LIBAVFORMAT_VERSION_MICRO 101
+#define LIBAVFORMAT_VERSION_MICRO 102
 
 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
                                                LIBAVFORMAT_VERSION_MINOR, \
-- 
2.17.1



More information about the ffmpeg-devel mailing list