28 Commits

Author SHA1 Message Date
pbos@webrtc.org
6ae48c6609 Make VideoSendStream/VideoReceiveStream configs const.
Benefits of this is that the send config previously had unclear locking
requirements, a lock was used to lock parts parts of it while
reconfiguring the VideoEncoder. Primary work was splitting out video
streams from config as well as encoder_settings as these change on
ReconfigureVideoEncoder. Now threading requirements for both member
configs are clear (as they are read-only), and encoder_settings doesn't
stay in the config as a stale pointer.

CreateVideoSendStream now takes video streams separately as well as the
encoder_settings pointer, analogous to ReconfigureVideoEncoder.

This change required changing so that pacing is silently enabled when
using suspend_below_min_bitrate rather than silently setting it.

R=henrik.lundin@webrtc.org, mflodman@webrtc.org, pthatcher@webrtc.org, stefan@webrtc.org
BUG=3260

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6349 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-06 10:49:19 +00:00
asapersson@webrtc.org
1457b4737a First incoming packet was not accounted for in receive stats. Changed call order for incoming packet to receive statistics class.
Receive stats is reset if the payload type changes. Update stats after a possible reset.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6247 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-26 13:06:04 +00:00
pbos@webrtc.org
caba2d2a37 Add DeliveryStatus enum to DeliverPacket().
Allows signalling why packet delivery failed. Especially enables
signaling that delivery fails because the incoming packet had an unknown
SSRC. This allows an application to react and create receivers for the
new streams.

R=mflodman@webrtc.org
BUG=3228

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6150 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-14 13:57:12 +00:00
pbos@webrtc.org
de1429e9ad Add thread annotations to Call API.
Also constified a lot of pointers and reordered members to make
protected members more grouped together.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5998 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-28 13:00:21 +00:00
pbos@webrtc.org
f043f79711 Disabling flaky CanReceiveFec.
CanReceiveFec is flaky, likely to the test expecting the first FEC
packet to always be decoded and rendered.

R=stefan@webrtc.org
BUG=3269

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5992 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-28 09:00:50 +00:00
pbos@webrtc.org
5ca6a5387e Remove TraceCallback use from Call.
Non-global logging isn't supported, and having a per-call logging
dispatch seems over-eager and adds more complexity than it's worth. The
current implementation is racy on initialization due to missing atomics
support. Besides, logging support should be separate from use of Call.

R=mflodman@webrtc.org
BUG=3250,3157

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5971 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-24 11:35:33 +00:00
pbos@webrtc.org
a5c8d2c9b3 Rename Start/Stop in Video{Send,Receive}Streams.
Rename {Start,Stop}{Sending,Receving} to Start/Stop. StartSending
provides no extra information in the context of a VideoSendStream, as
what it does is to send.

R=mflodman@webrtc.org
BUG=3227

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5970 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-24 11:13:21 +00:00
pbos@webrtc.org
22cf7472a0 Disable UsesTraceCallback
Ongoing removal of trace code is causing UsesTraceCallback to fail,
disabling it for now.

BUG=3157
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5882 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-10 14:39:22 +00:00
pbos@webrtc.org
2a03498825 Implement FEC support in VideoReceiveStream.
Added an FEC end-to-end test. NACK+FEC is probably working but not yet tested
as the test for it must introduce packet delays as the underlying API prefers
NACK over FEC if RTT is low.

BUG=3174
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5862 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-08 11:21:45 +00:00
pbos@webrtc.org
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
pbos@webrtc.org
3349ae0cdc Implement minimum transmit bitrate.
Utilizing minimum transmission bitrate prevents low remote bitrate
estimates (bitrate estimation dips) when encoding non-complex content
such as screenshare of a static image even though there's nothing wrong
with the link.

Requires pacing to be enabled for now, pending issue 3036.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5694 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-13 12:52:27 +00:00
sprang@webrtc.org
09315705b9 Wire up statistics in video receive stream of new API
This CL includes Call tests that test both send and receive sides.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5499 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-07 12:06:29 +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
asapersson@webrtc.org
efaeda0c76 Add configuration and test for extended RTCP reference time reports to new video api.
R=mflodman@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5401 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-20 08:34:49 +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
mflodman@webrtc.org
bcd124cdba Reduced execution time for CallTest::ReceivesPliAndRecovers, by dropping only one packet and made it predictable by removing rand().
Follow up steps is to support NackConfig.rtp_hostory_ms and/or increase fake encoder bitrate.

R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5316 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-18 09:45:45 +00:00
mflodman@webrtc.org
1fa41be66a Speeding up CallTest.ReceivesAndRetransmitsNack and removed the random packet loss.
R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5315 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-18 09:44:53 +00:00
pbos@webrtc.org
eb7b7bce3d Modify video_render/ to allow a single old frame.
This stabilizes tests as a single frame reaches end-to-end, as well as
allowing slow or heavily-loaded systems to see any video updates even if
the frame takes more than 500ms in the pipeline.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5303 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-16 18:24:37 +00:00
pbos@webrtc.org
919f87fb36 Delete capturers after destroying streams in test.
Since the renderers in CallTest.SendsAndReceiveStreams also stopped the
capturers they must be deleted after the VideoReceiveStream is stopped
or an use-after-free may occur.

R=mflodman@webrtc.org
BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5300 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-16 14:55:54 +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
mflodman@webrtc.org
92c2793154 Adding REMB to receive stream configuration, the send side will always
react to incoming REMB for now.

Adding a test to verify the receive side is generating RTCP REMB and
will follow up with a send side test as soon as the bitrate stats are
wired up for the new API.

TEST=See above.
R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5286 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-13 16:36:28 +00:00
pbos@webrtc.org
1d096901ac Move realtime tests to webrtc_perf_tests.
New binary not to be run on our VMs as they result in flaky tests. These
will instead be run on baremetal machines.

BUG=2710
R=kjellander@webrtc.org, mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5283 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-13 12:48:05 +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
pbos@webrtc.org
0f3d0bb601 Stop video capturers in multi-stream test.
Expected to reduce runtime and flakiness in
CallTest.SendsAndReceivesMultipleStreams on linux_memcheck which is
presumed to be due to contention between the threads.

BUG=
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5238 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-06 15:48:17 +00:00
pbos@webrtc.org
5cea89f3e1 Remove CallTest dependency on voice_engine/test/.
Loading file out of resources/ instead of data/ which is deprecated.

BUG=
R=holmer@google.com, mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5226 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-05 14:24:17 +00:00
pbos@webrtc.org
c49d5b7df8 Move implementation files out of the webrtc/ root.
Leaves the root for public headers. Also fixes the issue of requiring
root OWNERS approval for changes in the Call implementation and adding
end-to-end tests.

BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5223 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-05 12:11:47 +00:00