| Index: source/libvpx/vp8/encoder/ratectrl.c
 | 
| ===================================================================
 | 
| --- source/libvpx/vp8/encoder/ratectrl.c	(revision 240950)
 | 
| +++ source/libvpx/vp8/encoder/ratectrl.c	(working copy)
 | 
| @@ -174,14 +174,6 @@
 | 
|      600, 600, 600, 600, 600, 600, 600, 600,
 | 
|  };
 | 
|  
 | 
| -/* % adjustment to target kf size based on seperation from previous frame */
 | 
| -static const int kf_boost_seperation_adjustment[16] =
 | 
| -{
 | 
| -    30,   40,   50,   55,   60,   65,   70,   75,
 | 
| -    80,   85,   90,   95,  100,  100,  100,  100,
 | 
| -};
 | 
| -
 | 
| -
 | 
|  static const int gf_adjust_table[101] =
 | 
|  {
 | 
|      100,
 | 
| @@ -956,6 +948,21 @@
 | 
|              if (cpi->bits_off_target > cpi->oxcf.maximum_buffer_size)
 | 
|                cpi->bits_off_target = (int)cpi->oxcf.maximum_buffer_size;
 | 
|              cpi->buffer_level = cpi->bits_off_target;
 | 
| +
 | 
| +            if (cpi->oxcf.number_of_layers > 1) {
 | 
| +              unsigned int i;
 | 
| +
 | 
| +              // Propagate bits saved by dropping the frame to higher layers.
 | 
| +              for (i = cpi->current_layer + 1; i < cpi->oxcf.number_of_layers;
 | 
| +                  i++) {
 | 
| +                LAYER_CONTEXT *lc = &cpi->layer_context[i];
 | 
| +                lc->bits_off_target += (int)(lc->target_bandwidth /
 | 
| +                                             lc->framerate);
 | 
| +                if (lc->bits_off_target > lc->maximum_buffer_size)
 | 
| +                  lc->bits_off_target = lc->maximum_buffer_size;
 | 
| +                lc->buffer_level = lc->bits_off_target;
 | 
| +              }
 | 
| +            }
 | 
|          }
 | 
|      }
 | 
|  
 | 
| @@ -1223,7 +1230,6 @@
 | 
|          {
 | 
|              Q = cpi->oxcf.gold_q;
 | 
|          }
 | 
| -
 | 
|      }
 | 
|      else
 | 
|      {
 | 
| 
 |