diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index b5e6f8704..e2fd622f3 100644 --- a/vp8/encoder/onyx_if.c +++ b/vp8/encoder/onyx_if.c @@ -3385,16 +3385,17 @@ static void encode_frame_to_data_rate cpi->mb.e_mbd.update_mb_segmentation_map = 1; #endif -#if CONFIG_REALTIME_ONLY - if(cpi->oxcf.auto_key && cm->frame_type != KEY_FRAME) + if (cpi->compressor_speed == 2) { - if(cpi->force_next_frame_intra) + if(cpi->oxcf.auto_key && cm->frame_type != KEY_FRAME) { - cm->frame_type = KEY_FRAME; /* delayed intra frame */ + if(cpi->force_next_frame_intra) + { + cm->frame_type = KEY_FRAME; /* delayed intra frame */ + } } + cpi->force_next_frame_intra = 0; } - cpi->force_next_frame_intra = 0; -#endif // For an alt ref frame in 2 pass we skip the call to the second pass function that sets the target bandwidth #if !(CONFIG_REALTIME_ONLY) @@ -3934,15 +3935,15 @@ static void encode_frame_to_data_rate // (assuming that we didn't)! if (cpi->pass != 2 && cpi->oxcf.auto_key && cm->frame_type != KEY_FRAME) { + int key_frame_decision = decide_key_frame(cpi); -#if CONFIG_REALTIME_ONLY + if (cpi->compressor_speed == 2) { /* we don't do re-encoding in realtime mode * if key frame is decided than we force it on next frame */ - cpi->force_next_frame_intra = decide_key_frame(cpi); + cpi->force_next_frame_intra = key_frame_decision; } -#else - if (decide_key_frame(cpi)) + else if (key_frame_decision) { // Reset all our sizing numbers and recode cm->frame_type = KEY_FRAME; @@ -3979,7 +3980,6 @@ static void encode_frame_to_data_rate continue; } -#endif } vp8_clear_system_state(); diff --git a/vp8/encoder/onyx_int.h b/vp8/encoder/onyx_int.h index 3123315c4..8519b8f81 100644 --- a/vp8/encoder/onyx_int.h +++ b/vp8/encoder/onyx_int.h @@ -622,9 +622,8 @@ typedef struct VP8_COMP int *lf_ref_frame_sign_bias; int *lf_ref_frame; -#if CONFIG_REALTIME_ONLY int force_next_frame_intra; /* force next frame to intra when kf_auto says so */ -#endif + int droppable; } VP8_COMP;