5838 Commits

Author SHA1 Message Date
charujain
1a610f15c3 Revert of Opus implementation of the AudioEncoderFactoryTemplate API (patchset #4 id:80001 of https://codereview.webrtc.org/2930243003/ )
Reason for revert:
Breaking google3 projects

Original issue's description:
> Opus implementation of the AudioEncoderFactoryTemplate API
>
> Now the templated AudioEncoderFactory can create Opus encoders!
>
> BUG=webrtc:7831
>
> Review-Url: https://codereview.webrtc.org/2930243003
> Cr-Commit-Position: refs/heads/master@{#18645}
> Committed: fe1aa82c63

TBR=ossu@webrtc.org,solenberg@webrtc.org,kwiberg@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7831

Review-Url: https://codereview.webrtc.org/2947563002
Cr-Commit-Position: refs/heads/master@{#18649}
2017-06-18 09:38:58 +00:00
charujain
eb2d2d31d1 Revert of Opus implementation of the AudioDecoderFactoryTemplate API (patchset #1 id:1 of https://codereview.webrtc.org/2942733003/ )
Reason for revert:
breaking downstream projects

Original issue's description:
> Opus implementation of the AudioDecoderFactoryTemplate API
>
> BUG=webrtc:7837
>
> Review-Url: https://codereview.webrtc.org/2942733003
> Cr-Commit-Position: refs/heads/master@{#18646}
> Committed: d053fe4ab3

TBR=ossu@webrtc.org,solenberg@webrtc.org,kwiberg@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7837

Review-Url: https://codereview.webrtc.org/2944763002
Cr-Commit-Position: refs/heads/master@{#18648}
2017-06-18 09:37:17 +00:00
kwiberg
d053fe4ab3 Opus implementation of the AudioDecoderFactoryTemplate API
BUG=webrtc:7837

Review-Url: https://codereview.webrtc.org/2942733003
Cr-Commit-Position: refs/heads/master@{#18646}
2017-06-18 01:40:52 +00:00
kwiberg
fe1aa82c63 Opus implementation of the AudioEncoderFactoryTemplate API
Now the templated AudioEncoderFactory can create Opus encoders!

BUG=webrtc:7831

Review-Url: https://codereview.webrtc.org/2930243003
Cr-Commit-Position: refs/heads/master@{#18645}
2017-06-18 01:23:03 +00:00
kwiberg
b8727aebc1 G722 implementation of the AudioEncoderFactoryTemplate API
Now the templated AudioEncoderFactory can create G722 encoders!

BUG=webrtc:7833

Review-Url: https://codereview.webrtc.org/2934833002
Cr-Commit-Position: refs/heads/master@{#18644}
2017-06-18 00:41:59 +00:00
kwiberg
b1ed7f09c0 G722 implementation of the AudioDecoderFactoryTemplate API
Now the templated AudioDecoderFactory can create G722 decoders!

BUG=webrtc:7839

Review-Url: https://codereview.webrtc.org/2940833002
Cr-Commit-Position: refs/heads/master@{#18643}
2017-06-18 00:30:09 +00:00
stefan
5cb19827e7 Tune loss-based BWE to be more compatible with the low frequency loss reports of audio streams.
BUG=webrtc:5079

Review-Url: https://codereview.webrtc.org/2941253002
Cr-Commit-Position: refs/heads/master@{#18634}
2017-06-16 14:47:00 +00:00
eladalon
8fa21c49ef Style fixes in rtcp_packet/
1. To make the files conform to chromium-style guidelines, and stop the compiler from complaing:
1.1. Move constructors out of .h file.
1.2. Move destructors out of .h file.
1.3. Move virtual functions out of .h file.
2. BlockLength() and Create() did not have consistent access modifiers in the various subclasses of RtcpPacket. Change the access level to public throughout.
3. Reorder BlockLength() and Create() where necessary, to reflect the order defined in the parent class (RtcpPacket).

BUG=None

Review-Url: https://codereview.webrtc.org/2937403002
Cr-Commit-Position: refs/heads/master@{#18633}
2017-06-16 14:07:47 +00:00
henrika
af35f833b7 Reduces sensitivity in audio-glitch detector for iOS
Bug: b/38018041
Change-Id: I8490a8ab51db14d3f4f42e128e47303e3710f63f
Reviewed-on: https://chromium-review.googlesource.com/536755
Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18629}
2017-06-16 12:09:10 +00:00
erikvarga
bf5a2fc11b Use RaceChecker instead of ThreadChecker in a few places.
There are some functions in packet_router.cc and modules/congestion_controller that could be used by different threads, but they're protected using rtc::ThreadChecker which doesn't allow them to be called by more than one thread even if the calls are synchronised. This CL replaces those with rtc::RaceChecker, which allows serialized access of the functions from multiple threads.

BUG=webrtc:7826

Review-Url: https://codereview.webrtc.org/2940133003
Cr-Commit-Position: refs/heads/master@{#18628}
2017-06-16 12:02:05 +00:00
philipel
112adf9ca9 Validate references of frames inserted into FrameBuffer2.
BUG=chromium:730603

Review-Url: https://codereview.webrtc.org/2937243002
Cr-Commit-Position: refs/heads/master@{#18614}
2017-06-15 16:06:21 +00:00
alessiob
19e087fc91 This CL finalizes the Conversational Speech tool.
The following changes have been made:
- command line args wired,
- user output added,
- final polishing.

BUG=webrtc:7218

Review-Url: https://codereview.webrtc.org/2808053002
Cr-Commit-Position: refs/heads/master@{#18609}
2017-06-15 10:49:57 +00:00
Henrik Lundin
6af9399117 ACM: Make AcmReceiver's ownership of NetEq more obvious
Bug: None
Change-Id: Iff544940fcbd651c967771c209c8c0c3aaeda9a1
Reviewed-on: https://chromium-review.googlesource.com/533073
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18607}
2017-06-15 10:11:07 +00:00
alessiob
f9784f23d7 Reland of Conversational speech tool, simualtor + unit tests (patchset #1 id:1 of https://codereview.webrtc.org/2925123003/ )
Reason for revert:
Build file causing google3 compilation error fixed

Original issue's description:
> Revert of Conversational speech tool, simualtor + unit tests (patchset #12 id:220001 of https://codereview.webrtc.org/2790933002/ )
>
> Reason for revert:
> Compile Error.
>
> Original issue's description:
> > The simulator puts into action the schedule of speech turns encoded in a MultiEndCall instance. The output is a set of audio track pairs. There is one set for each speaker and each set contains one near-end and one far-end audio track. The tracks are directly written into wav files instead of creating them in memory. To speed up the creation of the output wav files, *all* the source audio tracks (i.e., the atomic speech turns) are pre-loaded.
> >
> > The ConversationalSpeechTest.MultiEndCallSimulator unit test defines a conversational speech sequence and creates two wav files (with pure tones at 440 and 880 Hz) that are used as atomic speech turn tracks.
> >
> > This CL also patches MultiEndCall in order to allow input audio tracks with same sample rate and single channel only.
> >
> > BUG=webrtc:7218
> >
> > Review-Url: https://codereview.webrtc.org/2790933002
> > Cr-Commit-Position: refs/heads/master@{#18480}
> > Committed: 6b648c4697
>
> TBR=minyue@webrtc.org,alessiob@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:7218
>
> Review-Url: https://codereview.webrtc.org/2925123003
> Cr-Commit-Position: refs/heads/master@{#18481}
> Committed: 4c72cf43df

TBR=minyue@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:7218

Review-Url: https://codereview.webrtc.org/2930853002
Cr-Commit-Position: refs/heads/master@{#18606}
2017-06-15 09:24:59 +00:00
aleloi
f4dd191b28 Change existing aec dump tests to use webrtc::AecDump.
Currently the debug dump functionality of WebRTC (a log of all
AudioProcessing operations) was tested by the following tests:

1. ApmTest.VerifyDebugDump* which configures and runs AudioProcessing
   from a debug dump, and verifies that the same debug dump is
   recorded.
2. DebugDumpTest.* which is a comprehensive test of the debug dump
   operations. AudioProcessing configuration is changed, and the dump
   is scanned for the change.
3. ApmTest::{DebugDump, DebugDumpFromFileHandle} that verify that
   debug dumping can be started and files written.

This CL replaces the debug dump mechanism in all these tests to
webrtc::AecDump. Some of the tests are adapted to the chenges of the
new API to AecDump {Start,Stop}DebugRecording: the old functions
signal errors when a file cannot be opened. With AecDump, the
AecDumpFactory instead returns a nullptr.

The CL also changes audioproc_f to use AecDump.

BUG=webrtc:7404

Review-Url: https://codereview.webrtc.org/2864373002
Cr-Commit-Position: refs/heads/master@{#18605}
2017-06-15 08:55:38 +00:00
henrik.lundin
4eccdaa314 Fix a numerical issue in NetEq delay plotting
Imprecisions in floating point representation caused noise in the
graphs. The integer division is in fact exact.

BUG= webrtc:7467

Review-Url: https://codereview.webrtc.org/2933053002
Cr-Commit-Position: refs/heads/master@{#18592}
2017-06-14 14:02:17 +00:00
Magnus Jedvert
7a721e84f8 Update webrtc/media and webrtc/modules to new VideoFrameBuffer interface
TBR=stefan

Bug: webrtc:7632
Change-Id: Ifdaf4a591061595a53f677441baad85820336b34
Reviewed-on: https://chromium-review.googlesource.com/530844
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18591}
2017-06-14 13:46:38 +00:00
henrik.lundin
3c938fc5ea Add NetEq delay plotting to event_log_visualizer
This CL adds the capability to analyze and plot how NetEq behaves in
response to a network trace.

BUG=webrtc:7467

Review-Url: https://codereview.webrtc.org/2876423002
Cr-Commit-Position: refs/heads/master@{#18590}
2017-06-14 13:09:58 +00:00
Henrik Lundin
c417d9e558 NetEq: Removing LastError and LastDecoderError
LastDecoderError was only used in tests. LastError was only used in
conjunction with RemovePayloadType, and always to distinguish between
"decoder not found" and "other error". In AcmReceiver, "decoder not
found" was not treated as an error.

With this change, calling NetEq::RemovePayloadType with a payload type
that is not registered is no longer considered to be an error. This
allows to rewrite the code in AcmReceiver, such that it no longer has
to call LastError.

The internal member variables NetEqImpl::error_code_ and
NetEqImpl::decoder_error_code_ are removed, since they were no longer
read.

Bug: none
Change-Id: Ibfe97265954a2870c3caea4a34aac958351d7ff1
Reviewed-on: https://chromium-review.googlesource.com/535533
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18588}
2017-06-14 12:06:24 +00:00
terelius
6c4ba9f77d Plot acknowledged bitrate when compiled with rtc_enable_bwe_test_logging.
Change plotting of detector state from offset and gamma to T and threshold.

BUG=None

Review-Url: https://codereview.webrtc.org/2933243003
Cr-Commit-Position: refs/heads/master@{#18585}
2017-06-14 09:41:59 +00:00
tschumim
b749e5e1f5 Fix for broken test BweFeedbackTest.
BUG=webrtc:7746

Review-Url: https://codereview.webrtc.org/2930323004
Cr-Commit-Position: refs/heads/master@{#18582}
2017-06-14 05:58:21 +00:00
glaznev
da4eba1e0a Tune vp9 quality scaler parameters
BUG=webrtc:7662

Review-Url: https://codereview.webrtc.org/2939573002
Cr-Commit-Position: refs/heads/master@{#18575}
2017-06-13 18:34:49 +00:00
henrika
7be7883a01 Adds detection of audio glitches for playout on iOS (reland)
Second attempt to land https://chromium-review.googlesource.com/c/522563/

TBR: minyue
Bug: b/38018041
Change-Id: I938f4a490b6357cd1ac7b34fe445215a746fab43
Reviewed-on: https://chromium-review.googlesource.com/533214
Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18572}
2017-06-13 16:00:18 +00:00
Henrik Andreasson
6e286cba7e Revert "Adds detection of audio glitches for playout on iOS. "
This reverts commit 33e4e65706c56f6df65bb4ceb07464f5ec4269ea.

Reason for revert: breaks https://build.chromium.org/p/client.webrtc/builders/iOS%20API%20Framework%20Builder

Original change's description:
> Adds detection of audio glitches for playout on iOS. 
> 
> Bug: b/38018041
> Change-Id: If6b53d3909a52333543c8aade500fd4c26b47255
> Reviewed-on: https://chromium-review.googlesource.com/522563
> Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
> Reviewed-by: Minyue Li <minyue@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18570}

TBR=henrika@webrtc.org,minyue@webrtc.org

Change-Id: I3dd354d83a1f0ac1b5cab643147ae9c1672f342b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/38018041
Reviewed-on: https://chromium-review.googlesource.com/533533
Reviewed-by: Henrik Andreasson <henrika@webrtc.org>
Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18571}
2017-06-13 15:21:06 +00:00
henrika
33e4e65706 Adds detection of audio glitches for playout on iOS.
Bug: b/38018041
Change-Id: If6b53d3909a52333543c8aade500fd4c26b47255
Reviewed-on: https://chromium-review.googlesource.com/522563
Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18570}
2017-06-13 15:09:44 +00:00
minyue-webrtc
7ed35f4643 Replacing WEBRTC_AUDIO_NETWORK_ADAPTOR_DEBUG_DUMP with WEBRTC_ENABLE_PROTOBUF.
Bug: None
Change-Id: I595b094e7fcb12723614df3197a40833932ba0a0
Reviewed-on: https://chromium-review.googlesource.com/533074
Reviewed-by: Michael T <tschumim@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18568}
2017-06-13 14:45:33 +00:00
philipel
2c9f9f2bc9 Only create H264 frames if there are no gaps in the packet sequence number.
In the case of H264 we can't know which packet that is the fist packet of a
frame. In order to avoid creating incomplete frames we keep track of which
packets that we haven't received, and if there is a gap in the packet sequence
number leading up to this frame then a frame wont be created.

BUG=chromium:716558

Review-Url: https://codereview.webrtc.org/2926083002
Cr-Commit-Position: refs/heads/master@{#18559}
2017-06-13 09:47:28 +00:00
Danil Chapovalov
f3ba6484e3 Change rtp header extension AbsoluteSendTime::Write to take time in 24bit format
making it symmetric to AbsoluteSendTime::Parse function.

Bug: None
Change-Id: I9c71d840768064022ebebbbeb2962aeeecc68392
Reviewed-on: https://chromium-review.googlesource.com/531044
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18555}
2017-06-13 09:08:14 +00:00
lliuu
c35c7dedc0 Fix play block size mismatch in Win audio device.
All of the buffer size returned by Windows Core Audio APIs are in unit
of audio frames (which is sample times number of channels), while
WebRTC's AudioDeviceBuffer RequestPlayoutData method takes in samples
per channel (equivalent to frames per channel) but returns number of
audio samples in all the channels. This CL makes sure that we compare
playout block size in frames with frames and size in samples with
samples, which should fix the excessive logging issues and audio quality
problems due to the mismatch when comparing.

BUG=webrtc:7797

Review-Url: https://codereview.webrtc.org/2933953003
Cr-Commit-Position: refs/heads/master@{#18546}
2017-06-12 23:54:07 +00:00
yujo
36b1a5fcec Add mute state field to AudioFrame and switch some callers to use it. Also make AudioFrame::data_ private and instead provide:
const int16_t* data() const;
int16_t* mutable_data();

- data() returns a zeroed static buffer on muted frames (to avoid unnecessary zeroing of the member buffer) and directly returns AudioFrame::data_ on unmuted frames.
- mutable_data(), lazily zeroes AudioFrame::data_ if the frame is currently muted, sets muted=false, and returns AudioFrame::data_.

These accessors serve to "force" callers to be aware of the mute state field, i.e. lazy zeroing is not the primary motivation.

This change only optimizes handling of muted frames where it is somewhat trivial to do so. Other improvements requiring more significant structural changes will come later.

BUG=webrtc:7343
TBR=henrika

Review-Url: https://codereview.webrtc.org/2750783004
Cr-Commit-Position: refs/heads/master@{#18543}
2017-06-12 19:45:32 +00:00
kwiberg
0703856b53 Add SafeClamp(), which accepts args of different types
Specifically, just like SafeMin() and SafeMax() it handles all
combinations of integer and all
combinations of floating-point arguments by picking a
result type that is guaranteed to be able to hold the result.

This CL also replaces a bunch of std::min + std:max call pairs with
calls to SafeClamp()---the ones that could easily be found by grep
because "min" and "max" were on the same line. :-)

BUG=webrtc:7459

Review-Url: https://codereview.webrtc.org/2808513003
Cr-Commit-Position: refs/heads/master@{#18542}
2017-06-12 18:40:47 +00:00
Danil Chapovalov
38018ba67d Merge BitrateControllerImpl::RtcpBandwidthObserverImpl into BitrateControllerImpl
This allows to protect ssrc_to_last_received_extended_high_seq_num_ member and
make calls to OnReceivedRtcpReceiverReport thread-safe without introducing new critical section.

Bug: webrtc:7735
Change-Id: Iee23bb780d07b0f906f1f8eeddde2b74cc0a2b89
Reviewed-on: https://chromium-review.googlesource.com/518130
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18540}
2017-06-12 15:21:59 +00:00
Danil Chapovalov
84b4d2c1c2 Use rtp_header_extension_map.h instead of rtp_header_extension.h
Finish renaming started in the https://chromium-review.googlesource.com/c/520947/

Bug: webrtc:5565
Change-Id: If420e05165ef7c110b7d38f53dbe73c21a4059bc
Reviewed-on: https://chromium-review.googlesource.com/528095
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18538}
2017-06-12 14:01:20 +00:00
Danil Chapovalov
7f8369aa3f Update expectation of OneBitrateObserverTwoRtcpObservers test:
Use different media ssrcs for different RtcpBandwidthObservers

Bug: None
Change-Id: I1733ddfa5dcd378b700e31fd805d8930ec69064f
Reviewed-on: https://chromium-review.googlesource.com/517798
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18536}
2017-06-12 13:21:20 +00:00
Henrik Lundin
f474c19937 ACM tests: separate checksums for Android ARM64 clang and non-clang
BUG=webrtc:7793

Change-Id: Ifa488753c4382bead8103e4711d72b52b03c8b32
Reviewed-on: https://chromium-review.googlesource.com/530851
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18535}
2017-06-12 13:16:30 +00:00
perkj
39a41d92dd Split rtc_task_queue target. Add separate target for sequenced_task_checker and weak_ptr.
This is to make it possible to override the rtc_task_queue target only.

BUG=none

Review-Url: https://codereview.webrtc.org/2931273002
Cr-Commit-Position: refs/heads/master@{#18534}
2017-06-12 12:53:35 +00:00
tschumim
3fae628094 Reland Refactored incoming bitrate estimator.
BUG=webrtc:7746

Review-Url: https://codereview.webrtc.org/2928913002
Cr-Commit-Position: refs/heads/master@{#18529}
2017-06-12 06:57:17 +00:00
Magnus Jedvert
72dbe2a211 Revert "Revert "Update video_coding/codecs to new VideoFrameBuffer interface""
This reverts commit 88f94fa36aa61f7904d30251205c544ada2c4301.

Chromium code has been updated.

Original change's description:
> Revert "Update video_coding/codecs to new VideoFrameBuffer interface"
> 
> This reverts commit 20ebf4ede803cd4f628ef9378700f60b72f2eab0.
> 
> Reason for revert:
> 
> Suspect of breaking FYI bots.
> See https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win7%20Tester/builds/9036 and others.
> 
> Sample logs:
> Backtrace:
> [5024:1036:0607/173649.857:FATAL:webrtc_video_frame_adapter.cc(98)] Check failed: false. 
> Backtrace:
> 	base::debug::StackTrace::StackTrace [0x02D04A37+55]
> 	base::debug::StackTrace::StackTrace [0x02CCBB8A+10]
> 	content::WebRtcVideoFrameAdapter::NativeToI420Buffer [0x0508AD71+305]
> 	webrtc::VideoFrameBuffer::ToI420 [0x0230BF67+39]
> 	webrtc::H264EncoderImpl::Encode [0x057E8D0B+267]
> 	webrtc::VCMGenericEncoder::Encode [0x057E0E34+333]
> 	webrtc::vcm::VideoSender::AddVideoFrame [0x057DED9B+796]
> 	webrtc::ViEEncoder::EncodeVideoFrame [0x057C00F6+884]
> 	webrtc::ViEEncoder::EncodeTask::Run [0x057C12D7+215]
> 	rtc::TaskQueue::PostTask [0x03EE5CFB+194]
> 	base::internal::Invoker<base::internal::BindState<enum extensions::`anonymous namespace'::VerificationResult (__cdecl*)(std::unique_ptr<extensions::NetworkingCastPrivateDelegate::Credentials,std::default_delete<extensions::NetworkingCastPrivateDelegate::C [0x02DDCAA5+31]
> 	base::internal::Invoker<base::internal::BindState<enum extensions::`anonymous namespace'::VerificationResult (__cdecl*)(std::unique_ptr<extensions::NetworkingCastPrivateDelegate::Credentials,std::default_delete<extensions::NetworkingCastPrivateDelegate::C [0x02DDEE86+22]
> 	base::debug::TaskAnnotator::RunTask [0x02D08289+409]
> 	base::MessageLoop::RunTask [0x02C8CEC1+1233]
> 	base::MessageLoop::DoWork [0x02C8C1AD+765]
> 	base::MessagePumpDefault::Run [0x02D0A20B+219]
> 	base::MessageLoop::Run [0x02C8C9DB+107]
> 	base::RunLoop::Run [0x02C89583+147]
> 	base::Thread::Run [0x02CBEFCD+173]
> 	base::Thread::ThreadMain [0x02CBFADE+622]
> 	base::PlatformThread::Sleep [0x02C9E1A2+290]
> 	BaseThreadInitThunk [0x75C3338A+18]
> 	RtlInitializeExceptionChain [0x773A9902+99]
> 	RtlInitializeExceptionChain [0x773A98D5+54]
> 
> Original change's description:
> > Update video_coding/codecs to new VideoFrameBuffer interface
> > 
> > This is a follow-up cleanup for CL
> > https://codereview.webrtc.org/2847383002/.
> > 
> > Bug: webrtc:7632
> > Change-Id: I47861d779968f2fee94db9c017102a8e87e67fb7
> > Reviewed-on: https://chromium-review.googlesource.com/524163
> > Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#18477}
> 
> TBR=magjed@webrtc.org,nisse@webrtc.org,brandtr@webrtc.org
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:7632
> 
> Change-Id: I3b73fc7d16ff19ceba196e964dcb36a36510912c
> Reviewed-on: https://chromium-review.googlesource.com/527793
> Reviewed-by: Guido Urdaneta <guidou@chromium.org>
> Commit-Queue: Guido Urdaneta <guidou@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#18489}

TBR=tterriberry@mozilla.com,mflodman@webrtc.org,magjed@webrtc.org,stefan@webrtc.org,guidou@chromium.org,nisse@webrtc.org,brandtr@webrtc.org,webrtc-reviews@webrtc.org
# Not skipping CQ checks because original CL landed > 1 day ago.
No-Presubmit: true
Bug: webrtc:7632

Change-Id: I0962a704e8a9939d4364ce9069c863c9951654c9
Reviewed-on: https://chromium-review.googlesource.com/530684
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18527}
2017-06-10 20:12:17 +00:00
Alex Loiko
be767e0f7a Remove default impl of Attach/DetachAecDump.
The default implementations of AudioProcessing::{AttachAecDump,
DetachAecDump} are removed and audio_processing.cc is decoupled from
aec_dump.h. After this CL, the two methods are pure virtual. The
default implementations were added because doing otherwise would break
internal projects.

Bug: webrtc:7404
Change-Id: If94f60aeefe4ad1eefed3744f857692cc645bdf4
Reviewed-on: https://chromium-review.googlesource.com/528132
Commit-Queue: Alex Loiko <aleloi@google.com>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18517}
2017-06-09 17:18:31 +00:00
nisse
b1f2ff900e Rename class RtpStreamReceiver --> RtpVideoStreamReceiver.
This class is video-specific, and we want to free the name
"RtpStreamReceiver" so it can be reused for a media-independent RTP
receive class.

Also renames related files.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/2926253002
Cr-Commit-Position: refs/heads/master@{#18510}
2017-06-09 11:01:55 +00:00
Per Åhgren
46537a3879 Avoiding cascaded software echo cancellers
This CL ensures that it is not possible to run several echo canceller
solutions in cascade inside the audio processing module.

Bug: webrtc:7776
Change-Id: I1777f97aeacb8cdf5c6c3be4bf13eefcde7d69fb
Reviewed-on: https://chromium-review.googlesource.com/527053
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18505}
2017-06-08 22:39:03 +00:00
aleloi
20e4a73b9b MockAecDump and integration tests between AecDump and AudioProcessing
This CL adds a MockAecDump and integration tests that inject the mock
into AudioProcessingImpl. The tests check the call pattern between
AudioProcessingImpl and AecDump. The existing tests ApmTest.* and
DebugDumpTest.* (not touched by this CL) check that the data written
by AecDumpImpl is valid.

The tests check that the protobuf-writing methods for the different
protobuf message types in audio_processing/debug.proto are indeed
called for the different modes of AudioProcessingImpl operation.

BUG=webrtc:7404

Review-Url: https://codereview.webrtc.org/2888533005
Cr-Commit-Position: refs/heads/master@{#18501}
2017-06-08 15:12:46 +00:00
sprang
317005a03b Revert of Periodically update codec bit/frame rate settings. (patchset #2 id:160001 of https://codereview.webrtc.org/2924023002/ )
Reason for revert:
Looks like there's still one failing perf test:
RampUpTest.UpDownUpTransportSequenceNumberPacketLoss

Original issue's description:
> Reland of Periodically update codec bit/frame rate settings. (patchset #1 id:1 of https://codereview.webrtc.org/2923993002/ )
>
> Reason for revert:
> Create reland cl that we can patch with fix.
>
> Original issue's description:
> > Revert of Periodically update codec bit/frame rate settings. (patchset #8 id:140001 of https://codereview.webrtc.org/2883963002/ )
> >
> > Reason for revert:
> > Breaks some Call perf tests that are not run by the try bots....
> >
> > Original issue's description:
> > > Fix bug in vie_encoder.cc which caused channel parameters not to be updated at regular intervals, as it was intended.
> > >
> > > That however exposes a bunch of failed test, so this CL also fixed a few other things:
> > > * FakeEncoder should trust the configured FPS value rather than guesstimating itself based on the realtime clock, so as not to completely undershoot targets in offline mode. Also, compensate for key-frame overshoots when outputting delta frames.
> > > * FrameDropper should not assuming incoming frame rate is 0 if no frames have been seen.
> > > * Fix a bunch of test cases that started failing because they were relying on the fake encoder undershooting.
> > > * Fix test
> > >
> > > BUG=7664
> > >
> > > Review-Url: https://codereview.webrtc.org/2883963002
> > > Cr-Commit-Position: refs/heads/master@{#18473}
> > > Committed: 6431e21da6
> >
> > TBR=stefan@webrtc.org,holmer@google.com
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=7664
> >
> > Review-Url: https://codereview.webrtc.org/2923993002
> > Cr-Commit-Position: refs/heads/master@{#18475}
> > Committed: 5390c4814d
>
> TBR=stefan@webrtc.org,holmer@google.com
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=7664
>
> Review-Url: https://codereview.webrtc.org/2924023002
> Cr-Commit-Position: refs/heads/master@{#18497}
> Committed: cdafeda1cb

TBR=stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=7664

Review-Url: https://codereview.webrtc.org/2926283002
Cr-Commit-Position: refs/heads/master@{#18500}
2017-06-08 14:12:17 +00:00
sprang
cdafeda1cb Reland of Periodically update codec bit/frame rate settings. (patchset #1 id:1 of https://codereview.webrtc.org/2923993002/ )
Reason for revert:
Create reland cl that we can patch with fix.

Original issue's description:
> Revert of Periodically update codec bit/frame rate settings. (patchset #8 id:140001 of https://codereview.webrtc.org/2883963002/ )
>
> Reason for revert:
> Breaks some Call perf tests that are not run by the try bots....
>
> Original issue's description:
> > Fix bug in vie_encoder.cc which caused channel parameters not to be updated at regular intervals, as it was intended.
> >
> > That however exposes a bunch of failed test, so this CL also fixed a few other things:
> > * FakeEncoder should trust the configured FPS value rather than guesstimating itself based on the realtime clock, so as not to completely undershoot targets in offline mode. Also, compensate for key-frame overshoots when outputting delta frames.
> > * FrameDropper should not assuming incoming frame rate is 0 if no frames have been seen.
> > * Fix a bunch of test cases that started failing because they were relying on the fake encoder undershooting.
> > * Fix test
> >
> > BUG=7664
> >
> > Review-Url: https://codereview.webrtc.org/2883963002
> > Cr-Commit-Position: refs/heads/master@{#18473}
> > Committed: 6431e21da6
>
> TBR=stefan@webrtc.org,holmer@google.com
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=7664
>
> Review-Url: https://codereview.webrtc.org/2923993002
> Cr-Commit-Position: refs/heads/master@{#18475}
> Committed: 5390c4814d

TBR=stefan@webrtc.org,holmer@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=7664

Review-Url: https://codereview.webrtc.org/2924023002
Cr-Commit-Position: refs/heads/master@{#18497}
2017-06-08 13:12:05 +00:00
Alex Loiko
1066b1379d Remove deprecated AudioMixerImpl creation method.
AudioMixerImpl::CreateWithOutputRateCalculator has become
deprecated. Instead, either Create() or Create(OutputRateCalculator,
bool use_limiter) should be used. The first uses sensible default
values for missing arguments. The second takes all arguments. The old
CreateWithOutputRateCalculator is deprecated so that we don't have
different Create:s with all possible combinations of parameters.

Note that the factory methods may change in the future. The reason for
adding 'use_limiter' was that the limiter that was used had
questionable benefit and was very computationally expensive. Now work
is going on to replace it with a much cheaper version. After
the change, the factory method may change again to not allow for
disabling the limiter.

Bug: webrtc:7167
Change-Id: I0f9005e27e726fa552ee38dcbe965274e5006544
Reviewed-on: https://chromium-review.googlesource.com/528074
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18496}
2017-06-08 12:13:18 +00:00
asapersson
15dcb38e5f Make error resilience configurable through VideoCodecVP9 resilience setting (removes hard coded value in vp9_impl.cc).
Make resilience configurable in video processor integration tests.

BUG=webrtc:6783

Review-Url: https://codereview.webrtc.org/2919803002
Cr-Commit-Position: refs/heads/master@{#18493}
2017-06-08 09:55:08 +00:00
Alex Loiko
04ca637be3 Make 'aleloi@' OWNER of webrtc/modules/audio_processing
This reflects currently active developers of the module.

NOTRY=True

Bug: None
Change-Id: Ibc0810b08db753404fcb94038a4bd857d5585ef9
Reviewed-on: https://chromium-review.googlesource.com/528075
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18492}
2017-06-08 09:36:10 +00:00
Henrik Lundin
02ed201182 AcmReceiver: Make a member variable const
This is a minor clean-up made possible by simplifications done in the
past.

Bug: none
Change-Id: Id0ea167572f8da36db5de949441f67a2a18555be
Reviewed-on: https://chromium-review.googlesource.com/528073
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18490}
2017-06-08 09:18:14 +00:00
Guido Urdaneta
88f94fa36a Revert "Update video_coding/codecs to new VideoFrameBuffer interface"
This reverts commit 20ebf4ede803cd4f628ef9378700f60b72f2eab0.

Reason for revert:

Suspect of breaking FYI bots.
See https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win7%20Tester/builds/9036 and others.

Sample logs:
Backtrace:
[5024:1036:0607/173649.857:FATAL:webrtc_video_frame_adapter.cc(98)] Check failed: false. 
Backtrace:
	base::debug::StackTrace::StackTrace [0x02D04A37+55]
	base::debug::StackTrace::StackTrace [0x02CCBB8A+10]
	content::WebRtcVideoFrameAdapter::NativeToI420Buffer [0x0508AD71+305]
	webrtc::VideoFrameBuffer::ToI420 [0x0230BF67+39]
	webrtc::H264EncoderImpl::Encode [0x057E8D0B+267]
	webrtc::VCMGenericEncoder::Encode [0x057E0E34+333]
	webrtc::vcm::VideoSender::AddVideoFrame [0x057DED9B+796]
	webrtc::ViEEncoder::EncodeVideoFrame [0x057C00F6+884]
	webrtc::ViEEncoder::EncodeTask::Run [0x057C12D7+215]
	rtc::TaskQueue::PostTask [0x03EE5CFB+194]
	base::internal::Invoker<base::internal::BindState<enum extensions::`anonymous namespace'::VerificationResult (__cdecl*)(std::unique_ptr<extensions::NetworkingCastPrivateDelegate::Credentials,std::default_delete<extensions::NetworkingCastPrivateDelegate::C [0x02DDCAA5+31]
	base::internal::Invoker<base::internal::BindState<enum extensions::`anonymous namespace'::VerificationResult (__cdecl*)(std::unique_ptr<extensions::NetworkingCastPrivateDelegate::Credentials,std::default_delete<extensions::NetworkingCastPrivateDelegate::C [0x02DDEE86+22]
	base::debug::TaskAnnotator::RunTask [0x02D08289+409]
	base::MessageLoop::RunTask [0x02C8CEC1+1233]
	base::MessageLoop::DoWork [0x02C8C1AD+765]
	base::MessagePumpDefault::Run [0x02D0A20B+219]
	base::MessageLoop::Run [0x02C8C9DB+107]
	base::RunLoop::Run [0x02C89583+147]
	base::Thread::Run [0x02CBEFCD+173]
	base::Thread::ThreadMain [0x02CBFADE+622]
	base::PlatformThread::Sleep [0x02C9E1A2+290]
	BaseThreadInitThunk [0x75C3338A+18]
	RtlInitializeExceptionChain [0x773A9902+99]
	RtlInitializeExceptionChain [0x773A98D5+54]

Original change's description:
> Update video_coding/codecs to new VideoFrameBuffer interface
> 
> This is a follow-up cleanup for CL
> https://codereview.webrtc.org/2847383002/.
> 
> Bug: webrtc:7632
> Change-Id: I47861d779968f2fee94db9c017102a8e87e67fb7
> Reviewed-on: https://chromium-review.googlesource.com/524163
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18477}

TBR=magjed@webrtc.org,nisse@webrtc.org,brandtr@webrtc.org
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7632

Change-Id: I3b73fc7d16ff19ceba196e964dcb36a36510912c
Reviewed-on: https://chromium-review.googlesource.com/527793
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Commit-Queue: Guido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#18489}
2017-06-08 08:33:52 +00:00
tschumim
807736ef02 Revert of Refactored incoming bitrate estimator. (patchset #8 id:140001 of https://codereview.webrtc.org/2917873002/ )
Reason for revert:
Breaks Vice tests

Original issue's description:
> Refactored incoming bitrate estimator.
>
> BUG=webrtc:7746
>
> Review-Url: https://codereview.webrtc.org/2917873002
> Cr-Commit-Position: refs/heads/master@{#18478}
> Committed: 5fc8bf8b87

TBR=philipel@webrtc.org,terelius@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:7746

Review-Url: https://codereview.webrtc.org/2924243002
Cr-Commit-Position: refs/heads/master@{#18486}
2017-06-08 07:10:31 +00:00