Commit graph

36 commits

Author SHA1 Message Date
Markus Handell
32565f684b WebRtcVideoEngine: Enable encoded frame sink.
This change ultimately enables wiring up VideoRtpReceiver::OnGenerateKeyFrame
and OnEncodedSinkEnabled into internal::VideoReceiveStream so that encoded
frames can flow to sinks installed in VideoTrackSourceInterface.

Bug: chromium:1013590
Change-Id: I136132c210e5811547f2522ddc371d0acac90664
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161093
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30001}
2019-12-04 11:15:51 +00:00
Saurav Das
934afc6ba1 Deprecate RtpReceiver's SetParameters method
This removes the SetParameters method from AudioRtpReceiver and Video
RtpReceiver, which is currently not used and is not part of the
specifications.


Bug: webrtc:11111
Change-Id: I6f67773bfef2d4b51e9ab670bde17b5fbf5f94c3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159307
Reviewed-by: Patrik Höglund <phoglund@google.com>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Saurav Das <dinosaurav@chromium.org>
Cr-Commit-Position: refs/heads/master@{#29995}
2019-12-03 19:50:42 +00:00
philipel
16cec3be2c Added allow_codec_switching parameter to RTCConfig.
Bug: webrtc:10795
Change-Id: I5507f1d801e262223bd18198c685b5fffa644b0b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157891
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29612}
2019-10-25 11:06:31 +00:00
Niels Möller
ac0a4cbbd8 Reland "Fix GetStats bytesSent/Received, wireup headerBytesSent/Received"
This is a reland of fbde32e596

The chromium problem should be fixed with
https://chromium-review.googlesource.com/c/chromium/src/+/1862437

Original change's description:
> Fix GetStats bytesSent/Received, wireup headerBytesSent/Received
>
> Changes the standard GetStats, legacy GetStats unchanged.
>
> Bug: webrtc:10525
> Change-Id: Ie10fe8079f1d8b4cc6bbe513f6a2fc91477b5441
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156084
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29462}

Tbr: kwiberg@webrtc.org
Bug: webrtc:10525
Change-Id: I3b61f9535aa3f1fca2ed84f068233803d4ec9fe2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157045
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29485}
2019-10-15 10:43:59 +00:00
Mirko Bonadei
ef0627fb50 Revert "Fix GetStats bytesSent/Received, wireup headerBytesSent/Received"
This reverts commit fbde32e596.

Reason for revert: It seems to break WebRTC FYI tests in Chromium.

https://ci.chromium.org/p/chromium/builders/webrtc.fyi/WebRTC%20Chromium%20FYI%20Linux%20Tester/4763

Original change's description:
> Fix GetStats bytesSent/Received, wireup headerBytesSent/Received
> 
> Changes the standard GetStats, legacy GetStats unchanged.
> 
> Bug: webrtc:10525
> Change-Id: Ie10fe8079f1d8b4cc6bbe513f6a2fc91477b5441
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156084
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29462}

TBR=kwiberg@webrtc.org,hbos@webrtc.org,nisse@webrtc.org,hta@webrtc.org

Change-Id: I6a983ea4d5ff38e49f096a8ff5cd9b426768f955
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10525
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157043
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29478}
2019-10-15 08:55:06 +00:00
Niels Möller
fbde32e596 Fix GetStats bytesSent/Received, wireup headerBytesSent/Received
Changes the standard GetStats, legacy GetStats unchanged.

Bug: webrtc:10525
Change-Id: Ie10fe8079f1d8b4cc6bbe513f6a2fc91477b5441
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156084
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29462}
2019-10-14 13:07:13 +00:00
Elad Alon
80f53b785b Extend WebRTC-Video-MinVideoBitrate to experiment per-codec
The experiment was extended to support per-codec minimum bitrates
for the following codecs:
 * VP8
 * VP9
 * H.264

The old semantic meaning for the field trial is retained, in that
specifying "br:" applies a minimum bitrate to all codecs. If "br:"
is not specified, the per-codec minimum config is consulted.

Bug: webrtc:11024
Change-Id: I89630262c7710771d5e25d039fe35f0bd217b58a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156171
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29450}
2019-10-11 15:34:33 +00:00
Saurav Das
ff27da5ca1 Add/remove receive streams with SSRC 0 from media channels
This enables creation and removal of receive streams with SSRC 0.
Several related methods, for example SetOutputVolume, still use 0 as a
special value.

Bug: webrtc:8694
Change-Id: I341e6bd6c981c9838997510d8d712ad2948f6460
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152780
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Saurav Das <dinosaurav@chromium.org>
Cr-Commit-Position: refs/heads/master@{#29398}
2019-10-07 23:01:28 +00:00
Sebastian Jansson
1b83a9e400 Only handle each RTCP once.
Previously, each RTCP packet was handled several times in a row, once
per m-section. This caused various weirdness and log warning spam, in
particular when using unified plan.

The cause was that the packets were wired trough each BaseChannel
instance up to the Call class. With this fix, the RTCP packets are wired
once per RtpTransportInternal via the common peer connection class.

Bug: chromium:1002875
Change-Id: I41c4eb3b68e215ebe0f2c6fb93ae0ee73335b89a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152668
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29226}
2019-09-18 16:54:39 +00:00
philipel
d9cc8c08dc Encoder switching based on network and/or resolution conditions.
In this CL:
 - Renamed EncoderFailureCallback to EncoderSwitchRequestCallback. An encoder
   switch request can now also be made with a configuration that specifies which
   codec/implementation to switch to.
 - Added "WebRTC-NetworkCondition-EncoderSwitch" field trial that specifies
   switching conditions and desired codec to switch to.
 - Added checks to trigger the switch based on these conditions.

Bug: webrtc:10795
Change-Id: I9d3a9a39a7c4827915a40bdceed10b581d70b90a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151900
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29196}
2019-09-16 13:43:29 +00:00
Niels Möller
7bf7a427bf Delete flag VideoReceiveStream::Config::Rtp::remb
This flag became unused in https://codereview.webrtc.org/2789843002;
it was set, but the setting had no effect.

Bug: webrtc:7135
Change-Id: I012a7c3600bc7a371c7a589695823b30ed5647a5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152661
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29192}
2019-09-16 11:20:55 +00:00
Ying Wang
8c5520cfca Reland "Make the min video bitrate in VideoSendStream configurable."
This reverts commit 1d2149c59c.

Reason for revert: The failed test is flaky recently.

Original change's description:
> Revert "Make the min video bitrate in VideoSendStream configurable."
> 
> This reverts commit b2fb0b937c.
> 
> Reason for revert: breaking downstream projects
> 
> Original change's description:
> > Make the min video bitrate in VideoSendStream configurable.
> > 
> > "WebRTC-VP8-Forced-Fallback-Encoder-v2" affect VP8 only, "WebRTC-Video-MinVideoBitrate" apply to all codec. When both field trial string are set, the bitrate set by "WebRTC-VP8-Forced-Fallback-Encoder-v2" will be used.
> > 
> > Bug: webrtc:10915
> > Change-Id: I63da5909c04ecfad99e93a535fbf71293890fd11
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151135
> > Commit-Queue: Ying Wang <yinwa@webrtc.org>
> > Reviewed-by: Åsa Persson <asapersson@webrtc.org>
> > Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> > Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#29047}
> 
> TBR=ilnik@webrtc.org,asapersson@webrtc.org,crodbro@webrtc.org,yinwa@webrtc.org
> 
> Change-Id: If61c18a36ac2778226da4d2631da1c18e7d4ef81
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:10915
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151240
> Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29049}

TBR=ilnik@webrtc.org,alessiob@webrtc.org,asapersson@webrtc.org,crodbro@webrtc.org,yinwa@webrtc.org

Change-Id: I8df97f7b8ecbea1215eef44d485c179dc4e6246c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10915
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151241
Reviewed-by: Ying Wang <yinwa@webrtc.org>
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29050}
2019-09-03 15:25:31 +00:00
Alessio Bazzica
1d2149c59c Revert "Make the min video bitrate in VideoSendStream configurable."
This reverts commit b2fb0b937c.

Reason for revert: breaking downstream projects

Original change's description:
> Make the min video bitrate in VideoSendStream configurable.
> 
> "WebRTC-VP8-Forced-Fallback-Encoder-v2" affect VP8 only, "WebRTC-Video-MinVideoBitrate" apply to all codec. When both field trial string are set, the bitrate set by "WebRTC-VP8-Forced-Fallback-Encoder-v2" will be used.
> 
> Bug: webrtc:10915
> Change-Id: I63da5909c04ecfad99e93a535fbf71293890fd11
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151135
> Commit-Queue: Ying Wang <yinwa@webrtc.org>
> Reviewed-by: Åsa Persson <asapersson@webrtc.org>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29047}

TBR=ilnik@webrtc.org,asapersson@webrtc.org,crodbro@webrtc.org,yinwa@webrtc.org

Change-Id: If61c18a36ac2778226da4d2631da1c18e7d4ef81
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10915
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151240
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29049}
2019-09-03 15:12:31 +00:00
Ying Wang
b2fb0b937c Make the min video bitrate in VideoSendStream configurable.
"WebRTC-VP8-Forced-Fallback-Encoder-v2" affect VP8 only, "WebRTC-Video-MinVideoBitrate" apply to all codec. When both field trial string are set, the bitrate set by "WebRTC-VP8-Forced-Fallback-Encoder-v2" will be used.

Bug: webrtc:10915
Change-Id: I63da5909c04ecfad99e93a535fbf71293890fd11
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151135
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29047}
2019-09-03 14:35:13 +00:00
Ying Wang
4271afbc30 Fix the bug and reland "Make min video target bitrate configurable."
This reverts commit 7e896d0162.

Reason for revert: Fixed the bug and submit again.

Original change's description:
> Revert "Make min video target bitrate configurable."
>
> This reverts commit a471e797bc.
>
> Reason for revert: This CL adds a new symbol to .data instead of .rodata and the symbol should be a constant.
>
> Original change's description:
> > Make min video target bitrate configurable.
> >
> > Change-Id: I5adf1e675be2114b648878078a8f2e6808c390c7
> > Bug: webrtc:10915
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150331
> > Commit-Queue: Ying Wang <yinwa@webrtc.org>
> > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#28959}
>
> TBR=nisse@webrtc.org,sprang@webrtc.org,crodbro@webrtc.org,yinwa@webrtc.org
>
> Change-Id: I90f23c2c849a6ec518710bbcbdd8e9eb249e9de8
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:10915
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150534
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28967}

TBR=mbonadei@webrtc.org,nisse@webrtc.org,sprang@webrtc.org,crodbro@webrtc.org,yinwa@webrtc.org

Change-Id: Ieef4972502e3c1e5a6e80d8909718dd312486a8e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10915
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150537
Reviewed-by: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28971}
2019-08-27 11:12:12 +00:00
Mirko Bonadei
7e896d0162 Revert "Make min video target bitrate configurable."
This reverts commit a471e797bc.

Reason for revert: This CL adds a new symbol to .data instead of .rodata and the symbol should be a constant.

Original change's description:
> Make min video target bitrate configurable.
> 
> Change-Id: I5adf1e675be2114b648878078a8f2e6808c390c7
> Bug: webrtc:10915
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150331
> Commit-Queue: Ying Wang <yinwa@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28959}

TBR=nisse@webrtc.org,sprang@webrtc.org,crodbro@webrtc.org,yinwa@webrtc.org

Change-Id: I90f23c2c849a6ec518710bbcbdd8e9eb249e9de8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10915
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150534
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28967}
2019-08-27 07:28:44 +00:00
Ying Wang
a471e797bc Make min video target bitrate configurable.
Change-Id: I5adf1e675be2114b648878078a8f2e6808c390c7
Bug: webrtc:10915
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150331
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28959}
2019-08-26 14:21:31 +00:00
Steve Anton
2d2bbb16e5 Filter out duplicate receive codecs in the media engine
A malformed session description can assign the same codec to
different payload types which would hit a DCHECK in the
WebRtcVideoEngine. This changes the video engine to just ignore
the duplicate payload type instead of failing.

Bug: chromium:987598
Change-Id: I2034dd11d315ef05448630c860c7ca3f69ef700b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147943
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28796}
2019-08-07 17:29:12 +00:00
Bjorn A Mellem
da4f09315f Reland "Only include payload in bytes sent/received."
This is a reland of 74a1b4b132

Original change's description:
> Only include payload in bytes sent/received.
>
> According to https://www.w3.org/TR/webrtc-stats/#sentrtpstats-dict* and
> https://tools.ietf.org/html/rfc3550#section-6.4.1, the bytes sent
> statistic should not include headers or padding.
>
> Similarly, according to
> https://www.w3.org/TR/webrtc-stats/#inboundrtpstats-dict*, bytes
> received are calculated the same way as bytes sent (eg. not including
> padding or headers).
>
> This change stops adding padding and headers to these statistics.
>
> Bug: webrtc:8516,webrtc:10525
> Change-Id: I891ad5a11a493cc3212afe93e13f62795bf4031f
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146180
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28647}

Bug: webrtc:8516, webrtc:10525
Change-Id: Iaa1613e5becdfaa0af0f6b9f00e5b871937a719c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147520
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28731}
2019-08-01 01:08:24 +00:00
Florent Castelli
66b3860fc9 Remove WebRTC-SimulcastScreenshare and enable it by default
As per the spec, you should be able to use simulcast with screenshare.
We remove the field trial for it and keep the old behavior only for
screenshare sources with conference flag on.

Bug: webrtc:8785
Change-Id: I1d6d4e18256fb5cfe0195620706de068f25b8d9b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144785
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28543}
2019-07-11 16:47:10 +00:00
philipel
fdf74bdb5f Remove non implemented function from WebRtcVideoChannel.
Bug: none
Change-Id: I5136e4dc169fc162f583487a13bf826e7e9bb858
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144521
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28490}
2019-07-05 10:06:47 +00:00
philipel
e8ed83003d WebRtcVideoChannel encoder fallback.
In this CL:
 - Added WEBRTC_VIDEO_CODEC_ENCODER_FAILURE return code that can
   be returned by the encoder wrapper in case of a broken encoder.
 - Added EncoderFailureCallback interface that can be called
   to request encoder fallback to be performed. Implemented by
   WebRtcVideoChannel and called from the VideoStreamEncoder.
 - Updated SelectSendVideoCodec to select all compatible codecs instead
   of just one.

Bug: webrtc:10795
Change-Id: I87a83fd02e48c40493c930471c06c3d0941031ab
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140888
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28462}
2019-07-03 12:31:42 +00:00
philipel
98cbb22911 Moved AsyncInvoker to be destructed first in WebRtcVideoSendStream.
Bug: none
Change-Id: Ie90c9d6fd415678affcc4acefdd045334d83d8b2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140864
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28283}
2019-06-14 11:39:42 +00:00
Elad Alon
fadb1811a8 Negotiate use of RTCP loss notification feedback (LNTF)
When the LossNotifications field trial is in effect, LNTF should
be offered/accepted in the SDP message, not assumed to be configured
on both sides equally.

Bug: webrtc:10662
Change-Id: Ibd827779bd301821cbb4196857f6baebfc9e7dc2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138079
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28056}
2019-05-24 12:44:14 +00:00
Anton Sukhanov
4f08faae82 Introduce MediaTransportConfig
Currently we pass media_transport from PeerConnection to media layers. The goal of this change is to replace media_transport with struct MediaTransportCondif, which will enable adding different transports (i.e. we plan to add DatagramTransport) as well as other media-transport related settings without changing 100s of files.

TODO: In the future we should consider also adding rtp_transport in the same config, but it will require a bit more work, so I did not include it in the same change.


Bug: webrtc:9719
Change-Id: Ie31e1faa3ed9e6beefe30a3da208130509ce00cd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137181
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28016}
2019-05-21 18:58:33 +00:00
Jonas Oreland
a3aa9bd75b Make VideoBitrateAllocatorFactory injectable.
This patch makes VideoBitrateAllocatorFactory injectable
by adding to PeerConnectionDependencies instead of allowing it to be
overridden using MediaEngine (on PeerConnectionFactory).

With this patch VideoBitrateAllocatorFactory is owned
by the PeerConnection.

WANT_LGTM (examples) : sakal@
WANT_LGTM (api/pc) : steveanton@

Bug: webrtc:10547
Change-Id: I768d400a621f2b7a98795eb7f410adb48651bfd6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132706
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27654}
2019-04-17 06:17:34 +00:00
Jonas Oreland
6d83592367 Improve handling of packets with unknown ssrc.
Add a feature (gated by field trial) that stores
packets with unknown ssrc in a circular buffer
and replays them once a receive stream with matching
ssrc is created.

This improves situation where media is incoming
but signaling or SetFrameDecryptor is slow.

BUG=webrtc:10405

Change-Id: I7c7b2f4bd96c942c09e96db0cdae4ce5efef2541
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127543
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27159}
2019-03-18 11:34:43 +00:00
Amit Hilbuch
e7a5f7bfae Modifying MediaChannel to accept CopyOnWriteBuffer by value.
MediaChannel accepted the RtpPacket buffers through non-const pointer.
This is both unclear and introduces questions regarding if the buffer is
actually copied or not.
This change modifies the method to accept by value to reduce ambiguity.
Usage of the non-const data() method which could potentially copy the
buffer contents is also reduced in favor of cdata() which never copies.

Bug: None
Change-Id: I3b2daef0d31cb6aacceb46c86da3a40ce836242b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127340
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Amit Hilbuch <amithi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27090}
2019-03-12 23:49:57 +00:00
Steve Anton
e25f595c0a Guard preferred_dscp with the network interface lock
Bug: webrtc:10389
Change-Id: I96112c2135c9c2d545140feeef6345f8a9b81086
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126540
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27043}
2019-03-08 23:59:41 +00:00
Steve Anton
ef50b25690 Remove lock in WebRtcVideoEngine
WebRtcVideoEngine is only ever accessed from one thread, so remove
the lock and replace it with ThreadChecker assertions.

Bug: None
Change-Id: I8c34eb6473f0ebaaaafe8a163c3f5d6f19074021
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125240
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26957}
2019-03-04 19:17:24 +00:00
Ruslan Burakov
493a650b1e Propagate base minimum delay from video jitter buffer to webrtc/api.
On api level two methods were added to api/media_stream_interface.cc on VideoSourceInterface,
GetLatency and SetLatency. Latency is measured in seconds, delay in milliseconds but both describes
the same concept.


Bug: webrtc:10287
Change-Id: Ib8dc62a4d73f63fab7e10b82c716096ee6199957
Reviewed-on: https://webrtc-review.googlesource.com/c/123482
Commit-Queue: Ruslan Burakov <kuddai@google.com>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26877}
2019-02-27 15:08:34 +00:00
Christian Fremerey
6c02541abe Revert "Delete video source proxying in WebRtcVideoSendStream"
This reverts commit b66003ca79.

Reason for revert: Causes bot failures in Chromium, see https://chromium-review.googlesource.com/c/chromium/src/+/1470391

Original change's description:
> Delete video source proxying in WebRtcVideoSendStream
>
> Bug: webrtc:10147
> Change-Id: Ib9f399e79d99f7d8db53fa38ef4b92986913ac26
> Reviewed-on: https://webrtc-review.googlesource.com/c/121569
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26633}

TBR=nisse@webrtc.org,sprang@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:10147
No-Try: True
Change-Id: I80395333d2be8fd3329c0bcdd6ed33d994a01ae3
Reviewed-on: https://webrtc-review.googlesource.com/c/122940
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Christian Fremerey <chfremer@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26672}
2019-02-13 22:42:43 +00:00
Niels Möller
b66003ca79 Delete video source proxying in WebRtcVideoSendStream
Bug: webrtc:10147
Change-Id: Ib9f399e79d99f7d8db53fa38ef4b92986913ac26
Reviewed-on: https://webrtc-review.googlesource.com/c/121569
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26633}
2019-02-11 12:43:31 +00:00
Anders Carlsson
45340ca824 Remove legacy video codec factories.
Removes the deprecated video codec factories and the related flag and
helper classes.

Bug: webrtc:7925
Change-Id: I0a6d1666ece9ad074fefc79b626ba241765e1b98
Reviewed-on: https://webrtc-review.googlesource.com/c/113940
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26245}
2019-01-14 14:56:40 +00:00
Steve Anton
10542f21c8 (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries
Mechanically generated by running this command:

tools_webrtc/do-renames.sh update all-renames.txt && git cl format

Then manually updating:

tools_webrtc/sanitizers/tsan_suppressions_webrtc.cc

Bug: webrtc:10159
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I54824cd91dada8fc3ee3d098f971bc319d477833
Reviewed-on: https://webrtc-review.googlesource.com/c/115653
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26226}
2019-01-11 17:11:39 +00:00
Steve Anton
1c05765831 (3) Rename files to snake_case: move the files
Mechanically generated with this command:

tools_webrtc/do-rename.sh move all-renames.txt

Bug: webrtc:10159
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I8b05b6eab9b9d18b29c2199bbea239e9add1e690
Reviewed-on: https://webrtc-review.googlesource.com/c/115481
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26225}
2019-01-11 17:05:20 +00:00
Renamed from media/engine/webrtcvideoengine.h (Browse further)