Message ID | 20220215130517.25172-1-michael@niedermayer.cc |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] avformat/argo_cvg: Fix checksum | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_aarch64_jetson | success | Make finished |
andriy/make_fate_aarch64_jetson | success | Make fate finished |
andriy/make_armv7_RPi4 | success | Make finished |
andriy/make_fate_armv7_RPi4 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
andriy/make_ppc | success | Make finished |
andriy/make_fate_ppc | success | Make fate finished |
On 15/2/22 23:05, Michael Niedermayer wrote: > Signed-off-by: Michael Niedermayer <michael@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); > + ...because of course it's that simple. How did I miss that? No matter, lgtm!
On Wed, Feb 16, 2022 at 12:25:52AM +1000, Zane van Iperen wrote: > > > On 15/2/22 23:05, Michael Niedermayer wrote: > > Signed-off-by: Michael Niedermayer <michael@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); > > + > > ...because of course it's that simple. How did I miss that? > No matter, lgtm! will apply thx [...]
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, \
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> --- libavformat/argo_cvg.c | 15 +++++---------- libavformat/version.h | 2 +- 2 files changed, 6 insertions(+), 11 deletions(-)