mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
applemedia: silence a couple of MoltenVK warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2433>
This commit is contained in:
parent
03041842de
commit
0e120ca5aa
2 changed files with 20 additions and 3 deletions
|
@ -31,6 +31,8 @@ if ['darwin', 'ios'].contains(host_system)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
applemedia_objc_args += ['-fobjc-arc']
|
applemedia_objc_args += ['-fobjc-arc']
|
||||||
|
|
||||||
|
objcpp = meson.get_compiler('objcpp')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
applemedia_frameworks = []
|
applemedia_frameworks = []
|
||||||
|
@ -87,6 +89,7 @@ foreach framework : applemedia_frameworks
|
||||||
endif
|
endif
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
|
applemedia_objcpp_args = []
|
||||||
if gstvulkan_dep.found() and have_objcpp
|
if gstvulkan_dep.found() and have_objcpp
|
||||||
moltenvk_dep = cc.find_library('MoltenVK', required : false)
|
moltenvk_dep = cc.find_library('MoltenVK', required : false)
|
||||||
metal_dep = dependency('appleframeworks', modules : ['Metal'], required : false)
|
metal_dep = dependency('appleframeworks', modules : ['Metal'], required : false)
|
||||||
|
@ -97,6 +100,10 @@ if gstvulkan_dep.found() and have_objcpp
|
||||||
'iosurfacevulkanmemory.c',
|
'iosurfacevulkanmemory.c',
|
||||||
]
|
]
|
||||||
applemedia_args += ['-DAPPLEMEDIA_MOLTENVK']
|
applemedia_args += ['-DAPPLEMEDIA_MOLTENVK']
|
||||||
|
# override_options : ['cpp_std=c++11'] doesn't seem to work for objcpp
|
||||||
|
applemedia_objcpp_args += objcpp.get_supported_arguments([
|
||||||
|
'-std=c++11',
|
||||||
|
])
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -105,10 +112,11 @@ if applemedia_found_deps
|
||||||
applemedia_sources,
|
applemedia_sources,
|
||||||
c_args : gst_plugins_bad_args + applemedia_args,
|
c_args : gst_plugins_bad_args + applemedia_args,
|
||||||
objc_args : gst_plugins_bad_args + applemedia_args + applemedia_objc_args,
|
objc_args : gst_plugins_bad_args + applemedia_args + applemedia_objc_args,
|
||||||
objcpp_args : gst_plugins_bad_args + applemedia_args + applemedia_objc_args,
|
objcpp_args : gst_plugins_bad_args + applemedia_args + applemedia_objc_args + applemedia_objcpp_args,
|
||||||
link_args : noseh_link_args,
|
link_args : noseh_link_args,
|
||||||
include_directories : [configinc, libsinc],
|
include_directories : [configinc, libsinc],
|
||||||
dependencies : [gstvideo_dep, gstaudio_dep, gstpbutils_dep, gst_dep, gstbase_dep, gstgl_dep, gstglproto_dep] + applemedia_frameworks,
|
dependencies : [gstvideo_dep, gstaudio_dep, gstpbutils_dep, gst_dep, gstbase_dep, gstgl_dep, gstglproto_dep] + applemedia_frameworks,
|
||||||
|
override_options : ['cpp_std=c++11'],
|
||||||
install : true,
|
install : true,
|
||||||
install_dir : plugins_install_dir,
|
install_dir : plugins_install_dir,
|
||||||
)
|
)
|
||||||
|
|
|
@ -32,7 +32,16 @@
|
||||||
#undef VK_USE_PLATFORM_MACOS_MVK
|
#undef VK_USE_PLATFORM_MACOS_MVK
|
||||||
#undef VK_USE_PLATFORM_IOS_MVK
|
#undef VK_USE_PLATFORM_IOS_MVK
|
||||||
#include <MoltenVK/vk_mvk_moltenvk.h>
|
#include <MoltenVK/vk_mvk_moltenvk.h>
|
||||||
|
/* MoltenVK uses some enums/typedefs that are only available in newer macOS/iOS
|
||||||
|
* versions. At time of writing:
|
||||||
|
* - MTLTextureSwizzle
|
||||||
|
* - MTLTextureSwizzleChannels
|
||||||
|
* - MTLMultisampleDepthResolveFilter
|
||||||
|
*/
|
||||||
|
#pragma clang diagnostic push
|
||||||
|
#pragma clang diagnostic warning "-Wunguarded-availability-new"
|
||||||
#include <MoltenVK/mvk_datatypes.h>
|
#include <MoltenVK/mvk_datatypes.h>
|
||||||
|
#pragma clang diagnostic pop
|
||||||
/* silence macro redefinition warnings */
|
/* silence macro redefinition warnings */
|
||||||
#undef VK_USE_PLATFORM_MACOS_MVK
|
#undef VK_USE_PLATFORM_MACOS_MVK
|
||||||
#undef VK_USE_PLATFORM_IOS_MVK
|
#undef VK_USE_PLATFORM_IOS_MVK
|
||||||
|
@ -210,7 +219,7 @@ _create_vulkan_memory (GstAppleCoreVideoPixelBuffer * gpixbuf,
|
||||||
IOSurfaceRef surface = CVPixelBufferGetIOSurface (pixel_buf);
|
IOSurfaceRef surface = CVPixelBufferGetIOSurface (pixel_buf);
|
||||||
GstVideoTextureCacheVulkan *cache_vulkan =
|
GstVideoTextureCacheVulkan *cache_vulkan =
|
||||||
GST_VIDEO_TEXTURE_CACHE_VULKAN (cache);
|
GST_VIDEO_TEXTURE_CACHE_VULKAN (cache);
|
||||||
MTLPixelFormat fmt = video_info_to_metal_format (info, plane);
|
MTLPixelFormat fmt = (MTLPixelFormat) video_info_to_metal_format (info, plane);
|
||||||
|
|
||||||
CFRetain (pixel_buf);
|
CFRetain (pixel_buf);
|
||||||
mem = gst_io_surface_vulkan_memory_wrapped (cache_vulkan->device,
|
mem = gst_io_surface_vulkan_memory_wrapped (cache_vulkan->device,
|
||||||
|
@ -292,7 +301,7 @@ gst_io_surface_vulkan_memory_set_surface (GstIOSurfaceVulkanMemory * memory,
|
||||||
texture_data->texture = (__bridge_retained gpointer) texture;
|
texture_data->texture = (__bridge_retained gpointer) texture;
|
||||||
|
|
||||||
VkResult err = vkSetMTLTextureMVK (memory->vulkan_mem.image, texture);
|
VkResult err = vkSetMTLTextureMVK (memory->vulkan_mem.image, texture);
|
||||||
GST_DEBUG ("bound texture %p to image %"GST_VULKAN_NON_DISPATCHABLE_HANDLE_FORMAT": 0x%x",
|
GST_DEBUG ("bound texture %p to image %" GST_VULKAN_NON_DISPATCHABLE_HANDLE_FORMAT ": 0x%x",
|
||||||
texture, memory->vulkan_mem.image, err);
|
texture, memory->vulkan_mem.image, err);
|
||||||
|
|
||||||
vk_mem->user_data = texture_data;
|
vk_mem->user_data = texture_data;
|
||||||
|
|
Loading…
Reference in a new issue