summaryrefslogtreecommitdiff
path: root/libavformat/argo_cvg.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2022-02-15 14:03:08 +0100
committerMichael Niedermayer <michael@niedermayer.cc>2022-02-15 21:36:08 +0100
commit2db9ffb88b5faf9cb0f877c29c7701960e2fcf07 (patch)
tree49e2eedb3f493aecbb218150d600404eb625d59e /libavformat/argo_cvg.c
parentf306b8e80ab04cfd8f6cd577a4484cb791d6e765 (diff)
downloadffmpeg-2db9ffb88b5faf9cb0f877c29c7701960e2fcf07.tar.gz
avformat/argo_cvg: Fix checksum
Reviewed-by: Zane van Iperen <zane@zanevaniperen.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavformat/argo_cvg.c')
-rw-r--r--libavformat/argo_cvg.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/libavformat/argo_cvg.c b/libavformat/argo_cvg.c
index e1854b4493..f59e93496f 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))