Commit Graph

11312 Commits

Author SHA1 Message Date
dea075c7a6 Log an error in RtpDemuxer::FindSsrcAssociations() if kMaxProcessedSsrcs exceeded
BUG=None

Review-Url: https://codereview.webrtc.org/2941513002
Cr-Commit-Position: refs/heads/master@{#18569}
2017-06-13 14:57:31 +00:00
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
29860331f1 Remove webrtcvideoengine2.h
BUG=None

Review-Url: https://codereview.webrtc.org/2937673002
Cr-Commit-Position: refs/heads/master@{#18566}
2017-06-13 14:28:31 +00:00
659a0101f6 Delete old include file webrtc/video_frame.h.
BUG=webrtc:7616, webrtc:5880

Review-Url: https://codereview.webrtc.org/2913143002
Cr-Commit-Position: refs/heads/master@{#18565}
2017-06-13 13:05:05 +00:00
a65ad22939 Delete unused method FilesystemInterface::GetFileTime.
BUG=webrtc:6424

Review-Url: https://codereview.webrtc.org/2926713007
Cr-Commit-Position: refs/heads/master@{#18564}
2017-06-13 12:37:44 +00:00
8c6afef954 Make sure UI methods get called on the main thread
BUG=webrtc:7754

Review-Url: https://codereview.webrtc.org/2920933002
Cr-Commit-Position: refs/heads/master@{#18563}
2017-06-13 12:25:33 +00:00
fdfeb8361e Declaring rtc_base_approved dep on webrtc_common
BUG=None
NOTRY=True

Review-Url: https://codereview.webrtc.org/2941453003
Cr-Commit-Position: refs/heads/master@{#18562}
2017-06-13 11:53:27 +00:00
7339712256 Removing backward compatible header
I have updated downstream projects and now it is safe to remove this
header.

BUG=webrtc:7647
NOTRY=True

Review-Url: https://codereview.webrtc.org/2935933002
Cr-Commit-Position: refs/heads/master@{#18561}
2017-06-13 11:25:37 +00:00
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
fc309750a9 Access UIApplication on main thread
Track UIApplication applicationState changes from a C++ class. Uses
NSNotificationCenter to access changes on the main thread and exposes
a local variable that can be checked from any thread.

This fixes a runtime warning on iOS 11 beta.

My Objective-C++ is a little rusty so please check if this follows
the conventions for C++ code in the project. It also changes the
interface exposed by RTCUIApplication.h, not sure if that has impact
on any public APIs that needs to be documented somewhere?

Bug: webrtc:7773
Change-Id: I9c8ba090ef9f28d812114026a906cef742192c39
Reviewed-on: https://chromium-review.googlesource.com/527442
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Kári Tristan Helgason <kthelgason@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18558}
2017-06-13 09:37:47 +00:00
5b383c0ebd Revert "Update webrtc/sdk/objc to new VideoFrameBuffer interface"
This reverts commit b008b45f1e609556a04c1aabb4e8ed6a894265af.

Reason for revert: Breaks external clients.

Original change's description:
> Update webrtc/sdk/objc to new VideoFrameBuffer interface
> 
> More thorough refactoring work is planned for RTCVideoFrame (see webrtc:7785), and this CL just unblocks removing the old interface from webrtc::VideoFrameBuffer.
> 
> Bug: webrtc:7632,webrtc:7785
> Change-Id: I351536c5ca454c2acd8944bbc2ebb1d1439dc50c
> Reviewed-on: https://chromium-review.googlesource.com/530231
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18553}

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

Change-Id: Ib5c6fcb939175c67c3ac7b3df7cea0f7c2bb0af0
Reviewed-on: https://chromium-review.googlesource.com/533013
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18557}
2017-06-13 09:14:46 +00:00
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
29f0d453aa Delete ApplicationName and OrganizationName.
Deleted FilesystemInterface methods:

  GetOrganizationName
  SetOrganizationName
  GetApplicationName
  SetApplicationName

Unused since cl https://codereview.webrtc.org/2533213005.

BUG=webrtc:6424

Review-Url: https://codereview.webrtc.org/2927983003
Cr-Commit-Position: refs/heads/master@{#18554}
2017-06-13 09:04:51 +00:00
b008b45f1e Update webrtc/sdk/objc to new VideoFrameBuffer interface
More thorough refactoring work is planned for RTCVideoFrame (see webrtc:7785), and this CL just unblocks removing the old interface from webrtc::VideoFrameBuffer.

Bug: webrtc:7632,webrtc:7785
Change-Id: I351536c5ca454c2acd8944bbc2ebb1d1439dc50c
Reviewed-on: https://chromium-review.googlesource.com/530231
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18553}
2017-06-13 08:38:28 +00:00
687bc3e27b Delete unused method Win32Filesystem::GetAppPathname.
Unused since cl https://codereview.webrtc.org/2872283002.

BUG=webrtc:6424

Review-Url: https://codereview.webrtc.org/2934483002
Cr-Commit-Position: refs/heads/master@{#18552}
2017-06-13 08:06:07 +00:00
418b7d34d1 Increase number of unsignaled audio streams we handle to 4.
BUG=webrtc:7179 b/34746131

Review-Url: https://codereview.webrtc.org/2900713002
Cr-Commit-Position: refs/heads/master@{#18551}
2017-06-13 07:38:27 +00:00
f52ef71db7 Delete unused method FilesystemInterface::DeleteEmptyFolder.
It's left-over since cl https://codereview.webrtc.org/2887093002.

In addition, fix override declarations and formatting in
win32filesystem.h.

BUG=webrtc:7345,webrtc:6424

Review-Url: https://codereview.webrtc.org/2930023002
Cr-Commit-Position: refs/heads/master@{#18549}
2017-06-13 07:10:07 +00:00
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
22e0814d51 Update VirtualSocketServerTest to use a fake clock.
Since this is a test for a fake network, it's only natural that it uses
a fake clock as well. This makes the tests much faster, less flaky, and
lets them be moved out of  "webrtc_nonparallel_tests", since they no
longer have a dependency on any "real" thing (sockets, or time) and
can be run in parallel as easily as any other tests.

As part of this CL, added the fake clock as an argument to
VirtualSocketServer's and TestClient's constructors, since these classes
have methods that wait synchronously for something to occur, and if the
test is using a fake clock, they need to advance it in order to make
progress.

Lastly, added a DCHECK in Thread::ProcessMessages. If called with a
nonzero time while a fake clock is used, it will get stuck in an
infinite loop; a DCHECK is easier to notice than an infinite loop.

BUG=webrtc:7727, webrtc:2409

Review-Url: https://codereview.webrtc.org/2927413002
Cr-Commit-Position: refs/heads/master@{#18544}
2017-06-12 21:30:28 +00:00
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
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
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
42742a56ef Fall-back to OpenGL renderer if mac hardware doesn't support Metal
BUG=webrtc:7782

Review-Url: https://codereview.webrtc.org/2927983002
Cr-Commit-Position: refs/heads/master@{#18539}
2017-06-12 14:32:02 +00:00
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
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
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
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
7123029731 List all device resolutions in AppRTCMobile settings
For devices with multiple cameras, all supported resolutions from both
the front-facing and back cameras are listed.

Bug: webrtc:7783
Change-Id: I228eda28ea48181c86d344413dda9f3a71b0864f
Reviewed-on: https://chromium-review.googlesource.com/529045
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18533}
2017-06-12 10:02:44 +00:00
c276ecf5c4 Update Android video buffers to new VideoFrameBuffer interface
This is a follow-up cleanup for CL
https://codereview.webrtc.org/2847383002/.

Bug: webrtc:7632
Change-Id: I1e17358c70a12c75e8732fee5bbab6a552c4e6c3
Reviewed-on: https://chromium-review.googlesource.com/524063
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18532}
2017-06-12 09:29:52 +00:00
f184138a5f s/WebRtcVideoChannel2/WebRtcVideoChannel and s/WebRtcVideoEngine2/WebRtcVideoEngine
WebRtcVideoChannel and and WebRtcVideoEngine seem to have been removed, and only WebRtcVideoChannel2 and WebRtcVideoEngine2 remain, which removes the need for the "2" postfix.

BUG=None

Review-Url: https://codereview.webrtc.org/2932073002
Cr-Commit-Position: refs/heads/master@{#18531}
2017-06-12 08:16:46 +00:00
a8e781aedf Make rtc_event_log2text output header extensions
BUG=webrtc:none

Review-Url: https://codereview.webrtc.org/2918103002
Cr-Commit-Position: refs/heads/master@{#18530}
2017-06-12 08:02:46 +00:00
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
90e31904c6 Update webrtc/test to new VideoFrameBuffer interface
This is a follow-up cleanup for CL
https://codereview.webrtc.org/2847383002/.

TBR=stefan@webrtc.org

Bug: webrtc:7632
Change-Id: I8275e8edbd22b557cdb251f342847f4e8306299c
Reviewed-on: https://chromium-review.googlesource.com/524084
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18528}
2017-06-11 16:10:16 +00:00
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
c131bf944e Enable webrtc_nonparallel_tests on iOS simulator
After landing https://chromium-review.googlesource.com/528173
only one test needs to be disabled: VirtualSocketServerTest.delay_v4

BUG=webrtc:7727
NOTRY=True
TESTED=gn gen out/x64-Debug --args='target_os="ios" ios_enable_code_signing=false is_component_build=false target_cpu="x64"'
ninja -C out/x64-Debug webrtc_nonparallel_tests
out/x64-Debug/iossim -d "iPhone 6s" -s 10.3 out/x64-Debug/webrtc_nonparallel_tests.app

Review-Url: https://codereview.webrtc.org/2909073002
Cr-Commit-Position: refs/heads/master@{#18519}
2017-06-09 19:59:11 +00:00
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
76d29f9bf8 Fix Channel::GetSendCodec when used together with SetEncoder.
When using the SetEncoder interface, there's no actual CodecInst to return from Channel::GetSendCodec. Before this CL, this was done by calling the ACM, which has functionality for generating a CodecInst with the necessary values even when handed an external encoder. Unfortunately, this call takes a lock and does some extra processing which isn't strictly necessary in this case. Since GetSendCodec is called inside the audio input callback code, this can cause problems.

This CL instead generates a CodecInst in the SetEncoder call and has GetSendCodec simply return that one if it's available. If it isn't the value from codec_manager_ is returned instead, as was the case before injectable audio codec related changes were added to Channel.

BUG=b/38018041

Review-Url: https://codereview.webrtc.org/2924363004
Cr-Commit-Position: refs/heads/master@{#18515}
2017-06-09 14:30:13 +00:00
461c94054a ObjC: Rename VideoToolbox/decoder.cc to VideoToolbox/decoder.mm
This decoder is only used for iOS/Mac and it will simplify to make it
ObjC++ instead of C++, similar to how the encoder is .mm already.

Bug: None
Change-Id: I13f62f018432e9c23e7277eea29258a73e1590e1
Reviewed-on: https://chromium-review.googlesource.com/529084
Reviewed-by: Kári Tristan Helgason <kthelgason@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18513}
2017-06-09 13:25:25 +00:00
b4ab381ce3 Use the configured remote ssrc instead of relying on the first received packet RtpStreamReceiver.
This solves an issue where if the first packet happens to be an RTX packet, it is recovered with an incorrect SSRC.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2928123002
Cr-Commit-Position: refs/heads/master@{#18512}
2017-06-09 13:12:11 +00:00
fee994c367 Ensure the openGLContext is current before trying to reshape the viewport
Make sure to call ensureGLContext before calling OpenGL functions

BUG=webrtc:7751

Review-Url: https://codereview.webrtc.org/2916583005
Cr-Commit-Position: refs/heads/master@{#18511}
2017-06-09 12:16:10 +00:00
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
e2baffb055 Create a UIApplication when running tests on iOS.
Fix issue where running tests on iOS would get killed after a certain
time had passed. This seems to be due to springboard killing apps
that don't have a GUI running. Creating a UIApplication to wrap
the test suite seems to solve this problem in chromium.

This CL adds a class for this purpose. Most of the code was copied
from chromium with bits taken out.

Bug: webrtc:7161, webrtc:7758
Change-Id: I10f9bc8914e73f2870a9b0a2703cde496af8db2f
Reviewed-on: https://chromium-review.googlesource.com/528173
Reviewed-by: Henrik Andreasson <henrika@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Commit-Queue: Kári Tristan Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18509}
2017-06-09 10:24:33 +00:00
6baee78bc9 Add missing #include <cerrno> in string_to_number.cc
One of our toolchains does not expose |errno| in the global namespace.

BUG=none

Review-Url: https://codereview.webrtc.org/2926273002
Cr-Commit-Position: refs/heads/master@{#18506}
2017-06-08 23:38:40 +00:00
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
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
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
cf705c5f13 Reland of Protect new header extension by field trial experiment to allow hardcoding it in SDP (patchset #1 id:1 of https://codereview.webrtc.org/2922723002/ )
Reland is done after fixes in downstream projects.

TBR=sprang@webrtc.org,asapersson@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chrome:718738

Review-Url: https://codereview.webrtc.org/2922953002
Cr-Commit-Position: refs/heads/master@{#18498}
2017-06-08 13:18:53 +00:00
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
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
d0244c21cd Add RSID-based demuxing to RtpDemuxer
Make RtpDemuxer able to demux RTP packets according to RSID (RTP Stream ID), as well as the (pre-existing) ability to demux according to SSRC.

BUG=None

Review-Url: https://codereview.webrtc.org/2920993002
Cr-Commit-Position: refs/heads/master@{#18495}
2017-06-08 11:19:13 +00:00