Commit Graph

145 Commits

Author SHA1 Message Date
Mike Blumenkrantz 5375e154fe fix config.h inclusion across the tree 2014-09-23 15:56:46 -04:00
Cedric BAIL 4f45be13cf lz4: fix another security issue on ARM 32bits. 2014-07-14 15:59:06 +02:00
Boris Faure 3d36d65dd8 lz4: fix shadow issue
@fix
2014-06-29 23:11:56 +02:00
Cedric BAIL 2c97212736 lz4: fix possible security issue.
See :
- http://fastcompression.blogspot.fr/2014/06/lets-move-on.html
- http://www.openwall.com/lists/oss-security/2014/06/26/25

@fix
2014-06-29 12:56:56 +02:00
Jean-Philippe Andre 37431fb1a1 Evas ETC2: Remove some useless operations
No need to write out alpha in a RGBA color when only
the RGB values are used by the distance op.

Also, add a comment on the byte order. Maybe I'm wrong
but I believe the operations are fine wrt. byte order :)
2014-06-23 11:20:13 +09:00
Jean-Philippe ANDRE 60895e1a14 Evas ETC2: Remove some C99/GCC extensions code
There is still some C99 code in the file in the form of
  for (int k = 0; ...)

If there's a strong requirement not to use this form, I'll
change it, otherwise I find this specific code style more
readable (k is local to this iteration).

This patch and the previous one even give a ~10% speedup
on the encoding time. Sweet :)
2014-06-22 18:59:52 +09:00
Jean-Philippe ANDRE 4d35471e8e Evas ETC2: Fix horrible warnings in etc2_encoder
So I guess always compiling with debug flags and no
optimizations isn't the best idea as some really bad warnings
can be hidden. Thanks raster for the notice.
2014-06-22 18:57:41 +09:00
Jean-Philippe Andre c79a8b43b6 Evas: Fix ETC2 encoding with RGB images (no alpha) 2014-06-13 15:59:23 +09:00
Jean-Philippe Andre 29770922cf Evas ETC2: Fix etc2 function declaration 2014-06-12 16:53:53 +09:00
Jean-Philippe Andre d6e6d001a3 Evas ETC2: Clean up debug code
Disable flag and disable unused function if DEBUG is not set.
2014-06-10 14:58:28 +09:00
Jean-Philippe Andre 878641f6dc Evas ETC2: Fix alpha encoding with high quality
Use an exhaustive search when encoding alpha at high quality.
This can be very slow if we don't have a perfect solution.
2014-06-10 14:58:28 +09:00
Jean-Philippe Andre 90f58b2a57 Evas ETC2: Implement Planar mode
And this completes the first version of this ETC2 encoder.
It's pretty slow and not exhaustive.

Color selection for T and H modes could probably be optimized
for both performance and quality. As for the planar mode, there
is no selection to speak of, as we just take the values of the
pixels directly (no scan, very fast)

On a sample image with lots of blue, white and noisy gradients,
T+H+Planar mode boost the PNSR from 41.22dB to 42.01dB.
Without planar mode, the PSNR was 41.94dB.

@feature
2014-06-10 14:58:28 +09:00
Jean-Philippe Andre 173b6bebf9 Evas ETC2: Implement H mode encoding
And we gain some more decibels of PSNR :)

@feature
2014-06-10 14:58:28 +09:00
Jean-Philippe Andre 22c5632256 Evas ETC2: Implement T mode encoding
In this mode, two colors are encoded in RGB444, a multiplier and
distance (index) are selected. Two extra colors are extrapolated
from the main base color. As in ETC1 we have 4 base colors to paint
our block.

@feature
2014-06-10 14:58:27 +09:00
Jean-Philippe Andre 6fc4c1da74 Evas ETC2: Add ETC2 encoder skeletton
Implement Alpha encoding, brute force way, but doesn't scan
all possibilities either (only based on average alpha).

RGB encoding is still entirely left to the rg-etc1 encoder.
T, H and Planar mode will come in the next commits.

@feature: Implement an ETC2 encoder from scratch for RGB8 and RGBA8
2014-06-10 14:58:27 +09:00
Jean-Philippe Andre 69cbfc7530 Evas rg_etc2: Fix Windows build
Use unsigned char/int instead of stdint in the header file.
2014-05-28 12:11:05 +09:00
Jean-Philippe Andre b8f7431b74 Evas rg_etc1: Fix build break (with DEBUG)
Ooops, bad code merge here.
This breaks the nightly builds.
2014-05-28 08:13:30 +09:00
Jean-Philippe Andre 1aa3510666 Evas rg_etc: Show in the doc that we use BGRA now 2014-05-27 12:21:43 +09:00
Jean-Philippe Andre 939b5e47a0 Evas rg_etc2: Small performance fix
Alpha is always 255 otherwise we need to loop around and
clamp the values to 255 anyways.
2014-05-27 12:21:43 +09:00
Jean-Philippe Andre 525bc4117a Evas rg_etc1: Also decode RGBA8 from the TGV loader 2014-05-27 12:21:37 +09:00
Jean-Philippe Andre 03505d1f81 Evas rg_etc2: Complete support for ETC2 with RGBA8_EAC
Add support for alpha in the ETC2 decoder.
2014-05-27 12:21:37 +09:00
Jean-Philippe Andre 5582ee016e Evas rg_etc2: Add ETC2 decoding routines
Simple implementation of the OpenGL ES 3.0 specification, annex C.1.
2014-05-27 12:21:30 +09:00
Matvey Konovalov 9550b65348 Evas rg_etc1: Unroll the decoding loop for performance
Measurements have shown a 40% perf increase with these changes.
Patch by Matvey Konovalov.

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2014-05-27 12:21:26 +09:00
Savio Sena 72ee78b929 efl: remove some warnings.
Summary:
Mainly from the examples but also from libunibreak and tests/eet.

I'm not sure if it's really worth to remove warnings from the examples
-- because it adds pedantic-ness to something supposed to be didatic,
but I leave for you guys to judge.

Reviewers: tasn, cedric

CC: felipealmeida, raster, smohanty, cedric

Differential Revision: https://phab.enlightenment.org/D896

Signed-off-by: Cedric Bail <cedric.bail@free.fr>
2014-05-24 02:27:15 +02:00
Jean-Philippe Andre 12cdc7c25c rg_etc: Add a README for the Zlib license 2014-05-07 19:59:01 +09:00
Jean-Philippe Andre 59b660aae9 rg_etc1: Fix RGBA vs BGRA mishandling of the ETC1 codec
Evas uses BGRA data while rg_etc1 uses RGBA data, so there
were incompatibilities between the two.

Now, rg_etc1 will take BGRA data as input and output.
2014-04-22 18:30:26 +09:00
Jean-Philippe Andre 3ccd966ffe rg_etc1: Disable code producing artifacts
So I must have been a bit tired last Friday when "fixing" some
code producing artifacts, as I was just basically disabling part
of the code without realizing it :)
Let's just disable it then.
2014-04-22 11:59:54 +09:00
Jean-Philippe Andre e120d42742 rg_etc1: Fix rare artifacts + add comments
Add some comments as I'm reading and understanding the code.
Fix some rare artifacts happening mostly with medium quality
encoding, where a few pixels (2x2, 2x4 or 4x2) will have a
horrible contrast with their surroundings (eg. pink over black).
2014-04-18 18:46:55 +09:00
Jean-Philippe Andre ca0c608b66 rg_etc1: Fix encoding of solid color blocks
The ETC1 encoder is expected to write all 8 bytes of the
output data. But in case of a solid color block, it was writing
only 1 of the first 3 bytes (R, G, B). So lots of solid blocks
were containing invalid data (for instance: R + dR < 0 or > 255).
2014-04-18 15:43:07 +09:00
Cedric Bail b5c276a659 rg_etc: check against meaningful size (pointer size is not)
CID 1195440.
2014-04-17 21:26:57 +02:00
Stefan Schmidt e004338cce rg_etc: Fix local shadow problems
Make it clear which local variable we really want to use by changing
the names. All of these seem to be fine but this can really bite us
so have better clarity here.
2014-04-08 16:22:59 +02:00
Stefan Schmidt 8ebc1309ac rg_etc: Really fix debug build.
Finally finishing what 2e8c7cad3a tried to fix.
2014-04-08 10:46:41 +02:00
Stefan Schmidt 2e8c7cad3a rg_etc: Fix debug build
In 4053911e we tried to fix the debug build and failed. The function API
actually asks for coords as first parameter. Our nightly builds expose
this debug build and have been failing due to this.

It also makes clear that the debug part of this code was never really
used upstream...
2014-04-04 09:39:28 +02:00
Cedric BAIL 4053911ef3 rg_etc: fix typo in debug code. 2014-04-02 10:31:06 +09:00
Cedric BAIL 4eb983614c rg_etc: fix warning and remove assert. 2014-04-01 22:00:13 +09:00
Mythri Venugopal ebd3187923 rg_etc: convert code to C to fit in EFL tree. 2014-04-01 22:00:13 +09:00
Cedric BAIL 2cac84f567 rg_etc: convert to Unix file format. 2014-04-01 22:00:13 +09:00
Rich Geldreich 03b29127f1 rg_etc: add original code from rg-etc1 project.
Code come from https://code.google.com/p/rg-etc1/ and is under Zlib license.
The content of this directory will remain under that said license.
2014-04-01 22:00:13 +09:00
Tom Hacohen cff1a9a59f Synced libunibreak local copy with upstream.
This fixes T805.
2014-01-21 16:41:06 +00:00
Tom Hacohen 4185694ecb Synced libunibreak local copy with upstream. 2013-08-07 11:57:09 +01:00
Tom Hacohen 88ab486e63 Efl static_libs: Updated liblinebreak -> libunibreak.
SVN revision: 82652
2013-01-11 18:16:09 +00:00
Gustavo Sverzut Barbieri 2b29626d8d efl: fix make dist.
Carefully compared 'svn export' and 'make dist' results and couple of
files were missing.

Changes:

 * Makefile.am: removed all .pc from EXTRA_DIST, we shouldn't
   distribute them here as they will contain ./configure data such as
   install location.
 * src/Makefile.am: moved all if-endif to files, otherwise EXTRA_DIST
   won't work properly. We must EXTRA_DIST outside of the if-endif
   block.
 * static_libs/liblinebreak: removed couple of unused files.




SVN revision: 82241
2013-01-04 20:55:12 +00:00
Vincent Torri 6f5a4a9a7c Eet: update lz4 code. Fix especially compilation bug on OpenBSD
see lz4 homepage for a full description of the fixes


SVN revision: 79975
2012-12-02 08:15:06 +00:00
Vincent Torri c15e9c6575 merge: and now Evas
I've tested make -j 3 install and it works nicely

I've tested expedite with software and opengl xlib,
and it works. Not tested other engines, so please
report any problems (engines or other) on the ML.

TODO: examples and tests, I'll add them later

ISSUE: Eina_Unicode size check. It indirectly depends on
       eina_config.h, which is created at the end of the
       configure script. So its size is always 0. I don't
       know how that size is used, so I can't do a lot,
       for now.


SVN revision: 78895
2012-11-04 11:51:42 +00:00
Vincent Torri 109efca5cb merge: move lz4 to src/static_libs/lz4 (same will hold for evas' linebreak), ignore++--
SVN revision: 78807
2012-11-01 16:58:56 +00:00