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

Issue 2869143002: iOS: Add interface for injecting custom shaders (Closed)

Created:
3 years, 7 months ago by magjed_webrtc
Modified:
3 years, 6 months ago
Reviewers:
sakal, daniela-webrtc
CC:
webrtc-reviews_webrtc.org, tterriberry_mozilla.com
Target Ref:
refs/heads/master
Project:
webrtc
Visibility:
Public.

Description

ObjC: Add interface for injecting custom shaders in video views This CL adds a way for external clients to inject their own OpenGL(ES) shaders to RTCEAGLVideoView/RTCNSGLVideoView. The shader interface takes textures as arguments, and not RTCVideoFrame, so that implementations only has to deal with actual OpenGL rendering, and not converting frames into textures. This CL also moves the internal shader code around a bit. The current RTCShader interface with the implementations RTCI420Shader and RTCNativeNV12Shader are removed. RTCEAGLVideoView and RTCNSGLVideoView will be responsible for uploading the frames to textures instead using the helper classes RTCI420TextureCache and RTCNV12TextureCache. They then call the shader implementation with these textures. The rendering code that used to be in RTCI420Shader and RTCNativeNV12Shader have been merged into one RTCDefaultShaderDelegate class. BUG=webrtc:7473 Review-Url: https://codereview.webrtc.org/2869143002 Cr-Commit-Position: refs/heads/master@{#18326} Committed: https://chromium.googlesource.com/external/webrtc/+/13941912b16b522d37c643e0c4413ce378c817f8

Patch Set 1 : Clean #

Total comments: 8

Patch Set 2 : Address comments. #

Total comments: 16

Patch Set 3 : Address comments #

Patch Set 4 : Simplify previous delegate protocol #

Total comments: 4

Patch Set 5 : Change name from RTCVideoViewShader to RTCVideoViewShading and remove Delegate naming #

Patch Set 6 : Rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+371 lines, -357 lines) Patch
M webrtc/sdk/BUILD.gn View 1 2 3 4 5 4 chunks +4 lines, -3 lines 0 comments Download
M webrtc/sdk/objc/Framework/Classes/UI/RTCEAGLVideoView.m View 1 2 3 4 5 5 chunks +35 lines, -18 lines 0 comments Download
M webrtc/sdk/objc/Framework/Classes/UI/RTCNSGLVideoView.m View 1 2 3 4 5 5 chunks +29 lines, -9 lines 0 comments Download
A + webrtc/sdk/objc/Framework/Classes/Video/RTCDefaultShader.h View 1 2 3 4 5 1 chunk +6 lines, -13 lines 0 comments Download
A webrtc/sdk/objc/Framework/Classes/Video/RTCDefaultShader.mm View 1 2 3 4 5 1 chunk +203 lines, -0 lines 0 comments Download
D webrtc/sdk/objc/Framework/Classes/Video/RTCI420Shader.mm View 1 2 3 4 5 1 chunk +0 lines, -119 lines 0 comments Download
M webrtc/sdk/objc/Framework/Classes/Video/RTCI420TextureCache.h View 1 2 3 4 5 1 chunk +2 lines, -1 line 0 comments Download
M webrtc/sdk/objc/Framework/Classes/Video/RTCI420TextureCache.mm View 1 2 3 4 5 1 chunk +5 lines, -1 line 0 comments Download
M webrtc/sdk/objc/Framework/Classes/Video/RTCNV12TextureCache.h View 1 2 3 4 5 1 chunk +2 lines, -1 line 0 comments Download
D webrtc/sdk/objc/Framework/Classes/Video/RTCNativeNV12Shader.mm View 1 2 3 4 5 1 chunk +0 lines, -107 lines 0 comments Download
M webrtc/sdk/objc/Framework/Classes/Video/RTCShader.h View 1 2 3 4 5 1 chunk +8 lines, -33 lines 0 comments Download
M webrtc/sdk/objc/Framework/Classes/Video/RTCShader.mm View 1 2 3 4 5 3 chunks +27 lines, -22 lines 0 comments Download
D webrtc/sdk/objc/Framework/Classes/Video/RTCShader+Private.h View 1 2 3 4 5 1 chunk +0 lines, -29 lines 0 comments Download
M webrtc/sdk/objc/Framework/Headers/WebRTC/RTCEAGLVideoView.h View 1 2 3 4 2 chunks +8 lines, -1 line 0 comments Download
M webrtc/sdk/objc/Framework/Headers/WebRTC/RTCNSGLVideoView.h View 1 2 3 4 2 chunks +5 lines, -0 lines 0 comments Download
A webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoViewShading.h View 1 2 3 4 1 chunk +37 lines, -0 lines 0 comments Download

Messages

Total messages: 52 (37 generated)
magjed_webrtc
Sami - please take a look.
3 years, 7 months ago (2017-05-10 14:05:07 UTC) #12
sakal
lgtm https://codereview.webrtc.org/2869143002/diff/40001/webrtc/sdk/objc/Framework/Classes/RTCDefaultShaderDelegate.mm File webrtc/sdk/objc/Framework/Classes/RTCDefaultShaderDelegate.mm (right): https://codereview.webrtc.org/2869143002/diff/40001/webrtc/sdk/objc/Framework/Classes/RTCDefaultShaderDelegate.mm#newcode99 webrtc/sdk/objc/Framework/Classes/RTCDefaultShaderDelegate.mm:99: glDeleteProgram(_i420Program); Log error? https://codereview.webrtc.org/2869143002/diff/40001/webrtc/sdk/objc/Framework/Classes/RTCShader.mm File webrtc/sdk/objc/Framework/Classes/RTCShader.mm (right): https://codereview.webrtc.org/2869143002/diff/40001/webrtc/sdk/objc/Framework/Classes/RTCShader.mm#newcode137 ...
3 years, 7 months ago (2017-05-11 10:45:47 UTC) #15
magjed_webrtc
https://codereview.webrtc.org/2869143002/diff/40001/webrtc/sdk/objc/Framework/Classes/RTCDefaultShaderDelegate.mm File webrtc/sdk/objc/Framework/Classes/RTCDefaultShaderDelegate.mm (right): https://codereview.webrtc.org/2869143002/diff/40001/webrtc/sdk/objc/Framework/Classes/RTCDefaultShaderDelegate.mm#newcode99 webrtc/sdk/objc/Framework/Classes/RTCDefaultShaderDelegate.mm:99: glDeleteProgram(_i420Program); On 2017/05/11 10:45:47, sakal wrote: > Log error? ...
3 years, 7 months ago (2017-05-11 12:38:07 UTC) #16
magjed_webrtc
Daniela - please take a look.
3 years, 7 months ago (2017-05-11 12:38:29 UTC) #18
daniela-webrtc
https://codereview.webrtc.org/2869143002/diff/60001/webrtc/sdk/objc/Framework/Classes/RTCDefaultShaderDelegate.h File webrtc/sdk/objc/Framework/Classes/RTCDefaultShaderDelegate.h (right): https://codereview.webrtc.org/2869143002/diff/60001/webrtc/sdk/objc/Framework/Classes/RTCDefaultShaderDelegate.h#newcode15 webrtc/sdk/objc/Framework/Classes/RTCDefaultShaderDelegate.h:15: @interface RTCDefaultShaderDelegate : NSObject <RTCVideoViewShaderDelegate> Do you mind adding ...
3 years, 7 months ago (2017-05-11 17:31:21 UTC) #19
magjed_webrtc
https://codereview.webrtc.org/2869143002/diff/60001/webrtc/sdk/objc/Framework/Classes/RTCDefaultShaderDelegate.h File webrtc/sdk/objc/Framework/Classes/RTCDefaultShaderDelegate.h (right): https://codereview.webrtc.org/2869143002/diff/60001/webrtc/sdk/objc/Framework/Classes/RTCDefaultShaderDelegate.h#newcode15 webrtc/sdk/objc/Framework/Classes/RTCDefaultShaderDelegate.h:15: @interface RTCDefaultShaderDelegate : NSObject <RTCVideoViewShaderDelegate> On 2017/05/11 17:31:20, daniela-webrtc ...
3 years, 7 months ago (2017-05-25 14:26:46 UTC) #20
daniela-webrtc
https://codereview.webrtc.org/2869143002/diff/60001/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoViewShaderDelegate.h File webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoViewShaderDelegate.h (right): https://codereview.webrtc.org/2869143002/diff/60001/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoViewShaderDelegate.h#newcode30 webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoViewShaderDelegate.h:30: @protocol RTCVideoViewShaderDelegate On 2017/05/25 14:26:45, magjed_webrtc wrote: > On ...
3 years, 7 months ago (2017-05-26 08:31:18 UTC) #21
magjed_webrtc
https://codereview.webrtc.org/2869143002/diff/60001/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoViewShaderDelegate.h File webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoViewShaderDelegate.h (right): https://codereview.webrtc.org/2869143002/diff/60001/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoViewShaderDelegate.h#newcode30 webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoViewShaderDelegate.h:30: @protocol RTCVideoViewShaderDelegate On 2017/05/26 08:31:18, daniela-webrtc wrote: > On ...
3 years, 7 months ago (2017-05-26 12:05:26 UTC) #22
daniela-webrtc
https://codereview.webrtc.org/2869143002/diff/100001/webrtc/sdk/objc/Framework/Classes/RTCEAGLVideoView.m File webrtc/sdk/objc/Framework/Classes/RTCEAGLVideoView.m (right): https://codereview.webrtc.org/2869143002/diff/100001/webrtc/sdk/objc/Framework/Classes/RTCEAGLVideoView.m#newcode120 webrtc/sdk/objc/Framework/Classes/RTCEAGLVideoView.m:120: - (instancetype)initWithFrame:(CGRect)frame shaderDelegate:(id<RTCVideoViewShader>)shaderDelegate { The Delegate pre/suffix is not ...
3 years, 7 months ago (2017-05-26 13:48:28 UTC) #23
magjed_webrtc
https://codereview.webrtc.org/2869143002/diff/100001/webrtc/sdk/objc/Framework/Classes/RTCEAGLVideoView.m File webrtc/sdk/objc/Framework/Classes/RTCEAGLVideoView.m (right): https://codereview.webrtc.org/2869143002/diff/100001/webrtc/sdk/objc/Framework/Classes/RTCEAGLVideoView.m#newcode120 webrtc/sdk/objc/Framework/Classes/RTCEAGLVideoView.m:120: - (instancetype)initWithFrame:(CGRect)frame shaderDelegate:(id<RTCVideoViewShader>)shaderDelegate { On 2017/05/26 13:48:28, daniela-webrtc wrote: ...
3 years, 6 months ago (2017-05-28 10:26:07 UTC) #33
daniela-webrtc
lgtm
3 years, 6 months ago (2017-05-29 08:13:46 UTC) #34
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2869143002/200001
3 years, 6 months ago (2017-05-30 11:39:53 UTC) #45
commit-bot: I haz the power
Try jobs failed on following builders: presubmit on master.tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/presubmit/builds/17552)
3 years, 6 months ago (2017-05-30 11:43:23 UTC) #47
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2869143002/200001
3 years, 6 months ago (2017-05-30 13:10:05 UTC) #49
commit-bot: I haz the power
3 years, 6 months ago (2017-05-30 13:12:04 UTC) #52
Message was sent while issue was closed.
Committed patchset #6 (id:200001) as
https://chromium.googlesource.com/external/webrtc/+/13941912b16b522d37c643e0c...

Powered by Google App Engine
This is Rietveld 408576698