RenderFrame should not modify the I420VideoFrame (and we don't).
This CL changes the declaration of RenderFrame from:
int32_t RenderFrame(const uint32_t streamId, I420VideoFrame& videoFrame)
to:
int32_t RenderFrame(const uint32_t streamId, const I420VideoFrame& videoFrame)
BUG=1128
R=mflodman@webrtc.org, perkj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/46689005
Cr-Commit-Position: refs/heads/master@{#8902}
All these tests crashed before r8811. These tests should've been with
that change but r8811 was pushed in before to make bots green.
BUG=1788, 1667
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/48669004
Cr-Commit-Position: refs/heads/master@{#8881}
It turns out that Camera.getCameraInfo can throw an exception if the camera does not work.
TESTED=added a throw before all calls to Camera.open and Camera.getCameraInfo and made sure APPRtcDemo does not crash.
BUG=4371
R=glaznev@webrtc.org, magjed@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/44909004
Cr-Commit-Position: refs/heads/master@{#8876}
Removes 'googCaptureJitterMs' and 'googCaptureQueueDelayMsPerS' from
talk/. The overuse-detection method used is based on encoding time,
so these stats aren't useful enough to warrant having them showing up in
GetStats().
BUG=
R=stefan@webrtc.org, tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/50469004
Cr-Commit-Position: refs/heads/master@{#8874}
This means all channels within the same group will share the same pacing queue and scheduler. It also means padding will be computed and sent by a single pacer. To accomplish this I also introduce a PacketRouter which finds the RTP module which owns the packet to be paced out.
BUG=4323
R=mflodman@webrtc.org, pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/45549004
Cr-Commit-Position: refs/heads/master@{#8864}
If built-in Echo Cancellation is available on a device it is automatically enabled. The reason is that it in most cases performs better than the WebRTC software echo control for mobile. The drawback is that we can not develop, test and rollout the delay agnostic AEC (DA-AEC) on Android as for desktops.
This CL includes
- adding a media constraint to enable/disable DA-AEC.
- automatically turning on echo cancellation if DA-AEC is enabled.
- a fix in the AEC that enables delay estimation when DA-AEC is enabled, but delay metrics is disabled.
- sets the Config struct ReportedDelay, which controls DA-AEC internally in the AEC.
The test code to verify that it works in AppRTCDemo can be found here:
https://webrtc-codereview.appspot.com/50479004/
BUG=4472
TESTED=locally on N7, N6, Android One
R=glaznev@webrtc.org, perkj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/48699004
Cr-Commit-Position: refs/heads/master@{#8861}
AppRTCDemo is failing to cleanly exit a room because it sends a GET request to /bye. The request to /bye should be a POST request. Because the /bye request is failing, the room is still marked as "full" and rejoining will fail.
BUG=
R=tkchin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/47759004
Patch from Chuck Hays <haysc@webrtc.org>.
Cr-Commit-Position: refs/heads/master@{#8860}
This CL deletes VideoAdapter::AdaptFrame and replaces the remaining calls with AdaptFrameResolution instead.
I do not expect this CL to fix the flaky VideoAdapterTests yet. I intend to replace FileVideoCapturer with a deterministic FakeVideoCapturer in a follow-up CL.
BUG=4317
R=pbos@webrtc.org, pthatcher@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/44769004
Cr-Commit-Position: refs/heads/master@{#8848}
And add a constructor for creating an uninitialized Buffer of a
specified size.
(I intend to follow up with more Buffer changes, but since it's rather
widely used, the rename is quite noisy and works better as a separate
CL.)
R=tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/48579004
Cr-Commit-Position: refs/heads/master@{#8841}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8841 4adac7df-926f-26a2-2b94-8c16560cd09d
I've kicked of a roll into Chromium with out the WebRtcVideoEngine2 change, to see if it was causing the roll problems, but re-landing in the meantime.
> Revert 8809 "Set WebRtcVideoEngine2 as the WebRtcMediaEngine."
> content_browsertests started failing around the time the change landed and rolls are failing now.
> I'm going to try rolling this back, start a roll, and then re-land.
>
> > Set WebRtcVideoEngine2 as the WebRtcMediaEngine.
> >
> > Removes the experiment launching WebRTC-NewVideoAPI. This field trial
> > has shown no major regressions on Chrome Canary/Dev that haven't been
> > addressed, so enabling it in time before feature freeze.
> >
> > BUG=1788
> > R=mflodman@webrtc.org
> >
> > Review URL: https://webrtc-codereview.appspot.com/44759004
>
> TBR=pbos@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/43889004TBR=tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/50459004
Cr-Commit-Position: refs/heads/master@{#8817}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8817 4adac7df-926f-26a2-2b94-8c16560cd09d
content_browsertests started failing around the time the change landed and rolls are failing now.
I'm going to try rolling this back, start a roll, and then re-land.
> Set WebRtcVideoEngine2 as the WebRtcMediaEngine.
>
> Removes the experiment launching WebRTC-NewVideoAPI. This field trial
> has shown no major regressions on Chrome Canary/Dev that haven't been
> addressed, so enabling it in time before feature freeze.
>
> BUG=1788
> R=mflodman@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/44759004TBR=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/43889004
Cr-Commit-Position: refs/heads/master@{#8816}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8816 4adac7df-926f-26a2-2b94-8c16560cd09d
Instead of setting bitrates based on codec target settings (which may
have previously been capped by a codec max bitrate), fetch the last
bandwidth allocated for this channel. This fixes broken low start bitrates
due to QCIF being set as default codec in WebRtcVideoEngine2 which caps
the max bitrate to 200kbps.
BUG=1788
R=mflodman@webrtc.org, stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/43789004
Cr-Commit-Position: refs/heads/master@{#8780}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8780 4adac7df-926f-26a2-2b94-8c16560cd09d
Original cl description:
This removes the none const pointer entry and SwapFrame.
Since frames delivered using VideoSendStream no longer use the external capture module, VideoSendStream will not get an incoming framerate callback. VideoSendStream now uses a rtc::RateTracker.
Also, the video engine must ensure that time stamps are always increasing.
With this, time stamps (ntp, render_time and rtp timestamps ) are checked and set in ViECapturer::OnIncomingCapturedFrame
This cl was previously reverted in https://webrtc-codereview.appspot.com/46549004/.
Patchset 1 contains the original patch after rebase.
Patshet 2 fix webrtc_perf_tests reported in chromium:465306
Note that chromium:465287 is being fixed in https://webrtc-codereview.appspot.com/43829004/
BUG=1128
R=magjed@webrtc.org, mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/47629004
Cr-Commit-Position: refs/heads/master@{#8776}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8776 4adac7df-926f-26a2-2b94-8c16560cd09d
This flag is passed to existing VieExternalCodec API (and others) to denote encoders that don't require/expect frames from the normal capture pipeline. This is the simplest way to allow camera->encoder texture support, until textures are supported through the normal camera pipeline and the lifetime issues are all figured out (I hear this is on the backlog, but not there yet).
Ideally, the flag would be on the encoder, but that doesn't work with SimulcastEncoderAdapter, since it doesn't create an encoder right away.
Note that this change only affects WebRtcVideoEngine (not WRVE2), since WRVE2 uses video_send_stream, and my hope is that by the time things have switched to WRVE2, textures will be supported with the normal camera pipeline and the dependency on internal sources can be thrown away.
BUG=
R=pbos@webrtc.org, pthatcher@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/42349004
Cr-Commit-Position: refs/heads/master@{#8769}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8769 4adac7df-926f-26a2-2b94-8c16560cd09d
- Add HUD fragment with HUD related controls and more
HUD statistics.
- Create and set all peer connection constraints in
PeerConnectionClient class.
- Handle registration request in web socket class internally
once web socket connection is opened.
R=wzh@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/44669004
Cr-Commit-Position: refs/heads/master@{#8762}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8762 4adac7df-926f-26a2-2b94-8c16560cd09d
As of r7849 the built-in AEC on devicing supporting it is enabled by default.
Unfortunately, the SW AEC (AECM) was not disabled, hence running on top of the built-in one. This is not necessary. In fact it reduce double talk performance significantly.
BUG=4431
TESTED=manually
R=henrika@webrtc.org, mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/49419004
Cr-Commit-Position: refs/heads/master@{#8735}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8735 4adac7df-926f-26a2-2b94-8c16560cd09d
Relevant changes:
* src/third_party/android_tools: fd5a8ec..98a4345
Details: 00e438c..8d51d96/DEPS
This required updating our Android projects to API level 22,
as third_party/android_tools dropped support for API level 21.
Command used:
perl -pi -e "s/android-21/android-22/g" `find . -name project.properties`
Using 'android update project' would also work but that changes the
ANDROID_SDK_ROOT -> ANDROID_HOME, which the Chromium build toolchain
doesn't set properly when build/android/envsetup.sh is sourced.
Clang version was not updated in this roll.
R=henrika@webrtc.org, perkj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/42779004
Cr-Commit-Position: refs/heads/master@{#8728}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8728 4adac7df-926f-26a2-2b94-8c16560cd09d
On fresh checkout AppRTCDemo and corresponding tests
fail to build because resource file R.java is not auto generated properly.
On existing tree R.java will be picked up from previous
build leftover at talk/examples/android/gen.
Build bots did not detect this break for some reason.
R=wzh@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/43749004
Cr-Commit-Position: refs/heads/master@{#8723}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8723 4adac7df-926f-26a2-2b94-8c16560cd09d
The AppRTCDemoTest is failing if the Android device lacks
an Internet connection (e.g. is in flight mode).
This change makes it benefit from the work done in
https://review.webrtc.org/36769004/ to work around that
limitation for loopback tests.
R=phoglund@webrtc.orgTBR=glaznev@webrtc.org
BUG=4421
TESTED=Successful run on Nexus 7 (2013) in flight mode using:
ninja -C out/Release
. build/android/envsetup.sh
adb install -r out/Release/apks/AppRTCDemo.apk
webrtc/build/android/test_runner.py instrumentation --test-apk AppRTCDemoTest --verbose --release
Review URL: https://webrtc-codereview.appspot.com/45649004
Cr-Commit-Position: refs/heads/master@{#8714}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8714 4adac7df-926f-26a2-2b94-8c16560cd09d
- Updated Java VideoRenderer removes setSize() from video renderer interface.
Remove no longer valid test, which requires setSize() call before any
frame can be rendered.
- test_runner.py tries to run private member of InstrumentationTestCase class.
Workaround it by renaming private loopback test method.
R=wzh@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/47549004
Cr-Commit-Position: refs/heads/master@{#8707}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8707 4adac7df-926f-26a2-2b94-8c16560cd09d
Also fixed the issue when we have an TransportChannelImpl, the socket
option is not preserved.
Since this is a code path that will be modified by bundle (which Peter also has a test case already), we don't need a test case here.
BUG=4374
R=pthatcher@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/42699004
Cr-Commit-Position: refs/heads/master@{#8702}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8702 4adac7df-926f-26a2-2b94-8c16560cd09d
This cuts down on the amount of string copying we currently do and paves the way for separating the code that fetches the stats from the code that populates the stats reports. As is, that code is intertwined, so we populate the stats on both signaling and worker thread.
I'm also adding some documentation and TODOs for further improvements.
BUG=2822
R=pthatcher@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/47459004
Cr-Commit-Position: refs/heads/master@{#8700}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8700 4adac7df-926f-26a2-2b94-8c16560cd09d
This change is just to allow rolling into Chromium, update Chromium and then commit the actual change in WebRTC that requires the interface change. It allows using a StatsReport::Id object as a pointer (foo->Bar()), since in an upcoming change, Id objects will be pointers.
R=magjed@webrtc.org
BUG=2822
Review URL: https://webrtc-codereview.appspot.com/43689004
Cr-Commit-Position: refs/heads/master@{#8697}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8697 4adac7df-926f-26a2-2b94-8c16560cd09d
This reverts r8683 and is a reland of r8682.
Reason for revert: The thread checker in Chromium that crashed has been fixed now.
BUG=1128
TBR=tommi,pbos,pthatcher
Review URL: https://webrtc-codereview.appspot.com/40319004
Cr-Commit-Position: refs/heads/master@{#8696}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8696 4adac7df-926f-26a2-2b94-8c16560cd09d
Mostly this consists of marking functions with override when
applicable, and moving function bodies from .h to .cc files.
Not inlining virtual functions with simple bodies such as
{ return false; }
strikes me as probably losing more in readability than we gain in
binary size and compilation time, but I guess it's just like any other
case where enabling a generally good warning forces us to write
slightly worse code in a couple of places.
BUG=163
R=kjellander@webrtc.org, tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/47429004
Cr-Commit-Position: refs/heads/master@{#8656}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8656 4adac7df-926f-26a2-2b94-8c16560cd09d
This CL adds support for unittests of the AudioDeviceModule on Android using both Java and C++. The new framework uses ::testing::TesWithParam to support both Java-based audio and OpenSL ES based audio. However, given existing issues in our OpenSL ES implementation, the list of test parameters only contains Java in this first version. Open SL ES will be enabled as soon as the backend has been refactored.
It also:
- Removes the redundant JNIEnv* argument in webrtc::VoiceEngine::SetAndroidObjects().
- Modifies usage of enable_android_opensl and the WEBRTC_ANDROID_OPENSLES define.
- Adds kAndroidJavaAudio and kAndroidOpenSLESAudio to AudioLayer enumerator.
- Fixes some bugs which were discovered when running the tests.
BUG=NONE
R=phoglund@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/40069004
Cr-Commit-Position: refs/heads/master@{#8651}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8651 4adac7df-926f-26a2-2b94-8c16560cd09d