This CL handles frame rotation by updating the OpenGL vertex data in
RTCOpenGLVideoRenderer, instead of calling the expensive
libyuv::I420Rotate that will rotate the actual memory. Also, we can
handle rotated native frames instead of falling back to
NativeToI420Buffer.
Review-Url: https://codereview.webrtc.org/2176623002
Cr-Commit-Position: refs/heads/master@{#13715}
tools_unittests were failing when generated by GN and running on a device.
BUG=webrtc:5949
NOTRY=True
Review-Url: https://codereview.webrtc.org/2233843002
Cr-Commit-Position: refs/heads/master@{#13714}
Adds reusable template function objects to extract interesting
statistics from data sets. A few more of these will be added later
to reduce the code size.
Review-Url: https://codereview.webrtc.org/2220383004
Cr-Commit-Position: refs/heads/master@{#13713}
needed for the new audio_mixer to depend on just
'voice_engine:level_indicator' instead of the whole voice_engine and
avoid a circular dependency.
TBR=henrika@webrtc.org
NOTRY=True
Review-Url: https://codereview.webrtc.org/2221103004
Cr-Commit-Position: refs/heads/master@{#13709}
magjed@ is the author of two out of three files in webrtc/base/java
(ThreadUtils.java and Size.java). They were originally created in
webrtc/api/android/java, but were moved to base/ in order to be
accessible from e.g. webrtc/modules/audio_device/android/java.
TBR=tommi@webrtc.org
Review URL: https://codereview.webrtc.org/2233793002 .
Cr-Commit-Position: refs/heads/master@{#13707}
- Make more use of std::unique_ptr.
- Auto type deduction for iterator type names.
- More extensive comments.
- Variable renaming.
- Make ProducerFec::BuildRedPacket() static.
- Avoid dynamic allocation of ProducerFec::fec_.
BUG=webrtc:5654
Review-Url: https://codereview.webrtc.org/2110763002
Cr-Commit-Position: refs/heads/master@{#13700}
We need to check the pool to make sure that the encoder session is valid. Otherwise, it appears as if the encoder just does not output frames.
NOTRY=True
BUG=
Review-Url: https://codereview.webrtc.org/2226383002
Cr-Commit-Position: refs/heads/master@{#13698}
I mistyped the name of the bot as 'linux_ubsan_clang_vptr'.
The real name is 'linux_ubsan_vptr'.
Also erase the libfuzzer bot, since it's alreading using GN.
BUG=589510
NOTRY=True
Review-Url: https://codereview.webrtc.org/2227043002
Cr-Commit-Position: refs/heads/master@{#13695}
This CL expands the test coverage by checking that the FEC can
handle reordered received media packets. Specifically, this checks
that |recovered_packets| is kept in sorted order.
BUG=webrtc:5654
Review-Url: https://codereview.webrtc.org/2101253002
Cr-Commit-Position: refs/heads/master@{#13693}
This CL should have no changes to functionality.
BUG=webrtc:5654
Review-Url: https://codereview.webrtc.org/2107703002
Cr-Commit-Position: refs/heads/master@{#13690}
This CL converts the ForwardErrorCorrection class to use std::unique_ptr
for memory management, rather than manually delete'ing allocated memory.
It further renames some data structures and types to distinguish between
generated FEC packets (i.e. coming from the encode operation) and
received FEC packets (i.e. coming in over the wire, intended for the
decode operation).
BUG=webrtc:5654
Review-Url: https://codereview.webrtc.org/2099243003
Cr-Commit-Position: refs/heads/master@{#13687}
NSS has been replaced by BoringSSL/OpenSSL on all platforms, so the memcheck
suppressions should no longer be required.
BUG=
R=kjellander@webrtc.org
NOTRY=True
Review-Url: https://codereview.webrtc.org/2222243002
Cr-Commit-Position: refs/heads/master@{#13686}
Current DirectX capturer cannot capture multiple video cards or monitors. But
according to DXGI desktop duplication sample (https://goo.gl/An0L9l), we can
capture multiple video cards and monitors by duplicating them one by one. So
instead of one IDXGIOutputDuplication instance, this change creates an
IDXGIOutputDuplication instance for each monitor, and merge the output into
one DesktopFrame.
Several other changes are also included,
1. Add supports to DXGI_OUTDUPL_DESC.DesktopImageInSystemMemory. When this flag
is true, we won't copy its content to staging buffer.
2. Capture one monitor instead of entire screen.
Above changes make the logic complex. But with some refactor work, the logic is
not disordered. Please refer to the doc @ https://goo.gl/hU1ifG.
BUG=314516
Review-Url: https://codereview.webrtc.org/2099123002
Cr-Commit-Position: refs/heads/master@{#13684}
This prevents biased modulo arithmetic when selecting a character for a
random value from the provided table.
BUG=webrtc:5870
Review-Url: https://codereview.webrtc.org/2115793003
Cr-Commit-Position: refs/heads/master@{#13683}
RTC_CHECK in functions that return the random value.
BUG=webrtc:6072
Review-Url: https://codereview.webrtc.org/2119003002
Cr-Commit-Position: refs/heads/master@{#13682}
Removed resampler from NewAudioConferenceMixer and AudioMixer (which started as a copy of former OutputMixer). This is part of the mixer rewrite project. In particular,
this is one of the steps required to have a single mixing component
instead of two doing the same thing.
The next planned change (which is not part of this CL) is to plug in the
new mixer (NewAudioConferenceMixer) into AudioState and AudioDeviceModule.
NOTRY=True
Review-Url: https://codereview.webrtc.org/2221443002
Cr-Commit-Position: refs/heads/master@{#13674}
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 from issue 2154243002 at patchset 140001 (http://crrev.com/2154243002#ps140001)
Continuing magjed@'s work since he is OOO this week.
BUG=
Review-Url: https://codereview.webrtc.org/2202823004
Cr-Commit-Position: refs/heads/master@{#13668}