diff --git a/Makefile.common b/Makefile.common index 7226db8f14..d7a8b97799 100644 --- a/Makefile.common +++ b/Makefile.common @@ -923,13 +923,16 @@ endif ifeq ($(HAVE_PIPEWIRE), 1) OBJ += audio/drivers/pipewire.o \ - audio/common/pipewire.o \ - camera/drivers/pipewire.o + audio/common/pipewire.o ifeq ($(HAVE_MICROPHONE), 1) OBJ += audio/drivers_microphone/pipewire.o endif + ifeq ($(HAVE_PIPEWIRE_STABLE), 1) + OBJ += camera/drivers/pipewire.o + endif + LIBS += $(PIPEWIRE_LIBS) DEF_FLAGS += $(PIPEWIRE_CFLAGS) endif diff --git a/audio/common/pipewire.c b/audio/common/pipewire.c index e931254f52..4a3c970bbd 100644 --- a/audio/common/pipewire.c +++ b/audio/common/pipewire.c @@ -214,8 +214,11 @@ void pipewire_core_deinit(pipewire_core_t *pw) pw_core_disconnect(pw->core); } - spa_clear_ptr(pw->ctx, pw_context_destroy); - spa_clear_ptr(pw->thread_loop, pw_thread_loop_destroy); + if (pw->ctx) + pw_context_destroy(pw->ctx); + + if (pw->thread_loop) + pw_thread_loop_destroy(pw->thread_loop); if (pw->devicelist) string_list_free(pw->devicelist); diff --git a/camera/camera_driver.c b/camera/camera_driver.c index 6925328ad2..68703321e6 100644 --- a/camera/camera_driver.c +++ b/camera/camera_driver.c @@ -49,7 +49,7 @@ const camera_driver_t *camera_drivers[] = { #ifdef HAVE_V4L2 &camera_v4l2, #endif -#ifdef HAVE_PIPEWIRE +#ifdef HAVE_PIPEWIRE_STABLE &camera_pipewire, #endif #ifdef EMSCRIPTEN diff --git a/qb/config.libs.sh b/qb/config.libs.sh index 2e1ff7222e..d5e3076295 100644 --- a/qb/config.libs.sh +++ b/qb/config.libs.sh @@ -270,6 +270,7 @@ check_pkgconf ROAR libroar 1.0.12 check_val '' JACK -ljack '' jack 0.120.1 '' false check_val '' PULSE -lpulse '' libpulse '' '' false check_val '' PIPEWIRE -lpipewire-0.3 '' libpipewire-0.3 '' '' false +check_val '' PIPEWIRE_STABLE -lpipewire-0.3 '' libpipewire-0.3 1.0.0 '' false check_val '' SDL -lSDL SDL sdl 1.2.10 '' false check_val '' SDL2 -lSDL2 SDL2 sdl2 2.0.0 '' false