From 770789f265761fc7ab2de69ca105fec4ad93d9e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= Date: Mon, 26 Feb 2018 20:36:29 +0200 Subject: [PATCH 1/9] chromaprint: missing cast (cherry picked from commit 7bd5bab3e43ae187f7219db61ed85d06d2ba0547) Signed-off-by: Steve Lhomme --- modules/stream_out/chromaprint.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/stream_out/chromaprint.c b/modules/stream_out/chromaprint.c index 80ec31ba2590..c76cbda3c2bb 100644 --- a/modules/stream_out/chromaprint.c +++ b/modules/stream_out/chromaprint.c @@ -231,7 +231,7 @@ static int Send( sout_stream_t *p_stream, sout_stream_id_sys_t *id, if ( !p_sys->b_finished && id->i_samples > 0 && p_buf->i_buffer ) { if(! chromaprint_feed( p_sys->p_chromaprint_ctx, - p_buf->p_buffer, + (int16_t *)p_buf->p_buffer, p_buf->i_buffer / BYTESPERSAMPLE ) ) msg_Warn( p_stream, "feed error" ); id->i_samples -= i_samples; -- GitLab From 6179d6b843f2a93af6a3d51c4244766e3eba9e77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= Date: Sun, 14 Apr 2019 09:41:38 +0300 Subject: [PATCH 2/9] win32: wrap {g,s}etsockopt() char * can alias anything, and Winsock relies on that. Unfortunately, the compiler still issues warnings. This works around that. (cherry picked from commit 36715d9b79f34824e126c2bc3aee2f1c1c16af46) Signed-off-by: Steve Lhomme --- include/vlc_network.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/include/vlc_network.h b/include/vlc_network.h index 010454a01c09..e39ffd0bacaa 100644 --- a/include/vlc_network.h +++ b/include/vlc_network.h @@ -183,6 +183,22 @@ VLC_API int vlc_close(int); /** @} */ +#ifdef _WIN32 +static inline int vlc_getsockopt(int s, int level, int name, + void *val, socklen_t *len) +{ + return getsockopt(s, level, name, (char *)val, len); +} +#define getsockopt vlc_getsockopt + +static inline int vlc_setsockopt(int s, int level, int name, + const void *val, socklen_t len) +{ + return setsockopt(s, level, name, (const char *)val, len); +} +#define setsockopt vlc_setsockopt +#endif + /* Portable network names/addresses resolution layer */ #define NI_MAXNUMERICHOST 64 -- GitLab From 3391108f9709f0d77d9297c94371cf9cd30f2cbe Mon Sep 17 00:00:00 2001 From: Steve Lhomme Date: Thu, 7 Dec 2023 15:43:04 +0100 Subject: [PATCH 3/9] netsync: use char for temporary local buffer On Windows recvfrom/revc/sendto expects a char*. --- modules/control/netsync.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/control/netsync.c b/modules/control/netsync.c index 2a6a1a6a2bf8..8c91034d7cf2 100644 --- a/modules/control/netsync.c +++ b/modules/control/netsync.c @@ -181,7 +181,7 @@ static void *Master(void *handle) intf_sys_t *sys = intf->p_sys; for (;;) { struct pollfd ufd = { .fd = sys->fd, .events = POLLIN, }; - uint64_t data[2]; + char data[16]; if (poll(&ufd, 1, -1) < 0) continue; @@ -198,8 +198,8 @@ static void *Master(void *handle) if (master_system < 0) continue; - data[0] = hton64(mdate()); - data[1] = hton64(master_system); + SetQWBE(&data[0], mdate()); + SetQWBE(&data[8], master_system); /* Reply to the sender */ sendto(sys->fd, data, 16, 0, @@ -224,7 +224,7 @@ static void *Slave(void *handle) for (;;) { struct pollfd ufd = { .fd = sys->fd, .events = POLLIN, }; - uint64_t data[2]; + char data[16]; vlc_tick_t system = GetPcrSystem(sys->input); if (system < 0) @@ -233,7 +233,7 @@ static void *Slave(void *handle) /* Send clock request to the master */ const vlc_tick_t send_date = mdate(); - data[0] = hton64(system); + SetQWBE(&data[0], system); send(sys->fd, data, 8, 0); /* Don't block */ @@ -244,8 +244,8 @@ static void *Slave(void *handle) if (recv(sys->fd, data, 16, 0) < 16) goto wait; - const vlc_tick_t master_date = ntoh64(data[0]); - const vlc_tick_t master_system = ntoh64(data[1]); + const vlc_tick_t master_date = GetQWBE(&data[0]); + const vlc_tick_t master_system = GetQWBE(&data[8]); const vlc_tick_t diff_date = receive_date - ((receive_date - send_date) / 2 + master_date); -- GitLab From 27e584d7b9add8dbbb82b7227228e1ec1e25a089 Mon Sep 17 00:00:00 2001 From: Steve Lhomme Date: Tue, 3 Jan 2023 13:23:00 +0100 Subject: [PATCH 4/9] access/dtv: move the lfind() Windows hack in the module So that we don't have to include search.h each time vlc_fixups.h is used. The Win32 prototype of lfind() expects an unsigned* for 'nelp', not a size_t*. (cherry picked from commit 7c43bcba27b6fe256456d93a9d32e10648f08da8) Signed-off-by: Steve Lhomme --- include/vlc_fixups.h | 3 +++ modules/access/dtv/access.c | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h index 37f788933779..861cb4cc5063 100644 --- a/include/vlc_fixups.h +++ b/include/vlc_fixups.h @@ -501,8 +501,11 @@ void *tsearch( const void *key, void **rootp, int(*cmp)(const void *, const void void *tfind( const void *key, const void **rootp, int(*cmp)(const void *, const void *) ); void *tdelete( const void *key, void **rootp, int(*cmp)(const void *, const void *) ); void twalk( const void *root, void(*action)(const void *nodep, VISIT which, int depth) ); +#ifndef _WIN32 +/* the Win32 prototype of lfind() expects an unsigned* for 'nmemb' */ void *lfind( const void *key, const void *base, size_t *nmemb, size_t size, int(*cmp)(const void *, const void *) ); +#endif #endif /* HAVE_SEARCH_H */ #ifndef HAVE_TDESTROY void tdestroy( void *root, void (*free_node)(void *nodep) ); diff --git a/modules/access/dtv/access.c b/modules/access/dtv/access.c index d9756c7b4885..c6ca5005883c 100644 --- a/modules/access/dtv/access.c +++ b/modules/access/dtv/access.c @@ -32,6 +32,11 @@ #ifdef HAVE_SEARCH_H #include #endif +#if defined(_WIN32) +/* the Win32 prototype of lfind() expects an unsigned* for 'nelp' */ +# define lfind(a,b,c,d,e) \ + lfind((a),(b), &(unsigned){ (*(c) > UINT_MAX) ? UINT_MAX : *(c) }, (d),(e)) +#endif #include "dtv/dtv.h" -- GitLab From 5a9ca37a95b6e85e6beaaefba9aa4a886a45411c Mon Sep 17 00:00:00 2001 From: Steve Lhomme Date: Mon, 15 Jul 2019 12:41:29 +0200 Subject: [PATCH 5/9] vlc_common: fix swab() calls on win32 that don't use const on source pointer (cherry picked from commit a9e0b1124e19225b903a2926951781e84002c410) Signed-off-by: Steve Lhomme --- include/vlc_common.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/vlc_common.h b/include/vlc_common.h index 8090b277150d..089878581763 100644 --- a/include/vlc_common.h +++ b/include/vlc_common.h @@ -947,6 +947,11 @@ static inline void SetQWLE (void *p, uint64_t qw) # define O_NONBLOCK 0 # endif +/* the mingw32 swab() and win32 _swab() prototypes expect a char* instead of a + const void* */ +# define swab(a,b,c) swab((char*) (a), (char*) (b), (c)) + + # include #endif /* _WIN32 */ -- GitLab From b758e19479a80604e3feb470b197e4a13a203a85 Mon Sep 17 00:00:00 2001 From: Steve Lhomme Date: Wed, 10 Jul 2019 08:23:45 +0200 Subject: [PATCH 6/9] avcodec: encoder: fix MPEG4 matrix passed as const lavc expects a pointer that it will free in avcodec_free_context(). (cherry picked from commit d86c4c87aa78130a4fd00294e25df865d0e2b327) Signed-off-by: Steve Lhomme --- modules/codec/avcodec/encoder.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c index 2b1c3604713d..4919ccf0e0e4 100644 --- a/modules/codec/avcodec/encoder.c +++ b/modules/codec/avcodec/encoder.c @@ -588,8 +588,14 @@ int InitVideoEnc( vlc_object_t *p_this ) if ( p_sys->b_mpeg4_matrix ) { - p_context->intra_matrix = mpeg4_default_intra_matrix; - p_context->inter_matrix = mpeg4_default_non_intra_matrix; + p_context->intra_matrix = av_malloc( sizeof(mpeg4_default_intra_matrix) ); + if ( p_context->intra_matrix ) + memcpy( p_context->intra_matrix, mpeg4_default_intra_matrix, + sizeof(mpeg4_default_intra_matrix)); + p_context->inter_matrix = av_malloc( sizeof(mpeg4_default_non_intra_matrix) ); + if ( p_context->inter_matrix ) + memcpy( p_context->inter_matrix, mpeg4_default_non_intra_matrix, + sizeof(mpeg4_default_non_intra_matrix)); } if ( p_sys->b_pre_me ) -- GitLab From 55be3ce60795a09d13861c5637c1fe7aebc5ce8b Mon Sep 17 00:00:00 2001 From: Steve Lhomme Date: Thu, 7 Dec 2023 14:18:22 +0100 Subject: [PATCH 7/9] smb: fix potential string to wide string copy The type of net_resource depends on the UNICODE define. --- modules/access/smb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/access/smb.c b/modules/access/smb.c index 5fe56f0c9dfe..6add2a3e6278 100644 --- a/modules/access/smb.c +++ b/modules/access/smb.c @@ -524,7 +524,7 @@ static void Win32AddConnection( stream_t *p_access, const char *psz_server, const char *psz_pwd, const char *psz_domain ) { char psz_remote[MAX_PATH]; - NETRESOURCE net_resource; + NETRESOURCEA net_resource; DWORD i_result; VLC_UNUSED( psz_domain ); @@ -544,7 +544,7 @@ static void Win32AddConnection( stream_t *p_access, const char *psz_server, net_resource.lpRemoteName = psz_remote; - i_result = WNetAddConnection2( &net_resource, psz_pwd, psz_user, 0 ); + i_result = WNetAddConnection2A( &net_resource, psz_pwd, psz_user, 0 ); if( i_result != NO_ERROR ) { -- GitLab From 5ae924bf212dce64a6424561d92426dbcc2cf3a0 Mon Sep 17 00:00:00 2001 From: Steve Lhomme Date: Wed, 6 Dec 2023 14:45:46 +0100 Subject: [PATCH 8/9] dxva2: add missing mask initializers --- modules/codec/avcodec/dxva2.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/codec/avcodec/dxva2.c b/modules/codec/avcodec/dxva2.c index 18b872fe0fe3..2e6809a05410 100644 --- a/modules/codec/avcodec/dxva2.c +++ b/modules/codec/avcodec/dxva2.c @@ -84,12 +84,12 @@ DEFINE_GUID(DXVA_Intel_H264_NoFGT_ClearVideo, 0x604F8E68, 0x4951, 0x4c54, /* XXX Preferred format must come first */ static const d3d9_format_t d3d_formats[] = { - { "YV12", MAKEFOURCC('Y','V','1','2'), VLC_CODEC_YV12 }, - { "NV12", MAKEFOURCC('N','V','1','2'), VLC_CODEC_NV12 }, - //{ "IMC3", MAKEFOURCC('I','M','C','3'), VLC_CODEC_YV12 }, - { "P010", MAKEFOURCC('P','0','1','0'), VLC_CODEC_P010 }, + { "YV12", MAKEFOURCC('Y','V','1','2'), VLC_CODEC_YV12, 0,0,0 }, + { "NV12", MAKEFOURCC('N','V','1','2'), VLC_CODEC_NV12, 0,0,0 }, + //{ "IMC3", MAKEFOURCC('I','M','C','3'), VLC_CODEC_YV12, 0,0,0 }, + { "P010", MAKEFOURCC('P','0','1','0'), VLC_CODEC_P010, 0,0,0 }, - { NULL, 0, 0 } + { NULL, 0, 0, 0,0,0 } }; static const d3d9_format_t *D3dFindFormat(D3DFORMAT format) -- GitLab From 08c7a66780740679ba1b0abe9e30e73afc6bc271 Mon Sep 17 00:00:00 2001 From: Steve Lhomme Date: Wed, 6 Dec 2023 07:48:29 +0100 Subject: [PATCH 9/9] win32/modules: use cast with GetProcAddress function pointers --- src/text/url.c | 3 ++- src/win32/plugin.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/text/url.c b/src/text/url.c index b962eb31f849..2eb4b8d10817 100644 --- a/src/text/url.c +++ b/src/text/url.c @@ -892,7 +892,8 @@ static int IdnToAscii(DWORD flags, LPCWSTR str, int len, LPWSTR buf, int size) int (WINAPI *IdnToAsciiReal)(DWORD, LPCWSTR, int, LPWSTR, int); int ret = 0; - IdnToAsciiReal = GetProcAddress(h, "IdnToAscii"); + IdnToAsciiReal = (int (WINAPI *)(DWORD, LPCWSTR, int, LPWSTR, int)) + GetProcAddress(h, "IdnToAscii"); if (IdnToAsciiReal != NULL) ret = IdnToAsciiReal(flags, str, len, buf, size); else diff --git a/src/win32/plugin.c b/src/win32/plugin.c index 1a65521fca75..b5c336eb99ca 100644 --- a/src/win32/plugin.c +++ b/src/win32/plugin.c @@ -45,7 +45,8 @@ static BOOL WINAPI SetThreadErrorModeFallback(DWORD mode, DWORD *oldmode) BOOL (WINAPI *SetThreadErrorModeReal)(DWORD, DWORD *); - SetThreadErrorModeReal = GetProcAddress(h, "SetThreadErrorMode"); + SetThreadErrorModeReal = (BOOL (WINAPI *)(DWORD, DWORD *)) + GetProcAddress(h, "SetThreadErrorMode"); if (SetThreadErrorModeReal != NULL) return SetThreadErrorModeReal(mode, oldmode); -- GitLab