Fix race between enabled() and set_enabled() in VideoTrack.
Along the way I introduced VideoSourceBaseGuarded, which is equivalent to VideoSourceBase except that it applies thread checks. I found that it's easy to use VideoSourceBase incorrectly and in fact there appear to be tests that do this. I made the source object const in VideoTrack, as it already was in AudioTrack, and that allowed for making the GetSource() accessors bypass the proxy thread hop and give the caller direct access. Bug: webrtc:12773, b/188139639, webrtc:12780 Change-Id: I022175c4239a1306ef54059c131d81411d5124fe Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219160 Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Andrey Logvin <landrey@webrtc.org> Commit-Queue: Tommi <tommi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#34096}
This commit is contained in:
@ -15,7 +15,7 @@
|
||||
namespace webrtc {
|
||||
|
||||
VideoTrackSource::VideoTrackSource(bool remote)
|
||||
: state_(kInitializing), remote_(remote) {
|
||||
: state_(kLive), remote_(remote) {
|
||||
worker_thread_checker_.Detach();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user