Commit Graph

26 Commits

Author SHA1 Message Date
25dd1dbb9f Fixed bug in test frame generator, causing incorrect reuse of frame
object, in turn causing performance regression.

Plus a small optimization.

BUG=chromium:460954, 4329
R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/42499004

Cr-Commit-Position: refs/heads/master@{#8552}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8552 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-02 11:56:16 +00:00
ac2d27d9ae Fix style violations in common_types.h and config.h
Mostly, it's about moving constructors and descructors to the .cc
files, so that they won't be inlined everywhere.

The reason this CL is so big is that a lot of code was using
common_types.h without declaring a dependency on webrtc_common, which
broke the build once common_types.h started to depend on
common_types.cc.

BUG=163
R=kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/26089004

Cr-Commit-Position: refs/heads/master@{#8516}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8516 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-26 14:01:28 +00:00
f58fe0ab2b Rename GYP and GN targets for video capture+render.
This CL performs the following renames of targets to
make GYP and GN more unified and make the targets that
have the same name as the module and include the external
render/capture implementation (the internal one is only
used by WebRTC tests).
This makes it natural to declare dependencies in GN
without having to specify the target.

Summary of the renames:
GYP:
video_render_module_impl -> video_render (new target)
video_capture_module_impl -> video_capture (new target)

GN:
video_capture -> video_capture_module (now identical to the GYP target)
video_capture_impl -> video_capture

video_render -> video_render_module (now identical to the GYP target)
video_render_impl -> video_render

BUG=456815
R=andresp@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/35099004

Cr-Commit-Position: refs/heads/master@{#8323}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8323 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 07:47:47 +00:00
83317146ba Adding a new test helper RtpFileWriter and use it in RTPcat
This new helper class writes RTP packets to file in rtpdump format.
A unit test is also included.

The new test class is used while re-writing the test tool RTPcat.

BUG=2692
R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/28099004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7768 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-01 11:25:04 +00:00
aca5803b19 Move (test) RtpFileReader to a lightweight target.
Moves RtpFileReader to rtp_packet_parser and renames it to
rtp_test_utils which is allowed to rely on rtp_rtcp.

R=andrew@webrtc.org
BUG=

Review URL: https://webrtc-codereview.appspot.com/24979004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7536 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-27 18:01:03 +00:00
ad553a2731 Let video_loopback use internal VCM capturers.
R=stefan@webrtc.org
BUG=

Review URL: https://webrtc-codereview.appspot.com/27819004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7503 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-23 08:24:02 +00:00
38c121c484 Minor modifications to test::RtpFileReader
Adding original_length to the Packet struct. This is populated with
the plen value from the RTP dump file. In the case of reading a
pcap file, original_length will be equal to length.

Also increasing the maximum packet size to 3500 bytes. This is to
accomodate some test files that contain PCM16b audio encoding.

R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/28609004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7333 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-30 11:08:44 +00:00
2036a7bb40 Clean directx_sdk_path as it is already defined in base/common.gypi
R=kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/23729004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7237 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-19 08:14:12 +00:00
c3091a6c26 Remove the 'webrtc_test_video_render_dependencies' target.
This target is no longer needed and is causing linking errors on XCode.

R=andresp@webrtc.org, pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/28519004

Patch from Alexandre Gouaillard <agouaillard@gmail.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7226 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-18 17:22:18 +00:00
ab071daab8 Split video_render_module implementation into default and internal implementation.
Targets must now link with implementation of their choice instead of at "gyp"-time.

Targets linking with libjingle_media:
- internal implementation when build_with_chromium=0, default otherwise.

Targets linking with default render implementation:
- video_engine_tests
- video_loopback
- video_replay
- anything dependent on webrtc_test_common

Targets linking with internal render implementation:
- vie_auto_test
- video_render_tests
- libwebrtcdemo-jni
- video_engine_core_unittests

GN changes:
- Not many since there is almost no test definitions.

Work-around for chromium:
- Until chromium has updated libpeerconnection to link with video_capture_impl and video_render_impl, webrtc target automatically depends on it. This should fix the FYI bots and not require a webrtc roll to fix.

Re-enable android tests by reverting 7026 (some tests left disabled).

TESTED: passes all the bots. If this inadvertently breaks a target please fix the linking rules so the target has the desired implementation linked in.
BUG=3770
R=kjellander@webrtc.org, pbos@webrtc.org
TBR=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/19359004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7217 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-18 08:58:15 +00:00
a74eda1b6f Split video_capture_module specific implementation (external vs internal capture)
into its own targets. Dependencies must link directly with the desired one.

Targets linking with libjingle_media:
 - internal implementation when build_with_chromium=0, default otherwise.

Targets linking with default/external capture implementation:
 - anything dependent on webrtc_test_common
 - anything dependent on video_engine_core

Targets linking with internal capture implementation:
 - vie_auto_test
 - anything dependent on webrtc_test_renderer

GN changes:
 - Not many since there is almost no test definitions.

TESTED: passes all the bots. If this inadvertently breaks a target please fix the linking rules so the target has the desired implementation linked in.

BUG=3768
R=glaznev@webrtc.org
TBR=kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/24589004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7209 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-17 11:50:19 +00:00
4b5625e5ac RTP video playback tool using Call APIs.
Plays back rtpdump files from Wireshark in realtime as well as save the
resulting raw video to file. Unlike the RTP playback tool it doesn't
support faster-than-realtime playback/rendering, but it instead utilizes
the same path as production code and also contains support for playing
back FEC.

BUG=
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/16969004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6838 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-06 16:26:56 +00:00
994d0b7229 Refactor Call-based tests.
Greatly reduces duplication of constants and setup code for tests based
on the new webrtc::Call APIs. It also makes it significantly easier to
convert sender-only to end-to-end tests as they share more code.

BUG=3035
R=kjellander@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/17789004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6551 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-27 08:47:52 +00:00
eae7924836 Adding back platform specific renderer to video loopback test.
BUG=3039
TEST=locally on Mac and Win, video_loopback test
R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/10689004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6339 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-05 09:32:51 +00:00
023b101f4e Move gflags usage to video_loopback.
gflags aren't used by the test environment and is an unnecessary
dependency. They're only used by the video_loopback target, so moving
them there.

R=mflodman@webrtc.org
BUG=3113

Review URL: https://webrtc-codereview.appspot.com/12379006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6120 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-13 11:26:40 +00:00
f577ae9eac Remove internal codecs from VideoSendStream.
Replaces VideoCodec in VideoSendStream::Config with an EncoderSettings
struct. The EncoderSettings struct uses an external encoder for all
codecs. This means that external users, such as libjingle, will provide
the encoders themselves, removing the previous distinction of internal
and external codecs.

For now VideoSendStream translates to VideoCodec internally. In the
interrim (before the corresponding change is implemented in
VideoReceiveStream) tests convert EncoderSettings to VideoCodecs.

Removes Call::GetVideoCodecs().

Disables RampUpTest.WithPacingAndRtx as its further exposed with changes
to bitrates used in tests.

BUG=2854,2992
R=mflodman@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/7919004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5722 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-19 08:43:57 +00:00
95153cc4cd Remove platform-specific code from new-API tests.
We've had problems that seem to manifest in run_tests.mm getting stuck
on exit. For our automated test targets only full_stack.cc was making
use of the platform-specific renderers provided by webrtc_test_common
and since no one currently monitors these the use case is hypothetical.

Readding platform-specific renderers to video_loopback is tracked with
issue 3039, though as far as I'm aware no one's currently using the
video_loopback target.

BUG=2987
R=kjellander@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/9789004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5686 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-12 13:22:00 +00:00
faada6e604 Integrate fake_network_pipe into direct_transport.
TEST=trybots
R=mflodman@webrtc.org, pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/5529004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5321 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-18 20:28:25 +00:00
724947b8ef Add SwapFrame() to VideoSendStreamInput.
Optionally prevents doing a frame copy when putting frames into a
VideoSendStream. PutFrame() is still there, which copies the frame.

Also removes time_since_capture_ms as a parameter, since
I420VideoFrame::render_time_ms() denotes when the frame was captured.

BUG=2657
R=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/5119004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5265 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-11 16:26:16 +00:00
8b8819262f Improve VideoSendStreamTest::MaxPacketSize
This CL was submitted as issue https://webrtc-codereview.appspot.com/4849004/, but was reverted because of flakiness. This new issue will correct that.

Patch Set 1 contains the code that was submitted in 4849004.

BUG=2428
R=pbos@webrtc.org, phoglund@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/5399004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5251 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-10 10:05:17 +00:00
797522f9f2 Revert 5229 "Make VideoSendStreamTest::MaxPacketSize test a whol..."
> Make VideoSendStreamTest::MaxPacketSize test a whole range of frame sizes, to make sure all corner cases are covered.
> 
> BUG=2428
> R=pbos@webrtc.org, phoglund@webrtc.org, stefan@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/4849004

It caused a failure in video_engine_tests on the Linux Tsan bot.

TBR=sprang@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/5269004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5240 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-06 17:42:32 +00:00
7104fc1906 Make VideoSendStreamTest::MaxPacketSize test a whole range of frame sizes, to make sure all corner cases are covered.
BUG=2428
R=pbos@webrtc.org, phoglund@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/4849004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5229 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-05 16:15:11 +00:00
7e9315b42e Adds support for sending redundant payloads over RTX.
TEST=trybots
BUG=1812
R=mflodman@webrtc.org, pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/4169004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5209 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-04 10:24:26 +00:00
b613b5ab2b Set local SSRC for VideoReceiveStream.
As a bonus, also removes GenerateRandomSsrc, which only worked on sender
configs. There's no point to generate random SSRCs in tests.

BUG=2691
R=mflodman@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/4689004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5201 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-03 10:13:04 +00:00
b082ade3db Hook up audio/video sync to Call.
Adds an end-to-end audio/video sync test.

BUG=2530, 2608
TEST=trybots
R=henrika@webrtc.org, mflodman@webrtc.org, pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/3699004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5128 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-18 11:45:11 +00:00
16e03b7bd8 Separate Call API/build files from video_engine/.
BUG=2535
R=andrew@webrtc.org, mflodman@webrtc.org, niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2659004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5042 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-28 16:32:01 +00:00