Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(103)

Issue 2154243002: iOS: Add support for rendering native CVPixelBuffers directly (Closed)

Created:
4 years, 5 months ago by magjed_webrtc
Modified:
4 years, 3 months ago
Reviewers:
tkchin_webrtc
CC:
webrtc-reviews_webrtc.org, tterriberry_mozilla.com, zhengzhonghou_agora.io, video-team_agora.io, stefan-webrtc, mflodman
Base URL:
https://chromium.googlesource.com/external/webrtc.git@master
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

iOS: Add support for rendering native CVPixelBuffers directly This CL adds support in RTCEAGLVideoView for rendering CVPixelBuffers as OpenGL ES textures directly, compared to the current code that first converts the CVPixelBuffers to I420, and then reuploads them as textures. This is only supported on iOS with the use of a CVOpenGLESTextureCache. The I420 rendering and native rendering are separated in two different implementations of a simple shader interface: @protocol Shader - (BOOL)drawFrame:(RTCVideoFrame*)frame; @end GL resources are allocated when the shader is instantiated and released when the shader is destroyed. RTCEAGLVideoView will lazily instantiate the necessary shader when it receives the first frame of that kind. This is primarily done to avoid allocating GL resources for both I420 and native rendering. Some other changes are: - Print GL shader compilation errors. - Remove updateTextureSizesForFrame() function. The textures will resize automatically anyway when the texture data is uploaded with glTexImage2D().

Patch Set 1 #

Patch Set 2 : Make CVOpenGLESTextures local variables #

Total comments: 18
Unified diffs Side-by-side diffs Delta from patch set Stats (+371 lines, -212 lines) Patch
M webrtc/sdk/objc/Framework/Classes/RTCEAGLVideoView.m View 1 chunk +3 lines, -1 line 0 comments Download
M webrtc/sdk/objc/Framework/Classes/RTCOpenGLVideoRenderer.mm View 1 14 chunks +368 lines, -211 lines 18 comments Download

Dependent Patchsets:

Messages

Total messages: 13 (8 generated)
magjed_webrtc
zeke - please take a look. The diff is unfortunately quite large because I had ...
4 years, 5 months ago (2016-07-19 15:36:55 UTC) #9
magjed_webrtc
tkchin - ping.
4 years, 5 months ago (2016-07-22 13:25:16 UTC) #10
tkchin_webrtc
On 2016/07/22 13:25:16, magjed_webrtc wrote: > tkchin - ping. Sorry was OOO. I'll look at ...
4 years, 4 months ago (2016-07-25 21:14:17 UTC) #11
tkchin_webrtc
lgtm % nits https://codereview.webrtc.org/2154243002/diff/140001/webrtc/sdk/objc/Framework/Classes/RTCOpenGLVideoRenderer.mm File webrtc/sdk/objc/Framework/Classes/RTCOpenGLVideoRenderer.mm (right): https://codereview.webrtc.org/2154243002/diff/140001/webrtc/sdk/objc/Framework/Classes/RTCOpenGLVideoRenderer.mm#newcode55 webrtc/sdk/objc/Framework/Classes/RTCOpenGLVideoRenderer.mm:55: @protocol Shader nit: everything in ObjC ...
4 years, 4 months ago (2016-08-02 00:17:19 UTC) #12
magjed_webrtc
4 years, 3 months ago (2016-09-12 14:40:02 UTC) #13
Message was sent while issue was closed.
FYI - this CL landed here: https://codereview.webrtc.org/2202823004/.

Powered by Google App Engine
This is Rietveld 408576698