diff --git a/media/engine/webrtc_video_engine.h b/media/engine/webrtc_video_engine.h index 971cab52af..da078354f5 100644 --- a/media/engine/webrtc_video_engine.h +++ b/media/engine/webrtc_video_engine.h @@ -349,7 +349,6 @@ class WebRtcVideoChannel : public VideoMediaChannel, public webrtc::Transport { RTC_EXCLUSIVE_LOCKS_REQUIRED(&thread_checker_); rtc::ThreadChecker thread_checker_; - rtc::AsyncInvoker invoker_; rtc::Thread* worker_thread_; const std::vector ssrcs_ RTC_GUARDED_BY(&thread_checker_); const std::vector ssrc_groups_ RTC_GUARDED_BY(&thread_checker_); @@ -373,6 +372,11 @@ class WebRtcVideoChannel : public VideoMediaChannel, public webrtc::Transport { webrtc::RtpParameters rtp_parameters_ RTC_GUARDED_BY(&thread_checker_); bool sending_ RTC_GUARDED_BY(&thread_checker_); + + // In order for the |invoker_| to protect other members from being + // destructed as they are used in asynchronous tasks it has to be destructed + // first. + rtc::AsyncInvoker invoker_; }; // Wrapper for the receiver part, contains configs etc. that are needed to