From 4f45828641a566c2205f166426f532fcafd5f1f2 Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Sat, 11 Sep 2021 00:43:26 +0900 Subject: [PATCH] d3d11: Get rid of "extern "C"" wrapping for GST_DEBUG_CATEGORY_EXTERN Instead, change the file defining debug category to cpp Part-of: --- sys/d3d11/gstd3d11av1dec.cpp | 13 +++--------- sys/d3d11/gstd3d11compositor.cpp | 8 ++----- sys/d3d11/gstd3d11compositorbin.cpp | 6 ------ sys/d3d11/gstd3d11converter.cpp | 8 ++----- sys/d3d11/gstd3d11deinterlace.cpp | 8 ++----- sys/d3d11/gstd3d11desktopdup.cpp | 8 ++----- sys/d3d11/gstd3d11desktopdupsrc.cpp | 6 ------ sys/d3d11/gstd3d11h264dec.cpp | 6 ------ sys/d3d11/gstd3d11h265dec.cpp | 6 ------ sys/d3d11/gstd3d11mpeg2dec.cpp | 6 ------ sys/d3d11/gstd3d11overlaycompositor.cpp | 9 +++----- sys/d3d11/gstd3d11pluginutils.cpp | 6 ------ sys/d3d11/gstd3d11shader.cpp | 6 +----- sys/d3d11/gstd3d11videoprocessor.cpp | 6 ------ sys/d3d11/gstd3d11vp8dec.cpp | 6 ------ sys/d3d11/gstd3d11vp9dec.cpp | 6 ------ sys/d3d11/gstd3d11window.cpp | 6 ++---- sys/d3d11/gstd3d11window_corewindow.cpp | 3 --- sys/d3d11/gstd3d11window_dummy.cpp | 6 +----- sys/d3d11/gstd3d11window_swapchainpanel.cpp | 4 ---- sys/d3d11/gstd3d11window_win32.cpp | 6 +----- sys/d3d11/meson.build | 23 ++++++++++----------- sys/d3d11/{plugin.c => plugin.cpp} | 2 +- 23 files changed, 31 insertions(+), 133 deletions(-) rename sys/d3d11/{plugin.c => plugin.cpp} (99%) diff --git a/sys/d3d11/gstd3d11av1dec.cpp b/sys/d3d11/gstd3d11av1dec.cpp index c8bc369715..c479598994 100644 --- a/sys/d3d11/gstd3d11av1dec.cpp +++ b/sys/d3d11/gstd3d11av1dec.cpp @@ -49,6 +49,9 @@ #include #include +GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_av1_dec_debug); +#define GST_CAT_DEFAULT gst_d3d11_av1_dec_debug + /* Might not be defined in dxva.h, copied from DXVA AV1 spec available at * https://www.microsoft.com/en-us/download/confirmation.aspx?id=101577 * and modified with "GST_" prefix @@ -347,16 +350,6 @@ typedef struct _GST_DXVA_Tile_AV1 #pragma pack(pop) -/* *INDENT-OFF* */ - -G_BEGIN_DECLS - -GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_av1_dec_debug); -#define GST_CAT_DEFAULT gst_d3d11_av1_dec_debug - -G_END_DECLS -/* *INDENT-ON* */ - enum { PROP_0, diff --git a/sys/d3d11/gstd3d11compositor.cpp b/sys/d3d11/gstd3d11compositor.cpp index 1f9198705c..0c70873c2b 100644 --- a/sys/d3d11/gstd3d11compositor.cpp +++ b/sys/d3d11/gstd3d11compositor.cpp @@ -43,15 +43,11 @@ #include #include -/* *INDENT-OFF* */ -using namespace Microsoft::WRL; - -G_BEGIN_DECLS - GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_compositor_debug); #define GST_CAT_DEFAULT gst_d3d11_compositor_debug -G_END_DECLS +/* *INDENT-OFF* */ +using namespace Microsoft::WRL; /* *INDENT-ON* */ /** diff --git a/sys/d3d11/gstd3d11compositorbin.cpp b/sys/d3d11/gstd3d11compositorbin.cpp index e53cc5bf47..1e60797230 100644 --- a/sys/d3d11/gstd3d11compositorbin.cpp +++ b/sys/d3d11/gstd3d11compositorbin.cpp @@ -47,15 +47,9 @@ #include "gstd3d11compositor.h" #include "gstd3d11pluginutils.h" -/* *INDENT-OFF* */ -G_BEGIN_DECLS - GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_compositor_debug); #define GST_CAT_DEFAULT gst_d3d11_compositor_debug -G_END_DECLS -/* *INDENT-ON* */ - /**************************** * GstD3D11CompositorBinPad * ****************************/ diff --git a/sys/d3d11/gstd3d11converter.cpp b/sys/d3d11/gstd3d11converter.cpp index dd63411704..1d22a00978 100644 --- a/sys/d3d11/gstd3d11converter.cpp +++ b/sys/d3d11/gstd3d11converter.cpp @@ -28,15 +28,11 @@ #include #include -/* *INDENT-OFF* */ -using namespace Microsoft::WRL; - -G_BEGIN_DECLS - GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_converter_debug); #define GST_CAT_DEFAULT gst_d3d11_converter_debug -G_END_DECLS +/* *INDENT-OFF* */ +using namespace Microsoft::WRL; /* *INDENT-ON* */ #define CONVERTER_MAX_QUADS 2 diff --git a/sys/d3d11/gstd3d11deinterlace.cpp b/sys/d3d11/gstd3d11deinterlace.cpp index b961cf043e..99de8437b0 100644 --- a/sys/d3d11/gstd3d11deinterlace.cpp +++ b/sys/d3d11/gstd3d11deinterlace.cpp @@ -42,15 +42,11 @@ #include #include -/* *INDENT-OFF* */ -using namespace Microsoft::WRL; - -G_BEGIN_DECLS - GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_deinterlace_debug); #define GST_CAT_DEFAULT gst_d3d11_deinterlace_debug -G_END_DECLS +/* *INDENT-OFF* */ +using namespace Microsoft::WRL; /* *INDENT-ON* */ /* Deinterlacing Methods: diff --git a/sys/d3d11/gstd3d11desktopdup.cpp b/sys/d3d11/gstd3d11desktopdup.cpp index 8be33c101a..1e5590ee94 100644 --- a/sys/d3d11/gstd3d11desktopdup.cpp +++ b/sys/d3d11/gstd3d11desktopdup.cpp @@ -53,15 +53,11 @@ #include -/* *INDENT-OFF* */ -using namespace Microsoft::WRL; - -G_BEGIN_DECLS - GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_desktop_dup_debug); #define GST_CAT_DEFAULT gst_d3d11_desktop_dup_debug -G_END_DECLS +/* *INDENT-OFF* */ +using namespace Microsoft::WRL; /* List of GstD3D11DesktopDup weakref */ G_LOCK_DEFINE_STATIC (dupl_list_lock); diff --git a/sys/d3d11/gstd3d11desktopdupsrc.cpp b/sys/d3d11/gstd3d11desktopdupsrc.cpp index 39ec4cde7b..9dd445d71a 100644 --- a/sys/d3d11/gstd3d11desktopdupsrc.cpp +++ b/sys/d3d11/gstd3d11desktopdupsrc.cpp @@ -42,15 +42,9 @@ #include -/* *INDENT-OFF* */ -G_BEGIN_DECLS - GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_desktop_dup_debug); #define GST_CAT_DEFAULT gst_d3d11_desktop_dup_debug -G_END_DECLS -/* *INDENT-ON* */ - enum { PROP_0, diff --git a/sys/d3d11/gstd3d11h264dec.cpp b/sys/d3d11/gstd3d11h264dec.cpp index 08adb62374..f1a3d548fe 100644 --- a/sys/d3d11/gstd3d11h264dec.cpp +++ b/sys/d3d11/gstd3d11h264dec.cpp @@ -79,15 +79,9 @@ #include #include -/* *INDENT-OFF* */ -G_BEGIN_DECLS - GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_h264_dec_debug); #define GST_CAT_DEFAULT gst_d3d11_h264_dec_debug -G_END_DECLS -/* *INDENT-ON* */ - enum { PROP_0, diff --git a/sys/d3d11/gstd3d11h265dec.cpp b/sys/d3d11/gstd3d11h265dec.cpp index 1ca92064f3..00826bfaf7 100644 --- a/sys/d3d11/gstd3d11h265dec.cpp +++ b/sys/d3d11/gstd3d11h265dec.cpp @@ -49,15 +49,9 @@ #include #include -/* *INDENT-OFF* */ -G_BEGIN_DECLS - GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_h265_dec_debug); #define GST_CAT_DEFAULT gst_d3d11_h265_dec_debug -G_END_DECLS -/* *INDENT-ON* */ - enum { PROP_0, diff --git a/sys/d3d11/gstd3d11mpeg2dec.cpp b/sys/d3d11/gstd3d11mpeg2dec.cpp index da32f95a3e..8a6ceed737 100644 --- a/sys/d3d11/gstd3d11mpeg2dec.cpp +++ b/sys/d3d11/gstd3d11mpeg2dec.cpp @@ -49,15 +49,9 @@ #include #include -/* *INDENT-OFF* */ -G_BEGIN_DECLS - GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_mpeg2_dec_debug); #define GST_CAT_DEFAULT gst_d3d11_mpeg2_dec_debug -G_END_DECLS -/* *INDENT-ON* */ - enum { PROP_0, diff --git a/sys/d3d11/gstd3d11overlaycompositor.cpp b/sys/d3d11/gstd3d11overlaycompositor.cpp index b09ca9c5ba..b2dd65330d 100644 --- a/sys/d3d11/gstd3d11overlaycompositor.cpp +++ b/sys/d3d11/gstd3d11overlaycompositor.cpp @@ -26,15 +26,12 @@ #include "gstd3d11pluginutils.h" #include -/* *INDENT-OFF* */ -using namespace Microsoft::WRL; - -G_BEGIN_DECLS - GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_overlay_compositor_debug); #define GST_CAT_DEFAULT gst_d3d11_overlay_compositor_debug -G_END_DECLS +/* *INDENT-OFF* */ +using namespace Microsoft::WRL; + typedef struct { struct { diff --git a/sys/d3d11/gstd3d11pluginutils.cpp b/sys/d3d11/gstd3d11pluginutils.cpp index 5d899c765f..624063eefd 100644 --- a/sys/d3d11/gstd3d11pluginutils.cpp +++ b/sys/d3d11/gstd3d11pluginutils.cpp @@ -27,15 +27,9 @@ #include #include -/* *INDENT-OFF* */ -G_BEGIN_DECLS - GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_plugin_utils_debug); #define GST_CAT_DEFAULT gst_d3d11_plugin_utils_debug -G_END_DECLS -/* *INDENT-ON* */ - /* Max Texture Dimension for feature level 11_0 ~ 12_1 */ static guint _gst_d3d11_texture_max_dimension = 16384; diff --git a/sys/d3d11/gstd3d11shader.cpp b/sys/d3d11/gstd3d11shader.cpp index ded8689c55..3f9ea34fca 100644 --- a/sys/d3d11/gstd3d11shader.cpp +++ b/sys/d3d11/gstd3d11shader.cpp @@ -28,15 +28,11 @@ /* *INDENT-OFF* */ using namespace Microsoft::WRL; - -G_BEGIN_DECLS +/* *INDENT-ON* */ GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_shader_debug); #define GST_CAT_DEFAULT gst_d3d11_shader_debug -G_END_DECLS -/* *INDENT-ON* */ - /* too many const buffers doesn't make sense */ #define MAX_CONST_BUFFERS 16 diff --git a/sys/d3d11/gstd3d11videoprocessor.cpp b/sys/d3d11/gstd3d11videoprocessor.cpp index e1b4b5cee2..a907fab46f 100644 --- a/sys/d3d11/gstd3d11videoprocessor.cpp +++ b/sys/d3d11/gstd3d11videoprocessor.cpp @@ -26,15 +26,9 @@ #include -/* *INDENT-OFF* */ -G_BEGIN_DECLS - GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_video_processor_debug); #define GST_CAT_DEFAULT gst_d3d11_video_processor_debug -G_END_DECLS -/* *INDENT-ON* */ - #if (GST_D3D11_HEADER_VERSION >= 1 && GST_D3D11_DXGI_HEADER_VERSION >= 4) #define HAVE_VIDEO_CONTEXT_ONE #endif diff --git a/sys/d3d11/gstd3d11vp8dec.cpp b/sys/d3d11/gstd3d11vp8dec.cpp index 9c2e6ec1e7..fd6c00e22a 100644 --- a/sys/d3d11/gstd3d11vp8dec.cpp +++ b/sys/d3d11/gstd3d11vp8dec.cpp @@ -49,15 +49,9 @@ #include #include -/* *INDENT-OFF* */ -G_BEGIN_DECLS - GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_vp8_dec_debug); #define GST_CAT_DEFAULT gst_d3d11_vp8_dec_debug -G_END_DECLS -/* *INDENT-ON* */ - enum { PROP_0, diff --git a/sys/d3d11/gstd3d11vp9dec.cpp b/sys/d3d11/gstd3d11vp9dec.cpp index c6aba1cebe..09c15bfabe 100644 --- a/sys/d3d11/gstd3d11vp9dec.cpp +++ b/sys/d3d11/gstd3d11vp9dec.cpp @@ -79,15 +79,9 @@ #include #include -/* *INDENT-OFF* */ -G_BEGIN_DECLS - GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_vp9_dec_debug); #define GST_CAT_DEFAULT gst_d3d11_vp9_dec_debug -G_END_DECLS -/* *INDENT-ON* */ - enum { PROP_0, diff --git a/sys/d3d11/gstd3d11window.cpp b/sys/d3d11/gstd3d11window.cpp index 666bde5346..85506b1a86 100644 --- a/sys/d3d11/gstd3d11window.cpp +++ b/sys/d3d11/gstd3d11window.cpp @@ -35,16 +35,14 @@ #endif #include + /* *INDENT-OFF* */ using namespace Microsoft::WRL; - -G_BEGIN_DECLS +/* *INDENT-ON* */ GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_window_debug); #define GST_CAT_DEFAULT gst_d3d11_window_debug -G_END_DECLS -/* *INDENT-ON* */ enum { diff --git a/sys/d3d11/gstd3d11window_corewindow.cpp b/sys/d3d11/gstd3d11window_corewindow.cpp index f637080853..a2b4e5b3d3 100644 --- a/sys/d3d11/gstd3d11window_corewindow.cpp +++ b/sys/d3d11/gstd3d11window_corewindow.cpp @@ -47,12 +47,9 @@ typedef ABI::Windows::Foundation:: __FITypedEventHandler_2_Windows__CUI__CCore__CCoreWindow_Windows__CUI__CCore__CWindowSizeChangedEventArgs_t IWindowSizeChangedEventHandler; -G_BEGIN_DECLS GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_window_debug); #define GST_CAT_DEFAULT gst_d3d11_window_debug -G_END_DECLS - /* timeout to wait busy UI thread */ #define DEFAULT_ASYNC_TIMEOUT (10 * 1000) diff --git a/sys/d3d11/gstd3d11window_dummy.cpp b/sys/d3d11/gstd3d11window_dummy.cpp index 434c661f7e..f45ffbd611 100644 --- a/sys/d3d11/gstd3d11window_dummy.cpp +++ b/sys/d3d11/gstd3d11window_dummy.cpp @@ -28,15 +28,11 @@ /* *INDENT-OFF* */ using namespace Microsoft::WRL; - -G_BEGIN_DECLS +/* *INDENT-ON* */ GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_window_debug); #define GST_CAT_DEFAULT gst_d3d11_window_debug -G_END_DECLS -/* *INDENT-ON* */ - struct _GstD3D11WindowDummy { GstD3D11Window parent; diff --git a/sys/d3d11/gstd3d11window_swapchainpanel.cpp b/sys/d3d11/gstd3d11window_swapchainpanel.cpp index fdb068b1b8..2e6773a260 100644 --- a/sys/d3d11/gstd3d11window_swapchainpanel.cpp +++ b/sys/d3d11/gstd3d11window_swapchainpanel.cpp @@ -41,13 +41,9 @@ using namespace Microsoft::WRL::Wrappers; using namespace ABI::Windows::UI; using namespace ABI::Windows::Foundation; -G_BEGIN_DECLS - GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_window_debug); #define GST_CAT_DEFAULT gst_d3d11_window_debug -G_END_DECLS - /* timeout to wait busy UI thread */ #define DEFAULT_ASYNC_TIMEOUT (10 * 1000) diff --git a/sys/d3d11/gstd3d11window_win32.cpp b/sys/d3d11/gstd3d11window_win32.cpp index 23d5d3de86..644839129d 100644 --- a/sys/d3d11/gstd3d11window_win32.cpp +++ b/sys/d3d11/gstd3d11window_win32.cpp @@ -29,15 +29,11 @@ /* *INDENT-OFF* */ using namespace Microsoft::WRL; - -G_BEGIN_DECLS +/* *INDENT-ON* */ GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_window_debug); #define GST_CAT_DEFAULT gst_d3d11_window_debug -G_END_DECLS -/* *INDENT-ON* */ - G_LOCK_DEFINE_STATIC (create_lock); #define EXTERNAL_PROC_PROP_NAME "d3d11_window_external_proc" diff --git a/sys/d3d11/meson.build b/sys/d3d11/meson.build index 24f2debf8d..43f213d9c9 100644 --- a/sys/d3d11/meson.build +++ b/sys/d3d11/meson.build @@ -13,7 +13,7 @@ d3d11_sources = [ 'gstd3d11videosink.cpp', 'gstd3d11window.cpp', 'gstd3d11window_dummy.cpp', - 'plugin.c', + 'plugin.cpp', ] d3d11_dec_sources = [ @@ -26,8 +26,8 @@ d3d11_dec_sources = [ 'gstd3d11vp8dec.cpp', ] -extra_c_args = ['-DCOBJMACROS', '-DGST_USE_UNSTABLE_API'] -extra_cpp_args = ['-DGST_USE_UNSTABLE_API'] +extra_c_args = ['-DCOBJMACROS'] +extra_args = ['-DGST_USE_UNSTABLE_API'] extra_dep = [] d3d11_option = get_option('d3d11') @@ -58,7 +58,7 @@ endif # d3d11 video api uses dxva structure for decoding, and dxva.h needs d3d9 types if cc.has_header('dxva.h') and cc.has_header('d3d9.h') d3d11_sources += d3d11_dec_sources - extra_c_args += ['-DHAVE_DXVA_H'] + extra_args += ['-DHAVE_DXVA_H'] extra_dep += [gstcodecs_dep] has_decoder = true endif @@ -83,13 +83,13 @@ if d3d11_winapi_desktop if d3d11_conf.get('GST_D3D11_DXGI_HEADER_VERSION') >= 6 # Desktop Duplication API is unavailable for UWP # and MinGW is not supported due to some missing headers - extra_c_args += ['-DHAVE_DXGI_DESKTOP_DUP'] + extra_args += ['-DHAVE_DXGI_DESKTOP_DUP'] d3d11_sources += ['gstd3d11desktopdup.cpp', 'gstd3d11desktopdupsrc.cpp'] message('Enable D3D11 Desktop Duplication API') endif # multimedia clock is desktop only API if has_decoder and winmm_lib.found() and cc.has_header('timeapi.h') - extra_cpp_args += ['-DHAVE_WINMM'] + extra_args += ['-DHAVE_WINMM'] extra_dep += [winmm_lib] endif endif @@ -97,24 +97,23 @@ endif # need dxgi1_5.h for HDR10 processing and d3d11_4.h for ID3D11VideoContext2 interface if d3d11_conf.get('GST_D3D11_DXGI_HEADER_VERSION') >= 5 and d3d11_conf.get('GST_D3D11_HEADER_VERSION') >= 4 d3d11_sources += ['gstd3d11deinterlace.cpp'] - extra_c_args += ['-DHAVE_D3D11_VIDEO_PROC'] + extra_args += ['-DHAVE_D3D11_VIDEO_PROC'] endif # MinGW 32bits compiler seems to be complaining about redundant-decls # when ComPtr is in use. Let's just disable the warning if cc.get_id() != 'msvc' - extra_args = cc.get_supported_arguments([ + extra_mingw_args = cc.get_supported_arguments([ '-Wno-redundant-decls', ]) - extra_c_args += extra_args - extra_cpp_args += extra_args + extra_args += extra_mingw_args endif gstd3d11 = library('gstd3d11', d3d11_sources, - c_args : gst_plugins_bad_args + extra_c_args, - cpp_args: gst_plugins_bad_args + extra_cpp_args, + c_args : gst_plugins_bad_args + extra_c_args + extra_args, + cpp_args: gst_plugins_bad_args + extra_args, include_directories : [configinc], dependencies : [gstbase_dep, gstvideo_dep, gmodule_dep, gstcontroller_dep, gstd3d11_dep] + extra_dep, install : true, diff --git a/sys/d3d11/plugin.c b/sys/d3d11/plugin.cpp similarity index 99% rename from sys/d3d11/plugin.c rename to sys/d3d11/plugin.cpp index c0894283aa..2a6f094007 100644 --- a/sys/d3d11/plugin.c +++ b/sys/d3d11/plugin.cpp @@ -138,7 +138,7 @@ plugin_init (GstPlugin * plugin) break; device_handle = gst_d3d11_device_get_device_handle (device); - feature_level = ID3D11Device_GetFeatureLevel (device_handle); + feature_level = device_handle->GetFeatureLevel (); if (feature_level > max_feature_level) max_feature_level = feature_level;