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}
Reason for revert:
Take three of relanding this after all internal issues have been resolved.
Original issue's description:
> Revert of Adding backward compatibility header (patchset #1 id:1 of https://codereview.webrtc.org/2909923002/ )
>
> Reason for revert:
> Breaks downstream project.
>
> Original issue's description:
> > Adding backward compatibility header
> >
> > This header will be removed ad soon as downstream projects will be
> > updated.
> >
> > BUG=webrtc:4867
> > NOTRY=True
> > TBR=kjellander@webrtc.org
> >
> > Review-Url: https://codereview.webrtc.org/2909923002
> > Cr-Commit-Position: refs/heads/master@{#18306}
> > Committed: 4fa8a97cc3
>
> TBR=kjellander@webrtc.org,magjed@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:4867
>
> Review-Url: https://codereview.webrtc.org/2908143003
> Cr-Commit-Position: refs/heads/master@{#18308}
> Committed: 6684fdce93TBR=kjellander@webrtc.org,magjed@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4867
Review-Url: https://codereview.webrtc.org/2912773003
Cr-Commit-Position: refs/heads/master@{#18320}
Reason for revert:
Breaks downstream project.
Original issue's description:
> Adding backward compatibility header
>
> This header will be removed ad soon as downstream projects will be
> updated.
>
> BUG=webrtc:4867
> NOTRY=True
> TBR=kjellander@webrtc.org
>
> Review-Url: https://codereview.webrtc.org/2909923002
> Cr-Commit-Position: refs/heads/master@{#18306}
> Committed: 4fa8a97cc3TBR=kjellander@webrtc.org,magjed@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4867
Review-Url: https://codereview.webrtc.org/2908143003
Cr-Commit-Position: refs/heads/master@{#18308}
Reason for revert:
Fixing downstream breakages
Original issue's description:
> Revert of Split iOS sdk in to separate targets (patchset #13 id:280001 of https://codereview.webrtc.org/2862543002/ )
>
> Reason for revert:
> Breaking downstream projects.
>
> Original issue's description:
> > Split iOS sdk in to separate targets
> >
> > This CL splits the iOS sdk into separate static libraries for video,
> > audio, ui, common, and peerconnection-related code. This will in the
> > future make it easier to compile WebRTC without unneeded components.
> >
> > BUG=webrtc:4867
> >
> > Review-Url: https://codereview.webrtc.org/2862543002
> > Cr-Commit-Position: refs/heads/master@{#18166}
> > Committed: 52c83fe710
>
> TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,kthelgason@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:4867
>
> Review-Url: https://codereview.webrtc.org/2890513002
> Cr-Commit-Position: refs/heads/master@{#18170}
> Committed: 9756238084TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4867
Review-Url: https://codereview.webrtc.org/2890733003
Cr-Commit-Position: refs/heads/master@{#18174}
Reason for revert:
Breaking downstream projects.
Original issue's description:
> Split iOS sdk in to separate targets
>
> This CL splits the iOS sdk into separate static libraries for video,
> audio, ui, common, and peerconnection-related code. This will in the
> future make it easier to compile WebRTC without unneeded components.
>
> BUG=webrtc:4867
>
> Review-Url: https://codereview.webrtc.org/2862543002
> Cr-Commit-Position: refs/heads/master@{#18166}
> Committed: 52c83fe710TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,kthelgason@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4867
Review-Url: https://codereview.webrtc.org/2890513002
Cr-Commit-Position: refs/heads/master@{#18170}
This CL splits the iOS sdk into separate static libraries for video,
audio, ui, common, and peerconnection-related code. This will in the
future make it easier to compile WebRTC without unneeded components.
BUG=webrtc:4867
Review-Url: https://codereview.webrtc.org/2862543002
Cr-Commit-Position: refs/heads/master@{#18166}
Reason for revert:
Breaks downstream targets.
Original issue's description:
> Move CoreVideoFrameBuffer from webrtc/common_video/ to webrtc/sdk/objc/
>
> CoreVideoFrameBuffer is Mac/iPhone specific and should be moved into
> the webrtc/sdk/objc/ folder.
>
> BUG=None
>
> Review-Url: https://codereview.webrtc.org/2851563003
> Cr-Commit-Position: refs/heads/master@{#17998}
> Committed: d41631aa27TBR=kthelgason@webrtc.org,magjed@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=None
Review-Url: https://codereview.webrtc.org/2862663003
Cr-Commit-Position: refs/heads/master@{#18004}
CoreVideoFrameBuffer is Mac/iPhone specific and should be moved into
the webrtc/sdk/objc/ folder.
BUG=None
Review-Url: https://codereview.webrtc.org/2851563003
Cr-Commit-Position: refs/heads/master@{#17998}
Reason for revert:
https://chromium.googlesource.com/external/webrtc/+/3c1e558449309be965815e1bf...
I suspect this breaks Chrome ios.
https://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/bu...
https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Ftryserver.chromium.mac%2...
Undefined symbols for architecture x86_64:
"base::allocator::g_replaced_default_zone", referenced from:
base::allocator::IsAllocatorInitialized() in libbase.a(allocator_check.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Traceback (most recent call last):
File "../../build/toolchain/mac/linker_driver.py", line 229, in <module>
Main(sys.argv)
File "../../build/toolchain/mac/linker_driver.py", line 79, in Main
subprocess.check_call(compiler_driver_args)
File
"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py",
line 540, in check_call
raise CalledProcessError(retcode, cmd)
Original issue's description:
> Extract iOS SDK helpers to separate target.
>
> This will reduce the redundant objects built
> in Chromium when opening up test_support for the fuzzer
> tests.
>
> BUG=webrtc:6828
> NOTRY=True
>
> Review-Url: https://codereview.webrtc.org/2849823002
> Cr-Commit-Position: refs/heads/master@{#17972}
> Committed: 3c1e558449TBR=mbonadei@webrtc.org,kjellander@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6828
Review-Url: https://codereview.webrtc.org/2853273002
Cr-Commit-Position: refs/heads/master@{#17979}
This will reduce the redundant objects built
in Chromium when opening up test_support for the fuzzer
tests.
BUG=webrtc:6828
NOTRY=True
Review-Url: https://codereview.webrtc.org/2849823002
Cr-Commit-Position: refs/heads/master@{#17972}
To achieve higher testability, some internally used ivars needed to be syntesized as properties
and some methods needed to be refactored.
BUG=webrtc:7177
Review-Url: https://codereview.webrtc.org/2815823002
Cr-Commit-Position: refs/heads/master@{#17971}
in separate super class.
Included changes:
- Fix rendering on iOS to support NV12 and i420 frames
- Improve code style
- Update build targets
- Update tests
BUG=webrtc:7079
Review-Url: https://codereview.webrtc.org/2784243003
Cr-Commit-Position: refs/heads/master@{#17923}
in order to fix a build issue that comes up when using WebRTC.framework from swift code.
BUG=webrtc:7488
Review-Url: https://codereview.webrtc.org/2832803002
Cr-Commit-Position: refs/heads/master@{#17909}
This CL splits out the code in RTCNV12Shader.mm for uploading byte
buffers to textures into its own class RTCNV12TextureCache. The purpose
is to prepare for allowing clients to inject their own shaders.
RTCNV12TextureCache will be used in the generic code, while the actual
shaders in RTCNV12Shader will be customizable by the client.
BUG=webrtc:7473
Review-Url: https://codereview.webrtc.org/2835203003
Cr-Commit-Position: refs/heads/master@{#17902}
This CL splits out the code in RTCI420Shader.mm for uploading byte
buffers to textures into its own class RTCI420TextureCache. The purpose
is to prepare for allowing clients to inject their own shaders.
RTCI420TextureCache will be used in the generic code, while the actual
shaders in RTCI420Shader will be customizable by the client.
BUG=webrtc:7473
Review-Url: https://codereview.webrtc.org/2842453002
Cr-Commit-Position: refs/heads/master@{#17882}
This target keeps track of .h the files under webrtc/modules/include/
that are not part of any target.
If a .h file is not part of a target the 'gn check' utility is not
able to spot if a target is missing a dependency because even if
it parses '#include' directives it is not able to find a target that
contains these headers.
BUG=webrtc:7513
NOTRY=True
Review-Url: https://codereview.webrtc.org/2838873002
Cr-Commit-Position: refs/heads/master@{#17880}
Make all rtc_source_test target that contains tests that
are included in a test executable only be visible to the
rtc_test target. Doing this exposed a couple of errors and
dependency problems that were resolved. Having this could
have prevented duplicated execution of tests like the case that
was recently fixed by deadbeef@ in
https://codereview.webrtc.org/2820263004
New targets:
* //webrtc/modules/rtp_rtcp:fec_test_helper
* //webrtc/modules/rtp_rtcp:mock_rtp_rtcp
* //webrtc/modules/remote_bitrate_estimator:mock_remote_bitrate_observer
The mock files and targets should probably be moved into webrtc/test in
the future, but that's out of the scope of this CL.
BUG=webrtc:5716
NOTRY=True
Review-Url: https://codereview.webrtc.org/2828793003
Cr-Commit-Position: refs/heads/master@{#17863}
Reason for revert:
Relanding after fixing ARC issue.
Original issue's description:
> Revert of GN: Enable ARC for Mac and iOS in rtc_* templates (patchset #3 id:40001 of https://codereview.webrtc.org/2781713004/ )
>
> Reason for revert:
> Breaks mac build
>
> Original issue's description:
> > GN: Enable ARC for Mac and iOS in rtc_* templates
> >
> > Remove all uses of retain/release and NSAutoreleasePool.
> >
> > This makes transformation to Bazel easier.
> >
> > This CL subsumes https://codereview.webrtc.org/2778163002 and depends on https://codereview.webrtc.org/2784483002/
> >
> > BUG=webrtc:6412
> >
> > Review-Url: https://codereview.webrtc.org/2781713004
> > Cr-Commit-Position: refs/heads/master@{#17780}
> > Committed: 6bda02b51d
>
> TBR=kjellander@webrtc.org,magjed@webrtc.org,stefan@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6412
>
> Review-Url: https://codereview.webrtc.org/2827223003
> Cr-Commit-Position: refs/heads/master@{#17784}
> Committed: 7c8786ae8fTBR=kjellander@webrtc.org,magjed@webrtc.org,stefan@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6412
Review-Url: https://codereview.webrtc.org/2834273002
Cr-Commit-Position: refs/heads/master@{#17836}
Reason for revert:
Breaks mac build
Original issue's description:
> GN: Enable ARC for Mac and iOS in rtc_* templates
>
> Remove all uses of retain/release and NSAutoreleasePool.
>
> This makes transformation to Bazel easier.
>
> This CL subsumes https://codereview.webrtc.org/2778163002 and depends on https://codereview.webrtc.org/2784483002/
>
> BUG=webrtc:6412
>
> Review-Url: https://codereview.webrtc.org/2781713004
> Cr-Commit-Position: refs/heads/master@{#17780}
> Committed: 6bda02b51dTBR=kjellander@webrtc.org,magjed@webrtc.org,stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6412
Review-Url: https://codereview.webrtc.org/2827223003
Cr-Commit-Position: refs/heads/master@{#17784}
RTCOpenGLVideoRenderer is currently shared between RTCEAGLVideoView and
RTCNSGLVideoView, and contains some iOS specific code and some Mac
specific code. We plan on adding an interface for injectable OpenGL ES
shaders to RTCEAGLVideoView, and it's easier if RTCEAGLVideoView and
RTCNSGLVideoView have separate code paths. This CL removes
RTCOpenGLVideoRenderer and inlines the necessary code in
RTCEAGLVideoView and RTCNSGLVideoView.
BUG=webrtc:7473
Review-Url: https://codereview.webrtc.org/2812613003
Cr-Commit-Position: refs/heads/master@{#17693}
native configuration.
Added a getConfiguration getter method to RTCPeerConnection to return
the RTCConfiguration.
BUG=webrtc:7431
Review-Url: https://codereview.webrtc.org/2790833002
Cr-Commit-Position: refs/heads/master@{#17517}
Implements a new capturer based on the new video source design.
BUG=webrtc:7177
Review-Url: https://codereview.webrtc.org/2776703002
Cr-Commit-Position: refs/heads/master@{#17486}
The new RTCVideoSource interface can be used by custom implementations of RTCVideoCapturer.
BUG=webrtc:7177
TBR=tommi
Review-Url: https://codereview.webrtc.org/2745193002
Cr-Commit-Position: refs/heads/master@{#17409}
Reason for revert:
Dependant CL has been relanded
Original issue's description:
> Revert of Add unit tests for RTCMTLVideoView. (patchset #6 id:100001 of https://codereview.webrtc.org/2723903003/ )
>
> Reason for revert:
> This CL depends on a reverted CL.
>
> Original issue's description:
> > Add unit tests for RTCMTLVideoView.
> >
> > To properly test the functionality, following changes were needed
> > - Make RTCMTLVideoView compiliable for all cpu architectures not just arm64.
> > This is needed so that the test can run on any device and on simulator as well.
> > - Refactor RTCMTLVideoView to have mockable class methods.
> > The unittest class, RTCMTLVideoViewTests was designed to provide easy transition
> > to XCTest when the time comes for that.
> > To transition to XCTest it would suffice to inherit from XCTestCase and remove
> > the gtest methods.
> >
> > BUG=webrtc:7079
> >
> > Review-Url: https://codereview.webrtc.org/2723903003
> > Cr-Commit-Position: refs/heads/master@{#17014}
> > Committed: 0ebe0199ac
>
> TBR=magjed@webrtc.org,denicija@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:7079
>
> Review-Url: https://codereview.webrtc.org/2733953006
> Cr-Commit-Position: refs/heads/master@{#17118}
> Committed: 96d91524faTBR=magjed@webrtc.org,denicija@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7079
Review-Url: https://codereview.webrtc.org/2743663002
Cr-Commit-Position: refs/heads/master@{#17140}
Reason for revert:
This CL depends on a reverted CL.
Original issue's description:
> Add unit tests for RTCMTLVideoView.
>
> To properly test the functionality, following changes were needed
> - Make RTCMTLVideoView compiliable for all cpu architectures not just arm64.
> This is needed so that the test can run on any device and on simulator as well.
> - Refactor RTCMTLVideoView to have mockable class methods.
> The unittest class, RTCMTLVideoViewTests was designed to provide easy transition
> to XCTest when the time comes for that.
> To transition to XCTest it would suffice to inherit from XCTestCase and remove
> the gtest methods.
>
> BUG=webrtc:7079
>
> Review-Url: https://codereview.webrtc.org/2723903003
> Cr-Commit-Position: refs/heads/master@{#17014}
> Committed: 0ebe0199acTBR=magjed@webrtc.org,denicija@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7079
Review-Url: https://codereview.webrtc.org/2733953006
Cr-Commit-Position: refs/heads/master@{#17118}
To properly test the functionality, following changes were needed
- Make RTCMTLVideoView compiliable for all cpu architectures not just arm64.
This is needed so that the test can run on any device and on simulator as well.
- Refactor RTCMTLVideoView to have mockable class methods.
The unittest class, RTCMTLVideoViewTests was designed to provide easy transition
to XCTest when the time comes for that.
To transition to XCTest it would suffice to inherit from XCTestCase and remove
the gtest methods.
BUG=webrtc:7079
Review-Url: https://codereview.webrtc.org/2723903003
Cr-Commit-Position: refs/heads/master@{#17014}
Reason for revert:
Re-land
Original issue's description:
> Revert of Add metal view, shaders and renderer. (patchset #18 id:340001 of https://codereview.webrtc.org/2651743007/ )
>
> Reason for revert:
> Reverting due to breakage in the Google3 import
>
> Original issue's description:
> > Add metal view, shaders and renderer.
> >
> > This CL submits standalone Metal view, renderer and shader.
> >
> > BUG=webrtc:7079
> >
> > Review-Url: https://codereview.webrtc.org/2651743007
> > Cr-Commit-Position: refs/heads/master@{#16787}
> > Committed: fc8c97f950
>
> TBR=magjed@webrtc.org,kthelgason@webrtc.org,tkchin@webrtc.org,haysc@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:7079
>
> Review-Url: https://codereview.webrtc.org/2711003004
> Cr-Commit-Position: refs/heads/master@{#16788}
> Committed: b681aabdfcTBR=magjed@webrtc.org,kthelgason@webrtc.org,tkchin@webrtc.org,haysc@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7079
Review-Url: https://codereview.webrtc.org/2716703004
Cr-Commit-Position: refs/heads/master@{#16846}
Reason for revert:
Reverting due to breakage in the Google3 import
Original issue's description:
> Add metal view, shaders and renderer.
>
> This CL submits standalone Metal view, renderer and shader.
>
> BUG=webrtc:7079
>
> Review-Url: https://codereview.webrtc.org/2651743007
> Cr-Commit-Position: refs/heads/master@{#16787}
> Committed: fc8c97f950TBR=magjed@webrtc.org,kthelgason@webrtc.org,tkchin@webrtc.org,haysc@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7079
Review-Url: https://codereview.webrtc.org/2711003004
Cr-Commit-Position: refs/heads/master@{#16788}
This CL submits standalone Metal view, renderer and shader.
BUG=webrtc:7079
Review-Url: https://codereview.webrtc.org/2651743007
Cr-Commit-Position: refs/heads/master@{#16787}
Create a new target //webrtc/api:libjingle_peerconnection_api and start moving
things into it. Move remaining parts of //webrtc/api:libjingle_peerconnection
to //webrtc/pc:libjingle_peerconnection.
Moved the RTCStatsCollectorCallback into its own header file, so that
PeerConnectionInterface can include that instead of pulling in
RTCStatsCollector and PeerConnection and everything.
Separated cricket::MediaType into its own header/source set, so that it
can be used in the api.
BUG=webrtc:5883
Review-Url: https://codereview.webrtc.org/2514883002
Cr-Commit-Position: refs/heads/master@{#16210}