97 Commits

Author SHA1 Message Date
philipel
dd3248665d Bitrate prober now keep track of probing cluster id.
BUG=webrtc:5859
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1946173002 .

Cr-Commit-Position: refs/heads/master@{#12644}
2016-05-06 15:06:24 +00:00
Per
28a44564c9 Revert "Revert of Remove SendPacer from ViEEncoder (patchset #13 id:240001 of https://codereview.webrtc.org/1917793002/ )"
This reverts commit 825eb58d59940a4c3c9837595c4b3b07059c93ca.

This Relands the cl reviewed in https://codereview.webrtc.org/1917793002/

patchset #1 is a pure reland.
patchset #2 fix an overflow in BitrateProber that caused WebRtcVideoChannel2BaseTest.TwoStreamsSendAndReceive to fail.

Original cl description:
Remove SendPacer from ViEEncoder
This CL moves the logic where the ViEEncoder pause if the pacer is full to the BitrateController. If the queue is full, the controller reports a bitrate of zero to  Call (and BitrateAllocator)

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

BUG=webrtc:5687

Review URL: https://codereview.webrtc.org/1947873002 .

Cr-Commit-Position: refs/heads/master@{#12630}
2016-05-04 15:13:06 +00:00
perkj
825eb58d59 Revert of Remove SendPacer from ViEEncoder (patchset #13 id:240001 of https://codereview.webrtc.org/1917793002/ )
Reason for revert:
Fails in the waterfall here:

https://build.chromium.org/p/client.webrtc/builders/Win32%20Debug/builds/7832/steps/rtc_media_unittests/logs/stdio

Original issue's description:
> Remove SendPacer from ViEEncoder
>
> This CL moves the logic where the ViEEncoder pause if the pacer is full to the BitrateController. If the queue is full, the controller reports a bitrate of zero to  Call (and BitrateAllocator)
>
> BUG=webrtc:5687
>
> Committed: https://crrev.com/857c5ccdb56e4c94196f7c6227abd5993c95abe2
> Cr-Commit-Position: refs/heads/master@{#12620}

TBR=stefan@webrtc.org,mflodman@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5687

Review-Url: https://codereview.webrtc.org/1947853002
Cr-Commit-Position: refs/heads/master@{#12621}
2016-05-04 08:08:15 +00:00
perkj
857c5ccdb5 Remove SendPacer from ViEEncoder
This CL moves the logic where the ViEEncoder pause if the pacer is full to the BitrateController. If the queue is full, the controller reports a bitrate of zero to  Call (and BitrateAllocator)

BUG=webrtc:5687

Review-Url: https://codereview.webrtc.org/1917793002
Cr-Commit-Position: refs/heads/master@{#12620}
2016-05-04 07:09:56 +00:00
kwiberg
22feaa3d15 Replace scoped_ptr with unique_ptr in webrtc/modules/
Except in places where this would break out-of-tree code,
such as Chromium.

BUG=webrtc:5520

Review URL: https://codereview.webrtc.org/1785173002

Cr-Commit-Position: refs/heads/master@{#12037}
2016-03-17 16:17:49 +00:00
kjellander@webrtc.org
94a23f04af Reland "Add check_deps rules in DEPS files."
Relanding https://codereview.webrtc.org/1796413002/
without the change to the openmax_dl include path
(which broke downstream code).

TBR=tommi@webrtc.org
BUG=webrtc:5623
TESTED=Passing runs using:
buildtools/checkdeps/checkdeps.py --root=. talk
buildtools/checkdeps/checkdeps.py --root=. webrtc

Review URL: https://codereview.webrtc.org/1804333002 .

Cr-Commit-Position: refs/heads/master@{#12031}
2016-03-17 11:05:50 +00:00
kjellander
56cf60e717 Revert of Add check_deps rules in DEPS files. (patchset #2 id:60001 of https://codereview.webrtc.org/1796413002/ )
Reason for revert:
The openmax_dl include change breaks downstream projects.

Original issue's description:
> Add check_deps rules in DEPS files.
>
> Add fine-grained check_deps rules for all of WebRTC.
> This will help both maintaining sane dependencies and provides a way
> to visualize dependency graphs using the buildtools/checkdeps/graphdeps.py script.
>
> Example:
> buildtools/checkdeps/graphdeps.py --root=. --format=png \
> --out=./webrtc.png --incl='^webrtc/modules/bitrate_controller->' \
> --excl='chromium|base|external|testing|webrtc/test|\.h$|\.cc$'
>
> will produce a neat webrtc.png image showcasing the dependencies
> (according to the DEPS file) for the bitrate_controller module.
> Some dependencies are filtered out for readability.
>
> BUG=webrtc:5623
> TESTED=Passing runs using:
> buildtools/checkdeps/checkdeps.py --root=. talk
> buildtools/checkdeps/checkdeps.py --root=. webrtc
>
> R=tommi@webrtc.org
>
> Committed: https://crrev.com/086f851b7b9b4bcbd4fe507c3bf83b760bd7f4d9
> Cr-Commit-Position: refs/heads/master@{#12008}

TBR=tommi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5623

Review URL: https://codereview.webrtc.org/1808573002

Cr-Commit-Position: refs/heads/master@{#12009}
2016-03-16 00:41:04 +00:00
kjellander@webrtc.org
086f851b7b Add check_deps rules in DEPS files.
Add fine-grained check_deps rules for all of WebRTC.
This will help both maintaining sane dependencies and provides a way
to visualize dependency graphs using the buildtools/checkdeps/graphdeps.py script.

Example:
buildtools/checkdeps/graphdeps.py --root=. --format=png \
--out=./webrtc.png --incl='^webrtc/modules/bitrate_controller->' \
--excl='chromium|base|external|testing|webrtc/test|\.h$|\.cc$'

will produce a neat webrtc.png image showcasing the dependencies
(according to the DEPS file) for the bitrate_controller module.
Some dependencies are filtered out for readability.

BUG=webrtc:5623
TESTED=Passing runs using:
buildtools/checkdeps/checkdeps.py --root=. talk
buildtools/checkdeps/checkdeps.py --root=. webrtc

R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1796413002 .

Cr-Commit-Position: refs/heads/master@{#12008}
2016-03-16 00:22:53 +00:00
Peter Boström
7ecc163d42 Report all packets to bitrate probing.
Allows probing with audio packets to finish, preventing a busy loop for
high-bitrate audio-only calls.

BUG=chromium:589931, webrtc:5506
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1750403003 .

Cr-Commit-Position: refs/heads/master@{#11840}
2016-03-02 13:22:33 +00:00
sprang
dc29780722 Re-enable DCHECKs for increasing timestamps in paced_sender
This reverts https://codereview.webrtc.org/1618333002

BUG=webrtc:5452

Review URL: https://codereview.webrtc.org/1740633005

Cr-Commit-Position: refs/heads/master@{#11824}
2016-03-01 08:47:03 +00:00
Peter Boström
3dd5d1d84a Remove PacketRouter sender distinction.
Instead relies on SetSendingMediaStatus() to filter out receiving RTP
modules. This status is now set in VoiceEngine's SetSend() for senders
along with SetSendingStatus().

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

Review URL: https://codereview.webrtc.org/1705763002 .

Cr-Commit-Position: refs/heads/master@{#11768}
2016-02-25 15:56:58 +00:00
pbos
a26ac925f7 Reland of move ignored return code from modules. (patchset #1 id:1 of https://codereview.webrtc.org/1736663004/ )
Reason for revert:
Revert breaks other uses, a fix will be rolled into Chromium instead.

Original issue's description:
> Revert of Remove ignored return code from modules. (patchset #3 id:40001 of https://codereview.webrtc.org/1703833002/ )
>
> Reason for revert:
> Breaks Chromium.
>
> Original issue's description:
> > Remove ignored return code from modules.
> >
> > ModuleProcessImpl doesn't act on return codes and having them around is
> > confusing (it's unclear what an error return code here would do even).
> >
> > BUG=
> > R=tommi@webrtc.org
> >
> > Committed: f14c47a58c
>
> TBR=tommi@webrtc.org,pbos@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=
>
> Committed: https://crrev.com/da33a8a2a22f6d19ba2a8cce963beafbdbaa8fd8
> Cr-Commit-Position: refs/heads/master@{#11761}

TBR=tommi@webrtc.org,torbjorng@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.webrtc.org/1737013002

Cr-Commit-Position: refs/heads/master@{#11762}
2016-02-25 12:50:09 +00:00
torbjorng
da33a8a2a2 Revert of Remove ignored return code from modules. (patchset #3 id:40001 of https://codereview.webrtc.org/1703833002/ )
Reason for revert:
Breaks Chromium.

Original issue's description:
> Remove ignored return code from modules.
>
> ModuleProcessImpl doesn't act on return codes and having them around is
> confusing (it's unclear what an error return code here would do even).
>
> BUG=
> R=tommi@webrtc.org
>
> Committed: f14c47a58c

TBR=tommi@webrtc.org,pbos@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.webrtc.org/1736663004

Cr-Commit-Position: refs/heads/master@{#11761}
2016-02-25 12:34:12 +00:00
Stefan Holmer
bf66ae6d80 Remove thread check from PacketRouter::SendFeedback.
R=pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1732923004 .

Cr-Commit-Position: refs/heads/master@{#11759}
2016-02-25 09:49:03 +00:00
Peter Boström
f14c47a58c Remove ignored return code from modules.
ModuleProcessImpl doesn't act on return codes and having them around is
confusing (it's unclear what an error return code here would do even).

BUG=
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1703833002 .

Cr-Commit-Position: refs/heads/master@{#11747}
2016-02-24 15:51:23 +00:00
stefan
0665f0518f Fix OOB read in pacing test.
BUG=webrtc:5490

Review URL: https://codereview.webrtc.org/1727283002

Cr-Commit-Position: refs/heads/master@{#11737}
2016-02-24 11:04:22 +00:00
Peter Boström
0453ef857f Prevent busy-looping PacedSender on small packets.
Skip accounting for small packets and suspend the prober if no
large-enough packets have been sent for some time. This especially seems
to have triggered in audio-only calls where all packets are too small,
making TimeUntilNextProbe return 0 forever, causing the module process
thread to wake up forever.

BUG=webrtc:5506
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1688703002 .

Cr-Commit-Position: refs/heads/master@{#11634}
2016-02-16 15:23:16 +00:00
jbauch
d2a22960c3 Enable cpplint for webrtc/modules/pacing and fix all uncovered cpplint errors.
This CL enableds cpplint for webrtc/modules/pacing.

BUG=webrtc:5460
NOTRY=true

TESTED=Fixed issues reported by:
find webrtc/modules/pacing -type f -name *.cc -o -name *.h | xargs cpplint.py
followed by 'git cl presubmit'.

Review URL: https://codereview.webrtc.org/1674423002

Cr-Commit-Position: refs/heads/master@{#11531}
2016-02-09 07:18:30 +00:00
stefan
bba9dec4d5 Use separate rtp module lists for send and receive in PacketRouter.
This makes it possible to handle send and receive streams with the same SSRC, which is currently the case in some peer connection tests.

Also moves sending transport feedback to the pacer thread.

BUG=webrtc:5263

Review URL: https://codereview.webrtc.org/1628683002

Cr-Commit-Position: refs/heads/master@{#11443}
2016-02-01 12:40:04 +00:00
sprang
38b39d59d1 Temporary hack to avoid assert errors when time moves backwards.
Once we have eliminated all non-monotonic clocks, revert this change.

BUG=webrtc:5452

Review URL: https://codereview.webrtc.org/1618333002

Cr-Commit-Position: refs/heads/master@{#11361}
2016-01-22 21:36:39 +00:00
Stefan Holmer
c482eb3c84 Don't account for audio in the pacer budget.
We should only account for audio packets in the pacer budget if we also
are allocating bandwidth for the audio streams.

BUG=chromium:567659,webrtc:5263
R=mflodman@webrtc.org

Review URL: https://codereview.webrtc.org/1524763002 .

Cr-Commit-Position: refs/heads/master@{#11053}
2015-12-16 15:55:09 +00:00
pbos
46ad5426b0 Revert of "Create rtc::AtomicInt POD struct." (patchset #3 id:40001 of https://codereview.webrtc.org/1498953002/ )
Reason for revert:
Broke downstream compile step, possibly relandable when using a MSVC version that has constexpr, other than that I'm out of ideas.

.../webrtc/base/atomicops.h:71:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const rtc::AtomicInt&'

Original issue's description:
> Reland of "Create rtc::AtomicInt POD struct."
>
> Relands https://codereview.webrtc.org/1420043008/ with brace initializers
> instead of constructors hoping that they won't introduce static
> initializers.
>
> BUG=
> R=tommi@webrtc.org
>
> Committed: https://crrev.com/84f0970d100e67a1dc4fe9a1b16b7d293302044e
> Cr-Commit-Position: refs/heads/master@{#10920}

TBR=tommi@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.webrtc.org/1505053002

Cr-Commit-Position: refs/heads/master@{#10922}
2015-12-07 22:29:21 +00:00
Peter Boström
84f0970d10 Reland of "Create rtc::AtomicInt POD struct."
Relands https://codereview.webrtc.org/1420043008/ with brace initializers
instead of constructors hoping that they won't introduce static
initializers.

BUG=
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1498953002 .

Cr-Commit-Position: refs/heads/master@{#10920}
2015-12-07 22:07:11 +00:00
Stefan Holmer
b86d4e4a8d Prepare the AudioSendStream to be hooked up to send-side BWE.
This CL contains three changes as a preparation for adding audio send streams
to the send-side BWE:
1. Audio packets are passed through the pacer with high priority. This
is needed to be able to set transport sequence numbers on the packets.
2. A feedback observer is passed to the audio stream's rtcp receiver so
that the BWE can get notified of any BWE feedback being received on the
audio feedback channel.
3. Support for the transport sequence number header extension is added
to audio send streams.

BUG=webrtc:5263,webrtc:5307
R=mflodman@webrtc.org, solenberg@webrtc.org

Review URL: https://codereview.webrtc.org/1479023002 .

Cr-Commit-Position: refs/heads/master@{#10909}
2015-12-07 09:26:32 +00:00
Peter Boström
7c704b8289 Use webrtc/base/logging.h in stefan@'s ownership.
Replaces system_wrappers' logging in call/, bitrate_controller/, pacing/
and remote_bitrate_estimator/.

BUG=webrtc:5118
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1484503002 .

Cr-Commit-Position: refs/heads/master@{#10896}
2015-12-04 15:13:12 +00:00
Erik Språng
ad113e50d2 Fix bug in calculation of averge queue time in paced sender.
Also work around a flaw in fake encoder which caused bogus perf
regression in rampup tests.

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

Review URL: https://codereview.webrtc.org/1474533006 .

Cr-Commit-Position: refs/heads/master@{#10811}
2015-11-26 15:26:25 +00:00
sprang
0a43fef6dc Allow pacer to boost bitrate in order to meet time constraints.
Currently we limit the enocder so that frames aren't encoded if the
expected pacer queue is longer than 2s. However, if the queue is full
and the bitrate suddenly drops (or there is a large overshoot), the
queue time can be long than the limit.

This CL allows the pacer to temporarily boost the pacing bitrate over
the 2s window.

BUG=

Review URL: https://codereview.webrtc.org/1412293003

Cr-Commit-Position: refs/heads/master@{#10729}
2015-11-20 17:00:41 +00:00
pbos
3c12f4dadb Revert of Create rtc::AtomicInt POD struct. (patchset #12 id:220001 of https://codereview.webrtc.org/1420043008/ )
Reason for revert:
Caused static initializers.

BUG=chromium:556866
TBR=tommi@webrtc.org

Original issue's description:
> Create rtc::AtomicInt POD struct.
>
> Prevents accidental non-atomic reads, increments and stores since
> "volatile int" doesn't enforce atomic usage.
>
> BUG=
> R=kwiberg@webrtc.org, tommi@webrtc.org
>
> Committed: https://crrev.com/b27f590ece487819c3d1fda400315e582fb975b6
> Cr-Commit-Position: refs/heads/master@{#10657}

TBR=kwiberg@webrtc.org,tommi@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.webrtc.org/1453093002

Cr-Commit-Position: refs/heads/master@{#10669}
2015-11-17 11:21:07 +00:00
pbos
b27f590ece Create rtc::AtomicInt POD struct.
Prevents accidental non-atomic reads, increments and stores since
"volatile int" doesn't enforce atomic usage.

BUG=
R=kwiberg@webrtc.org, tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1420043008

Cr-Commit-Position: refs/heads/master@{#10657}
2015-11-16 19:03:06 +00:00
Henrik Kjellander
0b9e29c87d Remove include dirs from modules/{media_file,pacing}
Also move files out of media_file/source.

BUG=webrtc:5095
TESTED=git cl try -c --bot=android_compile_rel --bot=linux_compile_rel --bot=win_compile_rel --bot=mac_compile_rel --bot=ios_rel --bot=linux_gn_rel --bot=win_x64_gn_rel --bot=mac_x64_gn_rel --bot=android_gn_rel -m tryserver.webrtc
R=asapersson@webrtc.org, perkj@webrtc.org, tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1435093002 .

Cr-Commit-Position: refs/heads/master@{#10647}
2015-11-16 10:12:32 +00:00
Henrik Kjellander
ff761fba82 modules: more interface -> include renames
This changes the following module directories:
* webrtc/modules/audio_conference_mixer/interface
* webrtc/modules/interface
* webrtc/modules/media_file/interface
* webrtc/modules/rtp_rtcp/interface
* webrtc/modules/utility/interface

To avoid breaking downstream, I followed this recipe:
1. Copy the interface dir to a new sibling directory: include
2. Update the header guards in the include directory to match the style guide.
3. Update the header guards in the interface directory to match the ones in include. This is required to avoid getting redefinitions in the not-yet-updated downstream code.
4. Add a pragma warning in the header files in the interface dir. Example:
#pragma message("WARNING: webrtc/modules/interface is DEPRECATED; "
                "use webrtc/modules/include")
5. Search for all source references to webrtc/modules/interface and update them to webrtc/modules/include (*.c*,*.h,*.mm,*.S)
6. Update all GYP+GN files. This required manual inspection since many subdirectories of webrtc/modules referenced the interface dir using ../interface etc(*.gyp*,*.gn*)

BUG=5095
TESTED=Passing compile-trybots with --clobber flag:
git cl try --clobber --bot=win_compile_rel --bot=linux_compile_rel --bot=android_compile_rel --bot=mac_compile_rel --bot=ios_rel -m tryserver.webrtc

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

Review URL: https://codereview.webrtc.org/1417683006 .

Cr-Commit-Position: refs/heads/master@{#10500}
2015-11-04 07:32:04 +00:00
Henrik Kjellander
98f53510b2 system_wrappers: rename interface -> include
BUG=webrtc:5095
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1413333002 .

Cr-Commit-Position: refs/heads/master@{#10438}
2015-10-28 17:17:50 +00:00
Peter Boström
e23e737177 Disable pacer disabling.
Since the pacer is always enabled, removing enable/disable which makes
all packet queueing succeed. Also renaming one of the ::SendPackets
::InsertPacket to avoid confusion.

BUG=webrtc:1695, webrtc:2629
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1392513002 .

Cr-Commit-Position: refs/heads/master@{#10211}
2015-10-08 09:44:29 +00:00
sprang
ebbf8a805b Make sure rtp_rtcp module doesn't directly reference anything in the pacer module, and remove build dependencies on it.
BUG=

Review URL: https://codereview.webrtc.org/1350163005

Cr-Commit-Position: refs/heads/master@{#10005}
2015-09-21 22:11:18 +00:00
Stefan Holmer
586b19bdb6 Enable probing with repeated payload packets by default.
To make this possible padding only packets will have the same timestamp
as the previously sent media packet, as long as RTX is not enabled. This
has the side effect that if we send only padding for a long time without
sending media, a receive-side jitter buffer could potentially overflow.

In practice this shouldn't be an issue, partly because RTX is recommended and
used by default, but also because padding typically is terminated before being
received by a client. It is also not an issue for bandwidth estimation as long
as abs-send-time is used instead of toffset.

BUG=chromium:425925
R=mflodman@webrtc.org, sprang@webrtc.org, tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1327933003 .

Cr-Commit-Position: refs/heads/master@{#9984}
2015-09-18 09:14:42 +00:00
henrikg
91d6edef35 Add RTC_ prefix to (D)CHECKs and related macros.
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.

Alternative solutions:
* Check if we already have defined e.g. CHECK, and don't define them in that case. This makes us depend on include order in Chromium, which is not acceptable.
* Don't allow using the macros in WebRTC headers. Error prone since if someone adds it there by mistake it may compile fine, but later break if a header in added or order is changed in Chromium. That will be confusing and hard to enforce.
* Ensure that headers that are included by an embedder don't include our macros. This would require some heavy refactoring to be maintainable and enforcable.
* Changes in Chromium for this is obviously not an option.

BUG=chromium:468375
NOTRY=true

Review URL: https://codereview.webrtc.org/1335923002

Cr-Commit-Position: refs/heads/master@{#9964}
2015-09-17 07:24:51 +00:00
henrikg
3c089d751e Add RTC_ prefix to contructormagic macros.
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.

* DISALLOW_ASSIGN -> RTC_DISALLOW_ASSIGN
* DISALLOW_COPY_AND_ASSIGN -> RTC_DISALLOW_COPY_AND_ASSIGN
* DISALLOW_IMPLICIT_CONSTRUCTORS -> RTC_DISALLOW_IMPLICIT_CONSTRUCTORS

Related CL: https://codereview.webrtc.org/1335923002/

BUG=chromium:468375
NOTRY=true

Review URL: https://codereview.webrtc.org/1345433002

Cr-Commit-Position: refs/heads/master@{#9953}
2015-09-16 12:37:52 +00:00
sprang
233bd87d45 Add RemoteEstimatorProxy for capturing receive times
For use when send-side bandwidth estimation is enabled.

Receive times need to be captured, buffered and then sent using
TransportFeedback RTCP messaged back to the send side.

BUG=webrtc:4173

Review URL: https://codereview.webrtc.org/1290813008

Cr-Commit-Position: refs/heads/master@{#9898}
2015-09-08 20:25:20 +00:00
sprang
867fb5224e Add support for transport wide sequence numbers
Also refactor packet router to use a map rather than iterate over all
rtp modules for each packet sent.

BUG=webrtc:4311

Review URL: https://codereview.webrtc.org/1247293002

Cr-Commit-Position: refs/heads/master@{#9670}
2015-08-03 11:38:48 +00:00
stefan
fe0c90501b Improve probing by ignoring small packets which otherwise break the mechanism.
These small packets are common for H.264 where the first packet of an IDR
contains the parameter sets.

BUG=4806

Review URL: https://codereview.webrtc.org/1221943002

Cr-Commit-Position: refs/heads/master@{#9639}
2015-07-27 10:13:35 +00:00
stefan
c62642c7a6 Make the BWE threshold adaptive.
This improves self-fairness and competing for resources with TCP flows.

BUG=4711

Review URL: https://codereview.webrtc.org/1151603008

Cr-Commit-Position: refs/heads/master@{#9545}
2015-07-07 11:20:40 +00:00
Henrik Kjellander
57e5fd2e60 PRESUBMIT: Improve PyLint check and add GN format check.
Add pylintrc file based on
https://code.google.com/p/chromium/codesearch#chromium/src/tools/perf/pylintrc
bit tightened up quite a bit (the one in depot_tools is far
more relaxed).

Remove a few excluded directories from pylint check and fixed/
suppressed all warnings generated.

Add GN format check + formatted all GN files using 'gn format'.
Cleanup redundant rules in tools/PRESUBMIT.py

TESTED=Ran 'git cl presubmit -vv', fixed the PyLint violations.
Ran it again with a modification in webrtc/build/webrtc.gni, formatted
all the GN files and ran it again.

R=henrika@webrtc.org, phoglund@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9274}
2015-05-25 10:55:50 +00:00
Stefan Holmer
01b488831b Use padding to achieve bitrate probing if the initial key frame has too few packets.
BUG=4350
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9134}
2015-05-05 08:21:32 +00:00
Stefan Holmer
e590416722 Moving the pacer and the pacer thread to ChannelGroup.
This means all channels within the same group will share the same pacing queue and scheduler. It also means padding will be computed and sent by a single pacer. To accomplish this I also introduce a PacketRouter which finds the RTP module which owns the packet to be paced out.

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

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

Cr-Commit-Position: refs/heads/master@{#8864}
2015-03-26 10:11:22 +00:00
kjellander@webrtc.org
14665ff7d4 Roll chromium_revision e144d30..6fdb142 (318658:318841) + remove OVERRIDE macro
Clang version changed 223108:230914
Details: e144d30..6fdb142/tools/clang/scripts/update.sh

Removes the OVERRIDE macro defined in:
* webrtc/base/common.h
* webrtc/typedefs.h

The majority of the source changes were done by running this in src/:
perl -0pi -e "s/virtual\s([^({;]*(\([^({;]*\)[^({;]*))(OVERRIDE|override)/\1override/sg" `find {talk,webrtc} -name "*.h"  -o -name "*.cc*" -o -name "*.mm*"`

which converted all:
virtual Foo() OVERRIDE
functions to:
Foo() override

Then I manually edited:
* talk/media/webrtc/fakewebrtccommon.h
* webrtc/test/fake_common.h

Remaining uses of OVERRIDE was fixed by search+replace.

Manual edits were done to fix virtual destructors that were
overriding inherited ones.

Finally a build error related to the pure virtual definitions of
Read, Write and Rewind in common_types.h required a bit of
refactoring in:
* webrtc/common_types.cc
* webrtc/common_types.h
* webrtc/system_wrappers/interface/file_wrapper.h
* webrtc/system_wrappers/source/file_impl.cc

This roll should make it possible for us to finally re-enable deadlock
detection for TSan on the buildbots.

BUG=4106
R=pbos@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8596}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8596 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 13:04:54 +00:00
kwiberg@webrtc.org
00b8f6b364 Use base/scoped_ptr.h; system_wrappers/interface/scoped_ptr.h is going away
BUG=
R=andrew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8517}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8517 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-26 14:43:50 +00:00
stefan@webrtc.org
e9f0f591b5 Enable bitrate probing by default in PacedSender.
BUG=crbug:425925
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8379}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8379 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-16 15:48:29 +00:00
sprang@webrtc.org
0200f70792 Set webrtc_rtp category to be disabled by default.
Should not affect webrtc standalone. For chromium, disabling helps
mitigate viewing performance problems.

BUG=chromium:441440
R=mflodman@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8375}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8375 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-16 12:06:48 +00:00
andresp@webrtc.org
86e1e487e7 Move system_wrappers.gyp files to the proper directory.
Build targets should not refer to non-subpaths as was happening before when
 source/system_wrappers.gyp refers to ../interface/ files.

R=kjellander@webrtc.org, tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8057 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-14 09:30:52 +00:00
pkasting@chromium.org
0b1534c52e Use int64_t for milliseconds more often, primarily for TimeUntilNextProcess.
This fixes a variety of MSVC warnings about value truncations when implicitly
storing the 64-bit values we get back from e.g. TimeTicks in 32-bit objects, and
removes the need for a number of explicit casts.

This also moves a number of constants so they're declared right where they're used, which is easier to read and maintain, and makes some of them of integral type rather than using the "enum hack".

BUG=chromium:81439
TEST=none
R=tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7905 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-15 22:09:40 +00:00