Merge "Fix "all|no frames are keyframes" settings."

This commit is contained in:
James Zern 2017-01-27 00:02:04 +00:00 committed by Gerrit Code Review
commit 1c3190b6ed
3 changed files with 13 additions and 12 deletions

View File

@ -1,5 +1,5 @@
.\" Hey, EMACS: -*- nroff -*- .\" Hey, EMACS: -*- nroff -*-
.TH GIF2WEBP 1 "June 23, 2016" .TH GIF2WEBP 1 "January 25, 2017"
.SH NAME .SH NAME
gif2webp \- Convert a GIF image to WebP gif2webp \- Convert a GIF image to WebP
.SH SYNOPSIS .SH SYNOPSIS
@ -68,8 +68,9 @@ Specify the minimum and maximum distance between consecutive key frames
some key frames into the output animation as needed so that this criteria is some key frames into the output animation as needed so that this criteria is
satisfied. satisfied.
.br .br
A 'kmin' value of 0 will turn off insertion of key frames. A 'kmax' value of 0 A 'kmax' value of 0 will turn off insertion of key frames. A 'kmax' value of 1
will result in all frames being key frames. will result in all frames being key frames. 'kmin' value is not taken into
account in both these special cases.
Typical values are in the range 3 to 30. Default values are kmin = 9, Typical values are in the range 3 to 30. Default values are kmin = 9,
kmax = 17 for lossless compression and kmin = 3, kmax = 5 for lossy compression. kmax = 17 for lossless compression and kmin = 3, kmax = 5 for lossy compression.
.br .br

View File

@ -129,14 +129,13 @@ static void SanitizeEncoderOptions(WebPAnimEncoderOptions* const enc_options) {
DisableKeyframes(enc_options); DisableKeyframes(enc_options);
} }
if (enc_options->kmin <= 0) { if (enc_options->kmax == 1) { // All frames will be key-frames.
DisableKeyframes(enc_options);
print_warning = 0;
}
if (enc_options->kmax <= 0) { // All frames will be key-frames.
enc_options->kmin = 0; enc_options->kmin = 0;
enc_options->kmax = 0; enc_options->kmax = 0;
return; return;
} else if (enc_options->kmax <= 0) {
DisableKeyframes(enc_options);
print_warning = 0;
} }
if (enc_options->kmin >= enc_options->kmax) { if (enc_options->kmin >= enc_options->kmax) {

View File

@ -21,7 +21,7 @@
extern "C" { extern "C" {
#endif #endif
#define WEBP_MUX_ABI_VERSION 0x0107 // MAJOR(8b) + MINOR(8b) #define WEBP_MUX_ABI_VERSION 0x0108 // MAJOR(8b) + MINOR(8b)
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// Mux API // Mux API
@ -430,9 +430,10 @@ struct WebPAnimEncoderOptions {
// frames in the output. The library may insert some key // frames in the output. The library may insert some key
// frames as needed to satisfy this criteria. // frames as needed to satisfy this criteria.
// Note that these conditions should hold: kmax > kmin // Note that these conditions should hold: kmax > kmin
// and kmin >= kmax / 2 + 1. Also, if kmin == 0, then // and kmin >= kmax / 2 + 1. Also, if kmax <= 0, then
// key-frame insertion is disabled; and if kmax == 0, // key-frame insertion is disabled; and if kmax == 1,
// then all frames will be key-frames. // then all frames will be key-frames (kmin value does
// not matter for these special cases).
int allow_mixed; // If true, use mixed compression mode; may choose int allow_mixed; // If true, use mixed compression mode; may choose
// either lossy and lossless for each frame. // either lossy and lossless for each frame.
int verbose; // If true, print info and warning messages to stderr. int verbose; // If true, print info and warning messages to stderr.