| 
        
       | 
      
        
  
  Reland of Issue 2434073003: Extract bitrate allocation ...
This is a reland of  https://codereview.webrtc.org/2434073003/ including
some fixes for failing test cases.
Original description:
Extract bitrate allocation of spatial/temporal layers out of codec impl.
This CL makes a number of intervowen changes:
* Add BitrateAllocation struct, that contains a codec independent view
  of how the target bitrate is distributed over spatial and temporal
  layers.
* Adds the BitrateAllocator interface, which takes a bitrate and frame
  rate and produces a BitrateAllocation.
* A default (non layered) implementation is added, and
  SimulcastRateAllocator is extended to fully handle VP8 allocation.
  This includes capturing TemporalLayer instances created by the
  encoder.
* ViEEncoder now owns both the bitrate allocator and the temporal layer
  factories for VP8. This allows allocation to happen fully outside of
  the encoder implementation.
This refactoring will make it possible for ViEEncoder to signal the
full picture of target bitrates to the RTCP module.
BUG= webrtc:6301
Committed:  https://crrev.com/647bf43dcb2fd16fccf276bd94dc4400728bb405
Cr-Commit-Position: refs/heads/master@{#15023}
    
  
  
  
  
   
  
  
  
  
  
   
  
  
  
  
  
   
  
  
  
  
    
  
  
    
       | 
      Unified diffs | 
      Side-by-side diffs | 
      Delta from patch set | 
      Stats (+1709 lines, -861 lines) | 
      Patch | 
     
    
      
          | 
        M | 
        
          
            webrtc/api/android/jni/androidmediaencoder_jni.cc
          
         | 
        
          
            View
          
         | 
        
        
          1
        
          2
        
          3
        
         | 
        
          2 chunks | 
          +6 lines, -4 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/call/call_perf_tests.cc
          
         | 
        
          
            View
          
         | 
        
        
          1
        
         | 
        
          5 chunks | 
          +14 lines, -13 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/common_types.h
          
         | 
        
          
            View
          
         | 
        
        
          1
        
          2
        
          3
        
         | 
        
          4 chunks | 
          +35 lines, -1 line | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/common_types.cc
          
         | 
        
          
            View
          
         | 
        
        
          1
        
          2
        
          3
        
         | 
        
          3 chunks | 
          +87 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/common_video/BUILD.gn
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +1 line, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/common_video/common_video.gyp
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +1 line, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        A | 
        
          
            webrtc/common_video/include/video_bitrate_allocator.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +30 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/media/engine/fakewebrtcvideoengine.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +12 lines, -11 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/BUILD.gn
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +1 line, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/BUILD.gn
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          3 chunks | 
          +4 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +4 lines, -3 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +14 lines, -4 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/i420/include/i420.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +1 line, -4 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/test/videoprocessor.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          3 chunks | 
          +5 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/test/videoprocessor.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          12 chunks | 
          +40 lines, -23 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +2 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp8/default_temporal_layers.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          5 chunks | 
          +13 lines, -7 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          8 chunks | 
          +69 lines, -19 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp8/default_temporal_layers_unittest.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          4 chunks | 
          +8 lines, -4 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp8/realtime_temporal_layers.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          7 chunks | 
          +64 lines, -30 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp8/screenshare_layers.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          4 chunks | 
          +12 lines, -13 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc
          
         | 
        
          
            View
          
         | 
        
        
          1
        
         | 
        
          5 chunks | 
          +63 lines, -46 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc
          
         | 
        
          
            View
          
         | 
        
        
          1
        
          2
        
         | 
        
          5 chunks | 
          +33 lines, -9 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +2 lines, -3 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter.cc
          
         | 
        
          
            View
          
         | 
        
        
          1
        
          2
        
          3
        
         | 
        
          6 chunks | 
          +54 lines, -58 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc
          
         | 
        
          
            View
          
         | 
        
        
          1
        
          2
        
          3
        
         | 
        
          13 chunks | 
          +32 lines, -18 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp8/simulcast_unittest.h
          
         | 
        
          
            View
          
         | 
        
        
          1
        
          2
        
          3
        
         | 
        
          24 chunks | 
          +44 lines, -132 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp8/simulcast_unittest.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +0 lines, -5 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp8/temporal_layers.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          3 chunks | 
          +36 lines, -12 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp8/test/vp8_impl_unittest.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          4 chunks | 
          +9 lines, -1 line | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp8/vp8_impl.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          3 chunks | 
          +2 lines, -3 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc
          
         | 
        
          
            View
          
         | 
        
        
          1
        
          2
        
          3
        
         | 
        
          8 chunks | 
          +81 lines, -103 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp9/vp9_impl.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +2 lines, -1 line | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +13 lines, -8 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/generic_encoder.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +1 line, -1 line | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/generic_encoder.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +17 lines, -5 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/include/mock/mock_video_codec_interface.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +3 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        A | 
        
          
            webrtc/modules/video_coding/include/video_codec_initializer.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +59 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/include/video_coding.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +1 line, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        A | 
        
          
            webrtc/modules/video_coding/utility/default_video_bitrate_allocator.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +33 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        A | 
        
          
            webrtc/modules/video_coding/utility/default_video_bitrate_allocator.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +47 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        A | 
        
          
            webrtc/modules/video_coding/utility/default_video_bitrate_allocator_unittest.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +80 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/utility/simulcast_rate_allocator.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +17 lines, -5 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/utility/simulcast_rate_allocator.cc
          
         | 
        
          
            View
          
         | 
        
        
          1
        
          2
        
          3
        
         | 
        
          1 chunk | 
          +115 lines, -49 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          13 chunks | 
          +51 lines, -32 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/utility/video_coding_utility.gyp
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +2 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        A | 
        
          
            webrtc/modules/video_coding/video_codec_initializer.cc
          
         | 
        
          
            View
          
         | 
        
        
          1
        
          2
        
          3
        
         | 
        
          1 chunk | 
          +227 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/video_coding.gypi
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +2 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/video_coding_impl.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +10 lines, -2 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/video_coding_impl.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          4 chunks | 
          +22 lines, -1 line | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/video_sender.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          6 chunks | 
          +37 lines, -10 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/modules/video_coding/video_sender_unittest.cc
          
         | 
        
          
            View
          
         | 
        
        
          1
        
          2
        
          3
        
         | 
        
          12 chunks | 
          +58 lines, -19 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/test/configurable_frame_size_encoder.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +2 lines, -1 line | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/test/configurable_frame_size_encoder.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          3 chunks | 
          +5 lines, -3 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/test/fake_encoder.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +3 lines, -2 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/test/fake_encoder.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          4 chunks | 
          +6 lines, -6 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/video/end_to_end_tests.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +4 lines, -3 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/video/video_encoder.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          3 chunks | 
          +13 lines, -7 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/video/video_encoder_unittest.cc
          
         | 
        
          
            View
          
         | 
        
        
          1
        
          2
        
          3
        
         | 
        
          6 chunks | 
          +26 lines, -4 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/video/video_send_stream_tests.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          6 chunks | 
          +21 lines, -14 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/video/vie_encoder.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +2 lines, -5 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/video/vie_encoder.cc
          
         | 
        
          
            View
          
         | 
        
        
          1
        
          2
        
          3
        
         | 
        
          7 chunks | 
          +20 lines, -153 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/video/vie_encoder_unittest.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          3 chunks | 
          +16 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            webrtc/video_encoder.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          4 chunks | 
          +15 lines, -4 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
   
  
  
 
  
   
  
    
  
  
  
    
    Total messages: 16 (8 generated)
     
  
  
       |