diff options
author | Paul Wilkins <paulwilkins@google.com> | 2010-09-01 02:45:12 -0700 |
---|---|---|
committer | Code Review <code-review@webmproject.org> | 2010-09-01 02:45:12 -0700 |
commit | 18c902f8a416ae97de8143840234a416700a1e64 (patch) | |
tree | ca1dd881a1abc998bdb9b66fca1da03cebf49de9 /vp8/encoder/onyx_if.c | |
parent | 0e78efad0be73d293880d1b71053c0d70a50a080 (diff) | |
parent | c239a1b67c9c5ff25a04ba89eca45245b1e615a2 (diff) | |
download | libvpx-18c902f8a416ae97de8143840234a416700a1e64.tar libvpx-18c902f8a416ae97de8143840234a416700a1e64.tar.gz libvpx-18c902f8a416ae97de8143840234a416700a1e64.tar.bz2 libvpx-18c902f8a416ae97de8143840234a416700a1e64.zip |
Merge "Improved Force Key Frame Behaviour"
Diffstat (limited to 'vp8/encoder/onyx_if.c')
-rw-r--r-- | vp8/encoder/onyx_if.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index 99c434f52..fe83ae976 100644 --- a/vp8/encoder/onyx_if.c +++ b/vp8/encoder/onyx_if.c @@ -2818,23 +2818,17 @@ static int pick_frame_size(VP8_COMP *cpi) cm->frame_type = KEY_FRAME; } - // Auto key frames (Only two pass will enter here) - else if (cm->frame_type == KEY_FRAME) - { - vp8_calc_auto_iframe_target_size(cpi); - } - // Forced key frames (by interval or an external signal) - else if ((cm->frame_flags & FRAMEFLAGS_KEY) || - (cpi->oxcf.auto_key && (cpi->frames_since_key % cpi->key_frame_frequency == 0))) + // Special case for forced key frames + // The frame sizing here is still far from ideal for 2 pass. + else if (cm->frame_flags & FRAMEFLAGS_KEY) { - // Key frame from VFW/auto-keyframe/first frame cm->frame_type = KEY_FRAME; - resize_key_frame(cpi); - - // Compute target frame size - if (cpi->pass != 2) - vp8_calc_iframe_target_size(cpi); + vp8_calc_iframe_target_size(cpi); + } + else if (cm->frame_type == KEY_FRAME) + { + vp8_calc_auto_iframe_target_size(cpi); } else { |