Handle various MSVC warnings as errors for development version.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1006>
'/wd4244', # lossy type conversion (e.g. double -> int)
'/wd4305', # truncating type conversion (e.g. double -> float)
cc.get_supported_arguments(['/utf-8']), # set the input encoding to utf-8
-
- # Enable some warnings on MSVC to match GCC/Clang behaviour
- '/w14062', # enumerator 'identifier' in switch of enum 'enumeration' is not handled
- '/w14101', # 'identifier' : unreferenced local variable
- '/w14189', # 'identifier' : local variable is initialized but not referenced
]
+
+ if gst_version_is_dev
+ # Enable some warnings on MSVC to match GCC/Clang behaviour
+ msvc_args += cc.get_supported_arguments([
+ '/we4002', # too many actual parameters for macro 'identifier'
+ '/we4003', # not enough actual parameters for macro 'identifier'
+ '/we4013', # 'function' undefined; assuming extern returning int
+ '/we4020', # 'function' : too many actual parameters
+ '/we4027', # function declared without formal parameter list
+ '/we4029', # declared formal parameter list different from definition
+ '/we4033', # 'function' must return a value
+ '/we4045', # 'array' : array bounds overflow
+ '/we4047', # 'operator' : 'identifier1' differs in levels of indirection from 'identifier2'
+ '/we4053', # one void operand for '?:'
+ '/we4062', # enumerator 'identifier' in switch of enum 'enumeration' is not handled
+ '/we4098', # 'function' : void function returning a value
+ '/we4101', # 'identifier' : unreferenced local variable
+ '/we4189', # 'identifier' : local variable is initialized but not referenced
+ ])
+ endif
add_project_arguments(msvc_args, language: ['c', 'cpp'])
endif
static void gst_vulkan_window_win32_close (GstVulkanWindow * window);
static void release_parent_win_id (GstVulkanWindowWin32 * window_win32);
static void gst_vulkan_window_win32_show (GstVulkanWindowWin32 * window);
+static gboolean
+gst_vulkan_window_win32_create_window (GstVulkanWindowWin32 * window_win32,
+ GError ** error);
static void
gst_vulkan_window_win32_class_init (GstVulkanWindowWin32Class * klass)
#ifdef G_OS_WIN32
#include <winsock2.h>
#include <ws2tcpip.h>
+/* dup, read, close */
+#include <io.h>
#else
#include <sys/socket.h>
#include <netdb.h>
'/wd4244', # lossy type conversion (e.g. double -> int)
'/wd4305', # truncating type conversion (e.g. double -> float)
cc.get_supported_arguments(['/utf-8']), # set the input encoding to utf-8
-
- # Enable some warnings on MSVC to match GCC/Clang behaviour
- '/w14062', # enumerator 'identifier' in switch of enum 'enumeration' is not handled
- '/w14101', # 'identifier' : unreferenced local variable
- '/w14189', # 'identifier' : local variable is initialized but not referenced
]
+
+ if gst_version_is_dev
+ # Enable some warnings on MSVC to match GCC/Clang behaviour
+ msvc_args += cc.get_supported_arguments([
+ '/we4002', # too many actual parameters for macro 'identifier'
+ '/we4003', # not enough actual parameters for macro 'identifier'
+ '/we4013', # 'function' undefined; assuming extern returning int
+ '/we4020', # 'function' : too many actual parameters
+ '/we4027', # function declared without formal parameter list
+ '/we4029', # declared formal parameter list different from definition
+ '/we4033', # 'function' must return a value
+ '/we4045', # 'array' : array bounds overflow
+ '/we4047', # 'operator' : 'identifier1' differs in levels of indirection from 'identifier2'
+ '/we4053', # one void operand for '?:'
+ '/we4062', # enumerator 'identifier' in switch of enum 'enumeration' is not handled
+ '/we4098', # 'function' : void function returning a value
+ '/we4101', # 'identifier' : unreferenced local variable
+ '/we4189', # 'identifier' : local variable is initialized but not referenced
+ ])
+ endif
add_project_arguments(msvc_args, language: ['c', 'cpp'])
# Disable SAFESEH with MSVC for plugins and libs that use external deps that
# are built with MinGW
#ifdef _MSC_VER
/* ssize_t is not available, so match return value of read()/write() on MSVC */
#define ssize_t int
+/* read, write */
+#include <io.h>
#endif
#include <errno.h>
#include <string.h>
gboolean have_I420 = FALSE;
gboolean have_NV12 = FALSE;
gboolean have_P010 = FALSE;
+#if GST_MF_HAVE_D3D11
gboolean d3d11_aware = FALSE;
+#endif
gchar *device_name = nullptr;
IMFActivate *activate;
IMFTransform *encoder;
#include <gst/gst.h>
#include <gst/video/video.h>
+#include <stdlib.h>
#include "nvcodec.h"
static void
print_keyboard_help (void)
{
+ /* *INDENT-OFF* */
static struct
{
const gchar *key_desc;
"<", "Decrease encoding bitrate by 100 kbit/sec"}, {
"k", "show keyboard shortcuts"}
};
+ /* *INDENT-ON* */
+
guint i, chars_to_pad, desc_len, max_desc_len = 0;
g_print ("\n\n%s\n\n", "Keyboard controls:");
bool
GetWindowSize (guint * width, guint * height)
{
- bool ret = true;
-
if (!isValid_)
return false;
'/wd4244', # lossy type conversion (e.g. double -> int)
'/wd4305', # truncating type conversion (e.g. double -> float)
cc.get_supported_arguments(['/utf-8']), # set the input encoding to utf-8
-
- # Enable some warnings on MSVC to match GCC/Clang behaviour
- '/w14062', # enumerator 'identifier' in switch of enum 'enumeration' is not handled
- '/w14101', # 'identifier' : unreferenced local variable
- '/w14189', # 'identifier' : local variable is initialized but not referenced
]
+
+ if gst_version_is_dev
+ # Enable some warnings on MSVC to match GCC/Clang behaviour
+ msvc_args += cc.get_supported_arguments([
+ '/we4002', # too many actual parameters for macro 'identifier'
+ '/we4003', # not enough actual parameters for macro 'identifier'
+ '/we4013', # 'function' undefined; assuming extern returning int
+ '/we4020', # 'function' : too many actual parameters
+ '/we4027', # function declared without formal parameter list
+ '/we4029', # declared formal parameter list different from definition
+ '/we4033', # 'function' must return a value
+ '/we4045', # 'array' : array bounds overflow
+ '/we4047', # 'operator' : 'identifier1' differs in levels of indirection from 'identifier2'
+ '/we4053', # one void operand for '?:'
+ '/we4062', # enumerator 'identifier' in switch of enum 'enumeration' is not handled
+ '/we4098', # 'function' : void function returning a value
+ '/we4101', # 'identifier' : unreferenced local variable
+ '/we4189', # 'identifier' : local variable is initialized but not referenced
+ ])
+ endif
add_project_arguments(msvc_args, language: ['c', 'cpp'])
# Disable SAFESEH with MSVC for plugins and libs that use external deps that
# are built with MinGW
#include <glib-object.h>
#include <glib/gprintf.h>
#include <gst/gst.h>
+#include <stdlib.h>
/* There are several supported scenarios
0) Play rate to 1x -> Apply 'instant-rate-change' to 2x -> Apply 'instant-rate-change' to 0.25x (repeat as fast as possible for 2 sec) -> let play for 2s
'/wd4244', # lossy type conversion (e.g. double -> int)
'/wd4305', # truncating type conversion (e.g. double -> float)
cc.get_supported_arguments(['/utf-8']), # set the input encoding to utf-8
-
- # Enable some warnings on MSVC to match GCC/Clang behaviour
- '/w14062', # enumerator 'identifier' in switch of enum 'enumeration' is not handled
- '/w14101', # 'identifier' : unreferenced local variable
- '/w14189', # 'identifier' : local variable is initialized but not referenced
]
+
+ if gst_version_is_dev
+ # Enable some warnings on MSVC to match GCC/Clang behaviour
+ msvc_args += cc.get_supported_arguments([
+ '/we4002', # too many actual parameters for macro 'identifier'
+ '/we4003', # not enough actual parameters for macro 'identifier'
+ '/we4013', # 'function' undefined; assuming extern returning int
+ '/we4020', # 'function' : too many actual parameters
+ '/we4027', # function declared without formal parameter list
+ '/we4029', # declared formal parameter list different from definition
+ '/we4033', # 'function' must return a value
+ '/we4045', # 'array' : array bounds overflow
+ '/we4047', # 'operator' : 'identifier1' differs in levels of indirection from 'identifier2'
+ '/we4053', # one void operand for '?:'
+ '/we4062', # enumerator 'identifier' in switch of enum 'enumeration' is not handled
+ '/we4098', # 'function' : void function returning a value
+ '/we4101', # 'identifier' : unreferenced local variable
+ '/we4189', # 'identifier' : local variable is initialized but not referenced
+ ])
+ endif
if have_cxx
add_project_arguments(msvc_args, language: ['c', 'cpp'])
else
'/wd4244', # lossy type conversion (e.g. double -> int)
'/wd4305', # truncating type conversion (e.g. double -> float)
cc.get_supported_arguments(['/utf-8']), # set the input encoding to utf-8
-
- # Enable some warnings on MSVC to match GCC/Clang behaviour
- '/w14062', # enumerator 'identifier' in switch of enum 'enumeration' is not handled
- '/w14101', # 'identifier' : unreferenced local variable
- '/w14189', # 'identifier' : local variable is initialized but not referenced
]
+
+ if gst_version_is_dev
+ # Enable some warnings on MSVC to match GCC/Clang behaviour
+ msvc_args += cc.get_supported_arguments([
+ '/we4002', # too many actual parameters for macro 'identifier'
+ '/we4003', # not enough actual parameters for macro 'identifier'
+ '/we4013', # 'function' undefined; assuming extern returning int
+ '/we4020', # 'function' : too many actual parameters
+ '/we4027', # function declared without formal parameter list
+ '/we4029', # declared formal parameter list different from definition
+ '/we4033', # 'function' must return a value
+ '/we4045', # 'array' : array bounds overflow
+ '/we4047', # 'operator' : 'identifier1' differs in levels of indirection from 'identifier2'
+ '/we4053', # one void operand for '?:'
+ '/we4062', # enumerator 'identifier' in switch of enum 'enumeration' is not handled
+ '/we4098', # 'function' : void function returning a value
+ '/we4101', # 'identifier' : unreferenced local variable
+ '/we4189', # 'identifier' : local variable is initialized but not referenced
+ ])
+ endif
if have_cxx
add_project_arguments(msvc_args, language: ['c', 'cpp'])
else
'/wd4244', # lossy type conversion (e.g. double -> int)
'/wd4305', # truncating type conversion (e.g. double -> float)
cc.get_supported_arguments(['/utf-8']), # set the input encoding to utf-8
-
- # Enable some warnings on MSVC to match GCC/Clang behaviour
- '/w14062', # enumerator 'identifier' in switch of enum 'enumeration' is not handled
- '/w14101', # 'identifier' : unreferenced local variable
- '/w14189', # 'identifier' : local variable is initialized but not referenced
]
+
+ if gst_version_is_dev
+ # Enable some warnings on MSVC to match GCC/Clang behaviour
+ msvc_args += cc.get_supported_arguments([
+ '/we4002', # too many actual parameters for macro 'identifier'
+ '/we4003', # not enough actual parameters for macro 'identifier'
+ '/we4013', # 'function' undefined; assuming extern returning int
+ '/we4020', # 'function' : too many actual parameters
+ '/we4027', # function declared without formal parameter list
+ '/we4029', # declared formal parameter list different from definition
+ '/we4033', # 'function' must return a value
+ '/we4045', # 'array' : array bounds overflow
+ '/we4047', # 'operator' : 'identifier1' differs in levels of indirection from 'identifier2'
+ '/we4053', # one void operand for '?:'
+ '/we4062', # enumerator 'identifier' in switch of enum 'enumeration' is not handled
+ '/we4098', # 'function' : void function returning a value
+ '/we4101', # 'identifier' : unreferenced local variable
+ '/we4189', # 'identifier' : local variable is initialized but not referenced
+ ])
+ endif
add_project_arguments(msvc_args, language: 'c')
elif cc.has_link_argument('-Wl,-Bsymbolic-functions')
# FIXME: Add an option for this if people ask for it
g_quark_to_string (type), buffer, transbuf, meta);
if (GST_META_TRANSFORM_IS_COPY (type)) {
- G_GNUC_UNUSED GstMetaFoo *unused = GST_META_FOO_ADD (transbuf);
+ GST_META_FOO_ADD (transbuf);
} else {
/* return FALSE, if transform type is not supported */
return FALSE;
#ifdef G_OS_WIN32
#include <winsock2.h>
#include <fcntl.h>
+#include <io.h>
#else
#include <unistd.h>
#include <sys/socket.h>
# include <sys/wait.h>
#endif
+#ifdef G_OS_WIN32
+/* _isatty() */
+#include <io.h>
+#endif
/* "R" : support color
* "X" : do not clear the screen when leaving the pager