Commit 2f048511 authored by Ilya Nikolaevskiy's avatar Ilya Nikolaevskiy Committed by Commit Bot

Protect frame_adapter_ with a lock in WebrtcVideoFrameAdapter

Bug: webrtc:11485
Change-Id: I843b0babbcc5ac1169ab09ea957d5df02bc52f29
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2449333
Auto-Submit: Ilya Nikolaevskiy <ilnik@chromium.org>
Reviewed-by: default avatarHenrik Boström <hbos@chromium.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#813707}
parent 02377ef5
......@@ -244,6 +244,7 @@ WebRtcVideoFrameAdapter::CreateFrameAdapter() const {
rtc::scoped_refptr<webrtc::I420BufferInterface>
WebRtcVideoFrameAdapter::ToI420() {
base::AutoLock auto_lock(adapter_lock_);
if (!frame_adapter_) {
frame_adapter_ = CreateFrameAdapter();
}
......@@ -251,6 +252,7 @@ WebRtcVideoFrameAdapter::ToI420() {
}
const webrtc::I420BufferInterface* WebRtcVideoFrameAdapter::GetI420() const {
base::AutoLock auto_lock(adapter_lock_);
if (!frame_adapter_) {
frame_adapter_ = CreateFrameAdapter();
}
......
......@@ -7,6 +7,7 @@
#include <stdint.h>
#include "base/synchronization/lock.h"
#include "media/base/video_frame.h"
#include "third_party/blink/renderer/platform/platform_export.h"
#include "third_party/webrtc/api/video/video_frame_buffer.h"
......@@ -40,9 +41,12 @@ class PLATFORM_EXPORT WebRtcVideoFrameAdapter
rtc::scoped_refptr<webrtc::I420BufferInterface> CreateFrameAdapter() const;
mutable base::Lock adapter_lock_;
// Used to cache result of CreateFrameAdapter. Which is called from const
// GetI420().
mutable rtc::scoped_refptr<webrtc::I420BufferInterface> frame_adapter_;
mutable rtc::scoped_refptr<webrtc::I420BufferInterface> frame_adapter_
GUARDED_BY(adapter_lock_);
scoped_refptr<media::VideoFrame> frame_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment