summaryrefslogtreecommitdiff
blob: 190a67258e1d80d4e00446888e0f358d8918e384 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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<webrtc::VideoTrackInterface>':
../../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<blink::MediaStreamVideoTrack>
 };
 
 template <>
-struct CrossThreadCopier<webrtc::VideoTrackInterface>
-    : public CrossThreadCopierPassThrough<webrtc::VideoTrackInterface> {
+struct CrossThreadCopier<rtc::scoped_refptr<webrtc::VideoTrackInterface>>
+    : public CrossThreadCopierPassThrough<
+          rtc::scoped_refptr<webrtc::VideoTrackInterface>> {
   STATIC_ONLY(CrossThreadCopier);
 };