Fix memory leak in NativeToJavaVideoFrame.
This method used to just wrap frame when passed a native frame and create a new one when passed non-native frame. This caused a memory leak when a new frame was returned because the caller didn't release the frame. Now the method always returns a new frame and the caller is responsible for releasing it. Bug: webrtc:8892, b/72675429 Change-Id: I06d67a6ed4c059cae1d709c51b0266f9c72fef1a Reviewed-on: https://webrtc-review.googlesource.com/53840 Reviewed-by: Anders Carlsson <andersc@webrtc.org> Commit-Queue: Sami Kalliomäki <sakal@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22033}
This commit is contained in:

committed by
Commit Bot

parent
2c599d663d
commit
2bde85046a
@ -128,8 +128,10 @@ int32_t VideoEncoderWrapper::Encode(
|
||||
info.timestamp_rtp = frame.timestamp();
|
||||
frame_extra_infos_.push_back(info);
|
||||
|
||||
ScopedJavaLocalRef<jobject> ret = Java_VideoEncoder_encode(
|
||||
jni, encoder_, NativeToJavaFrame(jni, frame), encode_info);
|
||||
ScopedJavaLocalRef<jobject> j_frame = NativeToJavaVideoFrame(jni, frame);
|
||||
ScopedJavaLocalRef<jobject> ret =
|
||||
Java_VideoEncoder_encode(jni, encoder_, j_frame, encode_info);
|
||||
ReleaseJavaVideoFrame(jni, j_frame);
|
||||
return HandleReturnCode(jni, ret);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user