Since the webrtc_common build target does not have visibility set, we
cannot easily use BitrateAllocation in other parts of Chromium.
This is currently blocking parts of chromium:794608, and I know of other
usage outside webrtc already, so moving it to api/ should be warranted.
Also, since there's some naming confusion and this class is video
specific rename it VideoBitrateAllocation. This also fits with the
standard interface for producing these: VideoBitrateAllocator.
Bug: chromium:794608
Change-Id: I4c0fae40f9365e860c605a76a4f67ecc9b9cf9fe
Reviewed-on: https://webrtc-review.googlesource.com/70783
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22986}
Splits out audio_java into audio_api_java and
java_audio_device_module_java.
Makes depending on java_audio_device_module_jni optional for clients
that do not use it. It is only necessary to depend on this target if
depending on java_audio_device_module_java.
Also some cleanup.
Bug: webrtc:7452
Change-Id: Ic6c4dbe11db3ed8330802a8e90203acb8ef18e72
Reviewed-on: https://webrtc-review.googlesource.com/70220
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22981}
Only specially taggged targets may transitively depend on poisonous
targets. We first apply it to audio codecs.
This makes it much clearer exactly what parts of the code still have
dependencies on the audio codecs (and we want to eventually get rid of
pretty much all of them).
Bug: webrtc:8396, webrtc:9121
Change-Id: Iba5c2e806c702b5cfe881022674705f647896d43
Reviewed-on: https://webrtc-review.googlesource.com/69520
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22979}
We want to allow the application to set it's own content mode.
Bug: b/73147161
Change-Id: I60fab454353a4c39731e49b7b6066e51d8e9a94d
Reviewed-on: https://webrtc-review.googlesource.com/70501
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22962}
Currently this warnings prevernt chromium roll into webrtc, because we
consider them as errors. So to unblock roll all warning are suppressed.
All places are documented into bug and will be fixed later.
TBR=henrika@webrtc.org
Bug: webrtc:9175
Change-Id: I0bf5a4b65eb49308e28f71a92d42b5fad6a99b74
Reviewed-on: https://webrtc-review.googlesource.com/71420
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22956}
There currently are no Objective-C API's to create a buffer with that data.
This change allows us to create a buffer with yuv data.
Bug: webrtc:9167
Change-Id: I00f1b91b04bbaa013a88137d0f54bef44287c5aa
Reviewed-on: https://webrtc-review.googlesource.com/70563
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Zeke Chin <tkchin@webrtc.org>
Commit-Queue: Peter Slatala <psla@google.com>
Cr-Commit-Position: refs/heads/master@{#22945}
The MTL renderer should also have a way to notify it's delegate
that it's content size changed.
The plan is to introduce this new protocol, move existing clients over
to implementing it in favour of RTCEAGLVideoViewDelegate, and then finally
removing the old protocol.
Bug: b/73147161
Change-Id: I908d7b2667e44e02a58066d701a48efec0e98d14
Reviewed-on: https://webrtc-review.googlesource.com/70243
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22944}
This work is also done as a preparation for adding stereo support to the
FineAudioBuffer.
Review hints:
Actual changes are in modules/audio_device/fine_audio_buffer.h,cc, the rest is
just adaptations to match these changes.
We do have a forked ADM today, hence, some changes are duplicated.
The changes have been verified on all affected platforms.
Bug: webrtc:6560
Change-Id: I413af41c43809f61455c45ad383fc4b1c65e1fa1
Reviewed-on: https://webrtc-review.googlesource.com/70781
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22938}
Any native call before PeerConnectionFactory.initialize() will fail.
This means creation of JavaAudioDeviceModule will fail if it's created
before PeerConnectionFactory.initialize(). Clients should technically
always call PeerConnectionFactory.initialize() first, but we can help
the situation by deferring creation of the native ADM until it's
actually needed.
Bug: webrtc:7452
Change-Id: I53df2bdb980a8bdc413975f1cea6bcf297b453d5
Reviewed-on: https://webrtc-review.googlesource.com/70763
Reviewed-by: Paulina Hensman <phensman@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22936}
We can then also drop the system_wrappers dependency from the common_video
build target.
Bug: webrtc:6733
Change-Id: I501113d100322d1ebc51b2286970697a24b70a43
Reviewed-on: https://webrtc-review.googlesource.com/70381
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22934}
Logging the OpenGL shader source code makes it easier to debug problems.
Bug: None
Change-Id: Ie4724b1353511eae3806e98270b04e5daa4c11fc
Reviewed-on: https://webrtc-review.googlesource.com/69322
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22900}
This reverts commit 64051d4975b5cee06ab36584f272ff97e35de357.
Reason for revert: Fix applied.
Original change's description:
> Revert "Android: Generalize and make TextureBufferImpl public"
>
> This reverts commit 28111d7fa0b94e37a5eeba616eb806c65b12560e.
>
> Reason for revert: Crashes video_quality_loopback_test.
>
> Original change's description:
> > Android: Generalize and make TextureBufferImpl public
> >
> > This CL generalizes TextureBufferImpl so it's useful from other contexts than
> > from a SurfaceTextureHelper, and fixes a bug in cropAndScale(). It also exposes
> > the class in the api so that clients don't have to duplicate the logic.
> >
> > Bug: None
> > Change-Id: Ib82aa8bee025ec14de74a7be9d91fd4e5298a248
> > Reviewed-on: https://webrtc-review.googlesource.com/69819
> > Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> > Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#22875}
>
> TBR=magjed@webrtc.org,sakal@webrtc.org
>
> Change-Id: Ica7fc181fec70b8b79f39f0e114eef81a03aa116
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: None
> Reviewed-on: https://webrtc-review.googlesource.com/70240
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22878}
TBR=magjed@webrtc.org,sakal@webrtc.org
Change-Id: I173d1ccfe0baa80460f796ebaedc51731233108f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/70183
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22883}
This reverts commit 28111d7fa0b94e37a5eeba616eb806c65b12560e.
Reason for revert: Crashes video_quality_loopback_test.
Original change's description:
> Android: Generalize and make TextureBufferImpl public
>
> This CL generalizes TextureBufferImpl so it's useful from other contexts than
> from a SurfaceTextureHelper, and fixes a bug in cropAndScale(). It also exposes
> the class in the api so that clients don't have to duplicate the logic.
>
> Bug: None
> Change-Id: Ib82aa8bee025ec14de74a7be9d91fd4e5298a248
> Reviewed-on: https://webrtc-review.googlesource.com/69819
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22875}
TBR=magjed@webrtc.org,sakal@webrtc.org
Change-Id: Ica7fc181fec70b8b79f39f0e114eef81a03aa116
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/70240
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22878}
This CL generalizes TextureBufferImpl so it's useful from other contexts than
from a SurfaceTextureHelper, and fixes a bug in cropAndScale(). It also exposes
the class in the api so that clients don't have to duplicate the logic.
Bug: None
Change-Id: Ib82aa8bee025ec14de74a7be9d91fd4e5298a248
Reviewed-on: https://webrtc-review.googlesource.com/69819
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22875}
This adds confusion to the native API and is only needed for
Chromium UMA metrics, so the appropriate metrics have been moved
upstream and kDefault option removed.
Bug: chromium:811683
Change-Id: I666d7f7793765b8d6edcd99416c8b6c957766f00
Reviewed-on: https://webrtc-review.googlesource.com/59261
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22864}
The tests are a combination of the old audio_device_unittest.cc and
audio_manager_unittest.cc, with the exception of a few that were no
longer relevant.
RunPlayoutAndRecordingInFullDuplex remains disabled according to its
comment, but has been verified to pass on at least one device.
MeasureLoopbackLatency also remains disabled, but has not been tested due
to lack of necessary hardware.
Bug: webrtc:7452
Change-Id: Ie361bc8f5e1990729d7b4699faf2a73abe3cbe8d
Reviewed-on: https://webrtc-review.googlesource.com/69340
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Paulina Hensman <phensman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22836}
This CL makes it possible to create a GlTextureFrameBuffer from any
thread. The actual GL resources will be allocated the first time
setSize() is called. The purpose is to be able to use 'final' variables
more often for this class and avoid @Nullable annotations.
Bug: None
Change-Id: I350304bcd33fd674990254df37a615995972f322
Reviewed-on: https://webrtc-review.googlesource.com/69241
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22835}
Mainly remove CHECKinitialized_ macro and AGC functionality. Also make
actual behavior clearer in some functions.
Bug: webrtc:7452
Change-Id: I1eac86f4eaff7b14820d3e4192b15c20ab6acb45
Reviewed-on: https://webrtc-review.googlesource.com/69161
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Paulina Hensman <phensman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22820}
Currently there are several checks against _lastDrawnFrame in RTCEAGLVideoView.mm but this variable is not assigned anywhere. Seems like it was missed in 13941912b1 during work on injecting custom shaders.
Bug: webrtc:9133
Change-Id: Ie979a63de343e7253e4b4e70e3b98ffb0880af04
Reviewed-on: https://webrtc-review.googlesource.com/68720
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22819}
This reverts commit a8f13ccad400eb8ff84a379042c0595951ca9658.
Reason for revert: It's causing no video to be shown after the 1st call.
Original change's description:
> Improve thread-safety of MTL Renderer.
>
> Bug: b/77579859
> Change-Id: I427d0f41593155dc5cbf98a09d7ec826497b803c
> Reviewed-on: https://webrtc-review.googlesource.com/67040
> Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22795}
TBR=andersc@webrtc.org,kthelgason@webrtc.org
Change-Id: Ia8f33995e087178f1c3be7753f70be8ba18447f8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/77579859
Reviewed-on: https://webrtc-review.googlesource.com/68860
Reviewed-by: JT Teh <jtteh@webrtc.org>
Commit-Queue: JT Teh <jtteh@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22800}
So that we don't have to be capable of creating one ourselves, which
requires a dependency on the audio decoders.
BUG=webrtc:5801, webrtc:8396
Change-Id: I80749ec3b86cba73994307046d05964f59167d44
Reviewed-on: https://webrtc-review.googlesource.com/18440
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22774}
This CL introduces sdk/android/api/org/webrtc/audio/AudioDeviceModule.java,
which is the new interface for audio device modules on Android.
This CL also refactors the main AudioDeviceModule implementation, which
is sdk/android/api/org/webrtc/audio/JavaAudioDeviceModule.java and makes
it conform to the new interface. The old code used global static methods
to configure the audio device code. This CL gets rid of all that and uses
a builder pattern in JavaAudioDeviceModule instead. The only two dynamic
methods left in the interface are setSpeakerMute() and setMicrophoneMute().
Removing the global static methods allowed a significant cleanup, and e.g.
the file sdk/android/src/jni/audio_device/audio_manager.cc has been
completely removed.
The PeerConnectionFactory interface is also updated to allow passing in
an external AudioDeviceModule. The current built-in ADM is encapsulated
under LegacyAudioDeviceModule.java, which is the default for now to
ensure backwards compatibility.
Bug: webrtc:7452
Change-Id: I64d5f4dba9a004da001f1acb2bd0c1b1f2b64f21
Reviewed-on: https://webrtc-review.googlesource.com/65360
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Paulina Hensman <phensman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22765}
Implement debugQuickLookObject for RTCI420Buffers and RTCCVPixelBuffers.
Also draw gradients consistently regardless of endianness in the unit
tests for RTCCVPixelBuffers and ObjCVideoTrackSource.
Bug: webrtc:9007
Change-Id: Ia5a3d0905a763efc190165471983061fc07551f2
Reviewed-on: https://webrtc-review.googlesource.com/64987
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22746}
The settings struct specifies bitrate in kbps, but we are
treating it as bps.
Bug: webrtc:9113
Change-Id: I27745da93aaec68041ea4283b45eccb35d820793
Reviewed-on: https://webrtc-review.googlesource.com/66960
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22743}
This parameter is being removed from the C++ API, remove it from the
ObjC API also. It was never used for anything by the H264 decoder.
Bug: webrtc:9107
Change-Id: I5222eac932a4e7d4129d803f8126b5e8d0b027b6
Reviewed-on: https://webrtc-review.googlesource.com/66740
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22730}
This CL splits out the audio device module Java code into a separate
target, and also splits up the audio device module implementations into
three different build targets, one for OpenSLES, AAudio, and the Java
based implementation.
Bug: webrtc:7452, webrtc:9048
Change-Id: I8ec09c73580b468837223ddd420fb29ca61fdea5
Reviewed-on: https://webrtc-review.googlesource.com/66461
Reviewed-by: Paulina Hensman <phensman@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22727}
Fixes target bitrate calculation for framerate based adjuster. Adds new
API to bitrate adjuster - getCodecConfigFramerate() - that returns the
FPS that should be passed to MediaCodec on initialization.
Bug: b/73741487, cl/186656928
Change-Id: Ia4a5e99d302de67fbee0c132ab8e9392bc205b44
Reviewed-on: https://webrtc-review.googlesource.com/65162
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22716}
This is a reland of 4ea50c2b421ae3e40d1d02b8eb8c5802288b181e
Original change's description:
> Add unit tests for RTCCVPixelBuffer and ObjCVideoTrackSource.
>
> This CL also fixes a couple of bugs found in the toI420 method for
> RTCCVPixelBuffers backed by RGB CVPixelBuffers.
>
> Bug: webrtc:9007
> Change-Id: I19ab8177f4b124a503cfda9f0166bd960f668982
> Reviewed-on: https://webrtc-review.googlesource.com/64940
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22656}
Bug: webrtc:9007
Change-Id: I2a787c64f8d23ffc4ef2419fc258d965f8a9480b
Reviewed-on: https://webrtc-review.googlesource.com/66341
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22706}
This reverts commit 4ea50c2b421ae3e40d1d02b8eb8c5802288b181e.
Reason for revert: This change is causing crashes in video calls.
RTCCVPixelBuffer.mm - line 120
Compare is asserting as 420f is not 420v
Original change's description:
> Add unit tests for RTCCVPixelBuffer and ObjCVideoTrackSource.
>
> This CL also fixes a couple of bugs found in the toI420 method for
> RTCCVPixelBuffers backed by RGB CVPixelBuffers.
>
> Bug: webrtc:9007
> Change-Id: I19ab8177f4b124a503cfda9f0166bd960f668982
> Reviewed-on: https://webrtc-review.googlesource.com/64940
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22656}
TBR=andersc@webrtc.org,kthelgason@webrtc.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: webrtc:9007
Change-Id: I500514ce05dd0555f8c4a05010ad52bd67c2fed3
Reviewed-on: https://webrtc-review.googlesource.com/65561
Commit-Queue: JT Teh <jtteh@webrtc.org>
Reviewed-by: JT Teh <jtteh@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22686}
This method is only used for logging and is blocking further refactoring
work. Once the refactoring and cleanup of the external AudioDeviceModule
is complete, we can revisit what logging we want and need and add it in
a cleaner way.
Bug: webrtc:7452
Change-Id: If08bcfb37860e9e7b9b5105cb75f748b53775f69
Reviewed-on: https://webrtc-review.googlesource.com/65460
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Paulina Hensman <phensman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22678}
The VolumeLogger class contains enough logic to deserve its own file.
Also, I want to potentially remove WebRtcAudioManager.java but keep
volume logging. One problem I see with the VolumeLogger is that it
spawns a new thread, and we should try to keep the number of threads
in WebRTC to a minimum. Right now we use excessively many threads.
Bug: webrtc:7452
Change-Id: I4dd8ffb4265903926f0b372715fc6b876fe5d393
Reviewed-on: https://webrtc-review.googlesource.com/65401
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Paulina Hensman <phensman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22676}
The class called AudioDeviceModule today is an implementation of a
future interface. We want to reserve the name AudioDeviceModule for
the actual interface. The implementation class has been renamed to
JavaAudioDeviceModule. 'Java' here refers to the fact that the
implementation is using android.media.AudioRecord as input and
android.media.AudioTrack as output, and this is opposed to native
AudioDeviceModule implementations such as OpenSLES and AAudio.
Bug: webrtc:7452
Change-Id: Ifc243c2e169b12a50128ee3252f06d574aa7b358
Reviewed-on: https://webrtc-review.googlesource.com/65400
Reviewed-by: Paulina Hensman <phensman@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22673}
IceConfig contains a set of parameters that affect the behavior of ICE.
Inconsistent or conflicting parameters lead to erroneous or
unpredicatble behavior in the network stack. Sanity checks are now added
to validate IceConfig.
TBR=magjed@webrtc.org
Bug: webrtc:8993
Change-Id: I708bc3f1ef970872754a82a47a509bda15061ca6
Reviewed-on: https://webrtc-review.googlesource.com/60847
Commit-Queue: Qingsi Wang <qingsi@google.com>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22664}