pbos@webrtc.org
bbe0a8517d
Config struct for VideoEncoder.
...
Used for config parameters in common between multiple codecs as well as
the encoder-specific pointer. In particular this contains content mode
(realtime video vs. screenshare).
BUG=1788
R=mflodman@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/16319004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7239 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-19 12:30:25 +00:00
stefan@webrtc.org
168f23faa5
Move pacer to fully use webrtc::Clock instead of webrtc::TickTime.
...
This required rewriting the send-side delay stats api to be callback based, as otherwise the SuspendBelowMinBitrate test started flaking much more frequently since it had lock order inversion problems.
R=pbos@webrtc.org , tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/21869005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6664 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-11 13:44:02 +00:00
stefan@webrtc.org
4ef438e2de
Remove the send-side cname getter APIs from voice and video engine.
...
These APIs aren't being used, and introduces deadlocks when using GetStats() in the new Call api. Having getters for cname at the send-side is pointless, as it's always the user who sets the cname.
R=henrika@webrtc.org , pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/16899004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6659 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-11 09:55:30 +00:00
stefan@webrtc.org
cb254aac3b
Enable pacing by default and remove the option to disable it from the new API.
...
BUG=1672
R=mflodman@webrtc.org , pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/17659004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6416 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-12 15:12:25 +00:00
stefan@webrtc.org
fbb567dacd
Add APIs to enable padding with redundant payloads.
...
Also makes a small change to the tests to remove flakiness. We can't do
BWE only based on rtp timestamps if we preemptively resend packets instead
of sending padding packets.
BUG=1812,2992
R=mflodman@webrtc.org , pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/15719004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6400 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-11 13:41:36 +00:00
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
stefan@webrtc.org
ef92755780
Have RTX be enabled by setting an RTX payload type instead of by setting an RTX SSRC.
...
This makes it easier to disable RTX by filtering out the RTX codec during call setup/signaling, and won't require that also the SSRCs are filtered out.
BUG=1811
R=mflodman@webrtc.org , pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/15629005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6335 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-05 08:25:29 +00:00
pbos@webrtc.org
1566ee2893
Revert "Revert "Remove VideoSendStreamInput::PutFrame.""
...
This reverts commit r6230 to re-land r6229.
ViECapturer::SwapFrame now resets timestamps.
BUG=
R=stefan@webrtc.org
TBR=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/13529004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6231 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-23 13:03:45 +00:00
pbos@webrtc.org
2cdd433edf
Revert "Remove VideoSendStreamInput::PutFrame."
...
This reverts r6229.
Test WebRtcVideoChannel2BaseTest.MuteStream fails after r6229.
BUG=
R=stefan@webrtc.org
TBR=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/19529005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6230 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-23 10:43:26 +00:00
pbos@webrtc.org
f3085e43ab
Remove VideoSendStreamInput::PutFrame.
...
PutFrame just copies the frame before swapping it, if it's required that
can easily be done outside this API before swapping the frame.
BUG=
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/14529006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6229 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-23 09:41:45 +00:00
pbos@webrtc.org
1e92b0a93d
Add ToString() to VideoSendStream::Config.
...
Adds ToString() to subsequent parts as well as a common.gyp to define
ToString() methods for config.h. VideoStream is also moved to config.h.
BUG=3171
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/11329004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6170 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-15 09:35:06 +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
709e29742e
Simplify pacer interface.
...
New interface uses two bitrates (max/min). The pace multiplier is also
removed from the interface and instead utilized outside. Min bitrate
will be filled with padding if there's not enough media to transmit.
Also fixes a bug in minimum transmission bitrate that made it ignore
REMBs. A regression test has been added to catch it.
BUG=3014
R=mflodman@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/10059004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5723 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-19 10:59:52 +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
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
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
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
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
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
mflodman@webrtc.org
b429e516a9
cpplint cleaning new API and its implementation files.
...
R=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/6089005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5317 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-18 09:46:22 +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
4070935f4f
Implement and test EncodedImageCallback in new ViE API.
...
R=mflodman@webrtc.org , pbos@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4059004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5179 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-26 11:41:59 +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
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
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
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
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