aboutsummaryrefslogtreecommitdiff
path: root/sdk/android/src/jni/video_frame.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sdk/android/src/jni/video_frame.cc')
-rw-r--r--sdk/android/src/jni/video_frame.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/sdk/android/src/jni/video_frame.cc b/sdk/android/src/jni/video_frame.cc
index c92561afc2..98728032e8 100644
--- a/sdk/android/src/jni/video_frame.cc
+++ b/sdk/android/src/jni/video_frame.cc
@@ -77,8 +77,8 @@ rtc::scoped_refptr<AndroidVideoI420Buffer> AndroidVideoI420Buffer::Adopt(
int width,
int height,
const JavaRef<jobject>& j_video_frame_buffer) {
- return new rtc::RefCountedObject<AndroidVideoI420Buffer>(
- jni, width, height, j_video_frame_buffer);
+ return rtc::make_ref_counted<AndroidVideoI420Buffer>(jni, width, height,
+ j_video_frame_buffer);
}
AndroidVideoI420Buffer::AndroidVideoI420Buffer(
@@ -123,8 +123,7 @@ int64_t GetJavaVideoFrameTimestampNs(JNIEnv* jni,
rtc::scoped_refptr<AndroidVideoBuffer> AndroidVideoBuffer::Adopt(
JNIEnv* jni,
const JavaRef<jobject>& j_video_frame_buffer) {
- return new rtc::RefCountedObject<AndroidVideoBuffer>(jni,
- j_video_frame_buffer);
+ return rtc::make_ref_counted<AndroidVideoBuffer>(jni, j_video_frame_buffer);
}
rtc::scoped_refptr<AndroidVideoBuffer> AndroidVideoBuffer::Create(
@@ -180,6 +179,10 @@ rtc::scoped_refptr<I420BufferInterface> AndroidVideoBuffer::ToI420() {
JNIEnv* jni = AttachCurrentThreadIfNeeded();
ScopedJavaLocalRef<jobject> j_i420_buffer =
Java_Buffer_toI420(jni, j_video_frame_buffer_);
+ // In case I420 conversion fails, we propagate the nullptr.
+ if (j_i420_buffer.is_null()) {
+ return nullptr;
+ }
// We don't need to retain the buffer because toI420 returns a new object that
// we are assumed to take the ownership of.