From 51ef32413b25019b6181aba4493e4e6999425477 Mon Sep 17 00:00:00 2001 From: mjbudd77 Date: Wed, 1 Sep 2021 20:53:34 -0400 Subject: [PATCH] Created wrapper functions for fseek and ftell for Qt avi 64 bit file I/O. --- src/drivers/Qt/avi/fileio.cpp | 20 +++++++++++++++++++- src/drivers/Qt/avi/gwavi.h | 6 ++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/drivers/Qt/avi/fileio.cpp b/src/drivers/Qt/avi/fileio.cpp index 3068780a..89e5a778 100644 --- a/src/drivers/Qt/avi/fileio.cpp +++ b/src/drivers/Qt/avi/fileio.cpp @@ -31,13 +31,31 @@ */ /* - * Usefull IO functions. + * Useful IO functions. */ #include #include "gwavi.h" +long long gwavi_t::ftell(FILE *fp) +{ +#ifdef WIN32 + return ::_ftelli64(fp); +#else + return ::ftell(fp); +#endif +} + +int gwavi_t::fseek(FILE *fp, long long offset, int whence) +{ +#ifdef WIN32 + return ::_fseeki64( fp, offset, whence ); +#else + return ::fseek( fp, offset, whence ); +#endif +} + int gwavi_t::write_int(FILE *out, unsigned int n) { diff --git a/src/drivers/Qt/avi/gwavi.h b/src/drivers/Qt/avi/gwavi.h index adbb8646..3686349a 100644 --- a/src/drivers/Qt/avi/gwavi.h +++ b/src/drivers/Qt/avi/gwavi.h @@ -191,13 +191,15 @@ class gwavi_t struct gwavi_stream_format_v_t stream_format_v; struct gwavi_stream_header_t stream_header_a; struct gwavi_stream_format_a_t stream_format_a; - long marker; + long long marker; std::vector offsets; - long movi_fpos; + long long movi_fpos; int bits_per_pixel; char fourcc[8]; // helper functions + long long ftell(FILE *fp); + int fseek(FILE *stream, long long offset, int whence); int write_avi_header(FILE *fp, struct gwavi_header_t *avi_header); int write_stream_header(FILE *fp, struct gwavi_stream_header_t *stream_header);