Commit Graph

233 Commits

Author SHA1 Message Date
Gustavo Sverzut Barbieri 180d8f7db6 cmake: add eet. 2017-01-26 14:23:24 -02:00
Carsten Haitzler 2842165415 openssl 1.1 build break fixes
this fixes building against openssl 1.1 since it broke api in various
ways by hiding structs and deprecating api's (this causes warnings not
breaks unlike the struct hiding). this adapts to these changes and
makes efl build again.

@fix
2017-01-04 17:47:38 +09:00
Jee-Yong Um f1ab136abc doxygen: remove reference warnings.
Reviewers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-12-20 16:39:30 -08:00
Artem Popov e0827a6a90 Eet: add EINA_ARG_NONNULL for eet_data_text_undump* @fix
Summary: Eet_data_text_undump/undump_cipher: add EINA_ARG_NONNULL for mandatory pointer on size(int)

Reviewers: cedric, NikaWhite, myoungwoon, jpeg

Reviewed By: jpeg

Subscribers: jpeg, t.naumenko

Differential Revision: https://phab.enlightenment.org/D4440
2016-12-01 11:05:50 +09:00
Artem Popov 30693b8487 eet: add checking on null to eet_data_write_cipher and EINA_ARG_NONNULL to dump API @fix
Summary:
add checking on null to eet_data_write_cipher and EINA_ARG_NONNULL to eet_data_dump*
and eet_data_test_dump* API

Reviewers: NikaWhite, myoungwoon, cedric

Reviewed By: cedric

Subscribers: jpeg, t.naumenko

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-11-28 11:35:27 -08:00
Artem Popov 0b6e04d94f eet: add NULL-check to eet_connection_empty API to avoid segfault
@fix

Summary:
Only eet_connection_empty hasn't checking on NULL and try to read from field of object.
Add NULL-check for connection and return result of empty connection.

Reviewers: jpeg, cedric, myoungwoon

Subscribers: t.naumenko, NikaWhite

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-11-16 15:30:44 -08:00
Daniel Zaoui ee5a1d28f1 Eet: initialize descriptor class correctly 2016-11-14 13:24:32 +02:00
Jean Guyomarc'h cbde2cb04b
eet: return 0 instead of NULL when the return type is int 2016-11-12 10:42:45 +01:00
Artem Popov e6b074ad21 eet: add to basic eet_image EAPIs checking on NULL
@fix

Summary: to avoid segfaults with NULL raw data, add checking on NULL to basic eet_image APIS

Reviewers: NikaWhite, cedric, myoungwoon, jpeg

Reviewed By: jpeg

Subscribers: t.naumenko, jpeg

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

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2016-11-11 09:58:30 -08:00
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