Wait until first frame is decoded to avoid include zeros in stats.
BUG=b/32659204
Review-Url: https://codereview.webrtc.org/2582313002
Cr-Commit-Position: refs/heads/master@{#15752}
Reason for revert:
breaks downstream project.
Can you make this change in a compatible way using anonymous union:
union {
bool is_first_packet_in_frame;
RTC_DEPRECATED bool isFirstPacket;
};
(unfortunetly this this treak breaks braced initialization in rtp_rtcp_impl_unittest.cc,
so that should be rewritting in a more classic way)
Original issue's description:
> Rename RTPVideoHeader.isFirstPacket to .is_first_packet_in_frame.
>
> Name should represent the actual meaning.
>
> BUG=None
>
> Review-Url: https://codereview.webrtc.org/2574943003
> Cr-Commit-Position: refs/heads/master@{#15684}
> Committed: efde908380TBR=stefan@webrtc.org,sprang@webrtc.org,johan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=None
Review-Url: https://codereview.webrtc.org/2589783003
Cr-Commit-Position: refs/heads/master@{#15686}
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}
In order for the VCMTiming object to be correctly updated with decoding timings
when running the WebRTC-NewVideoJitterBuffer experiment the VCMTiming object
has to be available in both the VideoReceiver and the video_coding::FrameBuffer
class. Therefore the VCMTiming object is created in VideoRecieveStream and
then passed to VideoReceiver/video_coding::FrameBuffer as they are constructed.
BUG=webrtc:5514
Review-Url: https://codereview.webrtc.org/2575473004
Cr-Commit-Position: refs/heads/master@{#15638}
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}
This moves some GN check configurations out of .gn to individual targets.
The now checked target is:
"//webrtc/modules/video_capture/*",
"//webrtc/modules/video_coding/*",
BUG=webrtc:6828
NOTRY=True
R=kjellander@webrtc.org
Review-Url: https://codereview.webrtc.org/2555333004
Cr-Commit-Position: refs/heads/master@{#15488}
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}
These tests have been a little flaky on the bots.
Hopefully increasing the timeout by 200% will help.
BUG=webrtc:6799
Review-Url: https://codereview.webrtc.org/2541743006
Cr-Commit-Position: refs/heads/master@{#15355}
JitterBufferDelayInMs is used for the WebRTC-NewVideoJitterBuffer finch
experiment, and therefore needs to be calculated.
BUG=webrtc:5514
Review-Url: https://codereview.webrtc.org/2534093003
Cr-Commit-Position: refs/heads/master@{#15313}
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}
In this CL:
- EndToEndTests is now parameterized.
- Added VP8 non-rotated unittest.
- CanReceiveUlpfec/CanReceiveFlexFec now use multisets for timestamps.
- pre_decode_image_callback_ is now called before decoding a frame
with the new video jitter buffer.
- Set video rotation when FrameObjects are created.
- Calculate KeyFramesReceivedInPermille in new video jitter buffer.
BUG=webrtc:5514
Review-Url: https://codereview.webrtc.org/2522493002
Cr-Commit-Position: refs/heads/master@{#15274}
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}
Reason for revert:
Include fix; set profile information in CreatePayloadType for video.
Original issue's description:
> Revert of Add H264 profile to webrtc::VideoCodecH264 and webrtc::VideoPayload (patchset #1 id:40001 of https://codereview.webrtc.org/2525693003/ )
>
> Reason for revert:
> The CL doesn't actually set profile information in VideoPayload.
>
> Original issue's description:
> > Add H264 profile to webrtc::VideoCodecH264 and webrtc::VideoPayload
> >
> > It's necessary to check H264 profile information as well as payload name
> > in PayloadIsCompatible in RTPPayloadRegistry.
> >
> > BUG=webrtc:6743
> >
> > Committed: https://crrev.com/bdbc4b7ef578ba1d61ceec351bc47c33da115329
> > Cr-Commit-Position: refs/heads/master@{#15248}
>
> TBR=mflodman@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6743
>
> Committed: https://crrev.com/d7e6ccbc53fc24acdcc7507a6f3a155626473d54
> Cr-Commit-Position: refs/heads/master@{#15251}
TBR=mflodman@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6743
Review-Url: https://codereview.webrtc.org/2529153002
Cr-Commit-Position: refs/heads/master@{#15252}
Reason for revert:
The CL doesn't actually set profile information in VideoPayload.
Original issue's description:
> Add H264 profile to webrtc::VideoCodecH264 and webrtc::VideoPayload
>
> It's necessary to check H264 profile information as well as payload name
> in PayloadIsCompatible in RTPPayloadRegistry.
>
> BUG=webrtc:6743
>
> Committed: https://crrev.com/bdbc4b7ef578ba1d61ceec351bc47c33da115329
> Cr-Commit-Position: refs/heads/master@{#15248}
TBR=mflodman@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6743
Review-Url: https://codereview.webrtc.org/2529143002
Cr-Commit-Position: refs/heads/master@{#15251}
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}
It's necessary to check H264 profile information as well as payload name
in PayloadIsCompatible in RTPPayloadRegistry.
BUG=webrtc:6743
Review-Url: https://codereview.webrtc.org/2525693003
Cr-Commit-Position: refs/heads/master@{#15248}
Reason for revert:
Downstream code has been updated.
Original issue's description:
> Revert of Remove RTPPayloadStrategy and simplify RTPPayloadRegistry (patchset #7 id:240001 of https://codereview.webrtc.org/2524923002/ )
>
> Reason for revert:
> Breaks downstream projects.
>
> Original issue's description:
> > Remove RTPPayloadStrategy and simplify RTPPayloadRegistry
> >
> > This CL removes RTPPayloadStrategy that is currently used to handle
> > audio/video specific aspects of payload handling. Instead, the audio and
> > video specific aspects will now have different functions, with linear
> > code flow.
> >
> > This CL does not contain any functional changes, and is just a
> > preparation for future CL:s.
> >
> > The main purpose with this CL is to add this function:
> > bool PayloadIsCompatible(const RtpUtility::Payload& payload,
> > const webrtc::VideoCodec& video_codec);
> > that can easily be extended in a future CL to look at video codec
> > specific information.
> >
> > BUG=webrtc:6743
> >
> > Committed: https://crrev.com/b881254dc86d2cc80a52e08155433458be002166
> > Cr-Commit-Position: refs/heads/master@{#15232}
>
> TBR=danilchap@webrtc.org,solenberg@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:6743
>
> Committed: https://crrev.com/33c81d05613f45f65ee17224ed381c6cdd1c6c6f
> Cr-Commit-Position: refs/heads/master@{#15234}
TBR=danilchap@webrtc.org,solenberg@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:6743
Review-Url: https://codereview.webrtc.org/2531043002
Cr-Commit-Position: refs/heads/master@{#15245}