237 Commits

Author SHA1 Message Date
henrik.lundin@webrtc.org
ed8b281265 Re-comitting r5711: "Fixing a flaky test in video_engine_tests"
The CL was reverted in r5712, due to bots going red. However, these bots
are unrelated to this CL.

Original description:
VideoSendStreamTest.SuspendBelowMinBitrate was flaky. The problem was
that when the first non-padding packet was sent after the stream was
resumed, the statistics had not always been updated so that
stats.suspended was false. After seeing the first non-padding packet
after suspension, the test will now go into a state where it waits for
the statistics to be changed.

BUG=3068
R=pbos@webrtc.org
TBR=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5713 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-18 08:43:29 +00:00
turaj@webrtc.org
12499ff20b Revert 5711 "Fixing a flaky test in video_engine_tests"
> Fixing a flaky test in video_engine_tests
> 
> VideoSendStreamTest.SuspendBelowMinBitrate was flaky. The problem was that when the first non-padding packet was sent after the stream was resumed, the statistics had not always been updated so that stats.suspended was false. After seeing the first non-padding packet after suspension, the test will now go into a state where it waits for the statistics to be changed.
> 
> BUG=3068
> R=pbos@webrtc.org
> TBR=stefan@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/10069004

TBR=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5712 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-18 00:23:55 +00:00
henrik.lundin@webrtc.org
d0f0c76cd9 Fixing a flaky test in video_engine_tests
VideoSendStreamTest.SuspendBelowMinBitrate was flaky. The problem was that when the first non-padding packet was sent after the stream was resumed, the statistics had not always been updated so that stats.suspended was false. After seeing the first non-padding packet after suspension, the test will now go into a state where it waits for the statistics to be changed.

BUG=3068
R=pbos@webrtc.org
TBR=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5711 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-17 21:09:10 +00:00
henrik.lundin@webrtc.org
b10363f3b6 Re-landing "Routing SuspendChange to VideoSendStream::Stats"
This was originally committed as r5687, but reverted due to a flaky
test.

BUG=3040
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5695 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-13 13:31:21 +00:00
henrik.lundin@webrtc.org
be39470203 Revert "Routing SuspendChange to VideoSendStream::Stats"
The test VideoSendStreamTest.SuspendBelowMinBitrate seems flaky.
Reverting and investigating.

BUG=3040

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5681 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-11 17:13:14 +00:00
henrik.lundin@webrtc.org
1598b80f52 Routing SuspendChange to VideoSendStream::Stats
Also checking that the statistics are properly updated in
VideoSendStreamTest.SuspendBelowMinBitrate.

Adding a test to SendStatisticsProxyTest.

Checking callback status in rampup test, too.

BUG=2457
R=mflodman@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5678 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-11 14:57:35 +00:00
sprang@webrtc.org
60ad5fdadf Potential deadlock in VideoSendStreamTest::ProducesStats
VideoSendStream::GetStats() should not be called by
RtpRtcpObserver::OnSendRtcp(), as at this stage that thread will still
hold internal send locks.

Use an event and signal the test thread to call GetStats() instead.

BUG=
R=mflodman@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5648 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-06 10:03:36 +00:00
sprang@webrtc.org
346094cb01 Incorrect overhead calculation when using FEC + RTP extension headers.
When frames are fragmented inte multiple RTP packets in order to not
exceed a maximum packet size, the header overhead calculation must
take into account that FEC redundancy packets may use more than the
12 bytes of the basic RTP header. For example, a csrc list or extension
headers may be present.

BUG=2899
R=phoglund@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5562 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-18 08:40:33 +00:00
sprang@webrtc.org
d9b9560ee5 Drop early packets when not sending in TransportAdapter.
Particularly, suppress periodic RTCP packets before
VideoSendStream.StartSending() or VideoReceiveStream.StartReceiving() have been called, respectively.

RTCP packets are sent periodically, by the Process thread, for every ViE channel even those not sending.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5438 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-27 13:03:02 +00:00
pbos@webrtc.org
c279a5d72c Wire up RTX in VideoReceiveStream.
Also adds a test to make sure that a retransmitted frame is actually
received and decoded on the remote side. The previous NACK test checked
retransmission, but not that the receiver actually takes care of the
retransmitted packet.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5422 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-24 09:30:53 +00:00
pbos@webrtc.org
e7223e7795 Set NACKed packet to -1 in TestNackRetransmission.
Zero is a valid sequence number which may occur even if there are no
retransmissions, this caused the test to flake as an incoming packet
would be mistaken for a retransmission.

BUG=2830
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5417 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-23 16:14:34 +00:00
pbos@webrtc.org
f777cf2547 Permitting double start/stopping of streams.
It doesn't make too much sense to hard enforce that the user keeps track
of which streams are started and which are not.

BUG=
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5363 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-10 18:47:32 +00:00
sprang@webrtc.org
ccd42840bc Wire up statistics in video send stream of new video engine api
Note, this CL does not contain any tests. Those are implemeted as call
tests and will be submitted when the receive stream is wired up as well.

BUG=2235
R=mflodman@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5344 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-07 09:54:34 +00:00
sprang@webrtc.org
54ae4ffb9e Add callbacks for receive channel RTCP statistics.
This allows a listener to receive new statistics as it is generated - avoiding the need to poll. This also makes handling stats from multiple RTP streams more tractable.
The change is primarily targeted at the new video engine API.

TEST=Unit test in ReceiveStatisticsTest. Integration tests to follow as call tests when fully wired up.

BUG=2235
R=henrika@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5323 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-19 13:26:02 +00:00
pbos@webrtc.org
052fa6243a Stop transport in test SuspendBelowMinBitrate.
Avoids race when packets are still left in the network while the Call is
being destroyed.

R=mflodman@webrtc.org
BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5307 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-17 11:19:58 +00:00
pbos@webrtc.org
5ab756703e Revert r5294 to re-roll r5293.
To fix races in test each stream now owns its own encoder/decoder.

R=mflodman@webrtc.org
BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5297 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-16 12:24:44 +00:00
turaj@webrtc.org
41e2615e02 Revert 5293 "Auto instantiate RBE depending on whether AST or TO..."
> Auto instantiate RBE depending on whether AST or TOF is available in incoming packet stream.
> 
> BUG=
> R=mflodman@webrtc.org, stefan@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/5409004

TBR=solenberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5294 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-15 18:42:32 +00:00
solenberg@webrtc.org
341e91441a Auto instantiate RBE depending on whether AST or TOF is available in incoming packet stream.
BUG=
R=mflodman@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5293 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-13 23:57:54 +00:00
pbos@webrtc.org
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
sprang@webrtc.org
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
andrew@webrtc.org
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
sprang@webrtc.org
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
pbos@webrtc.org
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
pbos@webrtc.org
e1fc3f22ea Disable check for all sent SSRCs being valid.
Since the code for setting these up will set the codec before setting
SSRCs for the streams, any frames sent in between will be sent on
random-generated SSRCs.

This part should be added back during work on issue 1695.

BUG=1695
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5192 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-28 15:40:12 +00:00
pbos@webrtc.org
13d38a13e3 Set up SSRCs correctly after switching codec.
Before SSRCs were not set up correctly, as the old VideoEngine API
doesn't support setting additional SSRCs before a codec with as many
streams are set.

No test was in place to catch this, so two tests are added to make sure
that we send the SSRCs that are set, and also that we can switch from
using one to using all SSRCs, even though initially not all of them are
set up.

BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5188 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-28 11:59:31 +00:00
stefan@webrtc.org
4ab4fc0044 Add test for automatically disabling padding when no video is being captured.
BUG=2648
TEST=trybots
R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5169 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-25 11:54:24 +00:00
henrik.lundin@webrtc.org
331d4402fc Connect pacer/padding to SuspendBelowMinBitrate
The suspend function must not be engaged unless padding is also enabled.
This CL makes the connection so that the pacer and padding is enabled
when SuspendBelowMinBitrate is.

Had to change the unit test to make it aware of the padding packets.

BUG=2606
R=mflodman@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5153 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-21 14:05:40 +00:00
pbos@webrtc.org
2c46f8d854 Rename DestroyStream methods to include Video.
Matches r5135 which renames CreateSendStream->CreateVideoSendStream for
instance.

BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5151 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-21 13:49:43 +00:00
pbos@webrtc.org
ce90eff345 Rename RTP-extension constants.
BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5137 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-20 11:48:56 +00:00
pbos@webrtc.org
53c8573525 Rename video streams' start/stop methods.
{Start,Stop}{Send,Receive}() -> {Start,Stop}{Sending,Receiving}().

BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5136 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-20 11:36:47 +00:00
pbos@webrtc.org
5a63655ab0 Rename Call::Create{Receive,Send}Stream().
Renaming the methods to include Video. Long-term there will hopefully be
AudioSendStream/AudioReceiveStreams as well.

BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5135 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-20 10:40:25 +00:00
henrik.lundin@webrtc.org
ce8e0936d9 Rename AutoMute to SuspendBelowMinBitrate
Changes all instances throughout the WebRTC stack.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5130 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-18 12:18:43 +00:00
stefan@webrtc.org
4cfa6050f6 Fix breakage after introducing new test.
TBR=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5127 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-15 13:15:56 +00:00
stefan@webrtc.org
69969e2e2f Improve Call tests for RTX.
Also does some refactoring to reuse RtpRtcpObserver.

BUG=1811
R=mflodman@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5126 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-15 12:32:15 +00:00
pbos@webrtc.org
6488761f2e Implement VideoSendStream::SetCodec().
Removing assertion that SSRC count should be the same as the number of
streams in the codec. It makes sense that you don't always use the same
number of streams under one call. Dropping resolution due to CPU overuse
for instance can require less streams, but the SSRCs should stay
allocated so that operations can resume when not overusing any more.

This change also means we can get rid of the ugly SendStreamState whose
content wasn't defined. Instead we use SetCodec to change resolution
etc. on the fly. Should something else have to be replaced on the fly
then that functionality simply has to be implemented.

BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5123 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-14 08:58:14 +00:00
pbos@webrtc.org
def22b455b Stop DirectTransports in VideoSendStreamTests.
Prevents racy packet delivery during or after Call destruction.

BUG=
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5049 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-29 10:12:10 +00:00
pbos@webrtc.org
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