Changed unsigned longs into uint64_t to be a bit more portable.
Merge branch 'master' into fake_camera
Conflicts:
src/video_engine/main/test/AutoTest/source/vie_autotest_base.cc
Removed unnecessary use of WebRTC types. Fixed style issues.
Fixed style issues. Added comments where needed.
(After review) Made the standard base test not mirror the render stream since that is assumed to be tested in the render module. Renamed functions accordingly.
Fixed merge errors.
Merge branch 'master' into fake_camera
Conflicts:
src/video_engine/main/interface/vie_capture.h
src/video_engine/main/test/AutoTest/automated/vie_standard_integration_test.cc
src/video_engine/main/test/AutoTest/interface/vie_autotest.h
src/video_engine/main/test/AutoTest/interface/vie_autotest_defines.h
src/video_engine/main/test/AutoTest/source/vie_autotest_base.cc
src/video_engine/main/test/AutoTest/source/vie_autotest_linux.cc
src/video_engine/main/test/AutoTest/vie_auto_test.gypi
Merge branch 'extended_tests' into fake_camera
Conflicts:
src/video_engine/main/test/AutoTest/automated/vie_standard_integration_test.cc
src/video_engine/main/test/AutoTest/interface/vie_autotest.h
src/video_engine/main/test/AutoTest/source/vie_autotest_base.cc
src/video_engine/main/test/AutoTest/source/vie_autotest_linux.cc
src/video_engine/main/test/AutoTest/vie_auto_test.gypi
More updates after review.
Updates after review.
Added new automated test. - Added a new mode to the vie_auto_test binary. It is now possible to pass --automated to it to make it run noninteractively. - To be precise, it will run everything that has been rewritten as GUnit tests, which currently is one "test suite" in the binary.
Added comments to the new test.
- Fixed a bug which caused test error messages to not get shown.
- Added extended and API tests.
- Abstracted out an integration test base class since all integration
tests set up the exact same way.
- The ViETest::TestError static method will now assert using GTest
asserts if we are running in GTest mode. This gets rid of the hard
asserts that get run otherwise. The hard asserts are still in when using
"classic" mode. TestError will use neither GUnit nor hard asserts if
VIE_ASSERT_ERROR is not defined.
- Formatted vie_autotest_defines.h according to Google style rules.
- Extracted a method for finding a capture device on the system. This
removes a fair bit of logic from the huge test method (mostly straight
statements remain there now).
Rebase from svn.
- Whitespace fixes after review.
Fixed presubmit warning.
- Fixed cpplint.py warnings.
Fixed merge error.
Merge branch 'extended_tests' into fake_camera
Conflicts:
src/video_engine/main/test/AutoTest/automated/vie_extended_integration_test.cc
src/video_engine/main/test/AutoTest/automated/vie_standard_integration_test.cc
src/video_engine/main/test/AutoTest/helpers/vie_window_creator.cc
src/video_engine/main/test/AutoTest/interface/vie_autotest.h
src/video_engine/main/test/AutoTest/source/vie_autotest_base.cc
src/video_engine/main/test/AutoTest/source/vie_autotest_linux.cc
src/video_engine/main/test/AutoTest/vie_auto_test.gypi
More updates after review.
Updates after review.
Added new automated test. - Added a new mode to the vie_auto_test binary. It is now possible to pass --automated to it to make it run noninteractively. - To be precise, it will run everything that has been rewritten as GUnit tests, which currently is one "test suite" in the binary.
Added comments to the new test.
- Fixed a bug which caused test error messages to not get shown.
- Added extended and API tests.
- Abstracted out an integration test base class since all integration
tests set up the exact same way.
- The ViETest::TestError static method will now assert using GTest
asserts if we are running in GTest mode. This gets rid of the hard
asserts that get run otherwise. The hard asserts are still in when using
"classic" mode. TestError will use neither GUnit nor hard asserts if
VIE_ASSERT_ERROR is not defined.
- Formatted vie_autotest_defines.h according to Google style rules.
- Extracted a method for finding a capture device on the system. This
removes a fair bit of logic from the huge test method (mostly straight
statements remain there now).
Rebase from svn.
- Whitespace fixes after review.
Fixed presubmit warning.
- Fixed cpplint.py warnings.
Fixed merge error.
Fixed cpplint.py warnings.
Merge branch 'extended_tests' into fake_camera
Conflicts:
src/video_engine/main/test/AutoTest/automated/vie_api_integration_test.cc
src/video_engine/main/test/AutoTest/automated/vie_extended_integration_test.cc
src/video_engine/main/test/AutoTest/automated/vie_integration_test_base.cc
src/video_engine/main/test/AutoTest/automated/vie_standard_integration_test.cc
src/video_engine/main/test/AutoTest/helpers/vie_window_creator.cc
src/video_engine/main/test/AutoTest/interface/vie_autotest.h
src/video_engine/main/test/AutoTest/source/vie_autotest_base.cc
src/video_engine/main/test/AutoTest/source/vie_autotest_linux.cc
src/video_engine/main/test/AutoTest/source/vie_autotest_main.cc
src/video_engine/main/test/AutoTest/vie_auto_test.gypi
Revert "Revert "- Whitespace fixes after review.""
This reverts commit 3da2a148814e8dea78f73d3feeb32dce690dc2d4.
Revert "- Whitespace fixes after review."
This reverts commit fac670ca313580fb883191ae919091a2637ad0af.
- Whitespace fixes after review.
- Wrote a "file capture device" which is a kind of fake capture device. It reads a YUV file from disk and pretends that it is what the "camera" is seeing. This makes is possible to run tests based on video input without having an actual physical camera. This is good because physical cameras are quite unreliable. - Rewrote the standard mirrored preview loopback test so it can use the new file capture device. The old "classic" test is preserved. I tried to minimize duplication between the classic test case and the new one, which turned out to be quite painful. - There are some rough edges left in in the code. Suggested improvements is to get rid of the error counting mechanism since the code seems to assume that TestError invocations cause hard asserts anyway. The code will segfault for certain errors if the hard asserts doesn't happen, which means the error counting mechanism is unnecessary. This, by the way, could be a problem for the new test since it doesn't cause hard asserts. - Fixed comments for the thread wrapper and the external capture device interface.
- Extracted a method for finding a capture device on the system. This removes a fair bit of logic from the huge test method (mostly straight statements remain there now).
- The ViETest::TestError static method will now assert using GTest asserts if we are running in GTest mode. This gets rid of the hard asserts that get run otherwise. The hard asserts are still in when using "classic" mode. TestError will use neither GUnit nor hard asserts if VIE_ASSERT_ERROR is not defined. - Formatted vie_autotest_defines.h according to Google style rules.
- Added extended and API tests. - Abstracted out an integration test base class since all integration tests set up the exact same way.
- Fixed a bug which caused test error messages to not get shown.
Added comments to the new test.
- Added a new mode to the vie_auto_test binary. It is now possible to pass --automated to it to make it run noninteractively. - To be precise, it will run everything that has been rewritten as GUnit tests, which currently is one "test suite" in the binary.
- Fixed cpplint.py warnings.
Fixed presubmit warning.
- Whitespace fixes after review.
Rebase from svn.
- Extracted a method for finding a capture device on the system. This removes a fair bit of logic from the huge test method (mostly straight statements remain there now).
- The ViETest::TestError static method will now assert using GTest asserts if we are running in GTest mode. This gets rid of the hard asserts that get run otherwise. The hard asserts are still in when using "classic" mode. TestError will use neither GUnit nor hard asserts if VIE_ASSERT_ERROR is not defined. - Formatted vie_autotest_defines.h according to Google style rules.
- Added extended and API tests. - Abstracted out an integration test base class since all integration tests set up the exact same way.
- Fixed a bug which caused test error messages to not get shown.
Added comments to the new test.
- Added a new mode to the vie_auto_test binary. It is now possible to pass --automated to it to make it run noninteractively. - To be precise, it will run everything that has been rewritten as GUnit tests, which currently is one "test suite" in the binary.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/247004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@803 4adac7df-926f-26a2-2b94-8c16560cd09d
Wrote a "file capture device" which is a kind of fake capture device. It reads a YUV file from disk and pretends that it is what the "camera" is seeing. This makes is possible to run tests based on video input without having an actual physical camera. This is good because physical cameras are quite unreliable.
Rewrote the standard mirrored preview loopback test so it can use the new file capture device. The old "classic" test is preserved. I tried to minimize duplication between the classic test case and the new one, which turned out to be quite painful.
There are some rough edges left in in the code. Suggested improvements is to get rid of the error counting mechanism since the code seems to assume that TestError invocations cause hard asserts anyway. The code will segfault for certain errors if the hard asserts doesn't happen, which means the error counting mechanism is unnecessary. This, by the way, could be a problem for the new test since it doesn't cause hard asserts.
Fixed comments for the thread wrapper and the external capture device interface.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/224003
git-svn-id: http://webrtc.googlecode.com/svn/trunk@801 4adac7df-926f-26a2-2b94-8c16560cd09d
Changes how we signal frame rate and frame durations to the encoder. Rather
than changing the time base, we now only modify the frame durations, while
keeping the timebase constant. The frame duration is currently calculated
from the average input frame rate. Ideally, the frame duration should
be calculated as the timestamp diff, which is the real duration of a
frame, but the encoder doesn't seem to like too varying durations.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/247001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@795 4adac7df-926f-26a2-2b94-8c16560cd09d
* Split the WEBRTC_VIDEO_EXTERNAL_CAPTURE_AND_RENDER into WEBRTC_INCLUDE_INTERNAL_VIDEO_CAPTURE and WEBRTC_INCLUDE_INTERNAL_VIDEO_RENDER.
* Add DummyDeviceInfo for the case when WEBRTC_INCLUDE_INTERNAL_VIDEO_CAPTURE is not defined.
Review URL: http://webrtc-codereview.appspot.com/224005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@778 4adac7df-926f-26a2-2b94-8c16560cd09d
The VP8 decoder wrapper will request key frames 30 frames after seeing
a packet loss, if it hasn't received a state refresh (only possible
through key frames in this version).
For this to be possible the jitter buffer has been made aware of
picture ids to be able to detect frame losses. Legacy JB code to
handle streams without marker bits was also removed since it
conflicts with streams with FEC.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/239002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@774 4adac7df-926f-26a2-2b94-8c16560cd09d
Fixed the Windows build.
Fixed whitespace.
Split the platform-specific code for creating a window manager into separate source files since the mac one must be suffixed .mm and not .cc when we happen to use objective-c code. Tested on Linux.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/214009
git-svn-id: http://webrtc.googlecode.com/svn/trunk@771 4adac7df-926f-26a2-2b94-8c16560cd09d
class VoEAudioProcessing
-API renaming:
SetEchoMetricsStatus() to SetEcMetricsStatus()
GetEchoMetricsStatus() to GetEcMetricsStatus()
since delay logging is not strictly an echo metric.
-New API:
GetEcDelayMetrics()
-Implementations
--SetEcMetricsStatus() sets same status to all EC related metrics, currently Echo Metrics and Delay Logging.
--GetEcMetricsStatus() gets an error if all EC related metrics don't have the same status.
--GetEcDelayMetrics() gets the median and standard deviation of AEC internal delay (on a block by block basis).
class VoECallReport
The changes above leads to changes in the Call Report.
-New API:
GetEcDelaySummary()
-API updates:
ResetCallReportStatistics()
WriteReportToFile()
auto_tests updates:
-Standard test, with new Call Report calls and APM calls
-Extended test, with new Call Report calls and APM calls
Review URL: http://webrtc-codereview.appspot.com/187004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@754 4adac7df-926f-26a2-2b94-8c16560cd09d
Fixed merge error.
Fixed cpplint.py warnings.
Fixed presubmit warning.
Whitespace fixes after review.
Rebase from svn.
Extracted a method for finding a capture device on the system. This removes a fair bit of logic from the huge test method (mostly straight statements remain there now).
The ViETest::TestError static method will now assert using GTest asserts if we are running in GTest mode. This gets rid of the hard asserts that get run otherwise. The hard asserts are still in when using "classic" mode. TestError will use neither GUnit nor hard asserts if VIE_ASSERT_ERROR is not defined. - Formatted vie_autotest_defines.h according to Google style rules.
Added extended and API tests. - Abstracted out an integration test base class since all integration tests set up the exact same way.
Fixed a bug which caused test error messages to not get shown.
Added comments to the new test.
Added a new mode to the vie_auto_test binary. It is now possible to pass --automated to it to make it run noninteractively. - To be precise, it will run everything that has been rewritten as GUnit tests, which currently is one "test suite" in the binary.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/188002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@747 4adac7df-926f-26a2-2b94-8c16560cd09d
Fixed some space issues in vie_autotest_custom_call.cc
Fixed incorrect default codec W&H for I420 in vie_autotest_custom_call.cc
Added functionality to modify a running custom call. The following options were added:
0. Finished modifying custom call
1. Change Video Codec
2. Change Video Size by Common Resolutions
3. Change Video Size by Width & Height
4. Change Video Device
5. Record Incoming Call
6. Record Outgoing Call
7. Play File on Video Channel(Assumes you recorded incoming & outgoing call)
8. Print Call information
Tested with r670, builds fine on Ubuntu & Win7. Mac is not building due to changes in r666, but this patch should be fine on top of it mac as well (compiles fine with r661).
Review URL: http://webrtc-codereview.appspot.com/188003
git-svn-id: http://webrtc.googlecode.com/svn/trunk@728 4adac7df-926f-26a2-2b94-8c16560cd09d
This allows the Mac Make build to pass. We were hacking it in XCode with "-x objective-c++", but gyp/Make doesn't seem to accept that flag.
Also switch Objective-C #includes to #imports.
There is one file missing from this: vie_autotest_main.cc, because it's required on multiple platforms. I'm not immediately sure what the best approach is there, but the Objective-C headers should be somehow hidden.
Review URL: http://webrtc-codereview.appspot.com/153005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@726 4adac7df-926f-26a2-2b94-8c16560cd09d
The dummy implementations of class methods are needed when
building without support for data logging (i.e., when
enable_data_logging != 1). The Combine method was missing
from data_log_dummy.cc.
Review URL: http://webrtc-codereview.appspot.com/220003
git-svn-id: http://webrtc.googlecode.com/svn/trunk@724 4adac7df-926f-26a2-2b94-8c16560cd09d
Disable _missingFrame bit since we can't set it correctly with FEC.
No longer return more than one decoded frame per Decode() call.
This is a work-around for a bug where the frame info map was popped more often than items were added to the map.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/215001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@722 4adac7df-926f-26a2-2b94-8c16560cd09d
A pure C wrapper for the DataLog class was created. Since templates
are not supported in C, the InsertCell method of the DataLog class
must be wrapped using one wrapper function for each data type. So far,
the wrapper includes int, float, double, Word32, UWord32, and Word64.
Unittests were created for the wrapper. A separate helper file was
included in the tests. This helper file was implemented as a C file,
in order to actually test the C linkage of the wrapper.
The unittests for DataLog were cloned to make versions that do the same
things but through the C wrapper interface. Restructured the code
so that the log file verification was not duplicated.
Review URL: http://webrtc-codereview.appspot.com/195003
git-svn-id: http://webrtc.googlecode.com/svn/trunk@715 4adac7df-926f-26a2-2b94-8c16560cd09d
- Added comments to the new test.
- Added a new mode to the vie_auto_test binary. It is now possible to pass --automated to it to make it run noninteractively. - To be precise, it will run everything that has been rewritten as GUnit tests, which currently is one "test suite" in the binary.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/168002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@713 4adac7df-926f-26a2-2b94-8c16560cd09d
The main reason is to depend on all ("*") targets in voice_engine.gyp and video_engine.gyp. We don't want the merge_lib targets building by default, since they do funny stuff like delete some libraries.
Review URL: http://webrtc-codereview.appspot.com/191003
git-svn-id: http://webrtc.googlecode.com/svn/trunk@699 4adac7df-926f-26a2-2b94-8c16560cd09d
No big effort in introducing new style.
Speed improved ~2%.
Bit exact.
Will introduce mulpty-and-accumulate and sqrt_floor next, which increase speed another 2% or so.
Note: In function WebRtcNsx_DataAnalysis, did the block separation because I found one "if" case is more frequent than "else" within a for loop; rest is kind of code re-aligning.
Review URL: http://webrtc-codereview.appspot.com/181002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@692 4adac7df-926f-26a2-2b94-8c16560cd09d
There's no reason to try to continue if these simple settings fail; better to know about it immediately.
Also, readjusting the indentation to avoid breaking strings over several lines. This bends GStyle a bit, but it's well worth it to avoid the common "forgot to add a space" error.
Review URL: http://webrtc-codereview.appspot.com/173003
git-svn-id: http://webrtc.googlecode.com/svn/trunk@676 4adac7df-926f-26a2-2b94-8c16560cd09d
- Added comments to the new test.
- Added a new mode to the vie_auto_test binary. It is now possible to pass --automated to it to make it run noninteractively. - To be precise, it will run everything that has been rewritten as GUnit tests, which currently is one "test suite" in the binary.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/168002
Patch from Patrik Hoglund <phoglund@webrtc.org>.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@666 4adac7df-926f-26a2-2b94-8c16560cd09d
* Added minor spacing and ":" for user input during vie_auto_test_custom_call
* Changed the default Video Port to 11111 and Audio Port to be 11113 to bring it inline with the WindowsTest application for ViE
Review URL: http://webrtc-codereview.appspot.com/181001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@654 4adac7df-926f-26a2-2b94-8c16560cd09d
Consider the case when there're /dev/video0 and /dev/video1. But for somereason the video0 is not in a correct state and can't be open. As a result, current NumberOfDevices will return 1, which is fine. However, we will then never be able to get the device we really want - /dev/video1. Consider the code below, the GetCaptureDevice will fail because it calls into DeviceInfoLinux::GetDeviceName(0, ...) which will again try to open the /dev/video0. So the root cause is the mismatching of the NumberOfDevices and GetDeviceName.
Since we will open the device in DeviceInfoLinux::GetDeviceName anyway, I think we should return the number of /dev/video* in DeviceInfoLinux::NumberOfDevices without trying to open it. Otherwise the DeviceInfoLinux::NumberOfDevices should return more information like which /dev/video* is valid which is not.
bool found = false;
for (int i = 0; i < vie_capture->NumberOfCaptureDevices(); ++i) {
if (vie_capture->GetCaptureDevice(i, ...) == 0) {
found = true;
break;
}
}
Review URL: http://webrtc-codereview.appspot.com/148004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@635 4adac7df-926f-26a2-2b94-8c16560cd09d
On Windows, gyp seems to require valid source files. The matlab_plotting_test target was missing its one source file, so I removed the target.
Also moving bwe_standalone.gypi to the test include list.
Review URL: http://webrtc-codereview.appspot.com/143001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@589 4adac7df-926f-26a2-2b94-8c16560cd09d
Switched to WebRtcSpl_SqrtFloor instead of WebRtcSpl_Sqrt in
NetEQ. The output is not bit-exact, but subjective listening
tests show no audible difference. Analysis shows that almost
all of the difference is in changed delay.
The reference file for NetEQ's unit test was updated.
Review URL: http://webrtc-codereview.appspot.com/139019
git-svn-id: http://webrtc.googlecode.com/svn/trunk@583 4adac7df-926f-26a2-2b94-8c16560cd09d
The test inputs RTP packets from an RTPdump file into NetEQ
and compares the output to the corresponding reference file.
Test files are included.
The change also includes a new method in NETEQTEST_RTPpacket
class, which reads past the initial file header in an RTPdump
file.
Finally, a few warnings are removed.
Review URL: http://webrtc-codereview.appspot.com/138012
git-svn-id: http://webrtc.googlecode.com/svn/trunk@568 4adac7df-926f-26a2-2b94-8c16560cd09d
This change adds support for VP8 partitions in the video jitter buffer and
the VP8 encoder and decoder wrappers. The feature is currently disabled by
default since it requires a later version of libvpx.
With this change the jitter buffer will also start keeping track of each
packet header until decoding, and the VCMSessionInfo and VCMPacket objects
will keep pointers into the encoded frame buffers.
Review URL: http://webrtc-codereview.appspot.com/137021
git-svn-id: http://webrtc.googlecode.com/svn/trunk@558 4adac7df-926f-26a2-2b94-8c16560cd09d
Removing asserts since the PictureID (and other parameters)
is now piped through codecSpecific. Also made sure the VCM
send callbacks (test code) copies the appropriate paramters.
Finally, enabling I420 in tests.
Review URL: http://webrtc-codereview.appspot.com/137022
git-svn-id: http://webrtc.googlecode.com/svn/trunk@553 4adac7df-926f-26a2-2b94-8c16560cd09d
This CL modifies the ADM interface to ensure that an external ADM
can't call Create and Destroy any longer.
It also contains some minor style nits to conform better with
the Chromium style guide.
Review URL: http://webrtc-codereview.appspot.com/133014
git-svn-id: http://webrtc.googlecode.com/svn/trunk@552 4adac7df-926f-26a2-2b94-8c16560cd09d
These are changes that make the VP8 tests work again after the
wrapper was updated. The codec specific info is now propagated
properly through the encoder callback and into the queue struct.
Also added an fclose to get rid of a valgrind warning.
Review URL: http://webrtc-codereview.appspot.com/138011
git-svn-id: http://webrtc.googlecode.com/svn/trunk@526 4adac7df-926f-26a2-2b94-8c16560cd09d
The reason for this is that we would like to have reference counting on the modules you can register externally with ViE and VoE.
Currently we plan to use this on the ADM, VideoCapture module and VideoRenderModule.
Review URL: http://webrtc-codereview.appspot.com/138010
git-svn-id: http://webrtc.googlecode.com/svn/trunk@517 4adac7df-926f-26a2-2b94-8c16560cd09d
Since this is a C file, variables must be declared at the top of the function
so I'm moving the fix for the warning (inst = NULL) to the bottom of the funciton.
Otherwise, the compiler will complain when it sees int i; on systems that do
not have WEBRTC_BIG_ENDIAN defined.
Review URL: http://webrtc-codereview.appspot.com/139005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@494 4adac7df-926f-26a2-2b94-8c16560cd09d
The bit-stream has not change with the new SQRT, but the output signal has. The change in output is small, and all test-files pass a subjective quality test.
New test-files will be committed to svn after this CL.
Review URL: http://webrtc-codereview.appspot.com/136001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@478 4adac7df-926f-26a2-2b94-8c16560cd09d
The WebRTC C wrapper for the G711 codec doesn't actually use the 'state'
argument, but declares one anyway for API uniformity.
At the beginning of functions like WebRTCG711_EncodeA(), there's a stanza:
// Set to avoid getting warnings
state = NULL;
This might work around an unused parameter warning, but under gcc 4.6.0
it ends up generating another warning, that state is set but not used.
Casting the assignment to void silences the warning, restoring
compilation under -Werror.
Reported as https://code.google.com/p/webrtc/issues/detail?id=50
Review URL: http://webrtc-codereview.appspot.com/135002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@463 4adac7df-926f-26a2-2b94-8c16560cd09d