From 2e2b0c2b2d298400e788ce2edc38b3b0b78ed62d Mon Sep 17 00:00:00 2001 From: Ackanir Date: Fri, 6 Mar 2026 12:11:04 +0100 Subject: [PATCH 1/2] fix: add missing RTC_OBJC_TYPE macros in .mm files --- webrtc-sys/src/objc_video_factory.mm | 8 ++++---- webrtc-sys/src/objc_video_frame_buffer.mm | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/webrtc-sys/src/objc_video_factory.mm b/webrtc-sys/src/objc_video_factory.mm index 126333541..9c803afaf 100644 --- a/webrtc-sys/src/objc_video_factory.mm +++ b/webrtc-sys/src/objc_video_factory.mm @@ -25,14 +25,14 @@ namespace livekit_ffi { std::unique_ptr CreateObjCVideoEncoderFactory() { - RTCDefaultVideoEncoderFactory* encoderFactory = [[RTCDefaultVideoEncoderFactory alloc] init]; - RTCVideoEncoderFactorySimulcast* simulcastFactory = - [[RTCVideoEncoderFactorySimulcast alloc] initWithPrimary:encoderFactory fallback:encoderFactory]; + RTC_OBJC_TYPE(RTCDefaultVideoEncoderFactory)* encoderFactory = [[RTC_OBJC_TYPE(RTCDefaultVideoEncoderFactory) alloc] init]; + RTC_OBJC_TYPE(RTCVideoEncoderFactorySimulcast)* simulcastFactory = + [[RTC_OBJC_TYPE(RTCVideoEncoderFactorySimulcast) alloc] initWithPrimary:encoderFactory fallback:encoderFactory]; return webrtc::ObjCToNativeVideoEncoderFactory(simulcastFactory); } std::unique_ptr CreateObjCVideoDecoderFactory() { - return webrtc::ObjCToNativeVideoDecoderFactory([[RTCDefaultVideoDecoderFactory alloc] init]); + return webrtc::ObjCToNativeVideoDecoderFactory([[RTC_OBJC_TYPE(RTCDefaultVideoDecoderFactory) alloc] init]); } } // namespace livekit_ffi diff --git a/webrtc-sys/src/objc_video_frame_buffer.mm b/webrtc-sys/src/objc_video_frame_buffer.mm index bbd5dec3f..ce21f6456 100644 --- a/webrtc-sys/src/objc_video_frame_buffer.mm +++ b/webrtc-sys/src/objc_video_frame_buffer.mm @@ -25,7 +25,7 @@ std::unique_ptr new_native_buffer_from_platform_image_buffer( CVPixelBufferRef pixelBuffer ) { - RTCCVPixelBuffer *buffer = [[RTCCVPixelBuffer alloc] initWithPixelBuffer:pixelBuffer]; + RTC_OBJC_TYPE(RTCCVPixelBuffer) *buffer = [[RTC_OBJC_TYPE(RTCCVPixelBuffer) alloc] initWithPixelBuffer:pixelBuffer]; webrtc::scoped_refptr frame_buffer = webrtc::ObjCToNativeVideoFrameBuffer(buffer); [buffer release]; CVPixelBufferRelease(pixelBuffer); @@ -37,8 +37,8 @@ CVPixelBufferRef native_buffer_to_platform_image_buffer( ) { id rtc_pixel_buffer = webrtc::NativeToObjCVideoFrameBuffer(buffer->get()); - if ([rtc_pixel_buffer isKindOfClass:[RTCCVPixelBuffer class]]) { - RTCCVPixelBuffer *cv_pixel_buffer = (RTCCVPixelBuffer *)rtc_pixel_buffer; + if ([rtc_pixel_buffer isKindOfClass:[RTC_OBJC_TYPE(RTCCVPixelBuffer) class]]) { + RTC_OBJC_TYPE(RTCCVPixelBuffer) *cv_pixel_buffer = (RTC_OBJC_TYPE(RTCCVPixelBuffer) *)rtc_pixel_buffer; return [cv_pixel_buffer pixelBuffer]; } else { return nullptr; From 4c8305dd7a06a169c6cd99480fcf11caa3c7180e Mon Sep 17 00:00:00 2001 From: Ackanir Date: Fri, 6 Mar 2026 12:27:59 +0100 Subject: [PATCH 2/2] chore: add knope changeset for webrtc-sys patch --- ..._missing_rtc_objc_type_macros_in_webrtc_sys_mm_files.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/fix_missing_rtc_objc_type_macros_in_webrtc_sys_mm_files.md diff --git a/.changeset/fix_missing_rtc_objc_type_macros_in_webrtc_sys_mm_files.md b/.changeset/fix_missing_rtc_objc_type_macros_in_webrtc_sys_mm_files.md new file mode 100644 index 000000000..9c5696068 --- /dev/null +++ b/.changeset/fix_missing_rtc_objc_type_macros_in_webrtc_sys_mm_files.md @@ -0,0 +1,7 @@ +--- +webrtc-sys: patch +--- + +# Fix missing RTC_OBJC_TYPE macros in webrtc-sys .mm files + +Wrap bare ObjC class references in `RTC_OBJC_TYPE()` in `objc_video_factory.mm` and `objc_video_frame_buffer.mm` to support builds with `rtc_objc_prefix` set.