diff options
Diffstat (limited to 'sdk/android/src/jni/video_frame.cc')
-rw-r--r-- | sdk/android/src/jni/video_frame.cc | 11 |
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. |