mirror of
https://github.com/webmproject/libwebp.git
synced 2024-12-27 06:08:21 +01:00
libwebp 0.4.1
- 7/24/14: version 0.4.1 This is a binary compatible release. * AArch64 (arm64) & MIPS support/optimizations * NEON assembly additions: - ~25% faster lossy decode / encode (-m 4) - ~10% faster lossless decode - ~5-10% faster lossless encode (-m 3/4) * dwebp/vwebp can read from stdin * cwebp/gif2webp can write to stdout * cwebp can read webp files; useful if storing sources as webp lossless -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAABAgAGBQJT1xp9AAoJEPnD1r24IytdjDEP/3ZOnrWG0OIThlGE6bqgO3oy Y5O7RrvzFuPdGEZ1Kl9jDXjzsYY018/+HJmOD3kf+Qt/+F/8hpGH520VuEiJdVIW UcvoYaYq9xrmKNqEJx910Vh8TP7wE2T62OJcqKWg2JEczfUWn8WOKjmM5c8N1kJ2 q6EbpCdWlxcD49L/MavJ5Yfw9jSZAjKzOIxxz0C294iMTK4IcSmeVvdqhkdyh96E CABw3o8sJfqB6p+KXjweXcE2KOhvzAWqTRcIogDC0jV/PgOlindf6k0am2FJHvMM A+sf/pmD0YKI1vEaXW+Vs6cz6LzvwbIkJSwuzBA7FYHAG5yqTSkQDxTSttw/RwiW fUScqHjQVBUqkM5bdOsdYBSDutQKDF2+WfcK5jXFdnydkQi59HKHV2R0K5cXYqfN Tu7aMBqFcfGunLlzfKCJcz8SElEmUjG6oAzRZYcdM9dmnR7ypQK17A/GbaysKKOE HMmep7uNX25w+6AL7zExnmPPPtSz+kj1SXt9fgldkelDhg1faAgfwXb/N4E+00lA 1+aJD3gHcR4QnDI4gnKBKHyIktQPfNKMQ6xuL0oyvsalQ/loz08wu0aACcGDFrg4 uOVVxTqU+pEITuwGcNk228+O2EbMWzzi3+Vhi1v3Gg3jJ3TRB3QN6NohmrsIackL 4W2V5NoX5i2VizGfLy2g =GWd5 -----END PGP SIGNATURE----- Merge tag 'v0.4.1' libwebp 0.4.1 - 7/24/14: version 0.4.1 This is a binary compatible release. * AArch64 (arm64) & MIPS support/optimizations * NEON assembly additions: - ~25% faster lossy decode / encode (-m 4) - ~10% faster lossless decode - ~5-10% faster lossless encode (-m 3/4) * dwebp/vwebp can read from stdin * cwebp/gif2webp can write to stdout * cwebp can read webp files; useful if storing sources as webp lossless * tag 'v0.4.1': update ChangeLog iosbuild.sh: specify optimization flags update ChangeLog makefile.unix: add vwebp.1 to the dist target update ChangeLog gif2webp: dust up the help message remove -noalphadither option from README/vwebp.1 update NEWS for the next release update AUTHORS bump version to 0.4.1 restore mux API compatibility remove the !WEBP_REFERENCE_IMPLEMENTATION tweak in Put8x8uv restore encode API compatibility restore decode API compatibility gif2webp: fix compile with giflib 5.1.0 gif2webp: simplify giflib version checking Change-Id: Icf599f29bc6c0db757bc133aaddb3dbbbc316e08
This commit is contained in:
commit
29a9fe222a
1
.mailmap
1
.mailmap
@ -5,3 +5,4 @@ Pascal Massimino <pascal.massimino@gmail.com>
|
||||
Vikas Arora <vikasa@google.com>
|
||||
<vikasa@google.com> <vikasa@gmail.com>
|
||||
<vikasa@google.com> <vikaas.arora@gmail.com>
|
||||
<slobodan.prijic@imgtec.com> <Slobodan.Prijic@imgtec.com>
|
||||
|
3
AUTHORS
3
AUTHORS
@ -7,6 +7,7 @@ Contributors:
|
||||
- Johann (johann dot koenig at duck dot com)
|
||||
- Jovan Zelincevic (jovan dot zelincevic at imgtec dot com)
|
||||
- Jyrki Alakuijala (jyrki at google dot com)
|
||||
- levytamar82 (tamar dot levy at intel dot com)
|
||||
- Lou Quillio (louquillio at google dot com)
|
||||
- Mans Rullgard (mans at mansr dot com)
|
||||
- Martin Olsson (mnemo at minimum dot se)
|
||||
@ -16,6 +17,8 @@ Contributors:
|
||||
- Paweł Hajdan, Jr (phajdan dot jr at chromium dot org)
|
||||
- Pierre Joye (pierre dot php at gmail dot com)
|
||||
- Scott LaVarnway (slavarnway at google dot com)
|
||||
- Scott Talbot (s at chikachow dot org)
|
||||
- Slobodan Prijic (slobodan dot prijic at imgtec dot com)
|
||||
- Somnath Banerjee (somnath dot banerjee at gmail dot com)
|
||||
- Urvang Joshi (urvang at google dot com)
|
||||
- Vikas Arora (vikasa at google dot com)
|
||||
|
384
ChangeLog
384
ChangeLog
@ -1,3 +1,387 @@
|
||||
f59c0b4 iosbuild.sh: specify optimization flags
|
||||
8d34ea3 update ChangeLog (tag: v0.4.1-rc1)
|
||||
dbc3da6 makefile.unix: add vwebp.1 to the dist target
|
||||
89a7c83 update ChangeLog
|
||||
ffe67ee Merge "update NEWS for the next release" into 0.4.1
|
||||
2def1fe gif2webp: dust up the help message
|
||||
fb668d7 remove -noalphadither option from README/vwebp.1
|
||||
e49f693 update NEWS for the next release
|
||||
cd01358 Merge "update AUTHORS" into 0.4.1
|
||||
268d01e update AUTHORS
|
||||
85213b9 bump version to 0.4.1
|
||||
695f80a Merge "restore mux API compatibility" into 0.4.1
|
||||
862d296 restore mux API compatibility
|
||||
8f6f8c5 remove the !WEBP_REFERENCE_IMPLEMENTATION tweak in Put8x8uv
|
||||
d713a69 Merge changes If4debc15,I437a5d5f into 0.4.1
|
||||
c2fc52e restore encode API compatibility
|
||||
793368e restore decode API compatibility
|
||||
b8984f3 gif2webp: fix compile with giflib 5.1.0
|
||||
222f9b1 gif2webp: simplify giflib version checking
|
||||
d2cc61b Extend MakeARGB32() to accept Alpha channel.
|
||||
4595b62 Merge "use explicit size of kErrorMessages[] arrays"
|
||||
157de01 Merge "Actuate memory stats for PRINT_MEMORY_INFO"
|
||||
fbda2f4 JPEG decoder: delay conversion to YUV to WebPEncode() call
|
||||
0b747b1 use explicit size of kErrorMessages[] arrays
|
||||
3398d81 Actuate memory stats for PRINT_MEMORY_INFO
|
||||
6f3202b Merge "move WebPPictureInit to picture.c"
|
||||
6c347bb move WebPPictureInit to picture.c
|
||||
fb3acf1 fix configure message for multi-thread
|
||||
40b086f configure: check for _beginthreadex
|
||||
1549d62 reorder the YUVA->ARGB and ARGB->YUVA functions correctly
|
||||
c6461bf Merge "extract colorspace code from picture.c into picture_csp.c"
|
||||
736f2a1 extract colorspace code from picture.c into picture_csp.c
|
||||
645daa0 Merge "configure: check for -Wformat-security"
|
||||
abafed8 configure: check for -Wformat-security
|
||||
fbadb48 split monolithic picture.c into picture_{tools,psnr,rescale}.c
|
||||
c76f07e dec_neon/TransformAC3: initialize vector w/vcreate
|
||||
bb4fc05 gif2webp: Allow single-frame animations
|
||||
46fd44c thread: remove harmless race on status_ in End()
|
||||
5a1a726 Merge "configure: check for __builtin_bswapXX()"
|
||||
6781423 configure: check for __builtin_bswapXX()
|
||||
6450c48 configure: fix iOS builds
|
||||
6422e68 VP8LFillBitWindow: enable fast path for 32-bit builds
|
||||
4f7f52b VP8LFillBitWindow: respect WEBP_FORCE_ALIGNED
|
||||
e458bad endian_inl.h: implement htoleXX with BSwapXX
|
||||
f2664d1 endian_inl.h: add BSwap16
|
||||
6fbf534 Merge "configure: add --enable-aligned"
|
||||
dc0f479 configure: add --enable-aligned
|
||||
9cc69e2 Merge "configure: support WIC + OpenGL under mingw64"
|
||||
257adfb remove experimental YUV444 YUV422 and YUV400 code
|
||||
10f4257 configure: support WIC + OpenGL under mingw64
|
||||
380cca4 configure.ac: add AC_C_BIGENDIAN
|
||||
ee70a90 endian_inl.h: add BSwap64
|
||||
47779d4 endian_inl.h: add BSwap32
|
||||
d5104b1 utils: add endian_inl.h
|
||||
58ab622 Merge "make alpha-detection loop in IsKeyFrame() in good x/y order"
|
||||
9d56290 make alpha-detection loop in IsKeyFrame() in good x/y order
|
||||
516971b lossless: Remove unaligned read warning
|
||||
b8b596f Merge "configure.ac: add an autoconf version prerequisite"
|
||||
34b02f8 configure.ac: add an autoconf version prerequisite
|
||||
e59f536 neon: normalize vdup_n_* usage
|
||||
6ee7160 Merge changes I0da7b3d3,Idad2f278,I4accc305
|
||||
abc02f2 Merge "fix (uncompiled) typo"
|
||||
bc03670 neon: add INIT_VECTOR4
|
||||
6c1c632 neon: add INIT_VECTOR3
|
||||
dc7687e neon: add INIT_VECTOR2
|
||||
4536e7c add WebPMuxSetCanvasSize() to the mux API
|
||||
824eab1 fix (uncompiled) typo
|
||||
1f3e5f1 remove unused 'shift' argument and QFIX2 define
|
||||
8e86705 Merge "VP8LoadNewBytes: use __builtin_bswap32 if available"
|
||||
1b6a263 Merge "Fix handling of weird GIF with canvas dimension 0x0"
|
||||
1da3d46 VP8LoadNewBytes: use __builtin_bswap32 if available
|
||||
1582e40 Fix handling of weird GIF with canvas dimension 0x0
|
||||
b8811da Merge "rename interface -> winterface"
|
||||
db8b8b5 Fix logic in the GIF LOOP-detection parsing
|
||||
25aaddc rename interface -> winterface
|
||||
5584d9d make WebPSetWorkerInterface() check its arguments
|
||||
a9ef7ef Merge "cosmetics: update thread.h comments"
|
||||
c6af999 Merge "dust up the help message"
|
||||
0a8b886 dust up the help message
|
||||
a9cf319 cosmetics: update thread.h comments
|
||||
27bfeee QuantizeBlock SSE2 Optimization:
|
||||
2bc0dc3 Merge "webpmux: warn when odd frame offsets are used"
|
||||
3114ebe Merge changes Id8edd3c1,Id418eb96,Ide05e3be
|
||||
c072663 webpmux: warn when odd frame offsets are used
|
||||
c5c6b40 Merge "add alpha dithering for lossy"
|
||||
d514678 examples/Android.mk: add cwebp
|
||||
ca0fa7c Android.mk: move dwebp to examples/Android.mk
|
||||
73d8fca Android.mk: add ENABLE_SHARED flag
|
||||
6e93317 muxread: fix out of bounds read
|
||||
8b0f6a4 Makefile.vc: fix CFLAGS assignment w/HAVE_AVX2=1
|
||||
bbe32df add alpha dithering for lossy
|
||||
7902076 Merge "make error-code reporting consistent upon malloc failure"
|
||||
77bf441 make error-code reporting consistent upon malloc failure
|
||||
7a93c00 **/Makefile.am: remove unused AM_CPPFLAGS
|
||||
24e3080 Add an interface abstraction to the WebP worker thread implementation
|
||||
d6cd635 Merge "fix orig_rect==NULL case"
|
||||
2bfd1ff fix orig_rect==NULL case
|
||||
059e21c Merge "configure: move config.h to src/webp/config.h"
|
||||
f05fe00 properly report back encoding error code in WebPFrameCacheAddFrame()
|
||||
32b3137 configure: move config.h to src/webp/config.h
|
||||
90090d9 Merge changes I7c675e51,I84f7d785
|
||||
ae7661b makefiles: define WEBP_HAVE_AVX2 when appropriate
|
||||
69fce2e remove the special casing for res->first in VP8SetResidualCoeffs
|
||||
6e61a3a configure: test for -msse2
|
||||
b9d2efc rename upsampling_mips32.c to yuv_mips32.c
|
||||
bdfeeba dsp/yuv: move sse2 functions to yuv_sse2.c
|
||||
46b32e8 Merge "configure: set WEBP_HAVE_AVX2 when available"
|
||||
88305db Merge "VP8RandomBits2: prevent signed int overflow"
|
||||
73fee88 VP8RandomBits2: prevent signed int overflow
|
||||
db4860b enc_sse2: prevent signed int overflow
|
||||
3fdaf4d Merge "real fix for longjmp warning"
|
||||
385e334 real fix for longjmp warning
|
||||
230a055 configure: set WEBP_HAVE_AVX2 when available
|
||||
a2ac8a4 restore original value_/range_ field order
|
||||
5e2ee56 Merge "remove libwebpdspdecode dep on libwebpdsp_avx2"
|
||||
61362db remove libwebpdspdecode dep on libwebpdsp_avx2
|
||||
42c447a Merge "lossy bit-reader clean-up:"
|
||||
479ffd8 Merge "remove unused #include's"
|
||||
9754d39 Merge "strong filtering speed-up (~2-3% x86, ~1-2% for NEON)"
|
||||
158aff9 remove unused #include's
|
||||
09545ee lossy bit-reader clean-up:
|
||||
ea8b0a1 strong filtering speed-up (~2-3% x86, ~1-2% for NEON)
|
||||
6679f89 Optimize VP8SetResidualCoeffs.
|
||||
ac591cf fix for gcc-4.9 warnings about longjmp + local variables
|
||||
4dfa86b dsp/cpu: NaCl has no support for xgetbv
|
||||
4c39869 Merge "cwebp: fallback to native webp decode in WIC builds"
|
||||
33aa497 Merge "cwebp: add some missing newlines in longhelp output"
|
||||
c9b340a fix missing WebPInitAlphaProcessing call for premultiplied colorspace output
|
||||
57897ba Merge "lossless_neon: use vcreate_*() where appropriate"
|
||||
6aa4777 Merge "(enc|dec)_neon: use vcreate_*() where appropriate"
|
||||
0d346e4 Always reinit VP8TransformWHT instead of hard-coding
|
||||
7d039fc cwebp: fallback to native webp decode in WIC builds
|
||||
d471f42 cwebp: add some missing newlines in longhelp output
|
||||
bf0e003 lossless_neon: use vcreate_*() where appropriate
|
||||
9251c2f (enc|dec)_neon: use vcreate_*() where appropriate
|
||||
399b916 lossy decoding: correct alpha-rescaling for YUVA format
|
||||
78c12ed Merge "Makefile.vc: add rudimentary avx2 support"
|
||||
dc5b122 try to remove the spurious warning for static analysis
|
||||
ddfefd6 Makefile.vc: add rudimentary avx2 support
|
||||
a891164 Merge "simplify VP8LInitBitReader()"
|
||||
fdbcd44 simplify VP8LInitBitReader()
|
||||
7c00428 makefile.unix: add rudimentary avx2 support
|
||||
515e35c Merge "add stub dsp/enc_avx2.c"
|
||||
a05dc14 SSE2: yuv->rgb speed-up for point-sampling
|
||||
178e9a6 add stub dsp/enc_avx2.c
|
||||
1b99c09 Merge "configure: add a test for -mavx2"
|
||||
fe72807 configure: add a test for -mavx2
|
||||
e46a247 cpu: fix check for __cpuidex availability
|
||||
176fda2 fix the bit-writer for lossless in 32bit mode
|
||||
541784c dsp.h: add a check for AVX2 / define WEBP_USE_AVX2
|
||||
bdb151e dsp/cpu: add AVX2 detection
|
||||
ab9f2f8 Merge "revamp the point-sampling functions by processing a full plane"
|
||||
a2f8b28 revamp the point-sampling functions by processing a full plane
|
||||
ef07602 use decoder's DSP functions for autofilter
|
||||
2b5cb32 Merge "dsp/cpu: add AVX detection"
|
||||
df08e67 dsp/cpu: add AVX detection
|
||||
e2f405c Merge "clean-up and slight speed-up in-loop filtering SSE2"
|
||||
f60957b clean-up and slight speed-up in-loop filtering SSE2
|
||||
9fc3ae4 .gitattributes: treat .ppm as binary
|
||||
3da924b Merge "dsp/WEBP_USE_NEON: test for __aarch64__"
|
||||
c716449 Android.mk: always include *_neon.c in the build
|
||||
a577b23 dsp/WEBP_USE_NEON: test for __aarch64__
|
||||
54bfffc move RemapBitReader() from idec.c to bit_reader code
|
||||
34168ec Merge "remove all unused layer code"
|
||||
f1e7717 remove all unused layer code
|
||||
b0757db Code cleanup for VP8LGetHistoImageSymbols.
|
||||
5fe628d make the token page size be variable instead of fixed 8192
|
||||
f948d08 memory debug: allow setting pre-defined malloc failure points
|
||||
ca3d746 use block-based allocation for backward refs storage, and free-lists
|
||||
1ba61b0 enable NEON intrinsics in aarch64 builds
|
||||
b9d2bb6 dsp/neon.h: coalesce intrinsics-related defines
|
||||
b5c7525 iosbuild: add support for iOSv7/aarch64
|
||||
9383afd Reduce number of memory allocations while decoding lossless.
|
||||
888e63e Merge "dsp/lossless: prevent signed int overflow in left shift ops"
|
||||
8137f3e Merge "instrument memory allocation routines for debugging"
|
||||
2aa1873 instrument memory allocation routines for debugging
|
||||
d3bcf72 Don't allocate VP8LHashChain, but treat like automatic object
|
||||
bd6b861 dsp/lossless: prevent signed int overflow in left shift ops
|
||||
b7f19b8 Merge "dec/vp8l: prevent signed int overflow in left shift ops"
|
||||
29059d5 Merge "remove some uint64_t casts and use."
|
||||
e69a1df dec/vp8l: prevent signed int overflow in left shift ops
|
||||
cf5eb8a remove some uint64_t casts and use.
|
||||
38e2db3 MIPS: MIPS32r1: Added optimization for HistogramAdd.
|
||||
e0609ad dwebp: fix exit code on webp load failure
|
||||
bbd358a Merge "example_util.h: avoid forward declaring enums"
|
||||
8955da2 example_util.h: avoid forward declaring enums
|
||||
6d6865f Added SSE2 variants for Average2/3/4
|
||||
b3a616b make HistogramAdd() a pointer in dsp
|
||||
c8bbb63 dec_neon: relocate some inline-asm defines
|
||||
4e393bb dec_neon: enable intrinsics-only functions
|
||||
ba99a92 dec_neon: use positive tests for USE_INTRINSICS
|
||||
69058ff Merge "example_util: add ExUtilDecodeWebPIncremental"
|
||||
a7828e8 dec_neon: make WORK_AROUND_GCC conditional on version
|
||||
3f3d717 Merge "enc_neon: enable intrinsics-only functions"
|
||||
de3cb6c Merge "move LOCAL_GCC_VERSION def to dsp.h"
|
||||
1b2fe14 example_util: add ExUtilDecodeWebPIncremental
|
||||
ca49e7a Merge "enc_neon: move Transpose4x4 to dsp/neon.h"
|
||||
ad900ab Merge "fix warning about size_t -> int conversion"
|
||||
4825b43 fix warning about size_t -> int conversion
|
||||
42b35e0 enc_neon: enable intrinsics-only functions
|
||||
f937e01 move LOCAL_GCC_VERSION def to dsp.h
|
||||
5e1a17e enc_neon: move Transpose4x4 to dsp/neon.h
|
||||
c7b92a5 dec_neon: (WORK_AROUND_GCC) delete unused Load4x8
|
||||
8e5f90b Merge "make ExUtilLoadWebP() accept NULL bitstream param."
|
||||
05d4c1b Merge "cwebp: add webpdec"
|
||||
ddeb6ac cwebp: add webpdec
|
||||
35d7d09 Merge "Reduce memory footprint for encoding WebP lossless."
|
||||
0b89610 Reduce memory footprint for encoding WebP lossless.
|
||||
f0b65c9 make ExUtilLoadWebP() accept NULL bitstream param.
|
||||
9c0a60c Merge "dwebp: move webp decoding to example_util"
|
||||
1d62acf MIPS: MIPS32r1: Added optimization for HuffmanCost functions.
|
||||
4a0e739 dwebp: move webp decoding to example_util
|
||||
c022046 Merge "Bugfix: Incremental decode of lossy-alpha"
|
||||
8c7cd72 Bugfix: Incremental decode of lossy-alpha
|
||||
7955152 MIPS: fix error with number of registers.
|
||||
b1dabe3 Merge "Move the HuffmanCost() function to dsp lib"
|
||||
75b1200 Move the HuffmanCost() function to dsp lib
|
||||
2772b8b MIPS: fix assembler error revealed by clang's debug build
|
||||
6653b60 enc_mips32: fix unused symbol warning in debug
|
||||
8dec120 enc_mips32: disable ITransform(One) in debug builds
|
||||
98519dd enc_neon: convert Disto4x4 to intrinsics
|
||||
fe9317c cosmetics:
|
||||
953b074 enc_neon: cosmetics
|
||||
a9fc697 Merge "WIP: extract the float-calculation of HuffmanCost from loop"
|
||||
3f84b52 Merge "replace some mult-long (vmull_u8) with mult-long-accumulate (vmlal_u8)"
|
||||
4ae0533 MIPS: MIPS32r1: Added optimizations for ExtraCost functions.
|
||||
b30a04c WIP: extract the float-calculation of HuffmanCost from loop
|
||||
a8fe8ce Merge "NEON intrinsics version of CollectHistogram"
|
||||
95203d2 NEON intrinsics version of CollectHistogram
|
||||
7ca2e74 replace some mult-long (vmull_u8) with mult-long-accumulate (vmlal_u8)
|
||||
41c6efb fix lossless_neon.c
|
||||
8ff96a0 NEON intrinsics version of FTransform
|
||||
0214f4a Merge "MIPS: MIPS32r1: Added optimizations for FastLog2"
|
||||
baabf1e MIPS: MIPS32r1: Added optimizations for FastLog2
|
||||
3d49871 NEON functions for lossless coding
|
||||
3fe0291 MIPS: MIPS32r1: Added optimizations for SSE functions.
|
||||
c503b48 Merge "fix the gcc-4.6.0 bug by implementing alternative method"
|
||||
abe6f48 fix the gcc-4.6.0 bug by implementing alternative method
|
||||
5598bde enc_mips32.c: fix file mode
|
||||
2b1b4d5 MIPS: MIPS32r1: Add optimization for GetResidualCost
|
||||
f0a1f3c Merge "MIPS: MIPS32r1: Added optimization for FTransform"
|
||||
7231f61 MIPS: MIPS32r1: Added optimization for FTransform
|
||||
869eaf6 ~30% encoding speedup: use NEON for QuantizeBlock()
|
||||
f758af6 enc_neon: convert FTransformWHT to intrinsics
|
||||
7dad095 MIPS: MIPS32r1: Added optimization for Disto4x4 (TTransform)
|
||||
2298d5f MIPS: MIPS32r1: Added optimization for QuantizeBlock
|
||||
e88150c Merge "MIPS: MIPS32r1: Add optimization for ITransform"
|
||||
de693f2 lossless_neon: disable VP8LConvert* functions
|
||||
4143332 NEON intrinsics for encoding
|
||||
0ca2914 MIPS: MIPS32r1: Add optimization for ITransform
|
||||
71bca5e dec_neon: use vst_lane instead of vget_lane
|
||||
bf06105 Intrinsics NEON version of TransformOne
|
||||
19c6f1b Merge "dec_neon: use vld?_lane instead of vset?_lane"
|
||||
7a94c0c upsampling_neon: drop NEON suffix from local functions
|
||||
d14669c upsampling_sse2: drop SSE2 suffix from local functions
|
||||
2ca42a4 enc_sse2: drop SSE2 suffix from local functions
|
||||
d038e61 dec_sse2: drop SSE2 suffix from local functions
|
||||
fa52d75 dec_neon: use vld?_lane instead of vset?_lane
|
||||
c520e77 cosmetic: fix long line
|
||||
4b0f2da Merge "add intrinsics NEON code for chroma strong-filtering"
|
||||
e351ec0 add intrinsics NEON code for chroma strong-filtering
|
||||
aaf734b Merge "Add SSE2 version of forward cross-color transform"
|
||||
c90a902 Add SSE2 version of forward cross-color transform
|
||||
bc374ff Use histogram_bits to initalize transform_bits.
|
||||
2132992 Merge "Add strong filtering intrinsics (inner and outer edges)"
|
||||
5fbff3a Add strong filtering intrinsics (inner and outer edges)
|
||||
d4813f0 Add SSE2 function for Inverse Cross-color Transform
|
||||
2602956 dec_neon: add strong loopfilter intrinsics
|
||||
cca7d7e Merge "add intrinsics version of SimpleHFilter16NEON()"
|
||||
1a05dfa windows: fix dll builds
|
||||
d6c50d8 Merge "add some colorspace conversion functions in NEON"
|
||||
4fd7c82 SSE2 variants of Subtract-Green: Rectify loop condition
|
||||
97e5fac add some colorspace conversion functions in NEON
|
||||
b9a7a45 add intrinsics version of SimpleHFilter16NEON()
|
||||
daccbf4 add light filtering NEON intrinsics
|
||||
af44460 fix typo in STORE_WHT
|
||||
6af6b8e Tune HistogramCombineBin for large images.
|
||||
af93bdd use WebPSafe[CM]alloc/WebPSafeFree instead of [cm]alloc/free
|
||||
51f406a lossless_sse2: relocate VP8LDspInitSSE2 proto
|
||||
0f4f721 separate SSE2 lossless functions into its own file
|
||||
514fc25 VP8LConvertFromBGRA: use conversion function pointers
|
||||
6d2f352 dsp/dec: TransformDCUV: use VP8TransformDC
|
||||
defc8e1 Merge "fix out-of-bound read during alpha-plane decoding"
|
||||
fbed364 Merge "dsp: reuse wht transform from dec in encoder"
|
||||
d846708 Merge "Add SSE2 version of ARGB -> BGR/RGB/... conversion functions"
|
||||
207d03b fix out-of-bound read during alpha-plane decoding
|
||||
d1b33ad 2-5% faster trellis with clang/MacOS (and ~2-3% on ARM)
|
||||
369c26d Add SSE2 version of ARGB -> BGR/RGB/... conversion functions
|
||||
df230f2 dsp: reuse wht transform from dec in encoder
|
||||
80e218d Android.mk: fix build with APP_ABI=armeabi-v7a-hard
|
||||
59daf08 Merge "cosmetics:"
|
||||
5362200 cosmetics:
|
||||
3e7f34a AssignSegments: quiet array-bounds warning
|
||||
3c2ebf5 Merge "UpdateHistogramCost: avoid implicit double->float"
|
||||
cf821c8 UpdateHistogramCost: avoid implicit double->float
|
||||
312e638 Extend the search space for GetBestGreenRedToBlue
|
||||
1c58526 Fix few nits
|
||||
fef2270 Optimize and re-structure VP8LGetHistoImageSymbols
|
||||
068b14a Optimize lossless decoding.
|
||||
5f0cfa8 Do a binary search to get the optimum cache bits.
|
||||
24ca367 Merge "allow 'cwebp -o -' to emit output to stdout"
|
||||
e12f874 allow 'cwebp -o -' to emit output to stdout
|
||||
2bcad89 allow some more stdin/stout I/O
|
||||
84ed4b3 fix cwebp.1 typos after patch #69199
|
||||
65b99f1 add a -z option to cwebp, and WebPConfigLosslessPreset() function
|
||||
3017661 4-5% faster trellis by removing some unneeded calculations.
|
||||
687a58e histogram.c: reindent after b33e8a0
|
||||
06d456f Merge "~3-4% faster lossless encoding"
|
||||
c60de26 ~3-4% faster lossless encoding
|
||||
42eb06f Merge "few cosmetics after patch #69079"
|
||||
82af826 few cosmetics after patch #69079
|
||||
b33e8a0 Refactor code for HistogramCombine.
|
||||
ca1bfff Merge "5-10% encoding speedup with faster trellis (-m 6)"
|
||||
5aeeb08 5-10% encoding speedup with faster trellis (-m 6)
|
||||
82ae1bf cosmetics: normalize VP8GetCPUInfo checks
|
||||
e3dd924 Merge "Refactor GetBestPredictorForTile for future tuning."
|
||||
206cc1b Refactor GetBestPredictorForTile for future tuning.
|
||||
3cb8406 Merge "speed-up trellis quant (~5-10% overall speed-up)"
|
||||
b66f222 Merge "lossy encoding: ~3% speed-up"
|
||||
4287d0d speed-up trellis quant (~5-10% overall speed-up)
|
||||
390c8b3 lossy encoding: ~3% speed-up
|
||||
9a463c4 Merge "dec_neon: convert TransformWHT to intrinsics"
|
||||
e8605e9 Merge "dec_neon: add ConvertU8ToS16"
|
||||
4aa3e41 MIPS: MIPS32r1: rescaler bugfix
|
||||
c16cd99 Speed up lossless encoder.
|
||||
9d6b5ff dec_neon: convert TransformWHT to intrinsics
|
||||
2ff0aae dec_neon: add ConvertU8ToS16
|
||||
77a8f91 fix compilation with USE_YUVj flag
|
||||
4acbec1 Merge changes I3b240ffb,Ia9370283,Ia2d28728
|
||||
2719bb7 dec_neon: TransformAC3: work on packed vectors
|
||||
b7b60ca dec_neon: add SaturateAndStore4x4
|
||||
b7685d7 Rescale: let ImportRow / ExportRow be pointer-to-function
|
||||
e02f16e dec_neon.c: convert TransformDC to intrinsics
|
||||
9cba963 add missing file
|
||||
8992ddb use static clipping tables
|
||||
0235d5e 1-2% faster quantization in SSE2
|
||||
b2fbc36 fix VC12-x64 warning
|
||||
6e37cb9 Merge "cosmetics: backward_references.c: reindent after a7d2ee3"
|
||||
a42ea97 cosmetics: backward_references.c: reindent after a7d2ee3
|
||||
6c32744 Merge "fix missing __BIG_ENDIAN__ definition on some platform"
|
||||
a8b6aad fix missing __BIG_ENDIAN__ definition on some platform
|
||||
fde2904 Increase initial buffer size for VP8L Bit Writer.
|
||||
a7d2ee3 Optimize cache estimate logic.
|
||||
7fb6095 Merge "dec_neon.c: add TransformAC3"
|
||||
bf182e8 VP8LBitWriter: use a bit-accumulator
|
||||
3f40b4a Merge "MIPS: MIPS32r1: clang macro warning resolved"
|
||||
1684f4e WebP Decoder: Mark some truncated bitstreams as invalid
|
||||
acbedac MIPS: MIPS32r1: clang macro warning resolved
|
||||
228e487 dec_neon.c: add TransformAC3
|
||||
393f89b Android.mk: avoid gcc-specific flags with clang
|
||||
32aeaf1 revamp VP8LColorSpaceTransform() a bit
|
||||
0c7cc4c Merge "Don't dereference NULL, ensure HashChain fully initialized"
|
||||
391316f Don't dereference NULL, ensure HashChain fully initialized
|
||||
926ff40 WEBP_SWAP_16BIT_CSP: remove code dup
|
||||
1d1cd3b Fix decode bug for rgbA_4444/RGBA_4444 color-modes.
|
||||
939e70e update AUTHORS file
|
||||
8934a62 cosmetics: *_mips32.c
|
||||
dd438c9 MIPS: MIPS32r1: Optimization of some simple point-sampling functions. PATCH [6/6]
|
||||
5352091 Added support for calling sampling functions via pointers.
|
||||
d16c697 MIPS: MIPS32r1: Optimization of filter functions. PATCH [5/6]
|
||||
04336fc MIPS: MIPS32r1: Optimization of function TransformOne. PATCH [4/6]
|
||||
92d8fc7 MIPS: MIPS32r1: Optimization of function WebPRescalerImportRow. PATCH [3/6]
|
||||
bbc23ff parse one row of intra modes altogether
|
||||
a2f608f Merge "MIPS: MIPS32r1: Optimization of function WebPRescalerExportRow. [2/6]"
|
||||
8823085 MIPS: MIPS32r1: Optimization of function WebPRescalerExportRow. [2/6]
|
||||
c5a5b02 decode mt+incremental: fix segfault in debug builds
|
||||
9882b2f always use fast-analysis for all methods.
|
||||
000adac Merge "autoconf: update ax_pthread.m4"
|
||||
2d2fc37 update .gitignore
|
||||
5bf4255 Merge "Make it possible to avoid automagic dependencies"
|
||||
c1cb193 disable NEON for arm64 platform
|
||||
73a304e Make it possible to avoid automagic dependencies
|
||||
4d493f8 MIPS: MIPS32r1: Decoder bit reader function optimized. PATCH [1/6]
|
||||
c741183 make WebPCleanupTransparentArea work with argb picture
|
||||
5da1855 add a decoding option to flip image vertically
|
||||
00c3c4e Merge "add man/vwebp.1"
|
||||
2c6bb42 add man/vwebp.1
|
||||
ea59a8e Merge "Merge tag 'v0.4.0'"
|
||||
7574bed fix comments related to array sizes
|
||||
0b5a90f dwebp.1: fix option formatting
|
||||
effcb0f Merge tag 'v0.4.0'
|
||||
7c76255 autoconf: update ax_pthread.m4
|
||||
fff2a11 make -short work with -print_ssim, -print_psnr, etc.
|
||||
68e7901 update ChangeLog (tag: v0.4.0-rc1, tag: v0.4.0, origin/0.4.0, 0.4.0)
|
||||
256e433 update NEWS description with new general features
|
||||
2962534 Merge "gif2webp: don't use C99 %zu" into 0.4.0
|
||||
3b9f9dd gif2webp: don't use C99 %zu
|
||||
|
11
NEWS
11
NEWS
@ -1,3 +1,14 @@
|
||||
- 7/24/14: version 0.4.1
|
||||
This is a binary compatible release.
|
||||
* AArch64 (arm64) & MIPS support/optimizations
|
||||
* NEON assembly additions:
|
||||
- ~25% faster lossy decode / encode (-m 4)
|
||||
- ~10% faster lossless decode
|
||||
- ~5-10% faster lossless encode (-m 3/4)
|
||||
* dwebp/vwebp can read from stdin
|
||||
* cwebp/gif2webp can write to stdout
|
||||
* cwebp can read webp files; useful if storing sources as webp lossless
|
||||
|
||||
- 12/19/13: version 0.4.0
|
||||
* improved gif2webp tool
|
||||
* numerous fixes, compression improvement and speed-up
|
||||
|
22
README
22
README
@ -4,7 +4,7 @@
|
||||
\__\__/\____/\_____/__/ ____ ___
|
||||
/ _/ / \ \ / _ \/ _/
|
||||
/ \_/ / / \ \ __/ \__
|
||||
\____/____/\_____/_____/____/v0.4.0
|
||||
\____/____/\_____/_____/____/v0.4.1
|
||||
|
||||
Description:
|
||||
============
|
||||
@ -342,24 +342,24 @@ vwebp.
|
||||
|
||||
Usage:
|
||||
gif2webp [options] gif_file -o webp_file
|
||||
options:
|
||||
Options:
|
||||
-h / -help ............ this help
|
||||
-lossy ................. Encode image using lossy compression.
|
||||
-mixed ................. For each frame in the image, pick lossy
|
||||
or lossless compression heuristically.
|
||||
-lossy ................. encode image using lossy compression
|
||||
-mixed ................. for each frame in the image, pick lossy
|
||||
or lossless compression heuristically
|
||||
-q <float> ............. quality factor (0:small..100:big)
|
||||
-m <int> ............... compression method (0=fast, 6=slowest)
|
||||
-kmin <int> ............ Min distance between key frames
|
||||
-kmax <int> ............ Max distance between key frames
|
||||
-kmin <int> ............ min distance between key frames
|
||||
-kmax <int> ............ max distance between key frames
|
||||
-f <int> ............... filter strength (0=off..100)
|
||||
-metadata <string> ..... comma separated list of metadata to
|
||||
copy from the input to the output if present.
|
||||
copy from the input to the output if present
|
||||
Valid values: all, none, icc, xmp (default)
|
||||
-mt .................... use multi-threading if available
|
||||
|
||||
-version ............... print version number and exit.
|
||||
-v ..................... verbose.
|
||||
-quiet ................. don't print anything.
|
||||
-version ............... print version number and exit
|
||||
-v ..................... verbose
|
||||
-quiet ................. don't print anything
|
||||
|
||||
Building:
|
||||
---------
|
||||
|
@ -1,7 +1,7 @@
|
||||
__ __ ____ ____ ____ __ __ _ __ __
|
||||
/ \\/ \/ _ \/ _ \/ _ \/ \ \/ \___/_ / _\
|
||||
\ / __/ _ \ __/ / / (_/ /__
|
||||
\__\__/\_____/_____/__/ \__//_/\_____/__/___/v0.2.0
|
||||
\__\__/\_____/_____/__/ \__//_/\_____/__/___/v0.2.1
|
||||
|
||||
|
||||
Description:
|
||||
|
@ -1,4 +1,4 @@
|
||||
AC_INIT([libwebp], [0.4.0],
|
||||
AC_INIT([libwebp], [0.4.1],
|
||||
[http://code.google.com/p/webp/issues],,
|
||||
[http://developers.google.com/speed/webp])
|
||||
AC_CANONICAL_TARGET
|
||||
|
@ -28,6 +28,16 @@
|
||||
#include "./example_util.h"
|
||||
#include "./gif2webp_util.h"
|
||||
|
||||
// GIFLIB_MAJOR is only defined in libgif >= 4.2.0.
|
||||
#if defined(GIFLIB_MAJOR) && defined(GIFLIB_MINOR)
|
||||
# define LOCAL_GIF_VERSION ((GIFLIB_MAJOR << 8) | GIFLIB_MINOR)
|
||||
# define LOCAL_GIF_PREREQ(maj, min) \
|
||||
(LOCAL_GIF_VERSION >= (((maj) << 8) | (min)))
|
||||
#else
|
||||
# define LOCAL_GIF_VERSION 0
|
||||
# define LOCAL_GIF_PREREQ(maj, min) 0
|
||||
#endif
|
||||
|
||||
#define GIF_TRANSPARENT_MASK 0x01
|
||||
#define GIF_DISPOSE_MASK 0x07
|
||||
#define GIF_DISPOSE_SHIFT 2
|
||||
@ -172,11 +182,9 @@ static int GetBackgroundColor(const ColorMapObject* const color_map,
|
||||
}
|
||||
|
||||
static void DisplayGifError(const GifFileType* const gif, int gif_error) {
|
||||
// GIFLIB_MAJOR is only defined in libgif >= 4.2.0.
|
||||
// libgif 4.2.0 has retired PrintGifError() and added GifErrorString().
|
||||
#if defined(GIFLIB_MAJOR) && defined(GIFLIB_MINOR) && \
|
||||
((GIFLIB_MAJOR == 4 && GIFLIB_MINOR >= 2) || GIFLIB_MAJOR > 4)
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
#if LOCAL_GIF_PREREQ(4,2)
|
||||
#if LOCAL_GIF_PREREQ(5,0)
|
||||
// Static string actually, hence the const char* cast.
|
||||
const char* error_str = (const char*)GifErrorString(
|
||||
(gif == NULL) ? gif_error : gif->Error);
|
||||
@ -215,26 +223,26 @@ enum {
|
||||
static void Help(void) {
|
||||
printf("Usage:\n");
|
||||
printf(" gif2webp [options] gif_file -o webp_file\n");
|
||||
printf("options:\n");
|
||||
printf("Options:\n");
|
||||
printf(" -h / -help ............ this help\n");
|
||||
printf(" -lossy ................. Encode image using lossy compression.\n");
|
||||
printf(" -mixed ................. For each frame in the image, pick lossy\n"
|
||||
" or lossless compression heuristically.\n");
|
||||
printf(" -lossy ................. encode image using lossy compression\n");
|
||||
printf(" -mixed ................. for each frame in the image, pick lossy\n"
|
||||
" or lossless compression heuristically\n");
|
||||
printf(" -q <float> ............. quality factor (0:small..100:big)\n");
|
||||
printf(" -m <int> ............... compression method (0=fast, 6=slowest)\n");
|
||||
printf(" -kmin <int> ............ Min distance between key frames\n");
|
||||
printf(" -kmax <int> ............ Max distance between key frames\n");
|
||||
printf(" -kmin <int> ............ min distance between key frames\n");
|
||||
printf(" -kmax <int> ............ max distance between key frames\n");
|
||||
printf(" -f <int> ............... filter strength (0=off..100)\n");
|
||||
printf(" -metadata <string> ..... comma separated list of metadata to\n");
|
||||
printf(" ");
|
||||
printf("copy from the input to the output if present.\n");
|
||||
printf("copy from the input to the output if present\n");
|
||||
printf(" "
|
||||
"Valid values: all, none, icc, xmp (default)\n");
|
||||
printf(" -mt .................... use multi-threading if available\n");
|
||||
printf("\n");
|
||||
printf(" -version ............... print version number and exit.\n");
|
||||
printf(" -v ..................... verbose.\n");
|
||||
printf(" -quiet ................. don't print anything.\n");
|
||||
printf(" -version ............... print version number and exit\n");
|
||||
printf(" -v ..................... verbose\n");
|
||||
printf(" -quiet ................. don't print anything\n");
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
@ -396,8 +404,7 @@ int main(int argc, const char *argv[]) {
|
||||
}
|
||||
|
||||
// Start the decoder object
|
||||
#if defined(GIFLIB_MAJOR) && (GIFLIB_MAJOR >= 5)
|
||||
// There was an API change in version 5.0.0.
|
||||
#if LOCAL_GIF_PREREQ(5,0)
|
||||
gif = DGifOpenFileName(in_file, &gif_error);
|
||||
#else
|
||||
gif = DGifOpenFileName(in_file);
|
||||
@ -683,7 +690,11 @@ int main(int argc, const char *argv[]) {
|
||||
DisplayGifError(gif, gif_error);
|
||||
}
|
||||
if (gif != NULL) {
|
||||
#if LOCAL_GIF_PREREQ(5,1)
|
||||
DGifCloseFile(gif, &gif_error);
|
||||
#else
|
||||
DGifCloseFile(gif);
|
||||
#endif
|
||||
}
|
||||
|
||||
return !ok;
|
||||
|
@ -72,7 +72,7 @@ for PLATFORM in ${PLATFORMS}; do
|
||||
mkdir -p "${ROOTDIR}"
|
||||
|
||||
SDKROOT="${PLATFORMSROOT}/${PLATFORM}.platform/Developer/SDKs/${PLATFORM}${SDK}.sdk/"
|
||||
CFLAGS="-arch ${ARCH2:-${ARCH}} -pipe -isysroot ${SDKROOT}"
|
||||
CFLAGS="-arch ${ARCH2:-${ARCH}} -pipe -isysroot ${SDKROOT} -O3 -DNDEBUG"
|
||||
LDFLAGS="-arch ${ARCH2:-${ARCH}} -pipe -isysroot ${SDKROOT}"
|
||||
|
||||
if [[ -z "${XCODE}" ]]; then
|
||||
|
@ -306,7 +306,7 @@ dist: all
|
||||
$(INSTALL) -m644 src/demux/libwebpdemux.a $(DESTDIR)/lib
|
||||
$(INSTALL) -m644 src/mux/libwebpmux.a $(DESTDIR)/lib
|
||||
umask 022; \
|
||||
for m in man/[cd]webp.1 man/gif2webp.1 man/webpmux.1; do \
|
||||
for m in man/[cdv]webp.1 man/gif2webp.1 man/webpmux.1; do \
|
||||
basenam=$$(basename $$m .1); \
|
||||
$(GROFF) -t -e -man -T utf8 $$m \
|
||||
| $(COL) -bx >$(DESTDIR)/doc/$${basenam}.txt; \
|
||||
|
@ -35,7 +35,7 @@ libwebp_la_LIBADD += utils/libwebputils.la
|
||||
# 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
|
||||
# symbols in shared libraries to be resolved at library creation.
|
||||
libwebp_la_LDFLAGS = -no-undefined -version-info 5:0:0
|
||||
libwebp_la_LDFLAGS = -no-undefined -version-info 5:1:0
|
||||
libwebpincludedir = $(includedir)/webp
|
||||
pkgconfig_DATA = libwebp.pc
|
||||
|
||||
@ -47,7 +47,7 @@ if BUILD_LIBWEBPDECODER
|
||||
libwebpdecoder_la_LIBADD += dsp/libwebpdspdecode.la
|
||||
libwebpdecoder_la_LIBADD += utils/libwebputilsdecode.la
|
||||
|
||||
libwebpdecoder_la_LDFLAGS = -no-undefined -version-info 1:0:0
|
||||
libwebpdecoder_la_LDFLAGS = -no-undefined -version-info 1:1:0
|
||||
pkgconfig_DATA += libwebpdecoder.pc
|
||||
endif
|
||||
|
||||
|
@ -31,7 +31,7 @@ extern "C" {
|
||||
// version numbers
|
||||
#define DEC_MAJ_VERSION 0
|
||||
#define DEC_MIN_VERSION 4
|
||||
#define DEC_REV_VERSION 0
|
||||
#define DEC_REV_VERSION 1
|
||||
|
||||
// intra prediction modes
|
||||
enum { B_DC_PRED = 0, // 4x4 modes
|
||||
|
@ -9,6 +9,6 @@ libwebpdemuxinclude_HEADERS += ../webp/mux_types.h
|
||||
libwebpdemuxinclude_HEADERS += ../webp/types.h
|
||||
|
||||
libwebpdemux_la_LIBADD = ../libwebp.la
|
||||
libwebpdemux_la_LDFLAGS = -no-undefined -version-info 1:0:0
|
||||
libwebpdemux_la_LDFLAGS = -no-undefined -version-info 1:1:0
|
||||
libwebpdemuxincludedir = $(includedir)/webp
|
||||
pkgconfig_DATA = libwebpdemux.pc
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
#define DMUX_MAJ_VERSION 0
|
||||
#define DMUX_MIN_VERSION 2
|
||||
#define DMUX_REV_VERSION 0
|
||||
#define DMUX_REV_VERSION 1
|
||||
|
||||
typedef struct {
|
||||
size_t start_; // start location of the data
|
||||
|
@ -417,14 +417,9 @@ static void HE8uv(uint8_t *dst) { // horizontal
|
||||
// helper for chroma-DC predictions
|
||||
static WEBP_INLINE void Put8x8uv(uint8_t value, uint8_t* dst) {
|
||||
int j;
|
||||
#ifndef WEBP_REFERENCE_IMPLEMENTATION
|
||||
const uint64_t v = (uint64_t)value * 0x0101010101010101ULL;
|
||||
for (j = 0; j < 8; ++j) {
|
||||
*(uint64_t*)(dst + j * BPS) = v;
|
||||
memset(dst + j * BPS, value, 8);
|
||||
}
|
||||
#else
|
||||
for (j = 0; j < 8; ++j) memset(dst + j * BPS, value, 8);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void DC8uv(uint8_t *dst) { // DC
|
||||
|
@ -30,7 +30,7 @@ extern "C" {
|
||||
// version numbers
|
||||
#define ENC_MAJ_VERSION 0
|
||||
#define ENC_MIN_VERSION 4
|
||||
#define ENC_REV_VERSION 0
|
||||
#define ENC_REV_VERSION 1
|
||||
|
||||
// intra prediction modes
|
||||
enum { B_DC_PRED = 0, // 4x4 modes
|
||||
|
@ -12,6 +12,6 @@ libwebpmuxinclude_HEADERS += ../webp/mux_types.h
|
||||
libwebpmuxinclude_HEADERS += ../webp/types.h
|
||||
|
||||
libwebpmux_la_LIBADD = ../libwebp.la
|
||||
libwebpmux_la_LDFLAGS = -no-undefined -version-info 1:0:0
|
||||
libwebpmux_la_LDFLAGS = -no-undefined -version-info 1:1:0
|
||||
libwebpmuxincludedir = $(includedir)/webp
|
||||
pkgconfig_DATA = libwebpmux.pc
|
||||
|
@ -28,7 +28,7 @@ extern "C" {
|
||||
|
||||
#define MUX_MAJ_VERSION 0
|
||||
#define MUX_MIN_VERSION 2
|
||||
#define MUX_REV_VERSION 0
|
||||
#define MUX_REV_VERSION 1
|
||||
|
||||
// Chunk object.
|
||||
typedef struct WebPChunk WebPChunk;
|
||||
|
Loading…
Reference in New Issue
Block a user