webrtc/modules/video_coding/codecs/vp8
Erik Språng c8fbd899bd Fixes temporal rate allocation issues.
This CL fixes a few issues where the reported fraction of frames
allocated to various temporal layers could be incorrect:
* In LibvpxVp8Encoder, calling GetEncoderInfo() while not initialized,
  or when first configuring with temporal layers and then without,
  could trigger incorrect fps allocations.
* In VP9 when different spatial layers have different max framerates,
  the layer fps should be compared to the layer with the highest
  configured fps, not codec_.maxFramerate which is updated to the
  current input fps on SetRates().
* In EncoderBitrateAdjuster, just warn and ignore if a layer has
  non-zero bps but zero fps, rather than passing down the chain and
  risk weird behavior or divide by zero.

Bug: b/152040235
Change-Id: I548fb3e099b1ec9f536a7b93313fb40c4d32e596
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171516
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30880}
2020-03-25 11:20:47 +00:00
..
include libvpx-vp8: Add external configurability of resolution/bitrate limits. 2020-03-24 13:32:59 +00:00
test Fixes temporal rate allocation issues. 2020-03-25 11:20:47 +00:00
default_temporal_layers_unittest.cc In Vp8 temporal layering fix generic info at non-first key frame 2020-02-25 10:47:49 +00:00
default_temporal_layers.cc Fix dependency templates for VP8 3 temporal layers 2020-03-05 14:49:05 +00:00
default_temporal_layers.h Format almost everything. 2019-07-08 13:45:15 +00:00
libvpx_interface.cc Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
libvpx_interface.h Format almost everything. 2019-07-08 13:45:15 +00:00
libvpx_vp8_decoder.cc Add ability to resize buffers pool in decoder and use it in IVF generator 2019-12-16 14:51:16 +00:00
libvpx_vp8_decoder.h Include module_common_types.h only where needed 2019-09-24 08:22:38 +00:00
libvpx_vp8_encoder.cc Fixes temporal rate allocation issues. 2020-03-25 11:20:47 +00:00
libvpx_vp8_encoder.h libvpx-vp8: Add external configurability of resolution/bitrate limits. 2020-03-24 13:32:59 +00:00
libvpx_vp8_simulcast_test.cc Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
screenshare_layers_unittest.cc Use newer version of TimeDelta and TimeStamp factories in modules/ 2020-02-10 11:49:57 +00:00
screenshare_layers.cc Overwrite dti for vp8 screenshare forced key frame 2020-03-17 12:03:03 +00:00
screenshare_layers.h Pass FecControllerOverride to Vp8FrameBufferControllerFactory::Create 2019-07-02 10:55:55 +00:00
temporal_layers_checker.cc Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
temporal_layers.h Move TemporalLayers to api/video_codecs. 2018-10-12 09:15:21 +00:00