In file included from ../../third_party/blink/renderer/platform/heap/persistent.h:18, from ../../third_party/blink/public/platform/web_private_ptr.h:40, from ../../third_party/blink/public/platform/web_media_stream_track.h:33, from ../../third_party/blink/public/platform/web_media_stream_source.h:37, from ../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h:19, from ../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc:5: ../../third_party/blink/renderer/platform/wtf/cross_thread_copier.h: In instantiation of 'struct WTF::CrossThreadCopierPassThrough': ../../third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h:169:14: required from here ../../third_party/blink/renderer/platform/wtf/cross_thread_copier.h:80:15: error: invalid abstract return type 'webrtc::VideoTrackInterface' 80 | static Type Copy(const T& parameter) { return parameter; } | ^~~~ In file included from ../../third_party/webrtc/api/peer_connection_interface.h:88, from ../../third_party/blink/public/platform/web_rtc_peer_connection_handler.h:39, from ../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h:20, from ../../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc:5: ../../third_party/webrtc/api/media_stream_interface.h:174:18: note: because the following virtual functions are pure within 'webrtc::VideoTrackInterface': 174 | class RTC_EXPORT VideoTrackInterface | ^~~~~~~~~~~~~~~~~~~ ../../third_party/webrtc/api/media_stream_interface.h:48:16: note: 'virtual void webrtc::NotifierInterface::RegisterObserver(webrtc::ObserverInterface*)' 48 | virtual void RegisterObserver(ObserverInterface* observer) = 0; | ^~~~~~~~~~~~~~~~ ../../third_party/webrtc/api/media_stream_interface.h:49:16: note: 'virtual void webrtc::NotifierInterface::UnregisterObserver(webrtc::ObserverInterface*)' 49 | virtual void UnregisterObserver(ObserverInterface* observer) = 0; | ^~~~~~~~~~~~~~~~~~ diff --git a/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h b/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h index 54cb7d1..0d6c40f 100644 --- a/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h +++ b/third_party/blink/renderer/modules/peerconnection/adapters/web_rtc_cross_thread_copier.h @@ -165,8 +165,9 @@ struct CrossThreadCopier }; template <> -struct CrossThreadCopier - : public CrossThreadCopierPassThrough { +struct CrossThreadCopier> + : public CrossThreadCopierPassThrough< + rtc::scoped_refptr> { STATIC_ONLY(CrossThreadCopier); };