Files
platform-external-webrtc/talk/app/webrtc/java
Magnus Jedvert bc0938e8e7 Android VideoRendererGui: Make deep copy of incoming texture frames
VideoRendererGui may need to render incoming frames multiple times. We currently call VideoRenderer.renderFrameDone() while we still hold references to the OES texture. This CL makes a deep copy of the OES texture before calling renderFrameDone(). This will truly release the dependency to the incoming frame, so that video textures sources can rely on the renderFrameDone() callback.

This CL is a part of the plan in https://codereview.webrtc.org/1357923002/.

The texture copy doesn't cause any measurable performance difference on a Nexus 5 using VideoRendererGui in a AppRTCDemo loopback call.

BUG=webrtc:4993
TEST=Revert "Enable SurfaceViewRenderer for AppRTCDemo" https://codereview.webrtc.org/1356603004/ and try AppRTCDemo.
R=perkj@webrtc.org

Review URL: https://codereview.webrtc.org/1370113005 .

Cr-Commit-Position: refs/heads/master@{#10157}
2015-10-03 15:30:12 +00:00
..

This directory holds a Java implementation of the webrtc::PeerConnection API, as
well as the JNI glue C++ code that lets the Java implementation reuse the C++
implementation of the same API.

To build the Java API and related tests, build with 
OS=linux or OS=android and include
build_with_libjingle=1 build_with_chromium=0
in $GYP_DEFINES.

To use the Java API, start by looking at the public interface of
org.webrtc.PeerConnection{,Factory} and the org.webrtc.PeerConnectionTest.

To understand the implementation of the API, see the native code in jni/.

An example command-line to build & run the unittest:
cd path/to/trunk
GYP_DEFINES="build_with_libjingle=1 build_with_chromium=0 java_home=path/to/JDK" gclient runhooks && \
    ninja -C out/Debug libjingle_peerconnection_java_unittest && \
    ./out/Debug/libjingle_peerconnection_java_unittest
(where path/to/JDK should contain include/jni.h)

During development it can be helpful to run the JVM with the -Xcheck:jni flag.