James Zern
9838e5d5ff
decode.h: remove '* const' from function parameters
...
makes the public interface consistent and more readable
Change-Id: I067eb5ecc1094216ef6aecc65f636f69873de8f9
2012-07-17 15:48:00 -07:00
James Zern
9ff00cae72
bump encoder/decoder versions
...
those returned by WebPGet(Encoder|Decoder)Version()
Change-Id: I7584d04060ae7ca552f8f3aaf9df294d310a5be6
2012-07-17 13:43:39 -07:00
Pascal Massimino
c2416c9b61
add lossless quick encoding functions to the public API
...
New functions:
WebPEncodeLosslessRGB()
WebPEncodeLosslessBGR()
WebPEncodeLosslessRGBA()
WebPEncodeLosslessBGRA()
Change-Id: Id56da7569eee80c57de8f1f053fb87b217d33a4b
2012-07-17 12:02:53 -07:00
James Zern
d5e5ad6356
move decode_vp8.h from webp/ to dec/
...
the functions contained in it are now private
Change-Id: Ief6c81b32ae3f6d97052edac625716e5b909e66e
2012-07-16 22:12:59 -07:00
James Zern
8d3b04a25d
Merge "header clean-up" into 0.2.0
2012-07-16 19:21:49 -07:00
James Zern
02201c35a0
Merge "remove one malloc() by making color_cache non dynamic" into 0.2.0
2012-07-16 19:21:05 -07:00
James Zern
d708ec1452
Merge "move MIN/MAX_HISTO_BITS to format_constants.h" into 0.2.0
2012-07-16 19:19:32 -07:00
James Zern
ab2da3e9fd
Merge "add a malloc() check" into 0.2.0
2012-07-16 19:18:28 -07:00
Pascal Massimino
2d571bd89f
add a malloc() check
...
mostly a sanity measure to be future-proof
Change-Id: I55a81345819b2a8e939c98f0da883dc5c0cc16a2
2012-07-16 19:15:00 -07:00
Pascal Massimino
7f0c178e46
remove one malloc() by making color_cache non dynamic
...
Change-Id: I7c71a056f79a79bfacfe64a263f1eb8476c05456
2012-07-16 19:13:58 -07:00
James Zern
6569cd7c88
Merge "VP8LFillBitWindow: use 64-bit path for msvc x64 builds" into 0.2.0
2012-07-16 19:13:30 -07:00
Pascal Massimino
23d34f3142
header clean-up
...
remove unused VP8LHistogramRemove function
make HistogramEstimateBitsHeader static
Change-Id: I0dc6a6f4c41d3c5f55a8153cd7d710c9f84582a7
2012-07-16 19:13:01 -07:00
Pascal Massimino
2a3ab6f925
move MIN/MAX_HISTO_BITS to format_constants.h
...
(under the name MAX_HUFFMAN_BITS, since the specs read:
int huffman_bits = ReadBits(3) + 2;
)
Change-Id: Ifc66576bbd8e48518d3d78a3f515f851cf1883dc
2012-07-16 19:11:54 -07:00
Pascal Massimino
985d3da6c4
Merge "shuffle variables in HashChainFindCopy" into 0.2.0
2012-07-16 19:11:00 -07:00
Pascal Massimino
cdf885c67c
shuffle variables in HashChainFindCopy
...
might lead to observable speed-up on some compiler/arch
Change-Id: I6c89ec9cd4f490e7e22b790785f80097a47d27b5
2012-07-16 19:08:59 -07:00
James Zern
7f4647eecb
Merge "clarify the colorspace naming and byte ordering of decoded samples" into 0.2.0
2012-07-16 12:16:17 -07:00
Pascal Massimino
cbf69724d2
clarify the colorspace naming and byte ordering of decoded samples
...
Change-Id: If5ac331bd1e45e7c959b5fa60248268ae2bbe861
2012-07-16 12:09:51 -07:00
James Zern
ff771e7705
don't install webp/decode_vp8.h
...
the VP8 decode functions do not need to be public; only
GetInfo/CheckSignature need to be marked extern as they're used by
libwebpmux.
Change-Id: Id9ab4d6166b0271cf5d04563c6dac1fcc84adbdc
2012-07-14 21:23:03 -07:00
James Zern
596dff784d
VP8LFillBitWindow: use 64-bit path for msvc x64 builds
...
Change-Id: I14a3865f4091dd048e02abc99aa4e7f1e325e12a
2012-07-14 13:20:26 -07:00
James Zern
f0b5defb0a
bump versions
...
lib - 0.1.99
libtool - 3.0.0 (interface changes)
Change-Id: Id52f8b8df5b941b15af6cb54b1cc05daf322179f
2012-07-13 14:07:51 -07:00
James Zern
8130c4cc64
Merge "build: remove libwebpmux from default targets/config"
2012-07-13 11:33:52 -07:00
James Zern
05108f6ea0
Merge "More spec/code matching in mux:"
2012-07-12 23:53:58 -07:00
Urvang Joshi
6808e69db8
More spec/code matching in mux:
...
- Match offsets, duration, width/height for frames/tiles and enforce
some constraints.
- Note that this also means using 'int's instead of 'uint32_t's for
16-bit and 24-bit fields.
Change-Id: If0b229ad9fce296372d961104aa36731a3b1304b
2012-07-13 11:47:24 +05:30
James Zern
1d40a8bce8
configure: add pthread detection
...
adds a --disable-threading option to prevent the check.
uses AX_PTHREAD from:
git://git.savannah.gnu.org/autoconf-archive.git
100644 blob d90de34d14
ax_pthread.m4
Change-Id: Icf3ad1ebcf052748bc341706effcc9ba02a259e4
2012-07-12 16:27:29 -07:00
Pascal Massimino
b5e9067a28
fix some int <-> size_t mix for buffer sizes
...
could have led to some negative overflow on 32bit arch
(if it was not for the "total_size == (size_t)total_size" test)
Change-Id: I7640340b605b9c674d30dd58a1e2144707299683
2012-07-12 07:23:01 -07:00
James Zern
e41a759615
build: remove libwebpmux from default targets/config
...
the extended file format is still under development and related
libs/binaries are not fit for release
configure:
--enable/disable-libwebpmux; default is disabled.
makefile.unix:
src/mux/libwebpmux.a and examples/webpmux must be explicitly specified
Makefile.vc:
$(DIRLIB)\libwebpmux.lib and $(DIRBIN)\webpmux.exe must be explicitly
specified
Change-Id: I8246746b256010dd2a2e4de58291222d7eaf0457
2012-07-11 14:25:41 -07:00
Pascal Massimino
48b39eb17a
fix underflow for very short bitstreams
...
+ hardened the asserts
Change-Id: Ie798ef2f9d848c131f6f84a35ea28ef254822d1e
2012-07-09 16:47:34 -07:00
James Zern
7e622984bb
cosmetics: param alignment, manpage wording
...
after eb6f9b8
, c0e8859
Change-Id: I79bcea77d65eb6d1abf1156796996f3b9909b62b
2012-07-07 10:37:26 -07:00
Urvang Joshi
c0e8859d81
Get rid of image_info_ from WebPChunk struct.
...
The image_info_ was used only in GetImageCanvasWidthHeight(). So, now
we infer it from data there.
This removal fixes a bug: earlier, 'image_info' wasn't initialized in
the WebPMuxCreate() flow, and so the canvas width/height were being
calculated to be zero.
Also, a related refactoring: Combine CreateImageInfo() and
CreateDataFromImageInfo() into a single function CreateFrameTileData().
Change-Id: I7b0afb0d36dc6e13b9d6a1135fb027aa4e03716c
2012-07-04 18:49:56 +05:30
Pascal Massimino
0fa844fb8f
cosmetic fixes on assert and 'const' where applicable
...
Change-Id: Iede15b8464be453e7d12929513ed82183921265c
2012-07-03 05:50:36 -07:00
Pascal Massimino
7f22bd2596
check limit of width * height is 32 bits
...
Update the RIFF-specs file too
Change-Id: I113a7e25da2f7a19c1344c1dc5d496127cfe2596
2012-07-03 05:42:13 -07:00
pascal massimino
88a510ff53
Merge "fix big-endian VP8LWriteBits"
2012-07-02 14:38:32 -07:00
James Zern
f56a369ab0
fix big-endian VP8LWriteBits
...
bits would be lost if n_bits was > 17
Change-Id: Id315d075075338a08e10c04faa91cab347a53591
2012-07-02 14:30:41 -07:00
pascal massimino
4691407bb3
Merge changes If39ab7f5,I3658b5ae
...
* changes:
WebPMuxCreate() error handling:
Fix a memleak in WebPMuxCreate()
2012-07-02 01:46:17 -07:00
Vikas Arora
cca7c7b81b
Fixed nit: 10 -> 10.f
...
Change-Id: I0cdb096525460b27f3adcb9f802f6dc193d5f590
2012-07-02 11:29:01 +05:30
Urvang Joshi
5d09a244b7
WebPMuxCreate() error handling:
...
Directly return NULL if no allocation is done yet.
Change-Id: If39ab7f5a55833263d3372fa0a5d9b0a600cb9ed
2012-07-02 11:20:09 +05:30
Urvang Joshi
777341c3d0
Fix a memleak in WebPMuxCreate()
...
Change-Id: I3658b5ae487082aef28989eb8abc274c207fef0f
2012-07-02 10:19:21 +05:30
James Zern
4c3975792b
Merge "mark VP8{,L}{GetInfo,CheckSignature} as WEBP_EXTERN"
2012-06-29 10:31:26 -07:00
pascal massimino
e4e36cc6c6
Merge "Mux: Allow only some frames/tiles to have alpha."
2012-06-29 05:17:26 -07:00
pascal massimino
ad2aad3c21
Merge "WebP Decoding error handling:"
2012-06-29 05:15:55 -07:00
Urvang Joshi
97649c8f6b
Mux: Allow only some frames/tiles to have alpha.
...
And related const fixes.
Change-Id: I79f6f1b9f8c6faac8cc4ef24b58edff6d90de045
2012-06-29 17:17:19 +05:30
Vikas Arora
f864be3b2c
Lower the quality settings for Alpha encoding.
...
Evaluated the impact of this change over 1000 image corpus.
The compression density is up (on average) by 1.2% and encoding time has
gone down considerably from 716 ms (per file) to 146 ms (per file)
(4.9X improvement in encoding time).
Change-Id: Ida562cc0bfe18c9d6f5f00873c95f8396b480eab
2012-06-29 16:19:42 +05:30
Urvang Joshi
3ba81bbe8b
WebP Decoding error handling:
...
- Don't allow any extended chunks (except ALPH) without RIFF & VP8X
chunks.
- Also, don't allow VP8X without RIFF.
Change-Id: I1beba43e617ec637901aeeb93f2f484ec086a75d
2012-06-29 14:32:21 +05:30
Pascal Massimino
fcc69923b9
add automatic YUVA/ARGB conversion during WebPEncode()
...
Adds new methods WebPPictureARGBToYUVA() and WebPPictureYUVAToARGB()
Depending on the value of picture->use_argb_input,
the main call WebPEncode() will convert appropriately.
Note that both conversions are lossy, so it's recommended to:
* use YUVA input for lossy compression (picture->use_argb_input=0)
* use ARGB input for lossless compression (picture->use_argb_input=1)
Change-Id: I8269d607723ee8a1136b9f4999f7ff4e657bbb04
2012-06-28 00:34:23 -07:00
Pascal Massimino
802e012a18
fix compilation in non-FANCY_UPSAMPLING mode
...
Change-Id: Id0b1fad3a4888b6e9563a227412b2e6a656d9a2a
2012-06-28 00:26:35 -07:00
Pascal Massimino
e012dfd90f
make width/height coding match the spec
...
* width/height in VP8X chunk is 24bit now
* Added some more constants #defines
Change-Id: I2f8ca7f965a247bccd341dd079ed2abf549c39d7
2012-06-28 00:20:28 -07:00
James Zern
228d96a538
mark VP8{,L}{GetInfo,CheckSignature} as WEBP_EXTERN
...
these functions are used by libwebpmux
Change-Id: Ifcb79e685f3a6b53007c0dc5f220737daba97d47
2012-06-27 16:07:33 -07:00
Pascal Massimino
637a314f97
remove the now unused *KeepA variants
...
Change-Id: I65217f3075e30bc9a7f38a49d09f01c9d7271d6a
2012-06-27 10:00:48 -07:00
James Zern
b9ae4f0d88
cosmetics after mux changes b74ed6e
, b494ad5
...
Change-Id: I8f693b1ba2537de89bda1dfbcf3b95abd17e420a
2012-06-22 14:30:01 -07:00
Urvang Joshi
b494ad5096
Mux: only allow adding frame/tiles at the end.
...
Change-Id: I5d685628da8c8ac85144cee2e5808b30ec79fef9
2012-06-22 11:18:18 -07:00