skal [Wed, 22 May 2013 21:49:24 +0000 (23:49 +0200)]
fix a memory leak in gif2webp
(rgba->yuv allocates memory)
Also fixed few warning and cleaned the code up.
Change-Id: Id904ad3ad8802ea9fc3d34247d27193dfa7b0b99
skal [Tue, 21 May 2013 22:58:53 +0000 (00:58 +0200)]
fix two minor memory leaks in webpmux
(only occur in case of error)
Change-Id: Icab69bb364b77f8eae6cae91047354c27e610602
James Zern [Tue, 21 May 2013 22:09:30 +0000 (15:09 -0700)]
Merge "README: update swig notes"
James Zern [Tue, 21 May 2013 22:01:15 +0000 (15:01 -0700)]
remove some cruft from swig/libwebp.jar
picked up a few unnecessary classes from a dirty tree in the last commit
Change-Id: I98be16a0bc8716476ce440da542d113f254aee78
James Zern [Tue, 21 May 2013 21:58:32 +0000 (14:58 -0700)]
README: update swig notes
add python, required version notes
Change-Id: Iec2e94075f6cf54455ce5a658f9b7258109f4d01
James Zern [Tue, 21 May 2013 21:49:46 +0000 (14:49 -0700)]
Merge "swig/python: add minimal documentation"
James Zern [Tue, 21 May 2013 21:48:36 +0000 (14:48 -0700)]
Merge "swig: add python encode support"
James Zern [Tue, 21 May 2013 21:44:16 +0000 (14:44 -0700)]
Merge "swig/java: reduce wrapper function code duplication"
James Zern [Tue, 21 May 2013 21:42:58 +0000 (14:42 -0700)]
Merge "swig/java: rework uint8_t typemap"
skal [Tue, 21 May 2013 21:20:04 +0000 (23:20 +0200)]
reduce memory for VP8MB and remove bitfields use
~1% faster on ARMv7
Change-Id: I3e3524e0c25ebd31a04269aae0d304932f1a781a
Vikas Arora [Tue, 21 May 2013 20:59:29 +0000 (13:59 -0700)]
Fix the memory leak in ApplyFilters.
Change-Id: Iba1b1adf3088ea9c43e4f602a93e77450f6c6170
skal [Tue, 21 May 2013 08:29:27 +0000 (10:29 +0200)]
simplify the alpha-filter testing loop
Change-Id: Iacebae749c37edc87a3c94c76cd589a2565ee642
James Zern [Mon, 20 May 2013 23:40:29 +0000 (16:40 -0700)]
swig/python: add minimal documentation
uses autodoc to display the function arguments rather than the
inscrutable va_args (*args).
Change-Id: Iec2ff8276c1533b14c3032836d822fbdae632521
James Zern [Mon, 20 May 2013 20:29:41 +0000 (13:29 -0700)]
swig: add python encode support
wraps the simple interface similar to java.
Change-Id: Ib922bbcae322b2345b6dce5dee08faad705a77fd
James Zern [Tue, 21 May 2013 00:03:35 +0000 (17:03 -0700)]
swig/java: reduce wrapper function code duplication
define a macro to emit the wrapper code
Change-Id: I672416016162d6d9ce6f455d224044e0837e3ace
James Zern [Fri, 17 May 2013 21:10:37 +0000 (14:10 -0700)]
swig/java: rework uint8_t typemap
reuse the declarations from arrays_java.i for signed char to make an
explicit uint8_t mapping. this avoids sign conversion build warnings.
Change-Id: Icfb5b865cf1fd404e89f2cd889111f0a94e3c604
skal [Sat, 18 May 2013 15:13:58 +0000 (17:13 +0200)]
use uint8_t for inv_palette[]
Change-Id: I5005ce68d89bfb657d46ad8acc4368c29fa0c4fd
skal [Sat, 18 May 2013 15:03:18 +0000 (17:03 +0200)]
Fix the bug in ApplyPalette.
The auto-infer logic of detecting the 'Alpha' use case
(via check '(palette[i] & 0x00ff00ffu) != 0' is failing
for this corner case image with all black pixels (rgb = 0)
and different Alpha values.
-> switch generic use-LUT detection
Change-Id: I982a8b28c8bcc43e3dc68ac358f978a4bcc14c36
pascal massimino [Fri, 17 May 2013 07:36:15 +0000 (00:36 -0700)]
Merge "webp/lossless: fix big endian BGRA output"
James Zern [Thu, 16 May 2013 20:47:15 +0000 (13:47 -0700)]
webp/lossless: fix big endian BGRA output
Change-Id: I3d4b3d21f561cb526dbe7697a31ea847d3e8b2c1
Vikas Arora [Thu, 16 May 2013 22:43:12 +0000 (15:43 -0700)]
Speed up ApplyPalette for ARGB pixels.
Added 1 pixel cache for palette colors for faster lookup.
This will speedup images that require ApplyPalette by 6.5% for lossless
compression.
Change-Id: Id0c5174d797ffabdb09905c2ba76e60601b686f8
skal [Wed, 15 May 2013 18:03:15 +0000 (20:03 +0200)]
misc code cleanup
* remove dec->skip_
* fix some naming
(no speed diff observed)
Change-Id: I12545ef79d29dd6f893c344d8fb171b0a8c7cc46
pascal massimino [Wed, 15 May 2013 07:42:36 +0000 (00:42 -0700)]
Merge "swig: add python (decode) support"
pascal massimino [Wed, 15 May 2013 07:42:08 +0000 (00:42 -0700)]
Merge "swig: cosmetics"
pascal massimino [Wed, 15 May 2013 07:41:14 +0000 (00:41 -0700)]
Merge "libwebp: fix vp8 encoder mem alloc offsetting"
James Zern [Wed, 15 May 2013 07:21:34 +0000 (07:21 +0000)]
libwebp: fix vp8 encoder mem alloc offsetting
'mem' was being offset once by DO_ALIGN() then shifted 'nz_size' which
would end up accounting for more than ALIGN_CST and exceed the allocation.
broken since:
9bf3129 align VP8Encoder::nz_ allocation
Change-Id: I04a4e0bbf80d909253ce057f8550ed98e0cf1054
skal [Wed, 15 May 2013 07:21:30 +0000 (09:21 +0200)]
remove use of bit-fields in VP8FInfo
(in favor of just plain uint8_t's)
Change-Id: I6187587a4d8a9f5c304a132d98ec42ce24fd244a
skal [Tue, 14 May 2013 20:28:32 +0000 (22:28 +0200)]
remove some warnings:
* "declaration of ‘index’ shadows a global declaration [-Wshadow]"
* "signed and unsigned type in conditional expression [-Wsign-compare]"
Change-Id: I891182d919b18b6c84048486e0385027bd93b57d
Pascal Massimino [Tue, 14 May 2013 08:58:06 +0000 (01:58 -0700)]
Merge "fix for big-endian"
pascal massimino [Tue, 14 May 2013 08:56:54 +0000 (01:56 -0700)]
Merge "Further reduce memory to decode lossy+alpha images"
Urvang Joshi [Mon, 13 May 2013 23:24:49 +0000 (16:24 -0700)]
Further reduce memory to decode lossy+alpha images
Earlier such images were using roughly 9 * width * height bytes for
decoding. Now, they take 6 * width * height memory.
Change-Id: Ie4a681ca5074d96d64f30b2597fafdca648dd8f7
Urvang Joshi [Mon, 13 May 2013 20:26:33 +0000 (13:26 -0700)]
Mux: make a few methods static
Change-Id: I8a8b0b403116c89933e84c93502a8230026f819e
Pascal Massimino [Sat, 11 May 2013 10:53:01 +0000 (03:53 -0700)]
fix for big-endian
(Issue #150: https://code.google.com/p/webp/issues/detail?id=150)
Change-Id: Iad46d375a8c5eabae37cde8f55b3e7448601f264
Pascal Massimino [Mon, 13 May 2013 15:59:48 +0000 (08:59 -0700)]
Merge "add uncompressed TIFF output support"
Pascal Massimino [Thu, 9 May 2013 10:57:50 +0000 (03:57 -0700)]
add uncompressed TIFF output support
new option: 'dwebp -tiff ...'
This is a very simple uncompressed-tiff writing method.
Change-Id: Ie2182c8498bce570de3cde363abe1099e18596cb
pascal massimino [Sat, 11 May 2013 07:53:20 +0000 (00:53 -0700)]
Merge "gif2webp: Fix signed/unsigned comparison mismatch"
pascal massimino [Sat, 11 May 2013 07:51:39 +0000 (00:51 -0700)]
Merge "GetFeatures: Detect invalid VP8X/VP8/VP8L data"
pascal massimino [Sat, 11 May 2013 07:41:35 +0000 (00:41 -0700)]
Merge "mux.h: A comment fix + some consistency fixes"
Urvang Joshi [Fri, 10 May 2013 21:25:00 +0000 (14:25 -0700)]
GetFeatures: Detect invalid VP8X/VP8/VP8L data
This facilitates early error detection during decode/render.
Also, related refactoring.
Change-Id: Ia6c7cd91dec202a2a68dae2118f5981cf1eaa83d
Urvang Joshi [Fri, 10 May 2013 20:39:58 +0000 (13:39 -0700)]
Cosmetic: "width * height"
Change-Id: I567c0d95355160a9f6721f949b38e2b8b6270b7a
Urvang Joshi [Fri, 10 May 2013 20:37:20 +0000 (13:37 -0700)]
gif2webp: Fix signed/unsigned comparison mismatch
Change-Id: I355f0614424276550db71b24e5bb1948e5c6894c
Urvang Joshi [Fri, 10 May 2013 20:35:16 +0000 (13:35 -0700)]
mux.h: A comment fix + some consistency fixes
Change-Id: I0aee1090322bac3ae3dabf9a48661cbb6de3ca52
pascal massimino [Fri, 10 May 2013 09:00:02 +0000 (02:00 -0700)]
Merge "swig: ifdef some Java specific code"
James Zern [Fri, 10 May 2013 06:47:30 +0000 (23:47 -0700)]
Makefile.vc: fix libwebpdemux dll variable typo
Fixes issue #149
Patch by: Jason Stevens (cypher497 at gmail dot com)
Change-Id: I65cceaad37d22b96e5e92cb78f859fc0b7c38b67
James Zern [Fri, 10 May 2013 06:27:54 +0000 (23:27 -0700)]
swig: add python (decode) support
similar to Java, simple interface only
Change-Id: I8a3d344e5d89f73627e4e0cb2067512260d46fdd
James Zern [Thu, 9 May 2013 01:00:30 +0000 (18:00 -0700)]
swig: cosmetics
normalize formatting
- update decode prototypes
- match project function name style
Change-Id: Ib481b5602171b72dbb1a5d462e6d5166e9b8566e
Vikas Arora [Thu, 9 May 2013 00:19:04 +0000 (17:19 -0700)]
WebP-Lossless encoding improvements.
Lossy (with Alpha) image compression gets 2.3X speedup.
Compressing lossless images is 20%-40% faster now.
Change-Id: I41f0225838b48ae5c60b1effd1b0de72fecb3ae6
James Zern [Thu, 9 May 2013 00:13:40 +0000 (17:13 -0700)]
swig: ifdef some Java specific code
no implementation change
Change-Id: I077c707e1f6293188e6fa11ba24757009a709f77
pascal massimino [Wed, 8 May 2013 08:54:28 +0000 (01:54 -0700)]
Merge "Mux: make ValidateForSingleImage() method static"
pascal massimino [Wed, 8 May 2013 08:53:22 +0000 (01:53 -0700)]
Merge "Add GetCanvasSize() method to mux"
Urvang Joshi [Fri, 3 May 2013 20:58:53 +0000 (13:58 -0700)]
Mux: make ValidateForSingleImage() method static
Change-Id: I96ac5e3be26b8e8ecd9f055501a5feb7710bc324
James Zern [Tue, 7 May 2013 00:18:27 +0000 (17:18 -0700)]
configure: add warning related flags
adds TEST_AND_ADD_CFLAGS function
uses AM_CFLAGS to allow CFLAGS override
Change-Id: I9352aec6e5d905a41d832bf5ad0c8dcd154f7e97
Urvang Joshi [Thu, 2 May 2013 20:54:25 +0000 (13:54 -0700)]
Add GetCanvasSize() method to mux
Change-Id: If910f5024f4c301a92e6c2e8ee9c315a103c5df7
pascal massimino [Tue, 7 May 2013 19:15:50 +0000 (12:15 -0700)]
Merge "configure: add GLUT detection; build vwebp"
James Zern [Wed, 1 May 2013 21:47:56 +0000 (14:47 -0700)]
configure: add GLUT detection; build vwebp
Change-Id: I7f0964db2d04c22ff9ec274e8cd1cbed7379a165
pascal massimino [Tue, 7 May 2013 16:14:56 +0000 (09:14 -0700)]
Merge "Alpha decoding: significantly reduce memory usage"
pascal massimino [Tue, 7 May 2013 15:50:57 +0000 (08:50 -0700)]
Merge "configure: add --enable-everything"
pascal massimino [Tue, 7 May 2013 15:49:21 +0000 (08:49 -0700)]
Merge "configure.ac: add some helper macros"
Urvang Joshi [Fri, 3 May 2013 01:24:46 +0000 (18:24 -0700)]
Alpha decoding: significantly reduce memory usage
Simply get rid of an intermediate buffer of size width x height, by
using the fact that stride == width in this case.
Change-Id: I92376a2561a3beb6e723e8bcf7340c7f348e02c2
James Zern [Thu, 2 May 2013 01:13:55 +0000 (18:13 -0700)]
configure: add --enable-everything
Change-Id: Ie1b3abd42459de7f789fe985759c465c2a196727
James Zern [Wed, 24 Apr 2013 21:40:58 +0000 (14:40 -0700)]
configure.ac: add some helper macros
library check related variable maintenance -> *_INCLUDES / *_LIBS
CLEAR_LIBVARS / LIBCHECK_PROLOGUE / LIBCHECK_EPILOGUE
Change-Id: I72e292dc1f69b02f69a26639308f247db0471e2b
Pascal Massimino [Mon, 1 Apr 2013 23:10:35 +0000 (23:10 +0000)]
Remove the gcc compilation comments
They went out of sync some time ago, and are
no longer really required since we have them
buildable from makefile.unix
Change-Id: Ica2dcf5c55f44365598f832f55204d123d7aa601
Urvang Joshi [Fri, 26 Apr 2013 22:55:42 +0000 (15:55 -0700)]
Cosmetic fixes
Change-Id: I7d5a337077ba1d0406769190fef9b47146ed8b24
skal [Fri, 26 Apr 2013 06:55:31 +0000 (08:55 +0200)]
Simplify forward-WHT + SSE2 version
no precision loss observed
speed is not really faster (0.5% at max), as forward-WHT isn't called often.
also: replaced a "int << 3" (undefined by C-spec) by a "int * 8"
( supersedes https://gerrit.chromium.org/gerrit/#/c/48739/ )
Change-Id: I2d980ec2f20f4ff6be5636105ff4f1c70ffde401
skal [Thu, 25 Apr 2013 20:46:12 +0000 (22:46 +0200)]
fix missed optim
it's not often the case, but could happen, that chroma has non-zero
coeff but luma hasn't. In such case, we should skip luma right away
Change-Id: I9515573ffaec8aad8b069d2c02ffbda4a6eff97c
Urvang Joshi [Thu, 25 Apr 2013 19:08:40 +0000 (12:08 -0700)]
VP8GetInfo(): Check for zero width or height.
Change-Id: I0bf40621ed0776e1a185ad8abab5a914a3d29d69
James Zern [Sat, 13 Apr 2013 17:53:20 +0000 (10:53 -0700)]
align VP8Encoder::nz_ allocation
prevents unaligned uint32_t load/store
Change-Id: I3f5e1b434a7452f618009d5e4bbe4f3260e3e321
skal [Wed, 24 Apr 2013 12:33:44 +0000 (14:33 +0200)]
fix CheckMode() signature
should have been 'const VP8Decoder* const dec', but actually
we just need to pass mb_x_ and mb_y_
Change-Id: I21ca0d67ab33302d6eaa45698d53ed6c2de76981
pascal massimino [Mon, 22 Apr 2013 20:13:29 +0000 (13:13 -0700)]
Merge "explicitly pad bitfields to 32-bits"
James Zern [Sat, 13 Apr 2013 17:51:23 +0000 (10:51 -0700)]
explicitly pad bitfields to 32-bits
suggested by fbarchard@chromium; may affect alignment in some cases
Change-Id: I63552eb1a0f9e81754d30ce6e9b1cfe5748bdbc9
pascal massimino [Fri, 19 Apr 2013 07:13:16 +0000 (00:13 -0700)]
Merge "prevent signed int overflow in left shift ops"
pascal massimino [Fri, 19 Apr 2013 07:11:10 +0000 (00:11 -0700)]
Merge "cosmetics: remove unnecessary ';'s"
pascal massimino [Fri, 19 Apr 2013 07:10:39 +0000 (00:10 -0700)]
Merge "don't forward declare enums"
Urvang Joshi [Thu, 18 Apr 2013 21:19:25 +0000 (14:19 -0700)]
gif2webp: Fix ICC and XMP support
Change-Id: Ib5aafef388bd191610e4cc2f8180f35cd454f1d3
Christian Duvivier [Thu, 18 Apr 2013 09:28:03 +0000 (11:28 +0200)]
Add missing name to AUTHORS
Change-Id: I00092e5bb676b48abc05b94080b589b48c911c82
Urvang Joshi [Tue, 16 Apr 2013 21:13:45 +0000 (14:13 -0700)]
Demux: Fix a potential memleak
Change-Id: Ic0dcac010da088b791c130be4abacdd8c31e92cf
James Zern [Sat, 13 Apr 2013 17:38:09 +0000 (10:38 -0700)]
don't forward declare enums
doing so is not part of ISO C; removes some pedantic warnings
Change-Id: I739ad8c5cacc133e2546e9f45c0db9d92fb93d7e
James Zern [Sat, 13 Apr 2013 17:33:41 +0000 (10:33 -0700)]
prevent signed int overflow in left shift ops
force unsigned when shifting by 24.
Change-Id: Ie229d252e2e4078107cd705b09397e686a321ffd
James Zern [Sat, 13 Apr 2013 17:49:35 +0000 (10:49 -0700)]
cosmetics: remove unnecessary ';'s
Change-Id: I5fefd9a5b2fe3795c2b5d785c30335b85bac0b43
James Zern [Sat, 13 Apr 2013 17:42:51 +0000 (10:42 -0700)]
Merge "Fix few missing comparisons to NULL"
Pascal Massimino [Thu, 11 Apr 2013 07:57:31 +0000 (00:57 -0700)]
Fix few missing comparisons to NULL
Change-Id: I0d2ff8e8b507d17e80669b2b59fd5b017af995ed
Pascal Massimino [Thu, 11 Apr 2013 18:35:18 +0000 (11:35 -0700)]
Cleaned up VP8GetHeaders() so that it parses only frame header
Removed a call to WebPParseHeaders() inside VP8GetHeaders(). This was not needed
anyway, as all call flows already call WebPParseHeaders() before calling
VP8GetHeaders().
This avoids duplicate calls to WebPParseHeaders().
Change-Id: Icb2d618bd26c44220d956c17a69c9c45a62d5237
Pascal Massimino [Wed, 10 Apr 2013 01:51:59 +0000 (18:51 -0700)]
dwebp: add support for BMP output
Supports alpha output too.
Change-Id: I42ea0bf7b6bbb420f0e537d372a3b13fe00528a9
Pascal Massimino [Wed, 10 Apr 2013 00:52:37 +0000 (17:52 -0700)]
add precision about dynamic output reallocation with IDecoder
The output surface CAN be changed inbetween calls to
WebPIUpdate() or WebPIAppend(), but with precautions.
Change-Id: I899afbd95738a6a8e0e7000f8daef3e74c99ddd8
James Zern [Tue, 9 Apr 2013 21:02:22 +0000 (14:02 -0700)]
Merge "Makefile.vc: have 'all' target build everything"
James Zern [Tue, 9 Apr 2013 00:21:24 +0000 (17:21 -0700)]
Merge "Makefile.vc: flags cleanup"
James Zern [Tue, 9 Apr 2013 00:20:32 +0000 (17:20 -0700)]
Merge "Makefile.vc: drop /FD flag"
James Zern [Tue, 9 Apr 2013 00:20:02 +0000 (17:20 -0700)]
Merge "update gitignore"
Urvang Joshi [Mon, 8 Apr 2013 19:19:29 +0000 (12:19 -0700)]
Rename PRE_VP8 state to WEBP_HEADER
Also, rename state VP8_FRAME_HEADER to VP8_HEADER (to be consistent with
VP8L_HEADER).
Change-Id: Ief2d2f483e36d37f00d8d0db87026ad059f27327
Urvang Joshi [Fri, 5 Apr 2013 21:01:07 +0000 (14:01 -0700)]
Add incremental support for extended format files
This applies to images with optional chunks (e.g. images with ALPH
chunk,
ICCP chunk etc). Before this, the incremental decoding used to work like
non-incremental decoding for such files, that is, no rows were decoded
until
all data was available.
The change is in 2 parts:
- During optional chunk parsing, don't wait for the full VP8/VP8L chunk.
- Remap 'alpha_data' pointer whenever a new buffer is allocated/used in
WebPIAppend() and WebPIUpdate().
Change-Id: I6cfd6ca1f334b9c6610fcbf662cd85fa494f2a91
James Zern [Sat, 6 Apr 2013 02:21:01 +0000 (19:21 -0700)]
Makefile.vc: have 'all' target build everything
default is still the core examples as makefile.unix
Change-Id: Ica3fe6123f4359aefa130b39d2b0739b65e34c0b
James Zern [Sat, 6 Apr 2013 01:45:53 +0000 (18:45 -0700)]
Makefile.vc: flags cleanup
- drop some unnecessary link flags
- use lib.exe directly for creating libraries
- factorize /nologo and use it consistently
Change-Id: Ie76119bc051e9bc53e4d6bba1a0a3f124f9062fc
James Zern [Fri, 5 Apr 2013 21:54:05 +0000 (14:54 -0700)]
Makefile.vc: drop /FD flag
breaks under wine; from MSDN:
/FD is only used by the development environment, and it should not be
used from the command line or a build script.
Change-Id: I180c9813e721b163cc645b9b7f14fe36556019d3
James Zern [Fri, 5 Apr 2013 21:51:02 +0000 (14:51 -0700)]
update gitignore
*.a, new examples and new automake-1.12 file (ar-lib)
Change-Id: I28d7bc59a2977a7c5959940936e3d13a71dd149c
James Zern [Fri, 5 Apr 2013 19:00:46 +0000 (12:00 -0700)]
Merge "WebPEncode: An additional check. Start VP8EncLoop/VP8EncTokenLoop only if VP8EncStartAlpha succeeded."
Urvang Joshi [Fri, 5 Apr 2013 18:33:44 +0000 (11:33 -0700)]
WebPEncode: An additional check.
Start VP8EncLoop/VP8EncTokenLoop only if VP8EncStartAlpha succeeded.
Change-Id: Id1faca3e6def88102329ae2b4974bd4d6d4c4a7a
Urvang Joshi [Fri, 5 Apr 2013 18:24:59 +0000 (11:24 -0700)]
pngdec: Avoid a double-free.
Earlier, at line#275, if ok == 0, it would have triggered a double free
of 'rgb'.
Change-Id: Iaee1f35824a66f6e4b488e523416f73b87c5ec30
James Zern [Fri, 5 Apr 2013 03:09:00 +0000 (20:09 -0700)]
Merge "configure.ac: add AM_PROG_AR for automake >= 1.12"
Pascal Massimino [Wed, 3 Apr 2013 02:14:14 +0000 (19:14 -0700)]
add WebPBlendAlpha() function to blend colors against background
new option: -blend_alpha 0xrrggbb
also: don't force picture.use_argb value for lossless. Instead,
delay the YUVA<->ARGB conversion till WebPEncode() is called.
This make the blending more accurate when source is ARGB
and lossy compression is used (YUVA).
This has an effect on cropping/rescaling. E.g. for PNG, these
are now done in ARGB colorspace instead of YUV when lossy compression
is used.
Change-Id: I18571f1b1179881737a8dbd23ad0aa8cddae3c6b
James Zern [Wed, 3 Apr 2013 01:45:02 +0000 (18:45 -0700)]
configure.ac: add AM_PROG_AR for automake >= 1.12
fixes:
automake-1.12/am/ltlibrary.am: warning: 'libwebp.la': linking libtool libraries using a non-POSIX
automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
Change-Id: I223f93e5f075aaf23cfefceef55e2ab8eeb34ccd