For them implemeted upscaling in libyuv metrics calculation.
Updated maximum number of SL in vp9 encoder to 3.
Refactored names of some fields in Video_quality_check analyzer.
BUG=webrtc:7095
Review-Url: https://codereview.webrtc.org/2681683003
Cr-Commit-Position: refs/heads/master@{#16625}
Add tests (plot_videoprocessor_integrationtest.cc) to be used to plot stats from (not yet used).
Move VideoProcessorIntegrationTest fixture to separate file. To be used by plot_videoprocessor_integrationtest.cc.
BUG=webrtc:6634
Review-Url: https://codereview.webrtc.org/2643853002
Cr-Commit-Position: refs/heads/master@{#16528}
Reason for revert:
Fix the problem.
Original issue's description:
> Revert of Add QP sum stats for received streams. (patchset #10 id:180001 of https://codereview.webrtc.org/2649133005/ )
>
> Reason for revert:
> Breaks downstream build.
>
> Original issue's description:
> > Add QP sum stats for received streams.
> >
> > This is not implemented yet in any of the decoders.
> >
> > BUG=webrtc:6541
> >
> > Review-Url: https://codereview.webrtc.org/2649133005
> > Cr-Commit-Position: refs/heads/master@{#16475}
> > Committed: ff0e72fd16
>
> TBR=hta@webrtc.org,hbos@webrtc.org,sprang@webrtc.org,magjed@webrtc.org,stefan@webrtc.org,sakal@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6541
>
> Review-Url: https://codereview.webrtc.org/2680893002 .
> Cr-Commit-Position: refs/heads/master@{#16480}
> Committed: 69fb2cca4dTBR=hta@webrtc.org,hbos@webrtc.org,sprang@webrtc.org,magjed@webrtc.org,stefan@webrtc.org,skvlad@webrtc.org
BUG=webrtc:6541
Review-Url: https://codereview.webrtc.org/2681663005
Cr-Commit-Position: refs/heads/master@{#16511}
Reason for revert:
Breaks downstream build.
Original issue's description:
> Add QP sum stats for received streams.
>
> This is not implemented yet in any of the decoders.
>
> BUG=webrtc:6541
>
> Review-Url: https://codereview.webrtc.org/2649133005
> Cr-Commit-Position: refs/heads/master@{#16475}
> Committed: ff0e72fd16TBR=hta@webrtc.org,hbos@webrtc.org,sprang@webrtc.org,magjed@webrtc.org,stefan@webrtc.org,sakal@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6541
Review-Url: https://codereview.webrtc.org/2680893002 .
Cr-Commit-Position: refs/heads/master@{#16480}
This is not implemented yet in any of the decoders.
BUG=webrtc:6541
Review-Url: https://codereview.webrtc.org/2649133005
Cr-Commit-Position: refs/heads/master@{#16475}
The original CL was reverted because of a bug discovered by the
chromium bots. Description of that CL:
> Review-Url: https://codereview.webrtc.org/2636443002
> Cr-Commit-Position: refs/heads/master@{#16135}
> Committed: a28e971e3b
The first patch set of this CL is the same as r16135.
Subsequence patch sets are the fixes applied.
Some new test cases have been added, which reveal a few more bugs that
have also been fixed.
BUG=webrtc:4172
Review-Url: https://codereview.webrtc.org/2641133002
Cr-Commit-Position: refs/heads/master@{#16299}
Deps have rolled to 1.6, and since no one noticed that the old code path
was broken and wouldn't even compile, I assume no one is using it.
I therefore deem it time to clean away all these nasty ifdefs.
("const kNalHeaderSizeAllocation = 50;" doesn't declare a type)
BUG=chromium:614970
Review-Url: https://codereview.webrtc.org/2622233002
Cr-Commit-Position: refs/heads/master@{#16008}
Avoids confusion about the meaning of "incoming".
BUG=webrtc:6897
Review-Url: https://codereview.webrtc.org/2624073003
Cr-Commit-Position: refs/heads/master@{#16007}
Moves webrtc/common_video/rotation.h and parts of
webrtc/common_video/include/video_frame_buffer.h and
webrtc/video_frame.h, and adds to a new GN target api:video_frame_api.
BUG=webrtc:5880
Review-Url: https://codereview.webrtc.org/2517173004
Cr-Commit-Position: refs/heads/master@{#15993}
Reason for revert:
Trying to re-enable this test as we're now using a newer Clang version (289944-2).
Original issue's description:
> Disable flaky test VideoProcessorIntegrationTest.ProcessNoLossChangeFrameRateFrameDropVP9
>
> This test is flaky on all platforms, not just Android. Disabling it entirely until webrtc:6057 is fixed.
>
> BUG=webrtc:6057
>
> Committed: https://crrev.com/bb66ec35739830847bfb0146cd029ca41421b2d8
> Cr-Commit-Position: refs/heads/master@{#15594}
TBR=marpan@webrtc.org,sprang@webrtc.org,skvlad@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6057
Review-Url: https://codereview.webrtc.org/2603993002
Cr-Commit-Position: refs/heads/master@{#15821}
Drop frames if incoming frame rate is higher than the configured max
framerate.
BUG=webrtc:6897
Review-Url: https://codereview.webrtc.org/2578993002
Cr-Commit-Position: refs/heads/master@{#15819}
Reason for revert:
Bug affecting perf tests has been fixed. The issue was that I had accidentally disabled cpu overuse adaptation based on the encoders ScalingSettings, not just quality-based scaling.
Original issue's description:
> Revert of Properly report number of quality downscales in stats. (patchset #11 id:220001 of https://codereview.webrtc.org/2564373002/ )
>
> Reason for revert:
> Breaks perf tests
>
> Original issue's description:
> > Properly report number of quality downscales in stats.
> >
> > A regression was introduced in 876222f that caused these stats to
> > be reported incorrectly. This used to be only implemented for VP8
> > but should now be available for all codecs.
> >
> > BUG=webrtc:6860
> >
> > Review-Url: https://codereview.webrtc.org/2564373002
> > Cr-Commit-Position: refs/heads/master@{#15673}
> > Committed: 0c8c538835
>
> TBR=asapersson@webrtc.org,stefan@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6860
>
> Review-Url: https://codereview.webrtc.org/2586783003
> Cr-Commit-Position: refs/heads/master@{#15678}
> Committed: fe04bd43ccTBR=asapersson@webrtc.org,stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6860
Review-Url: https://codereview.webrtc.org/2588743002
Cr-Commit-Position: refs/heads/master@{#15680}
Reason for revert:
Breaks perf tests
Original issue's description:
> Properly report number of quality downscales in stats.
>
> A regression was introduced in 876222f that caused these stats to
> be reported incorrectly. This used to be only implemented for VP8
> but should now be available for all codecs.
>
> BUG=webrtc:6860
>
> Review-Url: https://codereview.webrtc.org/2564373002
> Cr-Commit-Position: refs/heads/master@{#15673}
> Committed: 0c8c538835TBR=asapersson@webrtc.org,stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6860
Review-Url: https://codereview.webrtc.org/2586783003
Cr-Commit-Position: refs/heads/master@{#15678}
Reason for revert:
Still hitting NOTREACHED.
Original issue's description:
> Revert of Disabling NOTREACHED which we're hitting flakily in browser tests. (patchset #1 id:1 of https://codereview.webrtc.org/2477663002/ )
>
> Reason for revert:
> To see if the NOTREACHED is still hit.
>
> Original issue's description:
> > Disabling NOTREACHED which we're hitting flakily in browser tests.
> >
> > I have no idea how bad it is that we're hitting this limit; I'm just
> > doing this to stop the tests from flaking.
> >
> > BUG=webrtc:6484
> >
> > Committed: https://crrev.com/6eaa55867b449df992752c1df540ec42f9d9b057
> > Cr-Commit-Position: refs/heads/master@{#14974}
>
> TBR=stefan@webrtc.org,phoglund@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:6484
>
> Review-Url: https://codereview.webrtc.org/2585183002
> Cr-Commit-Position: refs/heads/master@{#15665}
> Committed: 9d7ea0920cTBR=stefan@webrtc.org,phoglund@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6484
Review-Url: https://codereview.webrtc.org/2585273002
Cr-Commit-Position: refs/heads/master@{#15676}
A regression was introduced in 876222f that caused these stats to
be reported incorrectly. This used to be only implemented for VP8
but should now be available for all codecs.
BUG=webrtc:6860
Review-Url: https://codereview.webrtc.org/2564373002
Cr-Commit-Position: refs/heads/master@{#15673}
Reason for revert:
To see if the NOTREACHED is still hit.
Original issue's description:
> Disabling NOTREACHED which we're hitting flakily in browser tests.
>
> I have no idea how bad it is that we're hitting this limit; I'm just
> doing this to stop the tests from flaking.
>
> BUG=webrtc:6484
>
> Committed: https://crrev.com/6eaa55867b449df992752c1df540ec42f9d9b057
> Cr-Commit-Position: refs/heads/master@{#14974}
TBR=stefan@webrtc.org,phoglund@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6484
Review-Url: https://codereview.webrtc.org/2585183002
Cr-Commit-Position: refs/heads/master@{#15665}
This CL moves all codec specific definitions into their own
header files in the respective codec directory, and replaces
it with an include in the top level directory.
This is to facilitate getting the code out of the header files.
No behavioral changes are expected.
BUG=webrtc:6842
Review-Url: https://codereview.webrtc.org/2555993003
Cr-Commit-Position: refs/heads/master@{#15623}
Reason for revert:
Crashes perf tests, e.g.,
./out/Debug/webrtc_perf_tests --gtest_filter='FullStackTest.ScreenshareSlidesVP8_2TL_VeryLossyNet'
dies with an assert related to rtc::Optional.
Original issue's description:
> Delete VideoFrame default constructor, and IsZeroSize method.
>
> This ensures that the video_frame_buffer method never can return a
> null pointer.
>
> BUG=webrtc:6591
>
> Committed: https://crrev.com/bfcf561923a42005e4c7d66d8e72e5932155f997
> Cr-Commit-Position: refs/heads/master@{#15574}
TBR=magjed@webrtc.org,stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6591
Review-Url: https://codereview.webrtc.org/2574123002
Cr-Commit-Position: refs/heads/master@{#15597}
This test is flaky on all platforms, not just Android. Disabling it entirely until webrtc:6057 is fixed.
BUG=webrtc:6057
Review-Url: https://codereview.webrtc.org/2568743007
Cr-Commit-Position: refs/heads/master@{#15594}
This ensures that the video_frame_buffer method never can return a
null pointer.
BUG=webrtc:6591
Review-Url: https://codereview.webrtc.org/2541863002
Cr-Commit-Position: refs/heads/master@{#15574}
SimulcastEncoderAdapter calls Release() on a failed sub-encoder init,
but Release only knows how to clean up encoders that have registered
stream info. Since failed ones don't register, they aren't currently
cleaned up.
BUG=None
Review-Url: https://codereview.webrtc.org/2544003005
Cr-Commit-Position: refs/heads/master@{#15553}
Reason for revert:
Increase in encode time larger than expected.
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.
>
> BUG=webrtc:6783
>
> Committed: https://crrev.com/4eb03c76fa2320534d669fda2aabf800e7a6f579
> Cr-Commit-Position: refs/heads/master@{#15390}
TBR=stefan@webrtc.org,marpan@webrtc.org,mflodman@webrtc.org,marpan@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6783
Review-Url: https://codereview.webrtc.org/2554403006
Cr-Commit-Position: refs/heads/master@{#15501}
Reason for revert:
Fixed timeouts in slow tests
Original issue's description:
> Revert of H.264 packetization mode 0 (try 3) (patchset #13 id:490001 of https://codereview.webrtc.org/2528343002/ )
>
> Reason for revert:
> Failures on the Linux Memcheck bot
>
> Original issue's description:
> > This approach passes packetization mode to the encoder as part of
> > a cricket::VideoCodec structure, rather than as part of struct VideoCodecH264 inside webrtc::VideoCodec.
> >
> > BUG=600254
> >
> > Committed: https://crrev.com/e59647b991f61cf1cf61b020356705e6c0f81257
> > Cr-Commit-Position: refs/heads/master@{#15437}
>
> TBR=hbos@webrtc.org,sprang@webrtc.org,mflodman@webrtc.org,magjed@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=600254
>
> Committed: https://crrev.com/243a0a7a7fd6b5da1e32df31f1bfbb6a68dc09f3
> Cr-Commit-Position: refs/heads/master@{#15441}
TBR=hbos@webrtc.org,sprang@webrtc.org,mflodman@webrtc.org,magjed@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=600254
Review-Url: https://codereview.webrtc.org/2558463002
Cr-Commit-Position: refs/heads/master@{#15445}
Reason for revert:
Failures on the Linux Memcheck bot
Original issue's description:
> This approach passes packetization mode to the encoder as part of
> a cricket::VideoCodec structure, rather than as part of struct VideoCodecH264 inside webrtc::VideoCodec.
>
> BUG=600254
>
> Committed: https://crrev.com/e59647b991f61cf1cf61b020356705e6c0f81257
> Cr-Commit-Position: refs/heads/master@{#15437}
TBR=hbos@webrtc.org,sprang@webrtc.org,mflodman@webrtc.org,magjed@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=600254
Review-Url: https://codereview.webrtc.org/2558453002
Cr-Commit-Position: refs/heads/master@{#15441}
a cricket::VideoCodec structure, rather than as part of struct VideoCodecH264 inside webrtc::VideoCodec.
BUG=600254
Review-Url: https://codereview.webrtc.org/2528343002
Cr-Commit-Position: refs/heads/master@{#15437}
Error resilience is currently always enabled for VP9 which reduces quality.
BUG=webrtc:6783
Review-Url: https://codereview.webrtc.org/2532053002
Cr-Commit-Position: refs/heads/master@{#15390}
It is not safe to call vpx_codec_destroy if vpx_codec_dec_init failed,
because the |decoder_| memory will be uninitialized. See the bug for
more info.
BUG=chromium:663293
Review-Url: https://codereview.webrtc.org/2541163007
Cr-Commit-Position: refs/heads/master@{#15381}
This brings QualityScaler much more in line with OveruseFrameDetector.
The two classes are conceptually similar, and should be used in the
same way. The biggest changes in this CL are:
- Quality scaling is now only done in ViEEncoder and not in each
encoder implementation separately.
- QualityScaler now checks the average QP asynchronously, instead of
having to be polled on each frame.
- QualityScaler is no longer responsible for actually scaling the frames,
but has a callback to ViEEncoder that it uses to express it's desire
for lower resolution.
BUG=webrtc:6495
Review-Url: https://codereview.webrtc.org/2398963003
Cr-Commit-Position: refs/heads/master@{#15286}
There's no longer any need to make the two arguments have the same
signedness, so we can remove a bunch of superfluous (and sometimes
dangerous) casts.
It turned out I also had to fix the safe_cmp functions to properly handle
enums that are implicitly convertible to integers.
NOPRESUBMIT=true
BUG=webrtc:6645
Review-Url: https://codereview.webrtc.org/2534683002
Cr-Commit-Position: refs/heads/master@{#15281}
There's no longer any need to make the two arguments have the same
signedness, so we can drop the "u" suffix on literal integer
arguments.
NOPRESUBMIT=true
BUG=webrtc:6645
Review-Url: https://codereview.webrtc.org/2535593002
Cr-Commit-Position: refs/heads/master@{#15280}
Pass the selected cricket::VideoCodec to H264EncoderImpl::H264EncoderImpl. The cricket::VideoCodec contains relevant information for H264 about selected profile and packetization mode.
BUG=chromium:600254,webrtc:6402, webrtc:6337
Review-Url: https://codereview.webrtc.org/2474993002
Cr-Commit-Position: refs/heads/master@{#15270}
A recent cl (https://codereview.webrtc.org/2510583002) introduced an
issue where temporal layers may return incorrect bitrates, given that
they are stateful and that the GetPreferredBitrateBps is called.
The fix is to use a temporary simulcast rate allocator instance, without
temporal layers, and get the preferred bitrate from that.
Additionally, some regression in bitrate allocated stems from overly
often reconfiguring the encoder, which yields suboptimal rate control.
The fix here is to limit encoder updates to when values have actually
changed.
As a bonus, dchecks added by this cl found a bug in the (unused) RealtimeTemporalLayers implementation. Fixed that as well.
BUG=webrtc:6301, chromium:666654
Review-Url: https://codereview.webrtc.org/2529073003
Cr-Commit-Position: refs/heads/master@{#15250}
Set the |qp_| field in EncodedImage before calling OnEncodedImage.
BUG=webrtc:6541
Review-Url: https://codereview.webrtc.org/2499003002
Cr-Commit-Position: refs/heads/master@{#15199}