In VideoCapturer::OnFrameCaptured, we currently convert cricket::CapturedFrame to cricket::VideoFrame and then send that to VideoAdapter::AdaptFrame. AdaptFrame may then decide to drop the frame. It would be faster to drop the frame before converting to cricket::VideoFrame.
This CL refactors VideoAdapter with a new function AdaptFrameResolution that takes captured resolution as input and output adapted resolution, or 0x0 if the frame should be dropped. Using that function, frames can be dropped before any conversion takes place.
R=fbarchard@google.com, perkj@webrtc.org, tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/29949004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7702 4adac7df-926f-26a2-2b94-8c16560cd09d
One debug recording with non matching sample rates between render and capture revealed a bug in modules/audio_processing/test/process_test.cc
The far_frame (render audio frame) used was loaded with the capture rate instead of the render rate with a data length mismatch error as result.
BUG=N/A
TESTED=manually on linux
R=kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/27169004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7695 4adac7df-926f-26a2-2b94-8c16560cd09d
This should speed up test execution on Android since only
the files needed by the test will be processed (instead
of the whole data + resources directories).
A few files for modules_unittests had to be explicitly added
for Android, since they were previously a part of the
add-whole-directories entries for the resources and data
directories.
BUG=webrtc:3741
TEST=Passing android+android_rel trybots.
R=phoglund@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/22559004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7694 4adac7df-926f-26a2-2b94-8c16560cd09d
Previously DataChannel::SendQueuedDataMessages continues the loop of sending queued messages if the channel is blocked, which will cause message reordering if the channel becomes unblocked during the loop, i.e. messages attempted after the unblocking will be sent earlier than the older messages attempted before the unblocking.
BUG=3979
R=pthatcher@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/25149004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7690 4adac7df-926f-26a2-2b94-8c16560cd09d
The modification only uses the unique part of the CalcLinearEnergies
function. Pass byte to byte conformance test both on ARMv7 and ARM64,
and the single function performance is similar with original assembly
version on different platforms. If not specified, the code is compiled
by GCC 4.6. The result is the "X version / C version" ratio, and the
less is better.
| run 100k times | cortex-a7 | cortex-a9 | cortex-a15 |
| use C as the base on each | (1.2Ghz) | (1.0Ghz) | (1.7Ghz) |
| CPU target | | | |
|----------------------------+-----------+-----------+------------|
| Neon asm | 19.48% | 19.26% | 13.68% |
| Neon inline | 27.90% | 28.87% | 17.79% |
| Neon intrinsics (GCC 4.8) | 18.69% | 20.18% | 14.69% |
| Neon intrinsics (LLVM 3.4) | 18.52% | 21.15% | 13.56% |
BUG=3580
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/23349004
Patch from Zhongwei Yao <zhongwei.yao@arm.com>.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7686 4adac7df-926f-26a2-2b94-8c16560cd09d
The modification only uses the unique part of the StoreAdaptiveChannel
function. Pass byte to byte conformance test both on ARM32 and ARM64,
and the single function performance is similar with original assembly
version on different platforms. If not specified, the code is compiled
by GCC 4.6. The result is the "X version / C version" ratio, and the
less is better.
| run 100k times | cortex-a7 | cortex-a9 | cortex-a15 |
| use C as the base on each | (1.2Ghz) | (1.0Ghz) | (1.7Ghz) |
| CPU target | | | |
|----------------------------+-----------+-----------+------------|
| Neon asm | 20.97% | 37.70% | 25.41% |
| Neon inline | 36.93% | 51.80% | 38.14% |
| Neon intrinsics (GCC 4.6) | 27.78% | 43.71% | 26.50% |
| Neon intrinsics (GCC 4.8) | 27.16% | 38.22% | 26.87% |
| Neon intrinsics (LLVM 3.4) | 27.82% | 39.90% | 26.69% |
Change-Id: Ia55d8a268a70164b50676c604ae40b68fc183106
BUG=3580
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/30029004
Patch from Zhongwei Yao <zhongwei.yao@arm.com>.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7685 4adac7df-926f-26a2-2b94-8c16560cd09d
The modification only uses the unique part of the ResetAdaptiveChannel
function. Pass byte to byte conformance test both on ARM32 and ARM64,
and the single function performance is similar with original assembly
version on different platforms. If not specified, the code is compiled
by GCC 4.6. The result is the "X version / C version" ratio, and the
less is better.
| run 100k times | cortex-a7 | cortex-a9 | cortex-a15 |
| use C as the base on each | (1.2Ghz) | (1.0Ghz) | (1.7Ghz) |
| CPU target | | | |
|----------------------------+-----------+-----------+------------|
| Neon asm | 15% | 30% | 12% |
| Neon inline | 21% | 30% | 12% |
| Neon intrinsics (GCC 4.6) | 19% | 32% | 12% |
| Neon intrinsics (GCC 4.8) | 20% | 32% | 12% |
| Neon intrinsics (LLVM 3.4) | 19% | 30% | 12% |
BUG=3580
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/29019004
Patch from Zhongwei Yao <zhongwei.yao@arm.com>.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7672 4adac7df-926f-26a2-2b94-8c16560cd09d
Addresses issue where SetDefaultEncoderConfig modifies the codec list
rather than just the targeted codec. This was previously done just to
pass more unit tests rather than be done properly. This incidentally
addresses a TODO causing this to work with external codecs as well.
R=stefan@webrtc.org
BUG=1788
Review URL: https://webrtc-codereview.appspot.com/32009004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7667 4adac7df-926f-26a2-2b94-8c16560cd09d