Android: Use scoped java refs
We currently use raw jobject in our code mixed with sporadic ScopedLocalRefFrame. This CL moves every jobject into a scoped object, either local, global, or a parameter. Also, this CL uses the JNI generation script to generate declaration stubs for the Java->C++ functions so that it no longer becomes possible to mistype them without getting compilation errors. TBR=brandt@webrtc.org Bug: webrtc:8278,webrtc:6969 Change-Id: Ic7bac74a89c11180177d65041086d7db1cdfb516 Reviewed-on: https://webrtc-review.googlesource.com/34655 Commit-Queue: Magnus Jedvert <magjed@webrtc.org> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21387}
This commit is contained in:
committed by
Commit Bot
parent
ec22e3f503
commit
84d8ae5df7
@ -22,6 +22,7 @@ import java.util.concurrent.CountDownLatch;
|
||||
/**
|
||||
* Can be used to save the video frames to file.
|
||||
*/
|
||||
@JNINamespace("webrtc::jni")
|
||||
public class VideoFileRenderer implements VideoRenderer.Callbacks {
|
||||
private static final String TAG = "VideoFileRenderer";
|
||||
|
||||
@ -94,7 +95,7 @@ public class VideoFileRenderer implements VideoRenderer.Callbacks {
|
||||
final float[] texMatrix = RendererCommon.multiplyMatrices(rotatedSamplingMatrix, layoutMatrix);
|
||||
|
||||
try {
|
||||
ByteBuffer buffer = JniCommon.allocateNativeByteBuffer(outputFrameSize);
|
||||
ByteBuffer buffer = JniCommon.nativeAllocateByteBuffer(outputFrameSize);
|
||||
if (!frame.yuvFrame) {
|
||||
yuvConverter.convert(outputFrameBuffer, outputFileWidth, outputFileHeight, outputFileWidth,
|
||||
frame.textureId, texMatrix);
|
||||
@ -153,7 +154,7 @@ public class VideoFileRenderer implements VideoRenderer.Callbacks {
|
||||
|
||||
videoOutFile.write(data);
|
||||
|
||||
JniCommon.freeNativeByteBuffer(buffer);
|
||||
JniCommon.nativeFreeByteBuffer(buffer);
|
||||
}
|
||||
videoOutFile.close();
|
||||
Logging.d(TAG, "Video written to disk as " + outputFileName + ". Number frames are "
|
||||
|
||||
Reference in New Issue
Block a user