From 1c1815eb9e51362d831d2faa4d34bd88138a2d2b Mon Sep 17 00:00:00 2001 From: cloudwalk Date: Sat, 4 Jul 2020 14:09:36 +0000 Subject: [PATCH] Make cl_video_libavw.c a regular C file like the rest. Create a .h counterpart Also updated some variables since anything before MSVC 2013 is pretty much obsolete, and the rationale for not using stdint.h is therefore out of date. git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12784 d7cf8633-e32d-0410-b094-e92efae38249 --- cl_video.c | 2 +- cl_video_libavw.c | 36 ++++++++++++++++++---------------- cl_video_libavw.h | 7 +++++++ darkplaces-sdl2-vs2017.vcxproj | 2 ++ darkplaces-sdl2-vs2019.vcxproj | 2 ++ makefile.inc | 1 + 6 files changed, 32 insertions(+), 18 deletions(-) create mode 100644 cl_video_libavw.h diff --git a/cl_video.c b/cl_video.c index dd29ee7d..e9d5e21b 100644 --- a/cl_video.c +++ b/cl_video.c @@ -20,7 +20,7 @@ cvar_t v_glslgamma_video = {CVAR_CLIENT | CVAR_SAVE, "v_glslgamma_video", "1", " #include "dpvsimpledecode.h" // VorteX: libavcodec implementation -#include "cl_video_libavw.c" +#include "cl_video_libavw.h" // JAM video decoder used by Blood Omnicide #ifdef JAMVIDEO diff --git a/cl_video_libavw.c b/cl_video_libavw.c index 422af8a9..abdc2e2c 100644 --- a/cl_video_libavw.c +++ b/cl_video_libavw.c @@ -22,7 +22,11 @@ */ // LadyHavoc: for some reason this is being #include'd rather than treated as its own file... -// LadyHavoc: adapted to not require stdint.h as this is not available on MSVC++, using unsigned char instead of uint8_t and fs_offset_t instead of int64_t. + +#include "quakedef.h" +#include "client.h" +#include "cl_video.h" +#include "cl_video_libavw.h" // scaler type #define LIBAVW_SCALER_BILINEAR 0 @@ -45,9 +49,9 @@ #define LIBAVW_PRINT_PANIC 4 // exported callback functions: typedef void avwCallbackPrint(int, const char *); -typedef int avwCallbackIoRead(void *, unsigned char *, int); -typedef fs_offset_t avwCallbackIoSeek(void *, fs_offset_t, int); -typedef fs_offset_t avwCallbackIoSeekSize(void *); +typedef int avwCallbackIoRead(void *, uint8_t *, int); +typedef uint64_t avwCallbackIoSeek(void *, uint64_t, int); +typedef uint64_t avwCallbackIoSeekSize(void *); // exported functions: int (*qLibAvW_Init)(avwCallbackPrint *printfunction); // init library, returns error code const char *(*qLibAvW_ErrorString)(int errorcode); // get string for error code @@ -85,12 +89,11 @@ static dllfunction_t libavwfuncs[] = const char* dllnames_libavw[] = { #if defined(WIN32) - "libavw.dll", + "libavcodec.dll", #elif defined(MACOSX) - "libavw.dylib", + "libavcodec.dylib", #else - "libavw.so.1", - "libavw.so", + "libavcodec.so", #endif NULL }; @@ -232,21 +235,21 @@ void libavw_close(void *stream) } // IO wrapper -static int LibAvW_FS_Read(void *opaque, unsigned char *buf, int buf_size) +static int LibAvW_FS_Read(void *opaque, uint8_t *buf, int buf_size) { return FS_Read((qfile_t *)opaque, buf, buf_size); } -static fs_offset_t LibAvW_FS_Seek(void *opaque, fs_offset_t pos, int whence) +static uint64_t LibAvW_FS_Seek(void *opaque, uint64_t pos, int whence) { - return (fs_offset_t)FS_Seek((qfile_t *)opaque, pos, whence); + return (uint64_t)FS_Seek((qfile_t *)opaque, pos, whence); } -static fs_offset_t LibAvW_FS_SeekSize(void *opaque) +static uint64_t LibAvW_FS_SeekSize(void *opaque) { - return (fs_offset_t)FS_FileSize((qfile_t *)opaque); + return (uint64_t)FS_FileSize((qfile_t *)opaque); } // open as DP video stream -static void *LibAvW_OpenVideo(clvideo_t *video, char *filename, const char **errorstring) +void *LibAvW_OpenVideo(clvideo_t *video, char *filename, const char **errorstring) { libavwstream_t *s; char filebase[MAX_OSPATH], check[MAX_OSPATH]; @@ -352,7 +355,7 @@ static void libavw_message(int level, const char *message) Con_Printf(CON_ERROR "LibAvcodec panic: %s\n", message); } -static qboolean LibAvW_OpenLibrary(void) +qboolean LibAvW_OpenLibrary(void) { int errorcode; @@ -379,8 +382,7 @@ static qboolean LibAvW_OpenLibrary(void) return true; } -static void LibAvW_CloseLibrary(void) +void LibAvW_CloseLibrary(void) { Sys_UnloadLibrary(&libavw_dll); } - diff --git a/cl_video_libavw.h b/cl_video_libavw.h new file mode 100644 index 00000000..53006a96 --- /dev/null +++ b/cl_video_libavw.h @@ -0,0 +1,7 @@ +#include "quakedef.h" +#include "cl_video.h" + +void libavw_close(void *stream); +void *LibAvW_OpenVideo(clvideo_t *video, char *filename, const char **errorstring); +qboolean LibAvW_OpenLibrary(void); +void LibAvW_CloseLibrary(void); \ No newline at end of file diff --git a/darkplaces-sdl2-vs2017.vcxproj b/darkplaces-sdl2-vs2017.vcxproj index 1a5ff3df..aef166ed 100644 --- a/darkplaces-sdl2-vs2017.vcxproj +++ b/darkplaces-sdl2-vs2017.vcxproj @@ -212,6 +212,7 @@ + @@ -319,6 +320,7 @@ + diff --git a/darkplaces-sdl2-vs2019.vcxproj b/darkplaces-sdl2-vs2019.vcxproj index ff42b1c6..884ed4b6 100644 --- a/darkplaces-sdl2-vs2019.vcxproj +++ b/darkplaces-sdl2-vs2019.vcxproj @@ -213,6 +213,7 @@ + @@ -320,6 +321,7 @@ + diff --git a/makefile.inc b/makefile.inc index d35e6bdc..f903bef1 100644 --- a/makefile.inc +++ b/makefile.inc @@ -93,6 +93,7 @@ OBJ_COMMON= \ cl_particles.o \ cl_screen.o \ cl_video.o \ + cl_video_libavw.o \ clvm_cmds.o \ cmd.o \ collision.o \ -- 2.39.2