Added temporal layers number flag for video_quality_measurement tool.
This tool now also uses webrtc::VideoCodingModule::Codec() to get its
VideoCodec struct configuration instead of filling it in manually.
Updated paths for header files to use full directory paths.
Tested in Debug+Release on Linux, Mac and Windows. Passes Valgrind memcheck on Linux.
BUG=
TEST=video_codecs_test_framework_integrationtests. Also executed out/Debug/video_quality_measurement --input_filename=resources/foreman_cif.yuv --width=352 --height=288
Review URL: http://webrtc-codereview.appspot.com/339001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1310 4adac7df-926f-26a2-2b94-8c16560cd09d
Robustness improvements to the delay estimator used in AECM and AEC. In AEC only for logging. Faster convergence.
TEST=audioproc_unittest + offline file tests.
output_data_fixed.pb updated despite unverified changes in r1112.
Review URL: http://webrtc-codereview.appspot.com/337006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1306 4adac7df-926f-26a2-2b94-8c16560cd09d
This CL includes a larger structural change in how we handle buffers in AEC. We now perform FFT at once and move within blocks to compensate for system delays.
TEST=audioproc_unittest(float and fix), voe_auto_test
Review URL: http://webrtc-codereview.appspot.com/335012
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1299 4adac7df-926f-26a2-2b94-8c16560cd09d
We can't reset the complete last decoded state when we recycle until a
key frame because that will allow any delta frame to be decoded afterwards,
and since the decoder isn't reset we will get decode errors.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/330003
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1295 4adac7df-926f-26a2-2b94-8c16560cd09d
Only changed:
- Name of some of the critsects.
- All critsects (but one) are now scoped_ptr.
- Use of ptr constructor of CriticalSectionScoped instead of reference version.
BUG=184
TEST=vie_auto_test
Review URL: http://webrtc-codereview.appspot.com/330015
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1291 4adac7df-926f-26a2-2b94-8c16560cd09d
The packetizer class is changed so that the max payload size is
provided on construction of the class rather than for each packet.
The tests are re-written to comply with the new design.
Also fixing a few errors in the tests.
Review URL: http://webrtc-codereview.appspot.com/335010
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1280 4adac7df-926f-26a2-2b94-8c16560cd09d
This CL defines and starts to implement a new robustness API for
video coding module. The API is partly implemented. Some of the
modes and methods are still TBD.
Also including a new unittest with mocking of decoder and callbacks,
and faking of system clock.
Review URL: http://webrtc-codereview.appspot.com/333006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1276 4adac7df-926f-26a2-2b94-8c16560cd09d
The number of capture channels can only be determined upon receiving the
first captured frame. We now assume stereo capture by default and set the
number of AudioProcessing input channels based on captured frames.
TEST=Windows mono-only device now runs AudioProcessing correctly (NS etc.), voe_auto_test (though some new, seemingly unrelated, tests are failing)
Review URL: http://webrtc-codereview.appspot.com/330013
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1273 4adac7df-926f-26a2-2b94-8c16560cd09d
The recorded frame timestamps are used to modify the output video on a frame-per-frame so it can be compared with the reference video using PSNR. This code will make it possible to use vie_auto_test for full stack comparisons with network interference and similar interesting simulations.
There's some refactoring done in vie_comparison_test.cc to make it fit to the new test.
Compiled and executed in Debug+Release on Linux, Mac and Windows.
BUG=
TEST=vie_auto_test --automated --gtest_filter=ViEVideoVerificationTest.*
Review URL: http://webrtc-codereview.appspot.com/320002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1269 4adac7df-926f-26a2-2b94-8c16560cd09d
This change basicly re-enables the change of r1220, which was
reverted in r1235 due to Clang issues.
The difference from r1220 is that the TickTimeInterface was
renamed to TickTimeClass, and no longer inherits from TickTime.
Review URL: http://webrtc-codereview.appspot.com/335006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1267 4adac7df-926f-26a2-2b94-8c16560cd09d
This test now runs and fails as a gtest should (previously it always
exited with 0 even if the tests failed).
The audio_coding_module_test target no longer uses exceptions in the generated project.
Output files are written to our global output folder, using
testsupport/fileutils.h.
BUG=
TEST=audio_coding_module_test on all platforms, in Debug+Release
Review URL: http://webrtc-codereview.appspot.com/334004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1266 4adac7df-926f-26a2-2b94-8c16560cd09d
This is the first change in a series of changes to get new functionality
into the VP8 packetizer.
This first refactors the RtpFormatVp8Test class, without changing the
operation of the tested RtpFormatVp8 class. A test helper class
RtpFormatVp8TestHelper is introduced to reduce code duplication.
Review URL: http://webrtc-codereview.appspot.com/304009
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1258 4adac7df-926f-26a2-2b94-8c16560cd09d
Adding new statistics API to NetEQ, reporting the waiting time
for each frame. The output is raw waiting time for the frames
that have been decoded since the last statistics report (or
maximum 100 frames). The statistics are reset on each query.
Implemented functionality in ACM to query NetEQ for the raw
waiting times, and process it to produce max, average and
median.
Updating common_types.h and VoiceEngine tests to include the
new metrics.
Unit tests are also added for NetEQ and AcmNetEq.
Review URL: http://webrtc-codereview.appspot.com/328011
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1251 4adac7df-926f-26a2-2b94-8c16560cd09d
This change avoids having old packets end up on the current packet list for FEC decoding, and so they are immediately sent out to jitter buffer.
The current list of packets for FEC decoding are sent out only when new packet arrives (with time-stamp greater than current).
Review URL: http://webrtc-codereview.appspot.com/322009
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1222 4adac7df-926f-26a2-2b94-8c16560cd09d
Removed some Valgrind warnings by closing output files. There are still some Valgrind warnings left, that needs to be fixed by a developer with more insight.
Updated all include paths to contain full paths to header files.
Tested in Debug+Release on Linux, Mac and Windows.
All tests ran successfully except the VideoProcessingModuleTest.ContentAnalysis test that fails on Windows with the following error:
unknown file: error: SEH exception with code 0xc0000005
thrown in the test body.
Fixing that is out of scope for this CL.
Review URL: http://webrtc-codereview.appspot.com/266011
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1217 4adac7df-926f-26a2-2b94-8c16560cd09d
- Also rename _dummy -> no_op which states its purpose more clearly.
- Always use exclusion lists (i.e. sources! instead of sources)
TEST=builds and passes system_wrapper_unittest on Linux, Mac, Win
Review URL: http://webrtc-codereview.appspot.com/317007
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1199 4adac7df-926f-26a2-2b94-8c16560cd09d
architecture with intrinsics and assembly code. The total iSAC codec speech improved
about 3~5%.
Notes
(1) The Neon version after this optimization is not bit-exact with the generic
C version. The out quality, however, is not worse as verified by test vectors ouput,
and undertandably in theory (32bit x 32bit in Neon is more accurate than the approximation
C code in the generic version).
(2) In Android, a isac neon library will be built. Along with some new function structures,
it is partly for preparation of introducing a run time detection of Neon architecture soon.
Review URL: http://webrtc-codereview.appspot.com/268016
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1192 4adac7df-926f-26a2-2b94-8c16560cd09d
- Returning the number of bytes read was mistakenly removed in r1175 in
an overzealous attempt to unify the interface.
- Now both Read and WriteText return the number of bytes/characters
processed. Write unfortunately cannot be easily changed due to the
inheritance from OutStream.
- Improve the interface comments.
TBR=henrika@webrtc.org
BUG=issue196, issue198
TEST=voe_auto_test passes at last...
Review URL: http://webrtc-codereview.appspot.com/326001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1188 4adac7df-926f-26a2-2b94-8c16560cd09d
Restructured the test hierarchy somewhat - there is now a fixture for before-voe-init time and one for after-voe-init time.
Rewrote the hardware-before-streaming test.
Separated unrelated tests out from the rtp_rtcp tests.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/323009
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1184 4adac7df-926f-26a2-2b94-8c16560cd09d
- r1156 fixed a check on the _text member of FileWrapper. Turns out this
was incompatibile with the RTP dumps, which want to write both binary
and text data. Writing text data to a file open as "b" isn't actually
an error, so I simply removed the check.
- Also cleans up the interface, most notably removing all WebRtc types.
TEST=vie_auto_test
Review URL: http://webrtc-codereview.appspot.com/317005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1175 4adac7df-926f-26a2-2b94-8c16560cd09d
Updated RtpFormatVp8, ModuleRTPUtility, VP8Encoder and VP8Decoder
to support a new LayerSync ("Y") bit. Note, in VP8Encoder the bit
must be used together with a non-negative value for temporalIdx.
Fixing the plumbing between RTP module and and from VP8 wrapper.
Updating unit tests; all pass.
The new bit is yet to be used by the VP8 wrapper.
Review URL: http://webrtc-codereview.appspot.com/323008
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1169 4adac7df-926f-26a2-2b94-8c16560cd09d
Fixed broken build.
Nit fix.
Fixed style issues.
Removed accidental comment-out.
Removed test that no longer makes sense.
Rewrote hardware-before-init and rtp-rtcp-before-streaming test code to gtest.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/320009
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1162 4adac7df-926f-26a2-2b94-8c16560cd09d
- vfprintf can be used directly here, removing the need for the interim
buffer. This change allows us to remove the artificial character limit.
- Fix bugs with _text. It wasn't actually getting set earlier, and the
check was wrong.
- Remove asserts that should use real error checks.
TEST=DataLog and VoECallReport (through voe_auto_test), the only users of WriteText().
Review URL: http://webrtc-codereview.appspot.com/323001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1156 4adac7df-926f-26a2-2b94-8c16560cd09d
libjingle depends on ConvertFromI420. This was previously available
through vplib. libjingle still has access to the vplib header, but the
implementation is no longer built.
Fortunately, the libyuv wrapper can supply the implementation, if we
hack the signature to return to the unsigned int types. We'll remove
this once libjingle has been updated to use libyuv directly.
Also, roll libyuv to r100 which fixes a gyp warning on Windows.
TEST=build
Review URL: http://webrtc-codereview.appspot.com/323004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1151 4adac7df-926f-26a2-2b94-8c16560cd09d
Only style changes, ointers/references and functions will come in a later CL.
vie_capturer.cc and vie_file_player.cc are only changed du to inheriting protected members from ViEFrameProviderBase.
Review URL: http://webrtc-codereview.appspot.com/324001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1148 4adac7df-926f-26a2-2b94-8c16560cd09d
General Notes:
1. In general, API structure was not modified and is based on VPLIB.
2. Modification to API: Return values are based on libyuv, i.e. 0 if ok, a negative value in case of an error (instead of length).
3. All scaling (inteprolation) is now done via the scale interface. Crop/Pad is not being used.
4. VPLIB was completely removed. All tests are now part of the libyuv unit test (significantly more comprehensive and based on gtest).
5. JPEG is yet to be implemented in LibYuv and therefore existing implementation remains.
Review URL: http://webrtc-codereview.appspot.com/258001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1140 4adac7df-926f-26a2-2b94-8c16560cd09d
Started extracting methods out of the main test, which will hopefully make us able to make the tests independent.
Merge branch 'master' into voe_split_methods
Conflicts:
src/voice_engine/main/test/auto_test/voe_extended_test.cc
src/voice_engine/main/test/auto_test/voe_extended_test.h
src/voice_engine/main/test/auto_test/voe_standard_test.cc
src/voice_engine/main/test/auto_test/voe_standard_test.h
Extracted methods out of the standard test.
Added space before inheritance colons.
Rolled back some header file changes.
Fixed long lines.
Fixed long lines.
Fixed indentation. There is nothing but whitespace changes here, except for removing some extraneous semicolons in .h files and fixing a spelling error in a comment.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/313001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1131 4adac7df-926f-26a2-2b94-8c16560cd09d
Fixed unit tests so they don't use ASSERT_DEATH since that doesn't work with Valgrind.
Fixed all Valgrind warnings except the one caused by CriticalSectionWrapper in system_wrappers.
Reworked all includes and GYP include paths to use full directory paths.
Removed util.h for logging, since it rendered warnings in Valgrind because of gflags. Replaced it with a verbose flag and a new function in video_quality_measurement.cc
BUG=
TEST=Passed test_support_unittests and video_codecs_test_framework_unittests on Linux, Mac and Windows.
Review URL: http://webrtc-codereview.appspot.com/311001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1126 4adac7df-926f-26a2-2b94-8c16560cd09d
With some compiler settings, a warning was issued for NetEQ,
saying that pw16_randVec was accessed out of bounds.
This did never happen in practice, but this change makes the
compiler understand this.
Review URL: http://webrtc-codereview.appspot.com/309001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1121 4adac7df-926f-26a2-2b94-8c16560cd09d
A set of the packet masks (up 10x10 size) are modified for the following reasons:
1) have more even column and row degree (number of 1 bits), when possible.
2) if cases where the column degree cannot be constant across source packets, placed the extra 1 bit in the first packet column (so little more protection on 1st partition), as opposed to having some ~middle source packet have the extra bit.
3) in some cases, made the mask a little more sparse/reduced the overlap.
Overall the average recovery is a little better with these masks.
Mask sizes above 10 will be updated in future changelist.
Review URL: http://webrtc-codereview.appspot.com/305001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1113 4adac7df-926f-26a2-2b94-8c16560cd09d
Fixed chrash bug on Mac, but there are still crash bugs since a couple weeks back. These will have to be fixed separately.
Removed dialogs from capture tests on Windows.
Removed some dead code related to answer files.
Added the last Windows fixes.
Fixed the Mac vie_auto_test runner - it will now run on Mac again. It will still crash randomly on codec and rtcp tests though.
Fixed compilation error.
Got patch to commit on Mac.
Temp commit on mac
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/292011
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1087 4adac7df-926f-26a2-2b94-8c16560cd09d
This CL implements NACK based reference picture selection for VP8. A separate
class is used for keeping track of the references and managing the VP8 encode
flags. Appropriate tests have also been added.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/284002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1082 4adac7df-926f-26a2-2b94-8c16560cd09d
A new RtpRtcpClock interface has been added to rtp_rtcp_defines.h
and provides time facilities used by an RTP/RTCP module. Also,
NTP constants have been made public in the
webrtc::ModuleRTPUtility namespace to make implementation of
external clocks easier.
An overloaded version of CreateRtpRtcp() accepts a clock argument. By
default, if no clock is provided, the module uses the system clock
(old ModuleRTPUtility implementation).
Throughout the RTP/RTCP module code, calls to TickTime and
ModuleRTPUtility time functions have been replaced with calls to time
methods on a clock object.
The following classes take a clock object in their constructor and
hold a _clock field (either directly, or inherited from a parent):
Bitrate
ModuleRtpRtcpImpl
RTCPReceiver
RTCPSender
RTPReceiver
RTPSender
RTPSenderAudio
RTPSenderVideo
Methods from other classes that do not derive any of those and
require a time take an additional nowMS parameter, that should be
the result of calling GetTimeInMS() on a clock object.
Review URL: http://webrtc-codereview.appspot.com/268017
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1076 4adac7df-926f-26a2-2b94-8c16560cd09d
When the class is torn down, the view was not being attached back to it's original NSView. I added a
new class variable to remember the original superview and then reattach it at the appropriate time.
Review URL: http://webrtc-codereview.appspot.com/290009
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1070 4adac7df-926f-26a2-2b94-8c16560cd09d
Implementing helper function for new unit test
NetEqDecodingTest::TestNetworkStatistics. The test itself
remains to be defined. (Will be added in a coming CL.)
This change required some refactoring of the test code
to avoid excessive code duplication.
Review URL: http://webrtc-codereview.appspot.com/295009
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1049 4adac7df-926f-26a2-2b94-8c16560cd09d
For estimating a delay over a long segment (e.g. a file) this can
throw off the estimate. Better not to add values to the AEC's histogram
until they're reliable.
BUG=
TEST=audiproc, audioproc_unittest
Review URL: http://webrtc-codereview.appspot.com/292004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1035 4adac7df-926f-26a2-2b94-8c16560cd09d
The special cases for packet sizes <= 10 ms (one case for each
sample rate) resulted in reading outside of the pw16_decoded
vector. This is now fixed by making sure that WebRtcSpl_DownsampleFast
gets correct input and output vector lengths.
Review URL: http://webrtc-codereview.appspot.com/295008
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1027 4adac7df-926f-26a2-2b94-8c16560cd09d
Only vie_shared_data.* are refactored, all *_impl.cc are only changed due to changed names of members in ViESharedData. These files will be refactored later, so the indentation in these files might be corrupt at this stage.
References are not changed to pointers at this stage.
Review URL: http://webrtc-codereview.appspot.com/292006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1015 4adac7df-926f-26a2-2b94-8c16560cd09d
Updating the VP8 packetizer class (RtpFormatVp8) and VP8 parser
(in class RTPPayloadParser) to follow the -02 revision of the spec.
See http://tools.ietf.org/html/draft-ietf-payload-vp8-02.
Updating the unit tests, too. Finally, updating the tests to
follow the recommendations from the test team; specifically
including the test code in the webrtc namespace, and omitting
the main function at the end of each test file.
Review URL: http://webrtc-codereview.appspot.com/296003
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1013 4adac7df-926f-26a2-2b94-8c16560cd09d
Removed error counting entirely - that's completely managed by googletest now, except for custom call, loopback and simulcast call.
Rewrote remaining tests to use GTest asserts.
Rewrote more tests to use GTest macros. The External Codec module is now in the build by default.
Merge branch 'master' into macro_improvements
Rewrote some more code to use GTest asserts.
The manual standard tests now also go through gtest.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/287002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1004 4adac7df-926f-26a2-2b94-8c16560cd09d
Fixing a bug when creating new NetEQ slave instances in ACM.
The old code called WebRtcNetEQ_GetCurrentDelay() for the
master instance to get a delay value for WebRtcNetEQ_SetExtraDelay().
This is wrong, since WebRtcNetEQ_GetCurrentDelay() reports on the
current total buffer length, while WebRtcNetEQ_SetExtraDelay() is
the extra delay that is desired to in order to sync with video.
The fix includes keeping the extra delay value in a member variable
in the ACMNetEQ class.
Review URL: http://webrtc-codereview.appspot.com/295001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1001 4adac7df-926f-26a2-2b94-8c16560cd09d
Removing WebRtcNetEQ_GetJitterStatistics(),
WebRtcNetEQ_ResetJitterStatistics(), and the associated
struct WebRtcNetEQ_JitterStatistics. The change ripples
through all the way to the VoiceEngine API.
Review URL: http://webrtc-codereview.appspot.com/285002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@998 4adac7df-926f-26a2-2b94-8c16560cd09d
Improved the way we handle different data types (float vs fixed) and reduced the complexity by nearly 50%.
We now have a generic struct for both float and fixed delay estimators and a core struct for the binary spectrum based delay estimator. All wrapper codes (for both fixed and float) are gathered in delay_estimator_wrappers.*.
Moved out the far end history buffer to AEC(M).
Added a union to handle difference types when create.
Review URL: http://webrtc-codereview.appspot.com/277004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@973 4adac7df-926f-26a2-2b94-8c16560cd09d
(1) For generic platforms, code was changed to remove the shifting within loops.
Basically, it's just change a loop from
for() {
sum += (a*b) >> scale;
}
to:
for() {
sum += (a*b);
}
sum >> scale;
Type int64_t is used for sum to make sure no information is not lost.
Performance is about the same as before the change. Bits are not exact,
although in theory the change should have preserved more information. The purpose
of this change is to make the generic code and ARM code bit exact, simpify the code,
while keep the speech quality at least not lower. (Some speech tests might be good.)
(2) For ARM platform, used assembly to optimize the performance. iSAC runs faster
with this change. (Reduced run time of an offline file test from 10.16ms to 8.81ms)
Review URL: http://webrtc-codereview.appspot.com/267014
git-svn-id: http://webrtc.googlecode.com/svn/trunk@972 4adac7df-926f-26a2-2b94-8c16560cd09d
1. added SetImageScaleStatus for testing purposes
2. added getting the codec information from the incoming/outgoing stream of a videochannel to print call information
3. fixed problem with toggling the one of the observers
4. did more clean up of the code style (mostly spacing)
5. renamed the GetVideo* functions properly to SetVideo* to reflect what the function does
Currently only tested on mac. Need to test on win7 & linux before final commit.
Review URL: http://webrtc-codereview.appspot.com/267017
git-svn-id: http://webrtc.googlecode.com/svn/trunk@969 4adac7df-926f-26a2-2b94-8c16560cd09d
Separated new-style tests from old-style tests. Abstracted code for reuse.
Fully separated the new automated tests from the old-style tests. We now have old-style tests running in manual mode, old-style tests running in automated mode and new-style tests that uses input files and make actual video comparisons.
Introduced a small "library" of helper functions in order to move a lot
of stuff out of the original base and codec tests, which have been made
dependent on the new "library" (which is a header file and a source
file). The new-style tests also depends on this "library".
The comparison test flags are now required only when the comparison tests actually runs.
Separated comparison tests into its own test since it seems we will be running classic vie_auto_test using a fake video driver on Linux.
Made tbInterfaces follow Google conventions.
Merge branch 'render_to_file' into vivi_driver
Resolution alignment testing is now optional behind a flag.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/269011
git-svn-id: http://webrtc.googlecode.com/svn/trunk@962 4adac7df-926f-26a2-2b94-8c16560cd09d
Removed TODO from webrtc.gyp since it is done.
Tabs -> spaces.
Tabs -> spaces.
Tabs -> spaces.
Fixed compilation on Windows.
Added missing file.
Merge branch 'master' into fix_mac_modules
Fixed compilation errors for the modules.gyp on Mac. This included some pretty large refactorings.
Please enter the commit message for your changes. Lines starting
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/269005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@957 4adac7df-926f-26a2-2b94-8c16560cd09d
- Compute RMS over a packet's worth of audio to be sent in Channel, rather than the captured audio in TransmitMixer.
- We now use the entire packet rather than the last 10 ms frame.
- Restore functionality to LevelEstimator.
- Fix a bug in the splitting filter.
- Fix a number of bugs in process_test related to a poorly named
AudioFrame member.
- Update the unittest protobuf and float reference output.
- Add audioproc unittests.
- Reenable voe_extended_tests, and add a real function test.
- Use correct minimum level of 127.
TEST=audioproc_unittest, audioproc, voe_extended_test, voe_auto_test
Review URL: http://webrtc-codereview.appspot.com/279003
git-svn-id: http://webrtc.googlecode.com/svn/trunk@950 4adac7df-926f-26a2-2b94-8c16560cd09d
When a Mac goes to sleep, the OS pauses the IO threads. If a
subsequent StopSend/Playout happens, we time out waiting for the IO
threads, but didn't ensure they were shut down.
BUG=
TEST=voe_cmd_test, voe_auto_test
Review URL: http://webrtc-codereview.appspot.com/269013
git-svn-id: http://webrtc.googlecode.com/svn/trunk@949 4adac7df-926f-26a2-2b94-8c16560cd09d
Rewrote the codec test to render to file and do video comparisons.
Refactored the coded tests somewhat. I still need to figure out how to do comparison in the automated case.
Added video analysis to the test. This will make sure that the system output roughly the right thing.
Moved the video metrics library into the test_support library. Made the metrics library available in the automated tests.
Made sure no one passes in too large YUV videos into the autotest.
The standard test's output now gets captured for both the left and right windows.
Wrote a rendering device which just writes the raw frames to file, for analysis. Updated the base standard test to dump its left window output to file. We don't do anything with it yet though.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/249001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@931 4adac7df-926f-26a2-2b94-8c16560cd09d
A single participant is not processed at all. With multiple
participants, we divide-by-2 as before when mixing. Afterwards,
the mixed signal is limited by the AGC to -7 dBFS and then doubled to
restore the original level.
This preserves the level while guaranteeing good saturation protection.
Add a test to voe_auto_test. Hijack and improve the existing mixing test
for this.
TEST=voe_auto_test, voe_cmd_test
Review URL: http://webrtc-codereview.appspot.com/241013
git-svn-id: http://webrtc.googlecode.com/svn/trunk@920 4adac7df-926f-26a2-2b94-8c16560cd09d
Details:
The mixer looks at all the participants desired frequency and concludes the highest desired mixing frequency. This is the frequency that the mixer will mix at. Participants that are always mixed are in a separate list and the function concluding the highest desired mixing frequency did not look at that list and therefore always conclude that the lowest mixing frequency is sufficient.
Review URL: http://webrtc-codereview.appspot.com/277003
git-svn-id: http://webrtc.googlecode.com/svn/trunk@915 4adac7df-926f-26a2-2b94-8c16560cd09d
Changing how the max payload length is calculated. Instead
of handling RTP and FEC header overhead explicitly, call the
MaxDataPayloadLength method which already does it. Avoid redundant code. Had to move MaxDataPayloadLength to the
RTPSenderInterface.
Review URL: http://webrtc-codereview.appspot.com/269002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@901 4adac7df-926f-26a2-2b94-8c16560cd09d
I also fixed compilation on Mac (by enabling exceptions for the NetEqTestTools target). Executing the test fails on Mac, but I assume this is because it checks bit exactness, similar to the issue we had with audio_coding_module (see issue 114)
Review URL: http://webrtc-codereview.appspot.com/255004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@895 4adac7df-926f-26a2-2b94-8c16560cd09d
According to project structure discussed with Andrew. We want to flatten out the hierarchy and minimize the number of GYP files.
No changes at all are being made in the source files; they are just moved.
The only modified files are the GYP file and Android.mk
Kevin: I updated relative paths in Android.mk so please verify it is correct, since I don't know how to build that.
Review URL: http://webrtc-codereview.appspot.com/256006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@894 4adac7df-926f-26a2-2b94-8c16560cd09d
Patch Set 1: Removing blanks at end of lines.
Patch Set 2: Removing tabs.
Patch Set 3: Fixing include-guards.
Patch Set 4-7: Formatting files in the list.
Patch Set 8: Formatting CNG.
Patch Set 9:
* Fixing comments from code review
* Fixing formating in acm_dtmf_playout.cc
* Started fixing formating of acm_g7221.cc. More work needed, so don't spend too much time reviewing.
* Refactored constructor of ACMGenericCodec. Rest of file still to be fixed.
* Fixing break; after return ...; in several files.
Patch Set 10:
* Chaning from reintepret_cast to static_cast in three files, acm_amr.cc, acm_cng.cc and acm_g722.cc
NOTE! Not all files have the right format. That work will continue in separate CLs.
Review URL: http://webrtc-codereview.appspot.com/175002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@881 4adac7df-926f-26a2-2b94-8c16560cd09d
Changing the assignment operator in VCMJitterBuffer to a named
function (CopyFrom) instead, since it is not a straight
assignment. Also fixing two bugs in the jitter copy function.
Bug fix in VCMEncodedFrame: The copy constructor did not
copy _length.
In VCM codec database, make sure that the callback object is
preserved when copying back from secondary to primary decoder.
In VP8 wrapper, adding code to copy the _decodedImage to the
Copy() method.
Bugfix in video_coding_test rtp_player:
The retransmissions where made in reverse order. Now new items are
appended to the end of the LostPackets list, which makes the order
correct when retransmitting.
Handling the case when cloning an unused decoder state:
When the decoder has not successfully decoded a frame yet,
it cannot be cloned. A NULL pointer will be returned all
the way out to VideoCodingModuleImpl::Decode(). When this
happens, the VCM will call Reset() for the dual receiver,
in order to reset the state to kPassive.
Review URL: http://webrtc-codereview.appspot.com/239010
git-svn-id: http://webrtc.googlecode.com/svn/trunk@873 4adac7df-926f-26a2-2b94-8c16560cd09d
call. strncopy will not explicity copy or add a "\0" therefore
strcat did not know where to append the "\n" which was causing
an out of bounds crash.
Because we are checking the length, strcpy should be good enough
as it also copies the "\0". Please note that that I am pre-emptively
adding 2 instead of 1 to the length to take into account of the \n
that will be added later.
Review URL: http://webrtc-codereview.appspot.com/253004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@857 4adac7df-926f-26a2-2b94-8c16560cd09d
It could happen that if you want to restart playout, the new sponsored Render thread would catch this event
if the previous Render thread quits before this event is set.
With this modification, the device plugging out/in during talking would be supported well.
Review URL: http://webrtc-codereview.appspot.com/248002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@839 4adac7df-926f-26a2-2b94-8c16560cd09d
When creating a new custom call, now able to set start bit rate (default is 1000)
The following modify call options were added
9. Toggle Encoder Observer
10. Toggle Decoder Observer
12. Print Call Statistics
Also set the trace filter to kTraceAll
File defaults new call VGA (640x480)
Review URL: http://webrtc-codereview.appspot.com/239012
git-svn-id: http://webrtc.googlecode.com/svn/trunk@826 4adac7df-926f-26a2-2b94-8c16560cd09d
Issues solved:
1. Possible overflow when reducing the bandwidth estimate at the send-side
2. A burst of loss reports could make us reduce the rate way too far since
we reduced the rate relative the current estimate and not the actual
rate sent.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/244011
git-svn-id: http://webrtc.googlecode.com/svn/trunk@822 4adac7df-926f-26a2-2b94-8c16560cd09d
WebRtc_UWord64[2] wasn't always aligned to 128 bytes, which
is necessary for _mm_store_si128. By declaring the
variable as __m128i it will always be 128 bytes aligned.
Incorrect include files.
__m128i is defined in emmintrin.h for visual studio. Extra include on mac and linux is not a problem.
Review URL: http://webrtc-codereview.appspot.com/239013
git-svn-id: http://webrtc.googlecode.com/svn/trunk@816 4adac7df-926f-26a2-2b94-8c16560cd09d
Tests now fail more cleanly if the input video file is incorrect. Fixed some of the style issues in vie_autotest_codec.
Rewrote the automated standard codec test to use the new fake camera.
Started sketching on a new test case. Wrote a new abstraction called ViEFakeCamera which hides the details of how to thread a file capture device in the typical test case.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/242008
git-svn-id: http://webrtc.googlecode.com/svn/trunk@815 4adac7df-926f-26a2-2b94-8c16560cd09d
This fixes an issue in the VCM where we don't wait for a packet to arrive
if the jitter buffer is empty. This also fixes an issue where an old
packet can trigger a packet event signal for a future frame.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/248001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@814 4adac7df-926f-26a2-2b94-8c16560cd09d
It can happen that the capture thread tries to access an invalid object after StopPlayout has been called.
I have also extended the usage of the new ScopedCOMInitializer to all threads. See this step as code cleanup.
Review URL: http://webrtc-codereview.appspot.com/239014
git-svn-id: http://webrtc.googlecode.com/svn/trunk@813 4adac7df-926f-26a2-2b94-8c16560cd09d
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