| Index: webrtc/sdk/android/src/java/org/webrtc/I420BufferImpl.java
|
| diff --git a/webrtc/sdk/android/src/java/org/webrtc/I420BufferImpl.java b/webrtc/sdk/android/src/java/org/webrtc/I420BufferImpl.java
|
| index f2677f2fcd9dab49f63df7b560fdbf8c921c1170..2f545e9d647077e360e9dfa646a2af9da8364ca4 100644
|
| --- a/webrtc/sdk/android/src/java/org/webrtc/I420BufferImpl.java
|
| +++ b/webrtc/sdk/android/src/java/org/webrtc/I420BufferImpl.java
|
| @@ -24,6 +24,7 @@ class I420BufferImpl implements VideoFrame.I420Buffer {
|
| private final int strideU;
|
| private final int strideV;
|
| private final Runnable releaseCallback;
|
| + private final Object refCountLock = new Object();
|
|
|
| private int refCount;
|
|
|
| @@ -116,13 +117,17 @@ class I420BufferImpl implements VideoFrame.I420Buffer {
|
|
|
| @Override
|
| public void retain() {
|
| - ++refCount;
|
| + synchronized (refCountLock) {
|
| + ++refCount;
|
| + }
|
| }
|
|
|
| @Override
|
| public void release() {
|
| - if (--refCount == 0 && releaseCallback != null) {
|
| - releaseCallback.run();
|
| + synchronized (refCountLock) {
|
| + if (--refCount == 0 && releaseCallback != null) {
|
| + releaseCallback.run();
|
| + }
|
| }
|
| }
|
|
|
|
|