This inline function is no longer expanded on arm Android, but on x86 Android it
will still be expanded. Move it out-of-line to make things consistent.
This change list will also fix a potential bug on webrtc for Android:
Since the inline function won't be expanded on arm Android,
TickTime::MillisecondTimestamp and Clock::GetRealTimeClock()->TimeInMilliseconds
will be treated as function call, due to macro WEBRTC_CLOCK_TYPE_REALTIME's
guard defined in system_wrappers module they will get current time using
CLOCK_REALTIME.
But on x86 Android, the inline function will be expanded to where it's been
called, if the call happens in other compilation units which don't have
WEBRTC_CLOCK_TYPE_REALTIME definition, it will get current time using
CLOCK_MONOTONIC, while Clock::GetRealTimeClock()->TimeInMilliseconds will always
use CLOCK_REALTIME, then there will be two types of time in x86 Android which
will cause some weird issues like all received remote streams will be dropped
due to future render timestamp.
BUG=None
TEST=WebRTCViEDemo application works well on both arm and x86 Android
R=fischman@webrtc.org, niklas.enbom@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1688004
Patch from Jeremy Mao <yujie.mao@intel.com>.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4274 4adac7df-926f-26a2-2b94-8c16560cd09d
The idea is to have all frames not in use be stored in free_frames_, and whenever a packet from a new frame arrives we can just pop a frame from free_frames_. When a frame is grabbed for decoding it will be removed from all lists, and will be added to free_frames_ when it's returned to the jitter buffer.
We should be able to remove the state enum completely later, as their state is defined by the list they are in. But I'll keep it around for now to simplify the cl.
TEST=try bots and vie_auto_test --automated
R=mikhal@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1721004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4273 4adac7df-926f-26a2-2b94-8c16560cd09d
- A bug was introduced in r4234 causing no paced packets to be sent.
- Only update the sequence number counter if a padding packet is actually going to be sent, to avoid packet loss.
- Have all packets go through the pacer if pacing is enabled to avoid reordering.
- Fix race condition on reading capture_time_ms_/timestamp_ in rtp_sender.cc.
BUG=1837
TEST=trybots and vie_auto_test --automated
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1682004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4246 4adac7df-926f-26a2-2b94-8c16560cd09d
Until we have WebRTC test targets created for Android, this test
makes it possible to move forward for buildbot automation.
TEST=Android NDK buildbot and local execution of:
source build/android/envsetup.sh
gclient runhooks
ninjar -C out/Debug
verified the out/Debug/simple_apk dir exists and has the files.
BUG=1882
R=henrika@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1688005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4245 4adac7df-926f-26a2-2b94-8c16560cd09d
The md5sum and forwarder2 binaries from Chromium's
src/tools/android are needed to be able to run tests using the
test framework launched by build/android/run_tests.py.
Since they depend on Chromium's base, we're using a precompiled
copy for WebRTC's purposes.
Linux works out of the box if Chromium's Android build instructions
at https://code.google.com/p/chromium/wiki/AndroidBuildInstructions
are used. Mac runs into problems earlier in the build toolchain,
but as Mac is not a supported Android development platform in Chrome,
the files will have to be copied manually on that platform for now.
TEST=Synced, built and ran a test APK using run_tests.py.
BUG=1882
R=andrew@webrtc.org, henrike@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1679005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4241 4adac7df-926f-26a2-2b94-8c16560cd09d
This connects the pacer-based padding with the RTP modules, which will
generate padding packets roughly according to what the pacer suggests.
It will only generate padding packets of maximum size to keep the number
off padding packets as small as possible. This also sets a limit of how much
padding + media bitrate which the pacer is allowed to "request" from the
RTP modules.
Padding will for now only be generated by the first sending RTP module.
BUG=1837
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1612005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4234 4adac7df-926f-26a2-2b94-8c16560cd09d
A new test target named 'modules_integrationtests' is created
and the following test targets were merged into it:
* audio_coding_module_test
* test_fec
* video_coding_integrationtests
* vp8_integrationtests
A couple of other targets were merged into modules_unittests:
* audio_coding_unittests
* audioproc_unittest
* common_unittests
* video_coding_unittests
* video_processing_unittests
* vp8_unittests
I wasn't able to merge audio_decoder_unittests and neteq_unittests due to
conflicts with different defines in these tests.
Some tests that have special requirements aren't merged into
modules_integrationtests yet. I took the opportunity to rename them
since the bot configs will need to be update anyway:
* audio_device_test_api -> audio_device_integrationtests
* video_capture_module_test -> video_capture_integrationtests
* video_render_module_test -> video_render_integrationtests
Exclude files were added for modules_integrationtests to make sure
the memcheck and tsan bots doesn't tests that are too slow
(audio_coding_module_test and vp8_integrationtests were previously
disabled on those bots).
Suppressions for AudioCodingModuleTest needed to be added to get
modules_integrationtests to pass memcheck (even if the test is
excluded from execution).
BUG=1843
TEST=local execution on Linux and trybots (passing except the merged tests of course)
R=andrew@webrtc.org, tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1656004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4228 4adac7df-926f-26a2-2b94-8c16560cd09d