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. 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;