| Index: source/libvpx/vp9/encoder/vp9_ratectrl.c
 | 
| ===================================================================
 | 
| --- source/libvpx/vp9/encoder/vp9_ratectrl.c	(revision 271012)
 | 
| +++ source/libvpx/vp9/encoder/vp9_ratectrl.c	(working copy)
 | 
| @@ -48,6 +48,7 @@
 | 
|  static int arfgf_low_motion_minq[QINDEX_RANGE];
 | 
|  static int arfgf_high_motion_minq[QINDEX_RANGE];
 | 
|  static int inter_minq[QINDEX_RANGE];
 | 
| +static int rtc_minq[QINDEX_RANGE];
 | 
|  static int gf_high = 2000;
 | 
|  static int gf_low = 400;
 | 
|  static int kf_high = 5000;
 | 
| @@ -84,6 +85,7 @@
 | 
|      arfgf_low_motion_minq[i] = get_minq_index(maxq, 0.0000015, -0.0009, 0.30);
 | 
|      arfgf_high_motion_minq[i] = get_minq_index(maxq, 0.0000021, -0.00125, 0.50);
 | 
|      inter_minq[i] = get_minq_index(maxq, 0.00000271, -0.00113, 0.90);
 | 
| +    rtc_minq[i] = get_minq_index(maxq, 0.00000271, -0.00113, 0.70);
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -549,14 +551,14 @@
 | 
|      // Use the lower of active_worst_quality and recent/average Q.
 | 
|      if (cm->current_video_frame > 1) {
 | 
|        if (rc->avg_frame_qindex[INTER_FRAME] < active_worst_quality)
 | 
| -        active_best_quality = inter_minq[rc->avg_frame_qindex[INTER_FRAME]];
 | 
| +        active_best_quality = rtc_minq[rc->avg_frame_qindex[INTER_FRAME]];
 | 
|        else
 | 
| -        active_best_quality = inter_minq[active_worst_quality];
 | 
| +        active_best_quality = rtc_minq[active_worst_quality];
 | 
|      } else {
 | 
|        if (rc->avg_frame_qindex[KEY_FRAME] < active_worst_quality)
 | 
| -        active_best_quality = inter_minq[rc->avg_frame_qindex[KEY_FRAME]];
 | 
| +        active_best_quality = rtc_minq[rc->avg_frame_qindex[KEY_FRAME]];
 | 
|        else
 | 
| -        active_best_quality = inter_minq[active_worst_quality];
 | 
| +        active_best_quality = rtc_minq[active_worst_quality];
 | 
|      }
 | 
|    }
 | 
|  
 | 
| @@ -972,11 +974,7 @@
 | 
|      q = rc_pick_q_and_bounds_two_pass(cpi, bottom_index, top_index);
 | 
|    }
 | 
|  
 | 
| -  // Q of 0 is disabled because we force tx size to be
 | 
| -  // 16x16...
 | 
|    if (cpi->sf.use_nonrd_pick_mode) {
 | 
| -    if (q == 0)
 | 
| -      q++;
 | 
|      if (cpi->sf.force_frame_boost == 1)
 | 
|        q -= cpi->sf.max_delta_qindex;
 | 
|  
 | 
| @@ -1149,10 +1147,6 @@
 | 
|    cpi->rc.frames_to_key--;
 | 
|  }
 | 
|  
 | 
| -static int test_for_kf_one_pass(VP9_COMP *cpi) {
 | 
| -  // Placeholder function for auto key frame
 | 
| -  return 0;
 | 
| -}
 | 
|  // Use this macro to turn on/off use of alt-refs in one-pass mode.
 | 
|  #define USE_ALTREF_FOR_ONE_PASS   1
 | 
|  
 | 
| @@ -1184,11 +1178,12 @@
 | 
|    VP9_COMMON *const cm = &cpi->common;
 | 
|    RATE_CONTROL *const rc = &cpi->rc;
 | 
|    int target;
 | 
| +  // TODO(yaowu): replace the "auto_key && 0" below with proper decision logic.
 | 
|    if (!cpi->refresh_alt_ref_frame &&
 | 
|        (cm->current_video_frame == 0 ||
 | 
|         (cpi->frame_flags & FRAMEFLAGS_KEY) ||
 | 
|         rc->frames_to_key == 0 ||
 | 
| -       (cpi->oxcf.auto_key && test_for_kf_one_pass(cpi)))) {
 | 
| +       (cpi->oxcf.auto_key && 0))) {
 | 
|      cm->frame_type = KEY_FRAME;
 | 
|      rc->this_key_frame_forced = cm->current_video_frame != 0 &&
 | 
|                                  rc->frames_to_key == 0;
 | 
| @@ -1315,10 +1310,11 @@
 | 
|    VP9_COMMON *const cm = &cpi->common;
 | 
|    RATE_CONTROL *const rc = &cpi->rc;
 | 
|    int target;
 | 
| +  // TODO(yaowu): replace the "auto_key && 0" below with proper decision logic.
 | 
|    if ((cm->current_video_frame == 0 ||
 | 
|        (cpi->frame_flags & FRAMEFLAGS_KEY) ||
 | 
|        rc->frames_to_key == 0 ||
 | 
| -      (cpi->oxcf.auto_key && test_for_kf_one_pass(cpi)))) {
 | 
| +      (cpi->oxcf.auto_key && 0))) {
 | 
|      cm->frame_type = KEY_FRAME;
 | 
|      rc->this_key_frame_forced = cm->current_video_frame != 0 &&
 | 
|                                  rc->frames_to_key == 0;
 | 
| 
 |