1389 Commits

Author SHA1 Message Date
nisse
8e7eee0351 Revert of Use RtxReceiveStream. (patchset #5 id:320001 of https://codereview.webrtc.org/3006063002/ )
Reason for revert:
This change appears to break ulpfec, with severe regressions, e.g., for webrtc_perf_test FullStackTest.ForemanCifPlr5Ulpfec

Original issue's description:
> Reland of Use RtxReceiveStream. (patchset #1 id:1 of https://codereview.webrtc.org/3010983002/ )
>
> Reason for revert:
> Intend to fix perf failures and reland.
>
> Original issue's description:
> > Revert of Use RtxReceiveStream. (patchset #5 id:80001 of https://codereview.webrtc.org/3008773002/ )
> >
> > Reason for revert:
> > A few perf tests broken, including
> >
> > RampUpTest.UpDownUpAbsSendTimeSimulcastRedRtx
> > RampUpTest.UpDownUpTransportSequenceNumberRtx
> > RampUpTest.UpDownUpTransportSequenceNumberPacketLoss
> >
> >
> > Original issue's description:
> > > Use RtxReceiveStream.
> > >
> > > This also has the beneficial side-effect that when a media stream
> > > which is protected by FlexFEC receives an RTX retransmission, the
> > > retransmitted media packet is passed into the FlexFEC machinery,
> > > which should improve its ability to recover packets via FEC.
> > >
> > > BUG=webrtc:7135
> > >
> > > Review-Url: https://codereview.webrtc.org/3008773002
> > > Cr-Commit-Position: refs/heads/master@{#19649}
> > > Committed: 5c0f6c62ea
> >
> > TBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:7135
> >
> > Review-Url: https://codereview.webrtc.org/3010983002
> > Cr-Commit-Position: refs/heads/master@{#19653}
> > Committed: 3c39c0137a
>
> TBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> BUG=webrtc:7135
>
> Review-Url: https://codereview.webrtc.org/3006063002
> Cr-Commit-Position: refs/heads/master@{#19715}
> Committed: 35713eaf56

TBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/3007303002
Cr-Commit-Position: refs/heads/master@{#19744}
2017-09-08 12:51:54 +00:00
nisse
a64685325c Revert of Delete Rtx-related methods from RTPPayloadRegistry. (patchset #3 id:40001 of https://codereview.webrtc.org/3006993002/ )
Reason for revert:
This has to be reverted to enable reverting cl https://codereview.webrtc.org/3006063002/, which seems to have broken ulpfec.

Original issue's description:
> Delete Rtx-related methods from RTPPayloadRegistry.
>
> Delete methods IsRtx, IsEncapsulated and RestoreOriginalPacket.
>
> BUG=webrtc:7135
>
> Review-Url: https://codereview.webrtc.org/3006993002
> Cr-Commit-Position: refs/heads/master@{#19739}
> Committed: 5b4b522641

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

Review-Url: https://codereview.webrtc.org/3011093002
Cr-Commit-Position: refs/heads/master@{#19742}
2017-09-08 12:00:54 +00:00
nisse
5b4b522641 Delete Rtx-related methods from RTPPayloadRegistry.
Delete methods IsRtx, IsEncapsulated and RestoreOriginalPacket.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/3006993002
Cr-Commit-Position: refs/heads/master@{#19739}
2017-09-08 09:11:54 +00:00
ilnik
50864a8f4b Add reporting of googContentType via GetStats on send side
BUG=webrtc:8174

Review-Url: https://codereview.webrtc.org/3005193002
Cr-Commit-Position: refs/heads/master@{#19719}
2017-09-06 19:32:35 +00:00
sprang
ff19d35bae Fix FrameConfigs used for VP8 with four temporal layers.
sync flag should only be true if:

* temporal layer > 0
* frame predics _only_ from tl0 (last)

Furthermore, flags should not predict from a buffer unless it has been
previously updated in the current iteration for the pattern.

I also added an experiment with an alternative pattern for a three
layer setup, where loose some efficieny by halving the pattern but
gain a little bit by updating arf for the top layer. The theory is that
this will cause fewer frame drops since we don't have as much
dependency on previous frames in the upper layer (which might not be
retransmitted).

BUG=webrtc:8162

Review-Url: https://codereview.webrtc.org/3003823003
Cr-Commit-Position: refs/heads/master@{#19716}
2017-09-06 14:14:02 +00:00
nisse
35713eaf56 Reland of Use RtxReceiveStream. (patchset #1 id:1 of https://codereview.webrtc.org/3010983002/ )
Reason for revert:
Intend to fix perf failures and reland.

Original issue's description:
> Revert of Use RtxReceiveStream. (patchset #5 id:80001 of https://codereview.webrtc.org/3008773002/ )
>
> Reason for revert:
> A few perf tests broken, including
>
> RampUpTest.UpDownUpAbsSendTimeSimulcastRedRtx
> RampUpTest.UpDownUpTransportSequenceNumberRtx
> RampUpTest.UpDownUpTransportSequenceNumberPacketLoss
>
>
> Original issue's description:
> > Use RtxReceiveStream.
> >
> > This also has the beneficial side-effect that when a media stream
> > which is protected by FlexFEC receives an RTX retransmission, the
> > retransmitted media packet is passed into the FlexFEC machinery,
> > which should improve its ability to recover packets via FEC.
> >
> > BUG=webrtc:7135
> >
> > Review-Url: https://codereview.webrtc.org/3008773002
> > Cr-Commit-Position: refs/heads/master@{#19649}
> > Committed: 5c0f6c62ea
>
> TBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:7135
>
> Review-Url: https://codereview.webrtc.org/3010983002
> Cr-Commit-Position: refs/heads/master@{#19653}
> Committed: 3c39c0137a

TBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/3006063002
Cr-Commit-Position: refs/heads/master@{#19715}
2017-09-06 14:03:16 +00:00
kwiberg
84f6a3fc6b Move optional.h to webrtc/api/
We use Optional in our public API, so its header should be in
webrtc/api/.

BUG=webrtc:8205

Review-Url: https://codereview.webrtc.org/3011943002
Cr-Commit-Position: refs/heads/master@{#19693}
2017-09-05 15:43:13 +00:00
mbonadei
9c296b3490 Tightening visibility and removing a public_dep.
This CL aligns the visibility and the dependency between the _objc
and the _generic targets to the standard decided in:
https://codereview.webrtc.org/3001623003.

BUG=webrtc:7743

Review-Url: https://codereview.webrtc.org/3010133002
Cr-Commit-Position: refs/heads/master@{#19687}
2017-09-05 12:11:41 +00:00
ilnik
2e1b40bdf6 Implement googContentType GetStats metric reported on receive side.
Reported per video stream as a string.

BUG=webrtc:8174

Review-Url: https://codereview.webrtc.org/3009793002
Cr-Commit-Position: refs/heads/master@{#19667}
2017-09-04 14:57:17 +00:00
philipel
d4fac6957e Unwrap picture ids in the RtpFrameReferencerFinder.
First CL to avoid working with wrapping picture ids. After the references of
a frame has been determined they are then unwrapped.

BUG=webrtc:7874

Review-Url: https://codereview.webrtc.org/2985283002
Cr-Commit-Position: refs/heads/master@{#19663}
2017-09-04 14:03:46 +00:00
nisse
3c39c0137a Revert of Use RtxReceiveStream. (patchset #5 id:80001 of https://codereview.webrtc.org/3008773002/ )
Reason for revert:
A few perf tests broken, including

RampUpTest.UpDownUpAbsSendTimeSimulcastRedRtx
RampUpTest.UpDownUpTransportSequenceNumberRtx
RampUpTest.UpDownUpTransportSequenceNumberPacketLoss

Original issue's description:
> Use RtxReceiveStream.
>
> This also has the beneficial side-effect that when a media stream
> which is protected by FlexFEC receives an RTX retransmission, the
> retransmitted media packet is passed into the FlexFEC machinery,
> which should improve its ability to recover packets via FEC.
>
> BUG=webrtc:7135
>
> Review-Url: https://codereview.webrtc.org/3008773002
> Cr-Commit-Position: refs/heads/master@{#19649}
> Committed: 5c0f6c62ea

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

Review-Url: https://codereview.webrtc.org/3010983002
Cr-Commit-Position: refs/heads/master@{#19653}
2017-09-04 11:22:15 +00:00
ilnik
75204c5ccd Change reporting of timing frames conditions in GetStats on receive side
Instead of the longest frame since the last GetStats call, the longest
frame received during last 10 seconds should be returned in GetStats().

Previous way is not a good idea because there are maybe several
consumers of GetStats calls. If not all of them parse timing frame
reports, some of them may be lost.

Also, streamline reporting of TimingFrames via GetStats (remove separate
methods and use VideoReceiveStream::Stats struct instead).

BUG=webrtc:7594

Review-Url: https://codereview.webrtc.org/3008983002
Cr-Commit-Position: refs/heads/master@{#19650}
2017-09-04 10:35:40 +00:00
nisse
5c0f6c62ea Use RtxReceiveStream.
This also has the beneficial side-effect that when a media stream
which is protected by FlexFEC receives an RTX retransmission, the
retransmitted media packet is passed into the FlexFEC machinery,
which should improve its ability to recover packets via FEC.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/3008773002
Cr-Commit-Position: refs/heads/master@{#19649}
2017-09-04 10:14:40 +00:00
Stefan Holmer
1acbd68718 Move RtpExtension to api/ directory and config.h/.cc to call/.
BUG=webrtc:5876
R=deadbeef@webrtc.org, solenberg@webrtc.org

Review-Url: https://codereview.webrtc.org/3004723002 .
Cr-Commit-Position: refs/heads/master@{#19639}
2017-09-01 13:29:30 +00:00
ilnik
2ae19db7d0 Fix alr tests config
BUG=chromium:760900,webrtc:8032

Review-Url: https://codereview.webrtc.org/3007863003
Cr-Commit-Position: refs/heads/master@{#19626}
2017-08-31 11:46:45 +00:00
oprypin
6e09d875fb Replace remaining gflags usages with rtc_base/flags
Continued from https://codereview.webrtc.org/2995363002

BUG=webrtc:7644

Review-Url: https://codereview.webrtc.org/3005483002
Cr-Commit-Position: refs/heads/master@{#19624}
2017-08-31 10:21:39 +00:00
mbonadei
16adf03d25 Recently we moved webrtc/base to webrtc/rtc_base, so these
directives in our DEPS files are not needed anymore.

Includes from webrtc/rtc_base are also whitelisted in webrtc/DEPS
so we don't have to whitelist it in all the others DEPS files.

BUG=webrtc:7634
NOTRY=True

Review-Url: https://codereview.webrtc.org/3006583002
Cr-Commit-Position: refs/heads/master@{#19601}
2017-08-30 11:45:58 +00:00
ilnik
6d5b4d6fe1 Piggybacking simulcast id and ALR experiment id into video content type extension.
Use it to slice UMA video receive statis.

BUG=8032

Review-Url: https://codereview.webrtc.org/2986893002
Cr-Commit-Position: refs/heads/master@{#19598}
2017-08-30 10:32:14 +00:00
ilnik
f4ded682e9 Add SentToInputFpsRatioPercent UMA metric on send side
New metric is a ratio between SentFramesPerSecond and
InputFramesPerSecond. It's needed to measure how much of input frames
are actually sent.

BUG=webrtc:8178

Review-Url: https://codereview.webrtc.org/3010723002
Cr-Commit-Position: refs/heads/master@{#19596}
2017-08-30 09:30:20 +00:00
erikvarga
579de6faef Add a new frame generator that cycles through randomly generated slides.
Like YuvFileGenerator, this also updates the display with a new slide on every Nth frame, but it generates the slides itself instead of reading them from files.

BUG=webrtc:8138

Review-Url: https://codereview.webrtc.org/3003193002
Cr-Commit-Position: refs/heads/master@{#19585}
2017-08-29 16:12:57 +00:00
oprypin
9b2f20c618 Replace gflags usages with rtc_base/flags in all targets based on test_main
BUG=webrtc:7644

Review-Url: https://codereview.webrtc.org/2995363002
Cr-Commit-Position: refs/heads/master@{#19580}
2017-08-29 12:51:57 +00:00
mbonadei
5212700c79 Removing dependencies on stub headers within WebRTC.
Headers webrtc/video_receive_stream.h and webrtc/video_send_stream.h
have been moved to webrtc/call in https://codereview.webrtc.org/3000253002,
this CL is just switching WebRTC internal dependencies to actual headers
instead of depending on the backward compatibility ones.

BUG=webrtc:8107

Review-Url: https://codereview.webrtc.org/3007553002
Cr-Commit-Position: refs/heads/master@{#19561}
2017-08-28 13:46:48 +00:00
ilnik
d986d76806 Update jpeg writer to compile on iOS and document it better
Original implementation of jpeg writer didn't compile on iOS at all.
This required clients to exclude some code using defines, which leads to
more complicated code.

Now, instead, jpeg writer will compile but will do nothing on iOS. Clients'
code don't need any additional checks now.

BUG=none

Review-Url: https://codereview.webrtc.org/3004603002
Cr-Commit-Position: refs/heads/master@{#19558}
2017-08-28 13:08:33 +00:00
mbonadei
95c8f65382 Now that https://codereview.webrtc.org/3003643002 is landed we can
remove rtc_base_approved from the public_deps list of rtc_task_queue.

BUG=webrtc:8160
NOTRY=True

Review-Url: https://codereview.webrtc.org/3008553002
Cr-Commit-Position: refs/heads/master@{#19551}
2017-08-28 06:40:10 +00:00
philipel
99b63455b7 Update video_replay tool to be able to dump .jpg files.
BUG=None

Review-Url: https://codereview.webrtc.org/2998353002
Cr-Commit-Position: refs/heads/master@{#19521}
2017-08-25 14:24:21 +00:00
nisse
26e3abbb40 Reverse |rtx_payload_types| map, and rename.
New name is |rtx_associated_payload_types|.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/3000273002
Cr-Commit-Position: refs/heads/master@{#19514}
2017-08-25 11:44:25 +00:00
eladalon
8b07305b04 Eliminate RtpVideoStreamReceiver::receive_cs_ in favor of using a SequencedTaskChecker
RtpVideoStreamReceiver::receive_cs_ is not really necessary, since all of the functions where that lock is acquired, are arrived at from functions of BaseChannel which DCHECK being called from BaseChannel::worker_thread_.

BUG=webrtc:8037

Review-Url: https://codereview.webrtc.org/2987933003
Cr-Commit-Position: refs/heads/master@{#19508}
2017-08-25 07:49:08 +00:00
eladalon
05b07bb833 Fix places that trigger no-unused-lambda-capture - change to using static-constexpr.
Follow up on https://codereview.webrtc.org/3005433002/.

BUG=webrtc:7133
TBR=stefan@webrtc.org

Review-Url: https://codereview.webrtc.org/3003723002
Cr-Commit-Position: refs/heads/master@{#19499}
2017-08-24 14:40:16 +00:00
kthelgason
1cdddc96fa Make CodecType conversion functions non-optional.
We can't handle no value here anyway and end up setting a default
at each call site. The defaults aren't even the same in each place.

BUG=None

Review-Url: https://codereview.webrtc.org/2998293002
Cr-Commit-Position: refs/heads/master@{#19485}
2017-08-24 10:52:48 +00:00
nisse
821e21402d Delete unneeded includes of atomic32.h.
BUG=None

Review-Url: https://codereview.webrtc.org/3002173002
Cr-Commit-Position: refs/heads/master@{#19484}
2017-08-24 10:30:05 +00:00
stefan
60e10c794e Add experiment to disable ulpfec.
BUG=None

Review-Url: https://codereview.webrtc.org/2997363002
Cr-Commit-Position: refs/heads/master@{#19471}
2017-08-23 17:40:00 +00:00
ilnik
a79cc28de1 Report max interframe delay over window insdead of interframe delay sum
Maximum of interframe delay is calculated over moving window in
ReceiveStatistics proxy now and reported via GetStats. Name of a metric
is also changed.

BUG=none

Review-Url: https://codereview.webrtc.org/2995143002
Cr-Commit-Position: refs/heads/master@{#19463}
2017-08-23 12:24:10 +00:00
eladalon
1cc5fc3ebf Fix places that trigger no-unused-lambda-capture
no-unused-lambda-capture was suppressed, but it's been decided as desireable to stop suppressing it. This CL fixes places in the code that trigger it.

1. Some unnecessary captures removed.
2. s/constexpr/const when capturing a float by value - this is good enough to stop the error.
3. Complete removal of the constexpr/const-modifier for int-types as a workaround.

BUG=webrtc:7133

Review-Url: https://codereview.webrtc.org/3005433002
Cr-Commit-Position: refs/heads/master@{#19462}
2017-08-23 11:15:18 +00:00
brandtr
caea68f31e Let Call::OnRecoveredPacket parse RTP header extensions.
Packets recovered by ULPFEC enter through
RtpVideoStreamReceiver::OnRecoveredPacket, which does RTP
header extension parsing. Packets recovered by FlexFEC, however,
enter through Call::OnRecoveredPacket, which prior to this
CL did not do RTP header extension parsing.

The lack of RTP header extension parsing for FlexFEC packets is a
regression since https://codereview.webrtc.org/2886993005/.

TESTED=Using Android app with FlexFEC field trial enabled.
BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/3002023002
Cr-Commit-Position: refs/heads/master@{#19460}
2017-08-23 07:55:17 +00:00
ilnik
41cadbcb0a Remove WebRTC-videocontenttypeextension field trial completely
BUG=webrtc:7420

Review-Url: https://codereview.webrtc.org/3003673002
Cr-Commit-Position: refs/heads/master@{#19459}
2017-08-23 07:44:27 +00:00
sprang
3e86e7eec7 Ignore inter-frame delay stats samples when stream is inactive
BUG=webrtc:7694

Review-Url: https://codereview.webrtc.org/3002103002
Cr-Commit-Position: refs/heads/master@{#19453}
2017-08-22 16:23:28 +00:00
Stefan Holmer
5c8942aee1 Move PacedSender ownership to RtpTransportControllerSend.
BUG=webrtc:8089
R=nisse@webrtc.org, terelius@webrtc.org

Review-Url: https://codereview.webrtc.org/3000773002 .
Cr-Commit-Position: refs/heads/master@{#19451}
2017-08-22 14:16:49 +00:00
ilnik
ee42d19b70 Reland of Add Jpeg frame writer for test support.
Also, use it to save worst psnr frame in video quality tests. It is indented that these saved frames from perfbots will be uploaded to the cloud and will be available in chrome perf dashboard. Because of that size of the saved frame is somewhat an issue. Also, y4m is not convenient to view.

BUG=webrtc:8030

Review-Url: https://codereview.webrtc.org/2998143002
Cr-Commit-Position: refs/heads/master@{#19450}
2017-08-22 14:16:20 +00:00
aleloi
440b6d9a0f Move video send/receive stream headers to webrtc/call.
Moved the headers video_receive_stream.h and video_send_stream.h from
webrtc/ into webrtc/call/ as part of the Slim and Modular work.

The GN target webrtc:video_stream_api has moved to
webrtc/call:video_stream_api.

There are headers left in webrtc/ with the same name including the
moved headers in webrtc/call/ for not breaking external projects
depending on WebRTC.

At the same time, some minor cleanup is done: Non-pure-virtual functions declared in the two affected headers now have definitions in the same target. After making this change, our 'chromium-style' plugin detected some style violations that have now been fixed: non-inlined constructors and destructors have been added to a number of classes, both inside the GN target of the two affected headers, and in other targets.

BUG=webrtc:8107

Review-Url: https://codereview.webrtc.org/3000253002
Cr-Commit-Position: refs/heads/master@{#19448}
2017-08-22 12:43:23 +00:00
eladalon
413ee9a010 Use SingleThreadedTaskQueue in DirectTransport
DirectTransport has so far used its own thread, which led to a different threading-model for in the unit-tests than is used in actual WebRTC. Because of that, some critical-sections that weren't truly necessary in WebRTC could not be replaced with thread-checks, because those checks failed in unit-tests.

This CL introduces SingleThreadedTaskQueue - a TaskQueue which guarantees to run all of its tasks on the same thread (rtc::TaskQueue doesn't guarantee that on Mac) - and uses that for DirectTransport. CLs based on top of this will uncomment thread-checks which had to be commented out before, and remove unnecessary critical-sections.

Future work would probably replace the thread-checkers by more sophisticated serialized-access checks, allowing us to move from the SingleThreadedTaskQueue to a normal TaskQueue.

Related implementation notes:
* This CL has made DirectTransport::StopSending() superfluous, and so it was deleted.

BUG=webrtc:8113, webrtc:7405, webrtc:8056, webrtc:8116

Review-Url: https://codereview.webrtc.org/2998923002
Cr-Commit-Position: refs/heads/master@{#19445}
2017-08-22 11:02:52 +00:00
philipel
bdbc8895f3 Revert of Fix the video buffer size should take rtt into consideration (patchset #3 id:40001 of https://codereview.chromium.org/2980413002/ )
Reason for revert:
We are not certain this is the behavior we want.

Original issue's description:
> Fix the video buffer size should take rtt into consideration
>
> BUG=webrtc:8010
>
> Review-Url: https://codereview.webrtc.org/2980413002
> Cr-Commit-Position: refs/heads/master@{#19285}
> Committed: f1e08d0b58

TBR=sprang@webrtc.org,gustavogb@gmail.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:8010

Review-Url: https://codereview.webrtc.org/3002033002
Cr-Commit-Position: refs/heads/master@{#19442}
2017-08-22 09:08:51 +00:00
charujain
3771ba3002 Revert of Add Jpeg frame writer for test support. (patchset #12 id:220001 of https://codereview.webrtc.org/2990563002/ )
Reason for revert:
Breaks webrtc.linux

Original issue's description:
> Add Jpeg frame writer for test support.
>
> Also, use it to save worst psnr frame in video quality tests. It is indented that these saved frames from perfbots will be uploaded to the cloud and will be available in chrome perf dashboard. Because of that size of the saved frame is somewhat an issue. Also, y4m is not convenient to view.
>
> BUG=webrtc:8030
>
> Review-Url: https://codereview.webrtc.org/2990563002
> Cr-Commit-Position: refs/heads/master@{#19414}
> Committed: 26e5cbd6bb

TBR=stefan@webrtc.org,pbos@webrtc.org,sprang@webrtc.org,ilnik@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:8030

Review-Url: https://codereview.webrtc.org/2998133002
Cr-Commit-Position: refs/heads/master@{#19419}
2017-08-20 19:50:56 +00:00
ilnik
26e5cbd6bb Add Jpeg frame writer for test support.
Also, use it to save worst psnr frame in video quality tests. It is indented that these saved frames from perfbots will be uploaded to the cloud and will be available in chrome perf dashboard. Because of that size of the saved frame is somewhat an issue. Also, y4m is not convenient to view.

BUG=webrtc:8030

Review-Url: https://codereview.webrtc.org/2990563002
Cr-Commit-Position: refs/heads/master@{#19414}
2017-08-18 16:00:04 +00:00
philipel
3042c2d5e0 Reland of quest keyframes more frequently on stream start/decoding error. (patchset #1 id:1 of https://codereview.chromium.org/2995153002/ )
Reason for revert:
iOS workaround.

Original issue's description:
> Revert of quest keyframes more frequently on stream start/decoding error. (patchset #2 id:170001 of https://codereview.webrtc.org/2996823002/ )
>
> Reason for revert:
> Causes iOS H264 calls received in the background to have increased delay before being able to decode stream from sender due to not having a keyframe.
>
> Original issue's description:
> > Reland of quest keyframes more frequently on stream start/decoding error. (patchset #1 id:1 of https://codereview.chromium.org/2994043002/ )
> >
> > Reason for revert:
> > Create fix CL.
> >
> > Original issue's description:
> > > Revert of Request keyframes more frequently on stream start/decoding error. (patchset #1 id:1 of https://codereview.webrtc.org/2993793002/ )
> > >
> > > Reason for revert:
> > > Broke downstream test that was waiting for 5 keyframes to be received within 10 seconds. Maybe the issue is that "stats_callback_->OnCompleteFrame(frame->num_references == 0, ..." was changed to "frame->is_keyframe()"?
> > >
> > > Original issue's description:
> > > > Request keyframes more frequently on stream start/decoding error.
> > > >
> > > > In this CL:
> > > >  - Added FrameObject::is_keyframe() convinience function.
> > > >  - Moved logic to request keyframes on decoding error from VideoReceived to
> > > >    VideoReceiveStream.
> > > >  - Added keyframe_required as a parameter to FrameBuffer::NextFrame.
> > > >
> > > > BUG=webrtc:8074
> > > >
> > > > Review-Url: https://codereview.webrtc.org/2993793002
> > > > Cr-Commit-Position: refs/heads/master@{#19280}
> > > > Committed: 26b4804358
> > >
> > > TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,philipel@webrtc.org
> > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > NOPRESUBMIT=true
> > > NOTREECHECKS=true
> > > NOTRY=true
> > > BUG=webrtc:8074
> > >
> > > Review-Url: https://codereview.webrtc.org/2994043002
> > > Cr-Commit-Position: refs/heads/master@{#19295}
> > > Committed: 77a983185f
> >
> > TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,deadbeef@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > BUG=webrtc:8074
> >
> > Review-Url: https://codereview.webrtc.org/2996823002
> > Cr-Commit-Position: refs/heads/master@{#19324}
> > Committed: 628ac5964e
>
> TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,deadbeef@webrtc.org,philipel@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:8074
>
> Review-Url: https://codereview.webrtc.org/2995153002
> Cr-Commit-Position: refs/heads/master@{#19392}
> Committed: 53959fcc2b

TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,deadbeef@webrtc.org,tkchin@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.

BUG=webrtc:8074

Review-Url: https://codereview.webrtc.org/2996153003
Cr-Commit-Position: refs/heads/master@{#19410}
2017-08-18 11:55:02 +00:00
eladalon
a28122f5cd Change ThreadChecker to SequencedTaskChecker in VideoReceiveStream
In preparation of running DirectTransport on a TaskQueue in unit-tests, change the thread-checkers to sequence-checkers. This is necessary for Mac and iOS, where the TaskQueue is guaranteed to run sequentially, but not guaranteed to do so on only one thread.

TODO: Add the relevant BUGs.

BUG=None

Review-Url: https://codereview.webrtc.org/2997853002
Cr-Commit-Position: refs/heads/master@{#19408}
2017-08-18 11:02:48 +00:00
sprang
ba050a6d6d Reland of Add a flags field to video timing extension. (patchset #1 id:1 of https://codereview.webrtc.org/2995953002/ )
Reason for revert:
Create reland CL to add fix to.

Original issue's description:
> Revert of Add a flags field to video timing extension. (patchset #15 id:280001 of https://codereview.webrtc.org/3000753002/ )
>
> Reason for revert:
> Speculative revet for breaking remoting_unittests in fyi bots.
> https://build.chromium.org/p/chromium.webrtc.fyi/waterfall?builder=Win7%20Tester
>
> Original issue's description:
> > Add a flags field to video timing extension.
> >
> > The rtp header extension for video timing shuold have an additional
> > field for signaling metadata, such as what triggered the extension for
> > this particular frame. This will allow separating frames select because
> > of outlier sizes from regular frames, for more accurate stats.
> >
> > This implementation is backwards compatible in that it can read video
> > timing extensions without the new flag field, but it always sends with
> > it included.
> >
> > BUG=webrtc:7594
> >
> > Review-Url: https://codereview.webrtc.org/3000753002
> > Cr-Commit-Position: refs/heads/master@{#19353}
> > Committed: cf5d485e14
>
> TBR=danilchap@webrtc.org,kthelgason@webrtc.org,stefan@webrtc.org,sprang@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:7594
>
> Review-Url: https://codereview.webrtc.org/2995953002
> Cr-Commit-Position: refs/heads/master@{#19360}
> Committed: f0f7378b05

TBR=danilchap@webrtc.org,kthelgason@webrtc.org,stefan@webrtc.org,emircan@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7594

Review-Url: https://codereview.webrtc.org/2996153002
Cr-Commit-Position: refs/heads/master@{#19405}
2017-08-18 09:51:12 +00:00
emircan
bbcc356084 Reland of Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabl… (patchset #1 id:1 of https://codereview.webrtc.org/2995173002/ )
Reason for revert:
Speculative revert didn't help, see for the actual reason https://bugs.chromium.org/p/chromium/issues/detail?id=756741.

Original issue's description:
> Revert of Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabl… (patchset #2 id:20001 of https://codereview.webrtc.org/2925253002/ )
>
> Reason for revert:
> Failing WebRtcVideoQualityBrowserTest.MANUAL_TestVideoQualityVp* tests.
>
> Mac #19383-19392
> https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Tester/builds/42197
> Win8 #19383-19385
> https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win8%20Tester/builds/1496
> Win7 #19383-19385
> https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win7%20Tester/builds/9807
> Win10 #19383-19385
> https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win10%20Tester/builds/8452
>
> Original issue's description:
> > Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabled.
> >
> > Error resilience is currently always enabled for VP9 which reduces quality.
> >
> > Reland of https://codereview.webrtc.org/2532053002
> >
> > BUG=webrtc:6783
> >
> > Review-Url: https://codereview.webrtc.org/2925253002
> > Cr-Commit-Position: refs/heads/master@{#19385}
> > Committed: 6b463faccb
>
> TBR=brandtr@webrtc.org,asapersson@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6783
>
> Review-Url: https://codereview.webrtc.org/2995173002
> Cr-Commit-Position: refs/heads/master@{#19399}
> Committed: 7b532db9ad

TBR=brandtr@webrtc.org,asapersson@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6783

Review-Url: https://codereview.webrtc.org/3002933002
Cr-Commit-Position: refs/heads/master@{#19402}
2017-08-18 07:28:40 +00:00
emircan
7b532db9ad Revert of Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabl… (patchset #2 id:20001 of https://codereview.webrtc.org/2925253002/ )
Reason for revert:
Failing WebRtcVideoQualityBrowserTest.MANUAL_TestVideoQualityVp* tests.

Mac #19383-19392
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Tester/builds/42197
Win8 #19383-19385
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win8%20Tester/builds/1496
Win7 #19383-19385
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win7%20Tester/builds/9807
Win10 #19383-19385
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win10%20Tester/builds/8452

Original issue's description:
> Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabled.
>
> Error resilience is currently always enabled for VP9 which reduces quality.
>
> Reland of https://codereview.webrtc.org/2532053002
>
> BUG=webrtc:6783
>
> Review-Url: https://codereview.webrtc.org/2925253002
> Cr-Commit-Position: refs/heads/master@{#19385}
> Committed: 6b463faccb

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

Review-Url: https://codereview.webrtc.org/2995173002
Cr-Commit-Position: refs/heads/master@{#19399}
2017-08-18 01:20:40 +00:00
tkchin
53959fcc2b Revert of quest keyframes more frequently on stream start/decoding error. (patchset #2 id:170001 of https://codereview.webrtc.org/2996823002/ )
Reason for revert:
Causes iOS H264 calls received in the background to have increased delay before being able to decode stream from sender due to not having a keyframe.

Original issue's description:
> Reland of quest keyframes more frequently on stream start/decoding error. (patchset #1 id:1 of https://codereview.chromium.org/2994043002/ )
>
> Reason for revert:
> Create fix CL.
>
> Original issue's description:
> > Revert of Request keyframes more frequently on stream start/decoding error. (patchset #1 id:1 of https://codereview.webrtc.org/2993793002/ )
> >
> > Reason for revert:
> > Broke downstream test that was waiting for 5 keyframes to be received within 10 seconds. Maybe the issue is that "stats_callback_->OnCompleteFrame(frame->num_references == 0, ..." was changed to "frame->is_keyframe()"?
> >
> > Original issue's description:
> > > Request keyframes more frequently on stream start/decoding error.
> > >
> > > In this CL:
> > >  - Added FrameObject::is_keyframe() convinience function.
> > >  - Moved logic to request keyframes on decoding error from VideoReceived to
> > >    VideoReceiveStream.
> > >  - Added keyframe_required as a parameter to FrameBuffer::NextFrame.
> > >
> > > BUG=webrtc:8074
> > >
> > > Review-Url: https://codereview.webrtc.org/2993793002
> > > Cr-Commit-Position: refs/heads/master@{#19280}
> > > Committed: 26b4804358
> >
> > TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,philipel@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:8074
> >
> > Review-Url: https://codereview.webrtc.org/2994043002
> > Cr-Commit-Position: refs/heads/master@{#19295}
> > Committed: 77a983185f
>
> TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,deadbeef@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> BUG=webrtc:8074
>
> Review-Url: https://codereview.webrtc.org/2996823002
> Cr-Commit-Position: refs/heads/master@{#19324}
> Committed: 628ac5964e

TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,deadbeef@webrtc.org,philipel@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:8074

Review-Url: https://codereview.webrtc.org/2995153002
Cr-Commit-Position: refs/heads/master@{#19392}
2017-08-17 18:01:46 +00:00
asapersson
142fcc96d6 Move kMinPixelsPerFrame constant in VideoStreamEncoder to VideoEncoder::ScalingSettings.
Make it possible for forced VP8 SW fallback encoder to set min_pixels_per_frame via GetScalingSettings().

Add a min required resolution (in addition to bitrate) before releasing forced SW fallback.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/3000693003
Cr-Commit-Position: refs/heads/master@{#19390}
2017-08-17 15:58:54 +00:00