AppRTCDemo: Render each video in a separate SurfaceView

This CL introduces a new org.webrtc.VideoRenderer.Callbacks implementation called SurfaceViewRenderer that renders each video stream in its own SurfaceView. AppRTCDemo is updated to use this new rendering.

This CL also does the following changes:
* Make the VideoRenderer.Callbacks interface asynchronous and require that renderFrameDone() is called for every renderFrame(). In JNI, this is implemented with cricket::VideoFrame::Copy()/delete.
* Make public static helper functions: convertScalingTypeToVisibleFraction(), getDisplaySize(), and getTextureMatrix().
* Introduces new helper functions surfaceWidth()/surfaceHeight() in EGlBase that allows to query the surface size.
* Introduce PercentFrameLayout that implements the percentage layout that is used by AppRTCDemo.

BUG=webrtc:4742

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

Cr-Commit-Position: refs/heads/master@{#9699}
This commit is contained in:
magjed
2015-08-11 06:50:18 -07:00
committed by Commit bot
parent fa301809b6
commit 05bfbe47ef
14 changed files with 834 additions and 129 deletions

View File

@ -100,6 +100,7 @@ public class PeerConnectionClientTest extends InstrumentationTestCase
}
renderFrameCalled = true;
doneRendering.countDown();
VideoRenderer.renderFrameDone(frame);
}