Commit Graph

224 Commits

Author SHA1 Message Date
Cedric BAIL 6f42992b4f eet: fix gnutls support with newer version. 2016-09-21 10:33:44 -07:00
Sungtaek Hong b437bfb3fe eet: set alpha_texture for ETC1+Alpha
Summary:
alpha_texture need to be set EINA_TRUE to support ETC1+Alpha

@fix

Test Plan:
Create an EDC file with png image with Alpha.
           compress image with ETC1 and ETC2.
           Observe Alpha is properly applied in both case.

Reviewers: jpeg, Hermet, cedric

Reviewed By: cedric

Subscribers: conr2d

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-09-20 15:01:48 -07:00
Cedric BAIL dd1d3f0d2d autotools: since it has been broken for some times and nobody noticed, let's remove per directory support. 2016-08-01 13:36:47 -07:00
Jean-Philippe Andre 1b6825d3fe edje: Fix coverity warning
CID 1355234 Logically dead code

The indicated dead code may have performed some action;
that action will never occur.
In eet_data_descriptor_element_add: Code can never be
reached because of a logical contradiction (CWE-561)

Solution: use explicit range within valid values with <= and >=
rather than excluded values with > and <
2016-07-13 15:44:58 +09:00
Carsten Haitzler 679af3271f eet - fix possible integer overflow in ptr diff on parse
coverity spotted this - with silly long strings (like 1gb in size or+)
it might happen. fix CID 1256196
2016-07-11 21:54:57 +09:00
junsu choi 610b766db2 eet_image.c : Fix build warning
Summary: initialized two variable for uninitialized build warning

Test Plan: N/A

Reviewers: woohyun, raster

Reviewed By: raster

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D3990
2016-05-30 14:18:31 +09:00
Jee-Yong Um 557381a070 eet: add a helper to setup hash with generic value storage
Summary:
add a macro to setup eet_data_descriptor for hash with
generic value storage.

Test Plan: make check (test case is included in eet test suite)

Reviewers: cedric, raster

Subscribers: jpeg

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

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2016-05-10 16:36:22 -07:00
Cedric BAIL 0c4880e99d efl: everyone should now rely on Eina MIN/MAX redefinition. 2016-05-09 16:58:53 -07:00
Cedric BAIL 3ccfd987ec eet: make it possible to build the library alone. 2016-04-14 15:52:50 -07:00
Jean-Philippe Andre bd32015dfc Eet: Fail gracefully on invalid input
Consider infinity and NaN as invalid input for
put_float and put_double, since the underlying convert
function can't process them.

This fixes potential errors with incomplete / invalid evas 3d models
2015-12-29 16:19:02 +09:00
Vincent Torri 3b44645363 efl: add binary mode to f(re)open() calls
This allows better compatibility with Windows

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-05 21:04:36 +01:00
Cedric BAIL 6a7257f5a7 eet: improve error message during eet_close. 2015-11-24 14:27:13 -08:00
Vivek Ellur f0c826c415 eet: remove useless assignment in eet cipher and silence warning.
Summary:

Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-22 23:28:09 +01:00
Tom Hacohen 1f881c859a Eet: remove dead variable assignment.
I guess this is what 2a01c4517b was meant to be doing.
2015-11-18 10:11:55 +00:00
Stefan Schmidt 2892e54d88 Revert "eet: removing useless assignment variables."
This reverts commit 2a01c4517b.

Declaring these variable void breaks the build with disabled crypto.

Fixes T2855
2015-11-18 10:26:25 +01:00
Jean-Philippe Andre b54fe3fe61 Edje data: Fix memory leak in nested data descriptors 2015-11-18 11:48:44 +09:00
Srivardhan Hebbar 2a01c4517b eet: removing useless assignment variables.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-31 02:12:06 +01:00
Jean-Philippe Andre 509ee0f275 Evas: Disable TGV save debugging and fix error log
Disable time stats & quality check
Remove an invalid error message (was logged in case of success)
2015-10-29 21:18:32 +09:00
Jean-Philippe Andre 3f264677fb Eet: Another ETC decoding fix
@fix
2015-10-29 21:06:16 +09:00
Jean-Philippe Andre cc5cccc511 Eet: fix decoding of embedded ETC images
Typos, lack of NULL check, excessive sizeof(type) not matching
the object type, no border set, etc... This all lead to a crash
and then no render (with an error message and then without...).

This also simplifies the implicit loading of ETC1 as ETC2 when
supported by the driver.

@fix
2015-10-29 17:58:34 +09:00
Srivardhan Hebbar 71e68dcca6 eet: handling memory leak on realloc fail.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-22 12:25:39 -07:00
Srivardhan Hebbar 80ccf755a6 eet: handling memory leak on realloc fail.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-21 13:51:34 -07:00
Carsten Haitzler a5747f1ab3 eet - be robust about garbage at the end that looks like an idenity
if there is an identity signaure at the end, ONLY check it if it looks
like a real one (correct magic number, cert and sig size fields are
sane etc.). this means eet opens dont fail for files that may have
trailing garbage or padding that is not an eet identity signature.
2015-10-07 17:50:18 +09:00
Carsten Haitzler 7b018a9740 eet - fix signature alignment and position 2015-10-07 15:47:59 +09:00
Amitesh Singh 26eecda458 eet: fix typo in documentation 2015-09-28 21:50:51 +05:30
Carsten Haitzler 0a77262524 eet - improve eet file storage when encoding by aligning data
this forces data when written to be aligned to 8 bytes. this makes
mapping keys directly far better as from now on you can assume all
data is aligned to 8 bytes allowing you, if you want, to use eet files
as caches for raw binary data you mmap directly and just use (not
portable though).

@feat
2015-08-28 12:56:18 +09:00
Cedric BAIL 7b52ecc9b9 eet: remove the need to order the header correctly for Windows. 2015-05-07 09:53:10 +02:00
Cedric BAIL 02bfb82da0 eet: fix interger overflow
CID 1256196
2015-04-25 20:14:26 +02:00
Carsten Haitzler 555f09009a eet - fix emile changes to not leak in eet_cipher/deciper()
coverity spotted a missing binbuf free for the in binbuf created in
CID 1288921 and CID 1288920. this fixes both of these. leak. new.
2015-04-21 11:01:54 +09:00
Jean-Philippe Andre 258dc999ee Emile: Fix memory leak
The binbuf wrappers were never freed.
2015-04-13 14:00:46 +09:00
Cedric BAIL 0e5686de73 eet: remove use of deprecated Eina_Binbuf functions. 2015-03-17 09:58:21 +01:00
Cedric BAIL 90d8932a03 emile: remove binbuf from emile compression functions. 2015-03-17 09:58:20 +01:00
Cedric BAIL a2385e2ebc emile: follow convention for Emile_Compressor_Level. 2015-03-17 09:58:20 +01:00
Cedric BAIL 8f3ec959b9 emile: change the API to allow supporting other cipher in the future. 2015-03-17 09:58:19 +01:00
Cedric BAIL 9e2333d408 eet: use Emile type for encoding. 2015-03-17 09:58:19 +01:00
Cedric BAIL 4095519d65 emile: fix crash when cspaces is left unchanged. 2015-03-17 09:58:19 +01:00
Cedric BAIL 0e7452a9e1 eet: encode lossy image with AGRY88 or GRY8 whenever possible. 2015-03-17 09:58:19 +01:00
Cedric BAIL 580a893d2e eet: refactoring jpeg encoding. 2015-03-17 09:58:19 +01:00
Cedric BAIL 182568f103 eet: handle AGRY88 encoding for JPEG encoded image.
The alpha and the grey being encoded in two separated grey JPEG.
2015-03-17 09:58:19 +01:00
Cedric BAIL ce340ce2fb eet: fix error handling when decoding TGV file format. 2015-03-17 09:58:19 +01:00
Cedric BAIL c221f33428 eet: use Emile to decode jpeg. 2015-03-17 09:58:19 +01:00
Cedric BAIL f9125499f9 eet: use Emile to decode TGV image section. 2015-03-17 09:58:18 +01:00
Cedric BAIL 65248db8d8 eet: use eina_binbuf and emile to manipulate TGV compressed data. 2015-03-17 09:58:18 +01:00
Cedric BAIL 97c703cdaf eet: initialize emile on demand. 2015-03-17 09:58:17 +01:00
Cedric BAIL f9dd639a92 eet: use Emile instead of Zlib and LZ4 directly. 2015-03-17 09:58:17 +01:00
Cedric BAIL a7d7cae0c4 eet: move to use emile for ciphering logic. 2015-03-17 09:58:17 +01:00
Cedric BAIL 2d342c2814 emile: move GNUTLS and OpenSSL initialization logic from Eet to Emile. 2015-03-17 09:58:17 +01:00
Carsten Haitzler b86579bed6 eet - fix endianess break added by cedric a year ago in image decoding
@fix

this fixes T1987 - the commit that broke it was:

commit 18d494489c
Author: Cedric BAIL <cedric.bail@samsung.com>
Date:   Fri Jan 3 16:20:53 2014 +0900

    eet: use eina_swap*() function instead of custom slower one.
2015-02-04 18:04:55 +09:00
Cedric BAIL 686b10df55 eet: add warning about security to be sure people don't use this function in the wrong context. 2015-01-26 15:29:12 +01:00
Cedric BAIL d2b766a51d eet: properly handle failure and success case by not leaking memory.
CID 1265601.
2015-01-21 16:07:07 +01:00
Cedric BAIL b9db9ca2e3 Revert "eet: fix memory leak in eet_cipher"
This reverts commit d25d56758c.

That patch was leading to double. Thanks ami for finding it.
2015-01-19 14:44:13 +01:00
Carsten Haitzler f4ec47522f eet - one place endianess check wasn't explicit - cleaner code if it is
this MAY be a bugfix, but i can't see how after checking the code, but
to keep it conistent and less likely to grow a bug... do this.
2015-01-14 18:17:19 +09:00
Carsten Haitzler 7532dee7bb eet - boyscouting - clean up whitespaces 2015-01-14 18:13:57 +09:00
Carsten Haitzler 7a8f7047ac eet - image decode - fix robustness of image decode from eet file
there are possible security implications by not checking values of
size fields to see if they are within the data range AND are not 0 or
negative. so do this.

@fix
2015-01-14 18:12:42 +09:00
Tom Hacohen 565f2af60f Eee image: fix macros to be surrounded with do while().
Macros should be surrounded with do {} while() statements,
otherwise there can be issues, like the macro not requiring a semicolon
after the statement or etc.

@fix
2015-01-14 08:55:30 +00:00
Chris Michael db53875e0a eet: Remove unused variable
Summary: This just removes an unused variable spotted during compile.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-06 09:05:37 -05:00
Cedric BAIL b61e9525d1 eet: refactoring jpeg encoding. 2015-01-06 11:51:58 +01:00
Cedric BAIL 6724bbf8bd eet: refactorize handling of endian. 2015-01-06 11:49:28 +01:00
Cedric BAIL 18d494489c eet: use eina_swap*() function instead of custom slower one. 2015-01-06 11:48:25 +01:00
kabeer khan d25d56758c eet: fix memory leak in eet_cipher
Summary: Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

@fix

Reviewers: devilhorns

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-22 11:55:48 +01:00
Stefan Schmidt 6b27d7add2 eet: Switch from obsolete LZ4_uncompress function to LZ4_decompress_fast
The function is declared as obsolete and in some newer headers it is no
longer defined. The new function is the same besides the name change.
2014-12-10 14:52:58 +01:00
Carsten Haitzler 8669ab8a98 eet - add new api to verify eet file against stored cert
this api makes it far more obvious as to how to verify an eet file via
the eet identify mechanisms that use x509 certificates to sign files.
this is consistent with the api used to generate the key for sigining
thus you can use the same certificate file to compare against for
identify.

@feature
2014-11-28 17:56:27 +09:00
Cedric BAIL fb8087b0a7 eet: shutup stupid compiler warning. 2014-10-22 22:30:29 +02:00
Jean-Philippe Andre a3caed8012 Eet: Fix eet jpeg image load
Commit 101dee79b0 introduced critical errors, as standard
error callbacks now fail.

Apparently, these error callbacks depend on the installed version
of libjpeg (8 vs. 9).

I couldn't start E without this commit.
2014-10-21 15:59:50 +09:00
Vincent Torri 101dee79b0 eet: enhance error messages with libjpeg
@fix
2014-10-20 18:40:20 +02:00
Chidambar Zinnoury b473a56733 eet: add some more documentation. 2014-10-20 18:32:28 +02:00
Philippe Caseiro c03569e6a7 eet: update callback API documentation
Adding some documentation on callbacks typedefs for :
- Eet_Node_Walk
2014-10-20 18:20:58 +02:00
Philippe Caseiro 5bb7034774 eet: update callback API documentation.
Adding some documentation on callbacks typedefs for :
- Eet_Descriptor
- Eet_Dump
2014-10-20 18:19:42 +02:00
Jérémy Zurcher 2e5a5d6656 eet: call LOCK_CACHE before altering Eet_File
even if not necessary in this particular case,
do as in eet_mmap() and eet_open(),
lock the cache before altering Eet_File struct.

fix CID 1039366 1039367 1039368 1039369
2014-09-08 22:37:09 +02:00
Stefan Schmidt a65c531429 eet_dictionary: Remove now unused variable
Since 123bdc4342 found is now longer used here.
Remove it.
2014-08-27 16:40:16 +02:00
Carsten Haitzler d40de658a2 eet - fix unused pointer
fix CID 1039489
2014-08-27 16:58:37 +09:00
Carsten Haitzler b0adec349f eet - handle fcntl error
fix CID 1039691
2014-08-27 16:35:48 +09:00
Carsten Haitzler 123bdc4342 eet dictionary - remove impossible code
CID 1039464 knows full well our comments there are right - so remove
pointless code
2014-08-27 12:12:40 +09:00
Carsten Haitzler 190b404be2 eet - remove useless if at free 2014-08-27 12:11:11 +09:00
Carsten Haitzler d5e11fe840 eet - remove unused return val from decode
fixes CID 1039490
2014-08-25 13:03:50 +09:00
Stefan Schmidt 3fe554e0b6 build: Allow to use external liblz4 instead of embedded copy
While we are likely will keep the embedded copy for a while to avoid a really
new dependency we allow now to use the external liblz4. You need at least
revision r120 and a package that ships the pc file for it.

Personally I would like to get rid of it rather sooner than later due to the
security implications and a bunch of code we ship but have no idea about.
Reality is that it will need some time until this new lib is actually
packaged and shipped with releases for a a majority of people.

This patch was co-worked with Doug Newgard <scimmia22@outlook.com>
2014-08-22 16:27:28 +02:00
Carsten Haitzler 2bd42962e3 eet init - fix structurally dead code
CID 1039542
2014-08-14 20:17:16 +09:00
Cedric BAIL e5d841354d eet: fix possible ABI break. 2014-08-11 16:17:05 +02:00
Jean-Philippe Andre 68a8063f9a Eet: Add support for ETC1+Alpha
The TGV file format and GL engine now support ETC1 encoding
with alpha using an extra texture.
This commit adds similar support to the Eet encoder/decoder.

@feature
2014-07-11 16:40:34 +09:00
Jean-Philippe Andre 4efcd46cbf Eet: Add INF message about how slow ETC2 encoding is 2014-06-13 17:58:13 +09:00
Jean-Philippe Andre c21968bcd7 Eet: Add support for ETC2 encoding and decoding
Since we now have full support for ETC2, add the colorspaces
to Eet.

@feature
2014-06-13 17:14:56 +09:00
Jean-Philippe Andre 28ce791dfa Evas TGV: Fix distortion of TGV images (ETC1)
Due to some invalid geometry considerations, there was a
1 pixel distortion in images, varying with the lz4 compressed
macro-block size.

Anyhow, I couldn't wrap my head around Cedric's code. So I rewrote
the whole thing instead, fixed it and improved the block size
selection (based on the image size, to optimize lz4 compression).
2014-04-25 12:08:56 +09:00
Jean-Philippe Andre 7ff410b9f6 Edje: Fix ETC1 encoding with EET and Edje
There were a few critical issues:
- Invalid pointer arithmetics on the input data (char vs. int)
- Invalid logic in the pixel duplication code

All of these due to bad copy and paste :(

Also, use LZ4HC instead of LZ4 when compression is enabled.
ETC1 encoding is so damn slow you won't see the difference between
LZ4 and LZ4HC compression times.
2014-04-18 15:43:07 +09:00
Jean-Philippe Andre f7150570b0 Eet: Use medium quality for ETC1 by default
And remove  dithering.
This is the same as  07700a799c
2014-04-18 15:39:41 +09:00
Jean-Philippe Andre 60d144d963 ETC1 encoding: fix typo in TGV and EET savers
If quality is >30 && <=70 then choose medium params, not low.
Spotted by Snacker, thanks.
2014-04-08 15:58:58 +09:00
Cedric BAIL 83af91c8b8 eet: add negociation colorspace support to Eet. 2014-04-01 22:00:54 +09:00
Cedric BAIL b1e5760811 eet: add internal encoding to ETC1 as an alternate solution to Jpeg. 2014-04-01 22:00:15 +09:00
Felipe Magno de Almeida ab3eb4b2d3 eet-cxx: add implementation for eet C++.
Usage example:

  struct type
  {
    int foo;
    float bar;
  };

  type t0;

  auto descriptor = make_descriptor("type", &type::ofo, &type::bar);

  eet_data_write(file, descriptor.native_handle(), "type", &t0, false);

  std::unique_ptr<type> p = read_by_ptr(file, "type", descriptor);
  type t = read(file, "type", descriptor);

@feature

Reviewers: cedric, smohanty

Reviewed By: cedric

CC: savio, cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@free.fr>
2014-04-01 22:00:13 +09:00
Gustavo Sverzut Barbieri f2a1f14abd eet: fix tokenizer's escape logic.
Tokenizer's approach of looking back is horrible and breaks the
following simple case (bug I had that lead to this patch):

          "string\\"

As the parser would get the end quote and check the previous character
if it was a backslash and it was, but it was not escaping the quote,
but being escaped by the previous backslash.

The best approach is to first check for escape and then go to
quote. Escape is simple and only the following byte, so we enter
escape, process the byte and then are back to regular mode (be it
quote or unquote).

Added testcase so we avoid breaking it again.

@bugfix cherry-pick
2014-03-13 22:08:44 -03:00
Carsten Haitzler b11ccd9787 eet - dump - if group type is not a handled type, assume unknown
fixes CID 1039307
2014-02-13 20:08:59 +09:00
Albin Tonnerre 62efaed9dc comments: typo fix - s/dictionnary/dictionary
Reviewers: cedric

Reviewed By: cedric

CC: cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2014-02-10 10:40:12 +09:00
Carsten Haitzler 414b447f54 Revert "eet: do not load data when the file is open in read/write mode."
This reverts commit f8b0322704.

this breaks efreets icon cache. i have been noticing this since
yesterday across all my machines once i update just efl. i tracked it
down to this commit.
2014-01-21 09:18:52 +09:00
Gustavo Sverzut Barbieri 0d1d51f64e eet_data: guarantee double-word alignment for temporary stack buffer.
The code was giving enough memory to store doubles and longs, but they
could be unaligned as "unsigned char" allows 1-byte alignment, while
double may require 8 bytes.

By specifying the array as "long long" we force certain alignment in a
platform independent way. As this array is small enough and
short-lived, the number of items were not changed, this results in
more bytes on the stack but it shouldn't matter.
2014-01-20 21:44:42 -02:00
Cedric BAIL f8b0322704 eet: do not load data when the file is open in read/write mode.
I do think that it was a left over from previous file format. Removing
this memcpy should make Enlightenment startup faster and should reduce
by 500KB the memory it use.
2014-01-20 13:04:07 +09:00
Cedric BAIL 00d4f5cf1c eet: reduce memory usage of Eet internal structure by removing useless structure. 2014-01-20 13:04:06 +09:00
Daniel Juyung Seo 76d8532b54 efl: Unified eina critical manro to CRI.
Being annoyed by different types of eina critical macros - CRI, CRIT,
 CRITICAL -, I concluded to unify them to one. Discussed on IRC and
 finally, CRI was chosen to meet the consistency with other macros -
 ERR, WRN, INF, DBG - in terms of the number of characters.
If there is any missing bits, please let me know.
2013-12-26 12:27:13 +09:00
Carsten Haitzler f0ba71314e eet data encode - dont free data if its not separately allocated
in one case data is not separately allocated but is part of the
Eet_Variant_Unknow struct where it is allocated as extra space on the
end of the data blob. in this case don't free it, otherwise do (pass
in true) as before. this should fix CID 1039728
2013-12-11 20:44:51 +09:00
Vorobiov Vitalii c3bee34c3c eet: Stopped SPANKing the naughty programmer while deleting dictionary.
Function edje_edit_save_all cause lots of SPANK SPANK, because
eet_dictionary_free is trying to delete string that is actually not a stringshare.

Reviewers: cedric, seoz, raster

Reviewed By: cedric

CC: reutskiy.v.v, cedric

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

Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
2013-11-07 17:58:47 +09:00
Carsten Haitzler b07c0a76ce alpha1 release autofoo/build tree work to pass distcheck and actually work 2013-11-04 18:33:35 +09:00
Christophe Sadoine 6853dbcf23 eet: Adding EET_DATA_DESCRIPTOR_ADD_MAPPING_BASIC to add a basic type to a union.
I added EET_DATA_DESCRIPTOR_ADD_MAPPING_BASIC because I need basic types in unions, and EET_DATA_DESCRIPTOR_ADD_MAPPING is only for structs.
I also modified the example with a float and a string.

Reviewers: cedric

Reviewed By: cedric

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

Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
2013-11-04 15:35:41 +09:00