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
pascal massimino
2c341b0eed
Merge "Added image characteristic hint for the codec."
2012-06-22 02:54:51 -07:00
Vikas Arora
d373076a53
Added image characteristic hint for the codec.
...
This image type hint is used by codec to apply appropriate set of
transform filters to the image.
Change-Id: Ibb24e47ba14c40fa7f9f2c50ae86e03f2b29e9a6
2012-06-22 14:03:46 +05:30
pascal massimino
2ed2adb5ba
Merge "msvc: add intrinsic based BitsLog2Floor"
2012-06-22 00:13:47 -07:00
James Zern
e595e7c552
Merge "add demux.c to the makefiles"
2012-06-21 23:44:44 -07:00
James Zern
da47b5bda7
Merge "demux: add {Next,Prev}Chunk"
2012-06-21 23:43:03 -07:00
James Zern
e5f467420d
add demux.c to the makefiles
...
Change-Id: If98c0ea859c845261218196df35e905589f09e76
2012-06-21 23:21:41 -07:00
James Zern
4708393c3b
demux: add {Next,Prev}Chunk
...
replaces WebPDemuxSetChunk(). makes this consistent with the Frame
interface.
Change-Id: Ia2b1b98cc290f35b41fd14ee35a2a17cecac7ba8
2012-06-21 23:18:39 -07:00
James Zern
e8a0a821d2
demux: quiet msvc warnings
...
min_size is safe to be a uint32_t so avoid the size_t -> uint32_t
conversion
Change-Id: Ib53fe58d313b55dfcf3bee35d0cad48f210d07bf
2012-06-21 23:09:38 -07:00
Pascal Massimino
31b68fe639
cleanup WebPPicture struct and API
...
* add a real proper pointer for holding memory chunk pointer
(instead of using y and argb fields)
* polish the doc with details
* add a WebPPictureView() that extract a view from a picture
without any copy (kind of a fast-crop).
* properly snap the top-left corner for Crop/View. Previously,
the luma position was not snapped, and was off compared to the chroma.
Change-Id: I8a3620c7f5fc6f7d1f8dd89d9da167c91e237439
2012-06-21 00:30:43 -07:00
Pascal Massimino
9144a18643
add overflow check before calling malloc()
...
It's preferable to be over-strict and paranoid here.
Change-Id: Ia928b279b753fa8f836d17decb17a35e6dc441b3
2012-06-20 23:58:43 -07:00
Pascal Massimino
81720c9139
consistency cosmetics
...
Change-Id: Ie8e372ddcdd6e48527478f70bf716953ed18292a
2012-06-20 23:56:11 -07:00
James Zern
7144308402
enc/vp8l.c: fix build
...
broken since:
233a589
take picture->argb_stride into account for lossless coding
Change-Id: I9ecbbf65f3048be3077d28c3a20dfc0e1afa10be
2012-06-20 14:44:39 -07:00
pascal massimino
8de9a0847b
Merge "Mux API change:"
2012-06-20 11:11:49 -07:00
Urvang Joshi
b74ed6e766
Mux API change:
...
'Set' and 'Get' methods for images take/return a bitstream as input,
instead of separate 'image' and 'alpha' arguments.
Also,
- Make WebPDataCopy() a public API
- Use WebPData for storing data in WebPChunk.
- Fix a potential memleak.
Change-Id: I4bf5ee6b39971384cb124b5b43921c27e9aabf3e
2012-06-20 11:00:42 -07:00
Pascal Massimino
233a589ea9
take picture->argb_stride into account for lossless coding
...
analysis phase was assuming flat layout...
Change-Id: I96681f6d76aa3faabc51dd2ee3dffbe77ff90d36
2012-06-20 10:13:04 -07:00
James Zern
69d022176d
cosmetics: add missing const
...
Change-Id: I0c0e89bbe826961b02a40ada5a6f89e02abee378
2012-06-19 22:28:34 -07:00
James Zern
5b08318b57
cosmetics: remove unimplemented function proto
...
Change-Id: I580fcc756d161cebbabf753ee68c09d189628d7f
2012-06-19 22:27:56 -07:00
James Zern
e1f769fe1c
msvc: add intrinsic based BitsLog2Floor
...
Change-Id: Ic0c7d2f03e300c6699e130916a759403e672f9d8
2012-06-19 16:14:54 -07:00
Vikas Arora
8a69c7d8af
Bug-fix: Clamp backward dist to 1.
...
Check for valid bounds on the 'dist' in backward reference case.
Clamp it to 1 in case of zero and negative values.
Change-Id: I78e956d4595955efa02b1f9628b475093f6ee001
2012-06-19 16:44:03 +05:30
James Zern
b5b6ac979f
Merge "Bring the special writer 'WebPMemoryWriter' to public API"
2012-06-18 16:22:17 -07:00
pascal massimino
a6a1909fff
Merge "Fix floating point exception with cwebp -progress"
2012-06-18 16:11:53 -07:00
James Zern
f2cee06708
Fix floating point exception with cwebp -progress
...
Adds a test of enc->mb_h_ to VP8IteratorProgress() to avoid a division
by zero. Fixes issue #121 .
Original patch from even rouault (even dot rouault at gmail dot com).
Change-Id: Ie5fcc1821860c0a9366d5aa11f3aded4f5b98ed7
2012-06-18 15:43:28 -07:00
Pascal Massimino
91b7a8c754
Bring the special writer 'WebPMemoryWriter' to public API
...
=> WebPMemoryWriter, WebPMemoryWriterInit(), WebPMemoryWrite()
Change-Id: I142fb22b0290ece7a6f6d74f00964a2e9e58ec9b
2012-06-18 15:42:56 -07:00
Pascal Massimino
310e297205
support resize and crop for RGBA input
...
Change-Id: I19eac3fb4f8ecb973ff5872ac3a921f8947054bf
2012-06-18 15:20:46 -07:00
pascal massimino
ce614c0caf
Merge "dec/vp8: avoid setting decoder status twice"
2012-06-18 14:12:21 -07:00
James Zern
900285dac3
dec/vp8: avoid setting decoder status twice
...
Has the potential of returning confusing USER_ABORT for bitstream errors
in some cases.
Change-Id: I358fdb0b36549179df6dc2a95c09a872bd35aa24
2012-06-18 14:10:01 -07:00