Merge branch 'videoconvert-vulkan' into 'master'

Draft: videoconvert: Add vulkan converter, take 2

See merge request pipewire/pipewire!1830
This commit is contained in:
columbarius 2025-10-23 19:40:56 +00:00
commit 9983945f1f
5 changed files with 1309 additions and 0 deletions

View file

@ -140,6 +140,10 @@ extern "C" {
"api.vulkan.blit.filter" /**< a vulkan blit filter. */
#define SPA_NAME_API_VULKAN_BLIT_DSP_FILTER \
"api.vulkan.blit.dsp-filter" /**< a vulkan blit dsp-filter. */
#define SPA_NAME_API_VULKAN_VIDEO_CONVERT \
"api.vulkan.videoconvert" /**< converts raw video from one format
* to another using vulkan. Must
* include at least format and scaling */
/**
* \}

View file

@ -4,6 +4,7 @@ spa_vulkan_sources = [
'vulkan-compute-filter.c',
'vulkan-compute-source.c',
'vulkan-compute-utils.c',
'videoconvert-vulkan.c',
'vulkan-blit-filter.c',
'vulkan-blit-dsp-filter.c',
'vulkan-blit-utils.c',

View file

@ -11,6 +11,7 @@ extern const struct spa_handle_factory spa_vulkan_compute_filter_factory;
extern const struct spa_handle_factory spa_vulkan_compute_source_factory;
extern const struct spa_handle_factory spa_vulkan_blit_filter_factory;
extern const struct spa_handle_factory spa_vulkan_blit_dsp_filter_factory;
extern const struct spa_handle_factory spa_videoconvert_vulkan_factory;
SPA_LOG_TOPIC_ENUM_DEFINE_REGISTERED;
@ -33,6 +34,9 @@ int spa_handle_factory_enum(const struct spa_handle_factory **factory, uint32_t
case 3:
*factory = &spa_vulkan_blit_dsp_filter_factory;
break;
case 4:
*factory = &spa_videoconvert_vulkan_factory;
break;
default:
return 0;
}

File diff suppressed because it is too large Load diff

View file

@ -26,6 +26,7 @@ context.spa-libs = {
# that factory.
#
audio.convert.* = audioconvert/libspa-audioconvert
api.vulkan.* = vulkan/libspa-vulkan
support.* = support/libspa-support
video.convert.* = videoconvert/libspa-videoconvert
}