Since we want the VideoStreamDecoder to callback with the last
continuous frame we need to move the FrameKey into the public API.
Bug: webrtc:8909
Change-Id: I39634145d848b8163778e31a1e0d04d91f9bbeb8
Reviewed-on: https://webrtc-review.googlesource.com/60864
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22495}
The executable that's pushed to the device must depend on all
files that need to be on the device.
No-Try: True
TBR: phoglund@webrtc.org
Bug: chromium:755660
Change-Id: Iee041bd51e789e3ce6612fbda1582286a5cf4680
Reviewed-on: https://webrtc-review.googlesource.com/62961
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22494}
And fix typo in UMA metric.
We have this pattern in the FrameCombiner component of the AudioMixer:
if (number_of_streams <= 1) {
// Copy or fill with zeros.
return;
}
// Mix and limit
LogMixingStats(/* args */);
When there is only one remote stream, info about active streams and
sample rate is not logged. This CL moves the call to log stats before
the 'return'.
Bug: webrtc:8925
Change-Id: I7b54f61f628273631909dafbfafa21e155e18d4a
Reviewed-on: https://webrtc-review.googlesource.com/62860
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22493}
Replacing the unique pointer used for access checks with a raw pointer
pointing to the object owned by the unique pointer. This is to stop
tsan from detecting a race between .get() done on the task queue and
.reset() done in the destructor.
Bug: webrtc:8415
Change-Id: Iae2ea9a2d38f319e73146e6b1e360b11b1708c76
Reviewed-on: https://webrtc-review.googlesource.com/62560
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22492}
Removing functions that has been removed from
RtpTransportControllerSendInterface from
MockRtpTransportControllerSend.
Deleted functions: GetPacerModule, GetModule,
SetTransportOverhead and AvailableBandwidth.
Bug: webrtc:8415
Change-Id: I24d460bd18d57966e3b333ce0c234c3e3dc19a9a
Reviewed-on: https://webrtc-review.googlesource.com/62762
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22489}
The eventual goal is to allow PlatformThread to use
SequencedTaskChecker, but getting to that point will require
some more detangling.
Here are (roughly) the steps taken in this CL:
* Make constructormagic a separate target.
* Move atomicops and arraysize to separate targets
* Move platform_thread_types to a separate target
* Move criticalsection to a separate target
* Move thread_checker to separate target
* Make sequenced_task_checker not depend on base_approved
* Move ptr_util to a separate target
* Move scoped_ptr to ptr_util
* Make rtc_task_queue_api not depend on base_approved
* Make sequenced_task_checker depend on rtc_task_queue_api
* Move rtc::Event to its own target
* Move basictypes.h to constructormagic
* Move format_macros and stringize_macros into constructormagic
* Rename constructormagic target to... macromagic
* Move stringencode to stringutils
* New target for safe_conversions
* Move timeutils to a new target.
* Move logging to a new target.
* Move platform_thread to a new target.
* Make refcount a new target (refcount, refcountedobject, refcounter).
* Remove rtc_base_approved from deps of TQ
* Remove a circular dependency between event tracer and platform thread.
Further steps will probably be to factor TaskQueue::Current() to not
be a part of the TaskQueue class itself and have it declared+implemented
in a target that's lower level than TQ itself. SequencedTaskChecker can
then depend on that target and avoid the TQ dependency. Once we're there,
PlatformThread will be able to depend on SequencedTaskChecker.
Attempted but eventually removed from this CL:
* Make TQ a part of rtc_base_approved
* Remove direct dependencies on sequenced_task_checker.
* Profit.
A few include-what-you-use updates along the way.
Fix a few targets that were depending on rtc_task_queue_api
Change-Id: Iee79aa2e81d978444c51b3005db9df7dc12d92a9
Bug: webrtc:8957
Reviewed-on: https://webrtc-review.googlesource.com/58480
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22487}
Demonstrates how to use the iOS native API to wrap components into
C++ classes.
This CL also introduces a native API wrapper for the capturer.
The C++ code is forked from the corresponding CL for Android at
https://webrtc-review.googlesource.com/c/src/+/60540
Bug: webrtc:8832
Change-Id: I12d9f30e701c0222628e329218f6d5bfca26e6e0
Reviewed-on: https://webrtc-review.googlesource.com/61422
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22484}
It is actually fine to use streams in testonly code. This CL relaxes
the presubmit check in order allow streams usage in tests.
Bug: webrtc:8982
Change-Id: I18bbf079e804815956cd94ac761cc13022c0761e
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/61701
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#22482}
The task queue based SendSideCongestionController (SSCC) was accessing
a unique pointer to the task queue from the task queue itself. This
triggered a tsan check failure when resetting the same unique pointer.
Also move declaration of SSCC member in RtpTransportControllerSend last,
to ensure that it, and its TaskQueue, are destroyed before other members.
Bug: webrtc:8415
Change-Id: I75c93f41deab637f7e4766ac4b61713c86f866e9
Reviewed-on: https://webrtc-review.googlesource.com/62143
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22478}
This reverts commit d3070f43b19f503246be4ebad425d87568a71ce0.
Reason for revert: Need to re-enable h264 tests.
Original change's description:
> Add 'is_chrome_branded' guard to the default of 'rtc_use_h264'
>
> This doesn't change behavior at the moment because Chromium's
> 'proprietary_codecs' is already conditional on 'is_chrome_branded'
> but this guards WebRTC's default from upstream changes like
> https://chromium-review.googlesource.com/c/chromium/src/+/835010/6/build/config/features.gni
>
> TBR=phoglund@webrtc.org
>
> Bug: webrtc:8675
> Change-Id: Ic2ae311b5fc70a4d1ac1aefe4cc27574e4fcee40
> Reviewed-on: https://webrtc-review.googlesource.com/36321
> Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
> Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21452}
TBR=phoglund@webrtc.org,oprypin@webrtc.org,hbos@webrtc.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: webrtc:8675
Change-Id: I97e5b25fb638e9d4731ac9610f9f6009a3789578
Reviewed-on: https://webrtc-review.googlesource.com/62380
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22476}
This is a followup to https://webrtc-review.googlesource.com/61640,
which ensures that picture id and tl0 pic idx are continuous,
independent of how the encoder objects are created and destroyed.
The plan is to later move responsibility for encoder creation to
VideoSendStream::ReconfigureVideoEncoder, delegating work to
VideoStreamEncoder.
Bug: webrtc:8830
Change-Id: Idde5c91f24d3c0e3fa6a3bb26eb06f6800896a28
Reviewed-on: https://webrtc-review.googlesource.com/62082
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22473}
Support added in: https://webrtc-review.googlesource.com/c/src/+/61640
The tests are no longer related to any field trial.
Bug: none
Change-Id: I42dbdf23fa44953a139177a6693630507152e2ef
Reviewed-on: https://webrtc-review.googlesource.com/62345
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22472}
Currently, the way the AsyncInvoke is implemented, the lambda invoked is copied multiple times. This causes two problems: (1) a reduced performance where captured variables are copied unnecessarily, (2) lambdas with non-copyable captures are not possible to invoke.
This cl attempts to address both points.
Change-Id: I8d907287d6e4851330d469f184760d165fa8bc08
Bug: webrtc:9028
Reviewed-on: https://webrtc-review.googlesource.com/61346
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22471}
This CL significantly improves the response time
of the AEC3 delay estimator to audio buffer issues.
The CL adds ensures that the delay estimator
correlators reacts to buffer issues from the
zero state which is much faster than if it has already
achieved a state matching a previous alignment.
The CL has been extensively tested on offline
recordings.
Bug: webrtc:9023, chromium:822245
Change-Id: Ic149b9429e592d4c3535eb8432582f435a1b4745
Reviewed-on: https://webrtc-review.googlesource.com/62081
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22461}
This CL prepares for adding the BBR network controller and
unit tests for GoogCC network controller.
The changes include:
* Adding pad_rate helper method on PacerConfig.
* Adding ostream operators for controller feedback structs.
* Adding increment operator to Timestamp class.
* Adding kEpoch to Timestamp class to represent 0.
* Rounding when multiplying with double.
Bug: webrtc:8415
Change-Id: I58289f37a6f9f2eee0a88bb06fb24dc295942862
Reviewed-on: https://webrtc-review.googlesource.com/61503
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22458}
The encoder_max_bitrate_bps_ was checked to be > 0 but since it is
unsigned and the value came from the signed initial_encoder_max_bitrate
negative values were allowed and resulted in using UINT32_MAX.
This CL adds a check for negative input values and uses a safer default.
Bug: None
Change-Id: Ia12ea406091ab9c3a498ecf554f18ba2628ecbe5
Reviewed-on: https://webrtc-review.googlesource.com/61783
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22453}
We currently have one build target containing everything for audio_device: the interfaces,
the "fine" audio buffer, and the actual implementations for each platform.
Since we are planning to move the Android implementation to the sdk/android folder,
we only want to depend on the interfaces and the "fine" audio buffer, not the other platform
specific implementations. This CL splits the audio_device target into three different targets:
the interfaces, the fine audio buffer, and the platform specific implementations. The default
audio_device target now points to the interfaces instead.
Bug: webrtc:7452
Change-Id: I57e849cc6f4087d950fa02d969ecc682934839cd
Reviewed-on: https://webrtc-review.googlesource.com/61321
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22452}
This CL ensures a smooth transition from the parameters used during
the startup phase in the call to the parameters used in the rest of the
call. This is achieved by slowly transitioning between the parameter
sets via interpolation.
Bug: chromium:819240,webrtc:8983
Change-Id: Ifbac4b93fc6ad6efc441f41fb88ef09e8ee3d669
Reviewed-on: https://webrtc-review.googlesource.com/60360
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22451}
This is a reland of 4bbc150b18e961811991e3e524378e703b6d5b31
Now using rtc_source_set to be able to generate runtime deps
Original change's description:
> Split perf-test-specific resources in low_bandwidth_audio_test
>
> Bug: chromium:755660
> Change-Id: I7c60a47b26ad86892218497f28a09a04574077e6
> Reviewed-on: https://webrtc-review.googlesource.com/61961
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22439}
No-Try: True
Bug: chromium:755660
Change-Id: I66eda6f016c98e2a8a99f230d9e0323cc09e4976
Reviewed-on: https://webrtc-review.googlesource.com/62020
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22450}
The interface of the audioproc_f tool should be located in the api/ directory, so it becomes visible to the outside world.
Bug: webrtc:8732
Change-Id: Ia7475883aeb0e1f7a6afa5e791204b38dc53a8b8
Reviewed-on: https://webrtc-review.googlesource.com/61801
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22449}
It previously owned only the picture id and only in the
WebRTC-VP8-Forced-Fallback-Encoder-v2 experiment.
Moving responsibility to PayloadRouter ensures that both
picture id and tl0 idx are continuous over codec changes,
as required by the specs for VP8 and VP9 over RTP.
Bug: webrtc:8830
Change-Id: Ie77356dfec6d1e372b6970189e4c3888451920e6
Reviewed-on: https://webrtc-review.googlesource.com/61640
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22448}