diff --git a/src/mux/anim_encode.c b/src/mux/anim_encode.c index 4b1a1120..66ccbb8c 100644 --- a/src/mux/anim_encode.c +++ b/src/mux/anim_encode.c @@ -1262,10 +1262,13 @@ static int CacheFrame(WebPAnimEncoder* const enc, // Note: We need '>=' below because when kmin and kmax are both zero, // count_since_key_frame will always be > kmax. if (enc->count_since_key_frame >= enc->options.kmax) { + // Force the next frame to be a key frame. + enc->best_delta = DELTA_INFINITY; + // Flush all encoded frames. enc->flush_count = enc->count - 1; enc->count_since_key_frame = 0; + enc->prev_candidate_undecided = 0; enc->keyframe = KEYFRAME_NONE; - enc->best_delta = DELTA_INFINITY; } if (!enc->prev_candidate_undecided) { enc->prev_rect =