mirror of
https://github.com/webmproject/libwebp.git
synced 2025-07-15 13:29:54 +02:00
Compare commits
10 Commits
306335198d
...
v1.5.0-rc1
Author | SHA1 | Date | |
---|---|---|---|
25e17c686f | |||
aa2684fccc | |||
369238461b | |||
ceea8ff6b3 | |||
e4f7a9f0c7 | |||
1b4c967fbb | |||
9e5ecfaf00 | |||
da0d9c7d4e | |||
fcff86c71b | |||
b76c4a8416 |
3
AUTHORS
3
AUTHORS
@ -11,11 +11,13 @@ Contributors:
|
|||||||
- Christopher Degawa (ccom at randomderp dot com)
|
- Christopher Degawa (ccom at randomderp dot com)
|
||||||
- Clement Courbet (courbet at google dot com)
|
- Clement Courbet (courbet at google dot com)
|
||||||
- Djordje Pesut (djordje dot pesut at imgtec dot com)
|
- Djordje Pesut (djordje dot pesut at imgtec dot com)
|
||||||
|
- Frank (1433351828 at qq dot com)
|
||||||
- Frank Barchard (fbarchard at google dot com)
|
- Frank Barchard (fbarchard at google dot com)
|
||||||
- Hui Su (huisu at google dot com)
|
- Hui Su (huisu at google dot com)
|
||||||
- H. Vetinari (h dot vetinari at gmx dot com)
|
- H. Vetinari (h dot vetinari at gmx dot com)
|
||||||
- Ilya Kurdyukov (jpegqs at gmail dot com)
|
- Ilya Kurdyukov (jpegqs at gmail dot com)
|
||||||
- Ingvar Stepanyan (rreverser at google dot com)
|
- Ingvar Stepanyan (rreverser at google dot com)
|
||||||
|
- Istvan Stefan (Istvan dot Stefan at arm dot com)
|
||||||
- James Zern (jzern at google dot com)
|
- James Zern (jzern at google dot com)
|
||||||
- Jan Engelhardt (jengelh at medozas dot de)
|
- Jan Engelhardt (jengelh at medozas dot de)
|
||||||
- Jehan (jehan at girinstud dot io)
|
- Jehan (jehan at girinstud dot io)
|
||||||
@ -62,6 +64,7 @@ Contributors:
|
|||||||
- Vincent Rabaud (vrabaud at google dot com)
|
- Vincent Rabaud (vrabaud at google dot com)
|
||||||
- Vlad Tsyrklevich (vtsyrklevich at chromium dot org)
|
- Vlad Tsyrklevich (vtsyrklevich at chromium dot org)
|
||||||
- Wan-Teh Chang (wtc at google dot com)
|
- Wan-Teh Chang (wtc at google dot com)
|
||||||
|
- wrv (wrv at utexas dot edu)
|
||||||
- Yang Zhang (yang dot zhang at arm dot com)
|
- Yang Zhang (yang dot zhang at arm dot com)
|
||||||
- Yannis Guyon (yguyon at google dot com)
|
- Yannis Guyon (yguyon at google dot com)
|
||||||
- Zhi An Ng (zhin at chromium dot org)
|
- Zhi An Ng (zhin at chromium dot org)
|
||||||
|
133
ChangeLog
133
ChangeLog
@ -1,3 +1,136 @@
|
|||||||
|
aa2684fc update NEWS
|
||||||
|
36923846 bump version to 1.5.0
|
||||||
|
ceea8ff6 update AUTHORS
|
||||||
|
e4f7a9f0 img2webp: add a warning for unused options
|
||||||
|
1b4c967f Merge "Properly check the data size against the end of the RIFF chunk" into main
|
||||||
|
9e5ecfaf Properly check the data size against the end of the RIFF chunk
|
||||||
|
da0d9c7d examples: exit w/failure w/no args
|
||||||
|
fcff86c7 {gif,img}2webp: sync -m help w/cwebp
|
||||||
|
b76c4a84 man/img2webp.1: sync -m text w/cwebp.1 & gif2webp.1
|
||||||
|
30633519 muxread: fix reading of buffers > riff size
|
||||||
|
4c85d860 yuv.h: update RGB<->YUV coefficients in comment
|
||||||
|
0ab789e0 Merge changes I6dfedfd5,I2376e2dc into main
|
||||||
|
03236450 {ios,xcframework}build.sh: fix compilation w/Xcode 16
|
||||||
|
61e2cfda rework AddVectorEq_SSE2
|
||||||
|
7bda3deb rework AddVector_SSE2
|
||||||
|
2ddaaf0a Fix variable names in SharpYuvComputeConversionMatrix
|
||||||
|
a3ba6f19 Makefile.vc: fix gif2webp link error
|
||||||
|
f999d94f gif2webp: add -sharp_yuv/-near_lossless
|
||||||
|
dfdcb7f9 Merge "lossless.h: fix function declaration mismatches" into main (tag: webp-rfc9649)
|
||||||
|
78ed6839 fix overread in Intra4Preds_NEON
|
||||||
|
d516a68e lossless.h: fix function declaration mismatches
|
||||||
|
87406904 Merge "Improve documentation of SharpYuvConversionMatrix." into main
|
||||||
|
fdb229ea Merge changes I07a7e36a,Ib29980f7,I2316122d,I2356e314,I32b53dd3, ... into main
|
||||||
|
0c3cd9cc Improve documentation of SharpYuvConversionMatrix.
|
||||||
|
169dfbf9 disable Intra4Preds_NEON
|
||||||
|
2dd5eb98 dsp/yuv*: use WEBP_RESTRICT qualifier
|
||||||
|
23bbafbe dsp/upsampling*: use WEBP_RESTRICT qualifier
|
||||||
|
35915b38 dsp/rescaler*: use WEBP_RESTRICT qualifier
|
||||||
|
a32b436b dsp/lossless*: use WEBP_RESTRICT qualifier
|
||||||
|
04d4b4f3 dsp/filters*: use WEBP_RESTRICT qualifier
|
||||||
|
b1cb37e6 dsp/enc*: use WEBP_RESTRICT qualifier
|
||||||
|
201894ef dsp/dec*: use WEBP_RESTRICT qualifier
|
||||||
|
02eac8a7 dsp/cost*: use WEBP_RESTRICT qualifier
|
||||||
|
84b118c9 Merge "webp-container-spec: normalize notes & unknown chunk link" into main
|
||||||
|
052cf42f webp-container-spec: normalize notes & unknown chunk link
|
||||||
|
220ee529 Search for best predictor transform bits
|
||||||
|
78619478 Try to reduce the sampling for the entropy image
|
||||||
|
14f09ab7 webp-container-spec: reorder chunk size - N text
|
||||||
|
a78c5356 Remove a useless malloc for entropy image
|
||||||
|
bc491763 Merge "Refactor predictor finding" into main
|
||||||
|
34f92238 man/{cwebp,img2webp}.1: rm 'if needed' from -sharp_yuv
|
||||||
|
367ca938 Refactor predictor finding
|
||||||
|
a582b53b webp-lossless-bitstream-spec: clarify some text
|
||||||
|
0fd25d84 Merge "anim_encode.c: fix function ref in comment" into main
|
||||||
|
f8882913 anim_encode.c: fix function ref in comment
|
||||||
|
40e4ca60 specs_generation.md: update kramdown command line
|
||||||
|
57883c78 img2webp: add -exact/-noexact per-frame options
|
||||||
|
1c8eba97 img2webp,cosmetics: add missing '.' spacers to help
|
||||||
|
2e81017c Convert predictor_enc.c to fixed point
|
||||||
|
94de6c7f Merge "Fix fuzztest link errors w/-DBUILD_SHARED_LIBS=1" into main
|
||||||
|
51d9832a Fix fuzztest link errors w/-DBUILD_SHARED_LIBS=1
|
||||||
|
7bcb36b8 Merge "Fix static overflow warning." into main
|
||||||
|
8e0cc14c Fix static overflow warning.
|
||||||
|
cea68462 README.md: add security report note
|
||||||
|
615e5874 Merge "make VP8LPredictor[01]_C() static" into main
|
||||||
|
233e86b9 Merge changes Ie43dc5ef,I94cd8bab into main
|
||||||
|
1a29fd2f make VP8LPredictor[01]_C() static
|
||||||
|
dd9d3770 Do*Filter_*: remove row & num_rows parameters
|
||||||
|
ab451a49 Do*Filter_C: remove dead 'inverse' code paths
|
||||||
|
f9a480f7 {TrueMotion,TM16}_NEON: remove zero extension
|
||||||
|
04834aca Merge changes I25c30a9e,I0a192fc6,I4cf89575 into main
|
||||||
|
39a602af webp-lossless-bitstream-spec: normalize predictor transform ref
|
||||||
|
f28c837d Merge "webp-container-spec: align anim pseudocode w/prose" into main
|
||||||
|
74be8e22 Fix implicit conversion issues
|
||||||
|
0c01db7c Merge "Increase the transform bits if possible." into main
|
||||||
|
f2d6dc1e Increase the transform bits if possible.
|
||||||
|
caa19e5b update link to issue tracker
|
||||||
|
c9dd9bd4 webp-container-spec: align anim pseudocode w/prose
|
||||||
|
8a7c8dc6 WASM: Enable VP8L_USE_FAST_LOAD
|
||||||
|
f0c53cd9 WASM: don't use USE_GENERIC_TREE
|
||||||
|
eef903d0 WASM: Enable 64-bit BITS caching
|
||||||
|
6296cc8d iterator_enc: make VP8IteratorReset() static
|
||||||
|
fbd93896 histogram_enc: make VP8LGetHistogramSize static
|
||||||
|
cc7ff545 cost_enc: make VP8CalculateLevelCosts[] static
|
||||||
|
4e2828ba vp8l_dec: make VP8LClear() static
|
||||||
|
d742b24a Intra16Preds_NEON: fix truemotion saturation
|
||||||
|
c7bb4cb5 Intra4Preds_NEON: fix truemotion saturation
|
||||||
|
952a989b Merge "Remove TODO now that log is using fixed point." into main
|
||||||
|
dde11574 Remove TODO now that log is using fixed point.
|
||||||
|
a1ca153d Fix hidden myerr in my_error_exit
|
||||||
|
3bd94202 Merge changes Iff6e47ed,I24c67cd5,Id781e761 into main
|
||||||
|
d27d246e Merge "Convert VP8LFastSLog2 to fixed point" into main
|
||||||
|
4838611f Disable msg_code use in fuzzing mode
|
||||||
|
314a142a Use QuantizeBlock_NEON for VP8EncQuantizeBlockWHT on Arm
|
||||||
|
3bfb05e3 Add AArch64 Neon implementation of Intra16Preds
|
||||||
|
baa93808 Add AArch64 Neon implementation of Intra4Preds
|
||||||
|
41a5e582 Fix errors when compiling code as C++
|
||||||
|
fb444b69 Convert VP8LFastSLog2 to fixed point
|
||||||
|
c1c89f51 Fix WEBP_NODISCARD comment and C++ version
|
||||||
|
66408c2c Switch the histogram_enc.h API to fixed point
|
||||||
|
ac1e410d Remove leftover tiff dep
|
||||||
|
b78d3957 Disable TIFF on fuzztest.
|
||||||
|
cff21a7d Do not build statically on oss-fuzz.
|
||||||
|
6853a8e5 Merge "Move more internal fuzzers to public." into main
|
||||||
|
9bc09db4 Merge "Convert VP8LFastLog2 to fixed point" into main
|
||||||
|
0a9f1c19 Convert VP8LFastLog2 to fixed point
|
||||||
|
db0cb9c2 Move more internal fuzzers to public.
|
||||||
|
ff2b5b15 Merge "advanced_api_fuzzer.cc: use crop dims in OOM check" into main
|
||||||
|
c4af79d0 Put 0 at the end of a palette and do not store it.
|
||||||
|
0ec80aef Delete last references to delta palettization
|
||||||
|
96d79f84 advanced_api_fuzzer.cc: use crop dims in OOM check
|
||||||
|
c35c7e02 Fix huffman fuzzer to not leak.
|
||||||
|
f2fe8dec Bump fuzztest dependency.
|
||||||
|
9ce982fd Fix fuzz tests to work on oss-fuzz
|
||||||
|
3ba8af1a Do not escape quotes anymore in build.sh
|
||||||
|
ea0e121b Allow centipede to be used as a fuzzing engine.
|
||||||
|
27731afd make VP8I4ModeOffsets & VP8MakeIntra4Preds static
|
||||||
|
ddd6245e oss-fuzz/build.sh: use heredoc for script creation
|
||||||
|
50074930 oss-fuzz/build.sh,cosmetics: fix indent
|
||||||
|
20e92f7d Limit the possible fuzz engines.
|
||||||
|
4f200de5 Switch public fuzz tests to fuzztest.
|
||||||
|
64186bb3 Add huffman_fuzzer to .gitignore
|
||||||
|
0905f61c Move build script from oss-fuzz repo to here.
|
||||||
|
e8678758 Fix link to Javascript documentation
|
||||||
|
5e5b8f0c Fix SSE2 Transform_AC3 function name
|
||||||
|
45129ee0 Revert "Check all the rows."
|
||||||
|
ee26766a Check all the rows.
|
||||||
|
7ec51c59 Increase the transform bits if possible.
|
||||||
|
3cd16fd3 Revert "Increase the transform bits if possible."
|
||||||
|
971a03d8 Increase the transform bits if possible.
|
||||||
|
1bf198a2 Allow transform_bits to be different during encoding.
|
||||||
|
1e462ca8 Define MAX_TRANSFORM_BITS according to the specification.
|
||||||
|
64d1ec23 Use (MIN/NUM)_(TRANSFORM/HUFFMAN)_BITS where appropriate
|
||||||
|
a90160e1 Refactor histograms in predictors.
|
||||||
|
a7aa7525 Fix some function declarations
|
||||||
|
68ff4e1e Merge "jpegdec: add a hint for EOF/READ errors" into main
|
||||||
|
79e7968a jpegdec: add a hint for EOF/READ errors
|
||||||
|
d33455cd man/*: s/BUGS/REPORTING BUGS/
|
||||||
|
a67ff735 normalize example exit status
|
||||||
|
edc28909 upsampling_{neon,sse41}: fix int sanitizer warning
|
||||||
|
3cada4ce ImgIoUtilReadFile: check ftell() return
|
||||||
|
dc950585 Merge tag 'v1.4.0'
|
||||||
|
845d5476 update ChangeLog (tag: v1.4.0, origin/1.4.0)
|
||||||
8a6a55bb update NEWS
|
8a6a55bb update NEWS
|
||||||
cf7c5a5d provide a way to opt-out/override WEBP_NODISCARD
|
cf7c5a5d provide a way to opt-out/override WEBP_NODISCARD
|
||||||
cc34288a update ChangeLog (tag: v1.4.0-rc1)
|
cc34288a update ChangeLog (tag: v1.4.0-rc1)
|
||||||
|
20
NEWS
20
NEWS
@ -1,3 +1,23 @@
|
|||||||
|
- 12/13/2024 version 1.5.0
|
||||||
|
This is a binary compatible release.
|
||||||
|
* minor lossless encoder speed and compression improvements
|
||||||
|
* lossless encoding does not use floats anymore
|
||||||
|
* additional Arm optimizations for lossy & lossless + general code generation
|
||||||
|
improvements
|
||||||
|
* improvements to WASM performance (#643)
|
||||||
|
* improvements and corrections in webp-container-spec.txt and
|
||||||
|
webp-lossless-bitstream-spec.txt (#646, #355607636)
|
||||||
|
* further security related hardening and increased fuzzing coverage w/fuzztest
|
||||||
|
(oss-fuzz: #382816119, #70112, #70102, #69873, #69825, #69508, #69208)
|
||||||
|
* miscellaneous warning, bug & build fixes (#499, #562, #381372617,
|
||||||
|
#381109771, #42340561, #375011696, #372109644, chromium: #334120888)
|
||||||
|
Tool updates:
|
||||||
|
* gif2webp: add -sharp_yuv & -near_lossless
|
||||||
|
* img2webp: add -exact & -noexact
|
||||||
|
* exit codes normalized; running an example program with no
|
||||||
|
arguments will output its help and exit with an error (#42340557,
|
||||||
|
#381372617)
|
||||||
|
|
||||||
- 4/12/2024: version 1.4.0
|
- 4/12/2024: version 1.4.0
|
||||||
This is a binary compatible release.
|
This is a binary compatible release.
|
||||||
* API changes:
|
* API changes:
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
\__\__/\____/\_____/__/ ____ ___
|
\__\__/\____/\_____/__/ ____ ___
|
||||||
/ _/ / \ \ / _ \/ _/
|
/ _/ / \ \ / _ \/ _/
|
||||||
/ \_/ / / \ \ __/ \__
|
/ \_/ / / \ \ __/ \__
|
||||||
\____/____/\_____/_____/____/v1.4.0
|
\____/____/\_____/_____/____/v1.5.0
|
||||||
```
|
```
|
||||||
|
|
||||||
WebP codec is a library to encode and decode images in WebP format. This package
|
WebP codec is a library to encode and decode images in WebP format. This package
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
AC_INIT([libwebp], [1.4.0],
|
AC_INIT([libwebp], [1.5.0],
|
||||||
[https://issues.webmproject.org],,
|
[https://issues.webmproject.org],,
|
||||||
[https://developers.google.com/speed/webp])
|
[https://developers.google.com/speed/webp])
|
||||||
AC_CANONICAL_HOST
|
AC_CANONICAL_HOST
|
||||||
|
@ -324,7 +324,7 @@ Per-frame options (only used for subsequent images input):
|
|||||||
-lossless ............ use lossless mode (default)
|
-lossless ............ use lossless mode (default)
|
||||||
-lossy ............... use lossy mode
|
-lossy ............... use lossy mode
|
||||||
-q <float> ........... quality
|
-q <float> ........... quality
|
||||||
-m <int> ............. method to use
|
-m <int> ............. compression method (0=fast, 6=slowest), default=4
|
||||||
-exact, -noexact ..... preserve or alter RGB values in transparent area
|
-exact, -noexact ..... preserve or alter RGB values in transparent area
|
||||||
(default: -noexact, may cause artifacts
|
(default: -noexact, may cause artifacts
|
||||||
with lossy animations)
|
with lossy animations)
|
||||||
@ -359,7 +359,7 @@ Options:
|
|||||||
-sharp_yuv ............. use sharper (and slower) RGB->YUV conversion
|
-sharp_yuv ............. use sharper (and slower) RGB->YUV conversion
|
||||||
(lossy only)
|
(lossy only)
|
||||||
-q <float> ............. quality factor (0:small..100:big)
|
-q <float> ............. quality factor (0:small..100:big)
|
||||||
-m <int> ............... compression method (0=fast, 6=slowest)
|
-m <int> ............... compression method (0=fast, 6=slowest), default=4
|
||||||
-min_size .............. minimize output size (default:off)
|
-min_size .............. minimize output size (default:off)
|
||||||
lossless compression by default; can be
|
lossless compression by default; can be
|
||||||
combined with -q, -m, -lossy or -mixed
|
combined with -q, -m, -lossy or -mixed
|
||||||
|
@ -698,7 +698,7 @@ int main(int argc, const char* argv[]) {
|
|||||||
|
|
||||||
if (argc == 1) {
|
if (argc == 1) {
|
||||||
HelpShort();
|
HelpShort();
|
||||||
FREE_WARGV_AND_RETURN(EXIT_SUCCESS);
|
FREE_WARGV_AND_RETURN(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (c = 1; c < argc; ++c) {
|
for (c = 1; c < argc; ++c) {
|
||||||
|
@ -77,7 +77,8 @@ static void Help(void) {
|
|||||||
"conversion\n"
|
"conversion\n"
|
||||||
" (lossy only)\n");
|
" (lossy only)\n");
|
||||||
printf(" -q <float> ............. quality factor (0:small..100:big)\n");
|
printf(" -q <float> ............. quality factor (0:small..100:big)\n");
|
||||||
printf(" -m <int> ............... compression method (0=fast, 6=slowest)\n");
|
printf(" -m <int> ............... compression method (0=fast, 6=slowest), "
|
||||||
|
"default=4\n");
|
||||||
printf(" -min_size .............. minimize output size (default:off)\n"
|
printf(" -min_size .............. minimize output size (default:off)\n"
|
||||||
" lossless compression by default; can be\n"
|
" lossless compression by default; can be\n"
|
||||||
" combined with -q, -m, -lossy or -mixed\n"
|
" combined with -q, -m, -lossy or -mixed\n"
|
||||||
@ -157,7 +158,7 @@ int main(int argc, const char* argv[]) {
|
|||||||
|
|
||||||
if (argc == 1) {
|
if (argc == 1) {
|
||||||
Help();
|
Help();
|
||||||
FREE_WARGV_AND_RETURN(EXIT_SUCCESS);
|
FREE_WARGV_AND_RETURN(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (c = 1; c < argc; ++c) {
|
for (c = 1; c < argc; ++c) {
|
||||||
|
@ -62,7 +62,8 @@ static void Help(void) {
|
|||||||
printf(" -lossless ............ use lossless mode (default)\n");
|
printf(" -lossless ............ use lossless mode (default)\n");
|
||||||
printf(" -lossy ............... use lossy mode\n");
|
printf(" -lossy ............... use lossy mode\n");
|
||||||
printf(" -q <float> ........... quality\n");
|
printf(" -q <float> ........... quality\n");
|
||||||
printf(" -m <int> ............. method to use\n");
|
printf(" -m <int> ............. compression method (0=fast, 6=slowest), "
|
||||||
|
"default=4\n");
|
||||||
printf(" -exact, -noexact ..... preserve or alter RGB values in transparent "
|
printf(" -exact, -noexact ..... preserve or alter RGB values in transparent "
|
||||||
"area\n"
|
"area\n"
|
||||||
" (default: -noexact, may cause artifacts\n"
|
" (default: -noexact, may cause artifacts\n"
|
||||||
@ -150,6 +151,7 @@ int main(int argc, const char* argv[]) {
|
|||||||
WebPData webp_data;
|
WebPData webp_data;
|
||||||
int c;
|
int c;
|
||||||
int have_input = 0;
|
int have_input = 0;
|
||||||
|
int last_input_index = 0;
|
||||||
CommandLineArguments cmd_args;
|
CommandLineArguments cmd_args;
|
||||||
int ok;
|
int ok;
|
||||||
|
|
||||||
@ -228,6 +230,8 @@ int main(int argc, const char* argv[]) {
|
|||||||
}
|
}
|
||||||
if (!have_input) {
|
if (!have_input) {
|
||||||
fprintf(stderr, "No input file(s) for generating animation!\n");
|
fprintf(stderr, "No input file(s) for generating animation!\n");
|
||||||
|
ok = 0;
|
||||||
|
Help();
|
||||||
goto End;
|
goto End;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -276,6 +280,7 @@ int main(int argc, const char* argv[]) {
|
|||||||
// read next input image
|
// read next input image
|
||||||
pic.use_argb = 1;
|
pic.use_argb = 1;
|
||||||
ok = ReadImage((const char*)GET_WARGV_SHIFTED(argv, c), &pic);
|
ok = ReadImage((const char*)GET_WARGV_SHIFTED(argv, c), &pic);
|
||||||
|
last_input_index = c;
|
||||||
if (!ok) goto End;
|
if (!ok) goto End;
|
||||||
|
|
||||||
if (enc == NULL) {
|
if (enc == NULL) {
|
||||||
@ -314,6 +319,13 @@ int main(int argc, const char* argv[]) {
|
|||||||
++pic_num;
|
++pic_num;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (c = last_input_index + 1; c < argc; ++c) {
|
||||||
|
if (argv[c] != NULL) {
|
||||||
|
fprintf(stderr, "Warning: unused option [%s]!"
|
||||||
|
" Frame options go before the input frame.\n", argv[c]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// add a last fake frame to signal the last duration
|
// add a last fake frame to signal the last duration
|
||||||
ok = ok && WebPAnimEncoderAdd(enc, NULL, timestamp_ms, NULL);
|
ok = ok && WebPAnimEncoderAdd(enc, NULL, timestamp_ms, NULL);
|
||||||
ok = ok && WebPAnimEncoderAssemble(enc, &webp_data);
|
ok = ok && WebPAnimEncoderAssemble(enc, &webp_data);
|
||||||
|
@ -568,7 +568,7 @@ int main(int argc, char* argv[]) {
|
|||||||
if (kParams.file_name == NULL) {
|
if (kParams.file_name == NULL) {
|
||||||
printf("missing input file!!\n");
|
printf("missing input file!!\n");
|
||||||
Help();
|
Help();
|
||||||
FREE_WARGV_AND_RETURN(EXIT_SUCCESS);
|
FREE_WARGV_AND_RETURN(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ImgIoUtilReadFile(kParams.file_name,
|
if (!ImgIoUtilReadFile(kParams.file_name,
|
||||||
|
@ -1132,7 +1132,7 @@ int main(int argc, const char* argv[]) {
|
|||||||
|
|
||||||
if (argc == 1) {
|
if (argc == 1) {
|
||||||
Help();
|
Help();
|
||||||
FREE_WARGV_AND_RETURN(EXIT_SUCCESS);
|
FREE_WARGV_AND_RETURN(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse command-line input.
|
// Parse command-line input.
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
#include "webp/types.h"
|
#include "webp/types.h"
|
||||||
|
|
||||||
#define XTRA_MAJ_VERSION 1
|
#define XTRA_MAJ_VERSION 1
|
||||||
#define XTRA_MIN_VERSION 4
|
#define XTRA_MIN_VERSION 5
|
||||||
#define XTRA_REV_VERSION 0
|
#define XTRA_REV_VERSION 0
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
@ -57,6 +57,12 @@ int main(int argc, char* argv[]) {
|
|||||||
|
|
||||||
INIT_WARGV(argc, argv);
|
INIT_WARGV(argc, argv);
|
||||||
|
|
||||||
|
if (argc == 1) {
|
||||||
|
fprintf(stderr, "Usage: %s [-h] image.webp [more_files.webp...]\n",
|
||||||
|
argv[0]);
|
||||||
|
goto Error;
|
||||||
|
}
|
||||||
|
|
||||||
for (c = 1; c < argc; ++c) {
|
for (c = 1; c < argc; ++c) {
|
||||||
const char* file = NULL;
|
const char* file = NULL;
|
||||||
const uint8_t* webp = NULL;
|
const uint8_t* webp = NULL;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
.\" Hey, EMACS: -*- nroff -*-
|
.\" Hey, EMACS: -*- nroff -*-
|
||||||
.TH IMG2WEBP 1 "September 17, 2024"
|
.TH IMG2WEBP 1 "November 26, 2024"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
img2webp \- create animated WebP file from a sequence of input images.
|
img2webp \- create animated WebP file from a sequence of input images.
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
@ -88,6 +88,10 @@ Specify the compression factor between 0 and 100. The default is 75.
|
|||||||
Specify the compression method to use. This parameter controls the
|
Specify the compression method to use. This parameter controls the
|
||||||
trade off between encoding speed and the compressed file size and quality.
|
trade off between encoding speed and the compressed file size and quality.
|
||||||
Possible values range from 0 to 6. Default value is 4.
|
Possible values range from 0 to 6. Default value is 4.
|
||||||
|
When higher values are used, the encoder will spend more time inspecting
|
||||||
|
additional encoding possibilities and decide on the quality gain.
|
||||||
|
Lower value can result in faster processing time at the expense of
|
||||||
|
larger file size and lower compression quality.
|
||||||
.TP
|
.TP
|
||||||
.B \-exact, \-noexact
|
.B \-exact, \-noexact
|
||||||
Preserve or alter RGB values in transparent area. The default is
|
Preserve or alter RGB values in transparent area. The default is
|
||||||
|
@ -33,7 +33,7 @@ libsharpyuv_la_SOURCES += sharpyuv_gamma.c sharpyuv_gamma.h
|
|||||||
libsharpyuv_la_SOURCES += sharpyuv.c sharpyuv.h
|
libsharpyuv_la_SOURCES += sharpyuv.c sharpyuv.h
|
||||||
|
|
||||||
libsharpyuv_la_CPPFLAGS = $(AM_CPPFLAGS)
|
libsharpyuv_la_CPPFLAGS = $(AM_CPPFLAGS)
|
||||||
libsharpyuv_la_LDFLAGS = -no-undefined -version-info 1:0:1 -lm
|
libsharpyuv_la_LDFLAGS = -no-undefined -version-info 1:1:1 -lm
|
||||||
libsharpyuv_la_LIBADD =
|
libsharpyuv_la_LIBADD =
|
||||||
libsharpyuv_la_LIBADD += libsharpyuv_sse2.la
|
libsharpyuv_la_LIBADD += libsharpyuv_sse2.la
|
||||||
libsharpyuv_la_LIBADD += libsharpyuv_neon.la
|
libsharpyuv_la_LIBADD += libsharpyuv_neon.la
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 0,0,4,0
|
FILEVERSION 0,0,4,1
|
||||||
PRODUCTVERSION 0,0,4,0
|
PRODUCTVERSION 0,0,4,1
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
@ -24,12 +24,12 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Google, Inc."
|
VALUE "CompanyName", "Google, Inc."
|
||||||
VALUE "FileDescription", "libsharpyuv DLL"
|
VALUE "FileDescription", "libsharpyuv DLL"
|
||||||
VALUE "FileVersion", "0.4.0"
|
VALUE "FileVersion", "0.4.1"
|
||||||
VALUE "InternalName", "libsharpyuv.dll"
|
VALUE "InternalName", "libsharpyuv.dll"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2024"
|
VALUE "LegalCopyright", "Copyright (C) 2024"
|
||||||
VALUE "OriginalFilename", "libsharpyuv.dll"
|
VALUE "OriginalFilename", "libsharpyuv.dll"
|
||||||
VALUE "ProductName", "SharpYuv Library"
|
VALUE "ProductName", "SharpYuv Library"
|
||||||
VALUE "ProductVersion", "0.4.0"
|
VALUE "ProductVersion", "0.4.1"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
@ -52,7 +52,7 @@ extern "C" {
|
|||||||
// SharpYUV API version following the convention from semver.org
|
// SharpYUV API version following the convention from semver.org
|
||||||
#define SHARPYUV_VERSION_MAJOR 0
|
#define SHARPYUV_VERSION_MAJOR 0
|
||||||
#define SHARPYUV_VERSION_MINOR 4
|
#define SHARPYUV_VERSION_MINOR 4
|
||||||
#define SHARPYUV_VERSION_PATCH 0
|
#define SHARPYUV_VERSION_PATCH 1
|
||||||
// Version as a uint32_t. The major number is the high 8 bits.
|
// Version as a uint32_t. The major number is the high 8 bits.
|
||||||
// The minor number is the middle 8 bits. The patch number is the low 16 bits.
|
// The minor number is the middle 8 bits. The patch number is the low 16 bits.
|
||||||
#define SHARPYUV_MAKE_VERSION(MAJOR, MINOR, PATCH) \
|
#define SHARPYUV_MAKE_VERSION(MAJOR, MINOR, PATCH) \
|
||||||
|
@ -36,7 +36,7 @@ libwebp_la_LIBADD += utils/libwebputils.la
|
|||||||
# other than the ones listed on the command line, i.e., after linking, it will
|
# other than the ones listed on the command line, i.e., after linking, it will
|
||||||
# not have unresolved symbols. Some platforms (Windows among them) require all
|
# not have unresolved symbols. Some platforms (Windows among them) require all
|
||||||
# symbols in shared libraries to be resolved at library creation.
|
# symbols in shared libraries to be resolved at library creation.
|
||||||
libwebp_la_LDFLAGS = -no-undefined -version-info 8:9:1
|
libwebp_la_LDFLAGS = -no-undefined -version-info 8:10:1
|
||||||
libwebpincludedir = $(includedir)/webp
|
libwebpincludedir = $(includedir)/webp
|
||||||
pkgconfig_DATA = libwebp.pc
|
pkgconfig_DATA = libwebp.pc
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ if BUILD_LIBWEBPDECODER
|
|||||||
libwebpdecoder_la_LIBADD += dsp/libwebpdspdecode.la
|
libwebpdecoder_la_LIBADD += dsp/libwebpdspdecode.la
|
||||||
libwebpdecoder_la_LIBADD += utils/libwebputilsdecode.la
|
libwebpdecoder_la_LIBADD += utils/libwebputilsdecode.la
|
||||||
|
|
||||||
libwebpdecoder_la_LDFLAGS = -no-undefined -version-info 4:9:1
|
libwebpdecoder_la_LDFLAGS = -no-undefined -version-info 4:10:1
|
||||||
pkgconfig_DATA += libwebpdecoder.pc
|
pkgconfig_DATA += libwebpdecoder.pc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ extern "C" {
|
|||||||
|
|
||||||
// version numbers
|
// version numbers
|
||||||
#define DEC_MAJ_VERSION 1
|
#define DEC_MAJ_VERSION 1
|
||||||
#define DEC_MIN_VERSION 4
|
#define DEC_MIN_VERSION 5
|
||||||
#define DEC_REV_VERSION 0
|
#define DEC_REV_VERSION 0
|
||||||
|
|
||||||
// YUV-cache parameters. Cache is 32-bytes wide (= one cacheline).
|
// YUV-cache parameters. Cache is 32-bytes wide (= one cacheline).
|
||||||
|
@ -13,6 +13,6 @@ noinst_HEADERS =
|
|||||||
noinst_HEADERS += ../webp/format_constants.h
|
noinst_HEADERS += ../webp/format_constants.h
|
||||||
|
|
||||||
libwebpdemux_la_LIBADD = ../libwebp.la
|
libwebpdemux_la_LIBADD = ../libwebp.la
|
||||||
libwebpdemux_la_LDFLAGS = -no-undefined -version-info 2:15:0
|
libwebpdemux_la_LDFLAGS = -no-undefined -version-info 2:16:0
|
||||||
libwebpdemuxincludedir = $(includedir)/webp
|
libwebpdemuxincludedir = $(includedir)/webp
|
||||||
pkgconfig_DATA = libwebpdemux.pc
|
pkgconfig_DATA = libwebpdemux.pc
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
#include "src/webp/format_constants.h"
|
#include "src/webp/format_constants.h"
|
||||||
|
|
||||||
#define DMUX_MAJ_VERSION 1
|
#define DMUX_MAJ_VERSION 1
|
||||||
#define DMUX_MIN_VERSION 4
|
#define DMUX_MIN_VERSION 5
|
||||||
#define DMUX_REV_VERSION 0
|
#define DMUX_REV_VERSION 0
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,0,4,0
|
FILEVERSION 1,0,5,0
|
||||||
PRODUCTVERSION 1,0,4,0
|
PRODUCTVERSION 1,0,5,0
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
@ -24,12 +24,12 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Google, Inc."
|
VALUE "CompanyName", "Google, Inc."
|
||||||
VALUE "FileDescription", "libwebpdemux DLL"
|
VALUE "FileDescription", "libwebpdemux DLL"
|
||||||
VALUE "FileVersion", "1.4.0"
|
VALUE "FileVersion", "1.5.0"
|
||||||
VALUE "InternalName", "libwebpdemux.dll"
|
VALUE "InternalName", "libwebpdemux.dll"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2024"
|
VALUE "LegalCopyright", "Copyright (C) 2024"
|
||||||
VALUE "OriginalFilename", "libwebpdemux.dll"
|
VALUE "OriginalFilename", "libwebpdemux.dll"
|
||||||
VALUE "ProductName", "WebP Image Demuxer"
|
VALUE "ProductName", "WebP Image Demuxer"
|
||||||
VALUE "ProductVersion", "1.4.0"
|
VALUE "ProductVersion", "1.5.0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
@ -32,7 +32,7 @@ extern "C" {
|
|||||||
|
|
||||||
// version numbers
|
// version numbers
|
||||||
#define ENC_MAJ_VERSION 1
|
#define ENC_MAJ_VERSION 1
|
||||||
#define ENC_MIN_VERSION 4
|
#define ENC_MIN_VERSION 5
|
||||||
#define ENC_REV_VERSION 0
|
#define ENC_REV_VERSION 0
|
||||||
|
|
||||||
enum { MAX_LF_LEVELS = 64, // Maximum loop filter level
|
enum { MAX_LF_LEVELS = 64, // Maximum loop filter level
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,0,4,0
|
FILEVERSION 1,0,5,0
|
||||||
PRODUCTVERSION 1,0,4,0
|
PRODUCTVERSION 1,0,5,0
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
@ -24,12 +24,12 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Google, Inc."
|
VALUE "CompanyName", "Google, Inc."
|
||||||
VALUE "FileDescription", "libwebp DLL"
|
VALUE "FileDescription", "libwebp DLL"
|
||||||
VALUE "FileVersion", "1.4.0"
|
VALUE "FileVersion", "1.5.0"
|
||||||
VALUE "InternalName", "libwebp.dll"
|
VALUE "InternalName", "libwebp.dll"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2024"
|
VALUE "LegalCopyright", "Copyright (C) 2024"
|
||||||
VALUE "OriginalFilename", "libwebp.dll"
|
VALUE "OriginalFilename", "libwebp.dll"
|
||||||
VALUE "ProductName", "WebP Image Codec"
|
VALUE "ProductName", "WebP Image Codec"
|
||||||
VALUE "ProductVersion", "1.4.0"
|
VALUE "ProductVersion", "1.5.0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,0,4,0
|
FILEVERSION 1,0,5,0
|
||||||
PRODUCTVERSION 1,0,4,0
|
PRODUCTVERSION 1,0,5,0
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
@ -24,12 +24,12 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Google, Inc."
|
VALUE "CompanyName", "Google, Inc."
|
||||||
VALUE "FileDescription", "libwebpdecoder DLL"
|
VALUE "FileDescription", "libwebpdecoder DLL"
|
||||||
VALUE "FileVersion", "1.4.0"
|
VALUE "FileVersion", "1.5.0"
|
||||||
VALUE "InternalName", "libwebpdecoder.dll"
|
VALUE "InternalName", "libwebpdecoder.dll"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2024"
|
VALUE "LegalCopyright", "Copyright (C) 2024"
|
||||||
VALUE "OriginalFilename", "libwebpdecoder.dll"
|
VALUE "OriginalFilename", "libwebpdecoder.dll"
|
||||||
VALUE "ProductName", "WebP Image Decoder"
|
VALUE "ProductName", "WebP Image Decoder"
|
||||||
VALUE "ProductVersion", "1.4.0"
|
VALUE "ProductVersion", "1.5.0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
@ -17,6 +17,6 @@ noinst_HEADERS =
|
|||||||
noinst_HEADERS += ../webp/format_constants.h
|
noinst_HEADERS += ../webp/format_constants.h
|
||||||
|
|
||||||
libwebpmux_la_LIBADD = ../libwebp.la
|
libwebpmux_la_LIBADD = ../libwebp.la
|
||||||
libwebpmux_la_LDFLAGS = -no-undefined -version-info 4:0:1 -lm
|
libwebpmux_la_LDFLAGS = -no-undefined -version-info 4:1:1 -lm
|
||||||
libwebpmuxincludedir = $(includedir)/webp
|
libwebpmuxincludedir = $(includedir)/webp
|
||||||
pkgconfig_DATA = libwebpmux.pc
|
pkgconfig_DATA = libwebpmux.pc
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,0,4,0
|
FILEVERSION 1,0,5,0
|
||||||
PRODUCTVERSION 1,0,4,0
|
PRODUCTVERSION 1,0,5,0
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
@ -24,12 +24,12 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Google, Inc."
|
VALUE "CompanyName", "Google, Inc."
|
||||||
VALUE "FileDescription", "libwebpmux DLL"
|
VALUE "FileDescription", "libwebpmux DLL"
|
||||||
VALUE "FileVersion", "1.4.0"
|
VALUE "FileVersion", "1.5.0"
|
||||||
VALUE "InternalName", "libwebpmux.dll"
|
VALUE "InternalName", "libwebpmux.dll"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2024"
|
VALUE "LegalCopyright", "Copyright (C) 2024"
|
||||||
VALUE "OriginalFilename", "libwebpmux.dll"
|
VALUE "OriginalFilename", "libwebpmux.dll"
|
||||||
VALUE "ProductName", "WebP Image Muxer"
|
VALUE "ProductName", "WebP Image Muxer"
|
||||||
VALUE "ProductVersion", "1.4.0"
|
VALUE "ProductVersion", "1.5.0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
@ -28,7 +28,7 @@ extern "C" {
|
|||||||
// Defines and constants.
|
// Defines and constants.
|
||||||
|
|
||||||
#define MUX_MAJ_VERSION 1
|
#define MUX_MAJ_VERSION 1
|
||||||
#define MUX_MIN_VERSION 4
|
#define MUX_MIN_VERSION 5
|
||||||
#define MUX_REV_VERSION 0
|
#define MUX_REV_VERSION 0
|
||||||
|
|
||||||
// Chunk object.
|
// Chunk object.
|
||||||
|
@ -223,6 +223,8 @@ WebPMux* WebPMuxCreateInternal(const WebPData* bitstream, int copy_data,
|
|||||||
// Note this padding is historical and differs from demux.c which does not
|
// Note this padding is historical and differs from demux.c which does not
|
||||||
// pad the file size.
|
// pad the file size.
|
||||||
riff_size = SizeWithPadding(riff_size);
|
riff_size = SizeWithPadding(riff_size);
|
||||||
|
// Make sure the whole RIFF header is available.
|
||||||
|
if (riff_size < RIFF_HEADER_SIZE) goto Err;
|
||||||
if (riff_size > size) goto Err;
|
if (riff_size > size) goto Err;
|
||||||
// There's no point in reading past the end of the RIFF chunk. Note riff_size
|
// There's no point in reading past the end of the RIFF chunk. Note riff_size
|
||||||
// includes CHUNK_HEADER_SIZE after SizeWithPadding().
|
// includes CHUNK_HEADER_SIZE after SizeWithPadding().
|
||||||
|
Reference in New Issue
Block a user