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 CL should not change any visible behaviour. It does the following:
* Extract GLES rendering into separate class GlRectDrawer. This class is also needed for future video encode with OES texture input.
* Clean up current ScalingType -> display size calculation and introduce new SCALE_ASPECT_BALANCED (b/21735609) and remove unused SCALE_FILL.
* Replace current mirror/rotation index juggling with android.opengl.Matrix operations instead.
Review URL: https://codereview.webrtc.org/1191243005
Cr-Commit-Position: refs/heads/master@{#9496}
This CL does not make any functional changes. The purpose is to extract some common code that is needed for texture capture and texture encode.
This CL does the following changes:
* Move common EGL functions from org.webrtc.MediaCodecVideoDecoder to org.webrtc.EglBase.
* Move common GL functions from org.webrtc.VideoRendererGui to org.webrtc.GlUtil and org.webrtc.GlShader.
* Remove unused call to surfaceTexture.getTransformMatrix in YuvImageRenderer.
* Add helper functions rotatedWidth()/rotatedHeight() in VideoRenderer.I420Frame.
R=glaznev@webrtc.org, hbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/47309005.
Cr-Commit-Position: refs/heads/master@{#9414}
- Check texture properties update flag using the same lock under which
the flag value is set.
- Adjust texture properties inside frame queue lock.
- Plus adding extra logging to track video renderer properties updates.
R=wzh@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/45929004
Cr-Commit-Position: refs/heads/master@{#8941}
All RTP packets from sender side will carry the rotation info. (will file a bug to track this) On the receiving side, only packets with marker bit set will be examined.
Tests completed:
1. android standalone to android standalone
2. android standalone to chrome (with and without this change)
3. android on chrome
BUG=4145
R=glaznev@webrtc.org, mflodman@webrtc.org, perkj@webrtc.org, pthatcher@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/47399004
Cr-Commit-Position: refs/heads/master@{#8905}
with stride > width.
Recent libvpx update generates output video frames with stride
value greater than width, which was not supported by Android OpenGL
video renderer (Android GLES2 doesn't have GL_UNPACK_ROW_LENGTH
to provide stride information for buffer in glTexImage2D call).
Fix it by implementing native frame copying for Java
VideoRenderer.I420Frame implementation.
BUG=4248
R=braveyao@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/40639004
Cr-Commit-Position: refs/heads/master@{#8252}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8252 4adac7df-926f-26a2-2b94-8c16560cd09d
- Add separate looper threads for peer connection and websocket
signaling classes.
- To improve the connection speed start peer connection factory
initialization once EGL context is ready in parallel with the room
connection.
- Add asynchronious http request class and start using it in
webscoket signaling and room parameters extractor.
- Add helper looper based executor class.
- Port some of henrika changes from
https://webrtc-codereview.appspot.com/36629004/ to fix sensor
crashes on non L devices - will remove the change if CL will
be submitted soon.
R=jiayl@webrtc.org, wzh@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/41369004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8006 4adac7df-926f-26a2-2b94-8c16560cd09d
- Add a room list to ConnectActivity with buttons to add/remove rooms.
- Add loopback call button.
- Add option to toggle full screen / letterbox video.
- Add camera fps settings.
- Fix device to landscape orientation for HD video until issue 3936
will be fixed.
- Fix a few crashes by avoiding calling peer connection and
GAE signaling function while connection is closing.
- Better handling GAE channel error - catch channel exceptions and
display dialog with error messages.
BUG=3939, 3935
R=kjellander@webrtc.org, pthatcher@webrtc.org, tkchin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/26979004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7601 4adac7df-926f-26a2-2b94-8c16560cd09d
- Move signaling code from Activity to a separate class
and add interface for AppRTC signaling. For now
only pure GAE signaling implements this interface.
- Move peer connection, video source and peer connection
and SDP observer code from Activity to a separate class.
- Main Activity class will do only high level calls and
event handling for peer connection and signaling classes.
- Also add video renderer position update and use full
screen for local preview until the connection is established.
BUG=
R=braveyao@webrtc.org, pthatcher@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/24019004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7469 4adac7df-926f-26a2-2b94-8c16560cd09d
- Change hw video decoder wrapper to allow to feed multiple input
and query for an output every 10 ms.
- Add an option to decode video frame into an Android surface object. Create
shared with video renderer EGL context and external texture on
video decoder thread.
- Support external texture rendering in Android renderer.
- Support TextureVideoFrame in Java and use it to pass texture from video decoder
to renderer.
- Fix HW encoder and decoder detection code to avoid query codec capabilities
from sw codecs.
BUG=
R=tkchin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/18299004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7185 4adac7df-926f-26a2-2b94-8c16560cd09d