Commit graph

34 commits

Author SHA1 Message Date
Alexandre Perrin
f700e456b4 define a QUIRC_PIXEL_ALIAS_IMAGE constant to explicit conditional path
Before this patch, the "sizeof dance" was confusing, fix #54.
2019-07-02 09:22:25 +02:00
Daniel Beer
5d71b1853e identify: make otsu() static. 2019-05-02 15:56:35 +12:00
Claudio Felber
766f79ce7c Use const struct quirc parameter in otsu() function and fix tabs 2019-04-30 18:44:59 +02:00
Claudio Felber
96a5a380fb Remove quirc.row_average and associated code
quirc.row_average was used by the former threshold function and has
become obsolete with the introduction of the Otsu threshold function.
2019-04-30 18:43:57 +02:00
Claudio Felber
97ffaabfb5 Replace existing threshold function with Otsu threshold algorithm 2019-04-30 13:02:11 +02:00
Alexandre Perrin
d3780f3e6f Warning comment improvement. 2017-06-11 10:19:31 +02:00
Alexandre Perrin
90371f36a0 threshold() uses now the row_average member of struct quirc. 2017-06-11 10:08:58 +02:00
Alexandre Perrin
21f6863577 Added a row_average member to struct quirc.
Prep to remove the VLA from threshold()
2017-06-11 10:08:58 +02:00
Daniel Beer
7b26f6e193 Merge pull request #39 from kAworu/quirc_resize.fix
Fix a potential use-after-free on quirc_resize failure.
2017-06-10 14:02:40 +12:00
Alexandre Perrin
971c9d4e8c refactor quirc_resize
So that the given quirc struct is never invalid once we return to the
caller.
2017-06-09 22:12:06 +02:00
Alexandre Perrin
1f9edb0b84 Fix a potential use-after-free on quirc_resize failure.
Before this patch, in the event of `q->image` reallocation success but
`q->pixels` failure, `q->image` would point to a freed memory.

After this patch, once quirc_resize() returns, `q->image` consistently
point to a memory address that can be freed.

There is still an inconsistency left in the example codepath: `q->{h,w}`
would hold the "old" values, while `q->image` allocated size would be
based in the requested width/height; hence the comment update about the
state of the QR-code recognizer (it should only be passed to
quirc_destroy()).
2017-06-07 19:37:14 +02:00
Alexandre Perrin
a858ec4896 Fixes warnings emitted by gcc -Wold-style-declaration 2017-06-07 10:24:43 +02:00
Alexandre Perrin
2528ea3955 Comment fix
Bad copy-pasta from
http://www.thonky.com/qr-code-tutorial/kanji-mode-encoding
2017-05-30 19:23:42 +02:00
Alexandre Perrin
e16c02e226 Fix Kanji decoding.
Before this patch, Kanji decoding was broken.
2017-05-30 18:52:31 +02:00
Daniel Beer
3c31aa0987 Fix potential leak on allocation failure in quirc_resize(). 2017-05-18 19:29:02 +12:00
Edward Cragg
c50a89276f identify: fix warning
Fix the following warning when compiling with GCC 6:

lib/identify.c: In function ‘quirc_end’:
lib/identify.c:430:6: warning: ‘last_color’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  int last_color;
      ^~~~~~~~~~
2017-04-30 10:42:14 +01:00
Michael Bradshaw
e0a5f5fd3f Fix documentation regarding cell_bitmap indexing 2017-04-25 04:27:17 -07:00
Daniel Beer
84eccbf077 Fix out-of-bounds read in fitness_all(). 2017-03-30 18:05:49 +13:00
Philippe Groarke
64a4e58543 quirc.h : Fix C++ function name mangling with extern C. 2017-02-16 14:32:18 -05:00
Daniel Beer
59182ef1cd Deinterleave blocks correct.
Use explicit small-block count. Derived value using greedy calculation
wasn't correct in many cases.
2016-12-28 15:37:18 +13:00
Daniel Beer
fccbbce758 version_db.c: fix basic errors. 2016-12-28 14:09:06 +13:00
Daniel Beer
88774dc6cf decode.c: fix count bit-width on alphanumeric payloads. 2016-11-17 11:37:55 +13:00
Alexandre Perrin
6f0ed74aa2 Comment typo. 2016-10-04 11:13:49 +02:00
Alexandre Perrin
93adbb0b11 Avoid division by zero.
Before this patch, small images (i.e. 7x7 pixels or less) could trigger
SIGFPE because of a (integer) division by zero.
2016-10-04 11:10:55 +02:00
Daniel Beer
87e79e769b Fix Reed-Solomon decoder.
Calculate the correct number of syndromes, and fix calculation of the
error locator polynomial. Many QR codes with logos in the middle should
now work.
2016-09-23 14:34:07 +12:00
Daniel Beer
ab341691c9 Add support for ECI decoding.
ECI values are decoded and stored in the eci field of struct quirc_data.
Constants of the form QUIRC_ECI_* are defined in quirc.h.
2016-09-23 09:50:59 +12:00
Alexandre Perrin
3a6efb3d84 Large images decoding support
Fix #2, this patch makes large images support a compile time option by
allowing QUIRC_MAX_REGIONS to be tuned via CFLAGS up to 65534 (current
default is 254).
2016-07-15 14:40:40 +02:00
Daniel Beer
42c79481e7 decode: support multiple data segments.
Previously, the payload was assumed to consist of one large data
segment. Now, multiple segments of different types may be concatenated
together. The data type reported is the highest data type encountered
while decoding.
2013-05-29 10:26:13 +12:00
Daniel Beer
daf6d7c90b decode: fix reversed tuples in numeric decoder. 2013-05-29 09:40:46 +12:00
Daniel Beer
0335fabf97 Fix decoding of numeric and alphanumeric data types.
If the number of characters in the stream isn't a multiple of the full
tuple size, the remaining characters are encoded in a special short
tuple.
2013-05-14 09:25:05 +12:00
Daniel Beer
8d0eb68255 test_neighbours: fix warnings in static analyzer.
Coverity complains that a negative value of best_v might be passed to
record_qr_grid().

Fix supplied by Harald Eilertsen (http://github.com/snake66/).
2013-02-02 18:07:22 +13:00
Daniel Beer
c8b1861b8f quirc_strerror: fix off by one error.
Bug reported by Harald Eilertsen (http://github.com/snake66/).
2013-02-02 18:04:49 +13:00
Daniel Beer
bdbd932b72 Add protection against stack overflow when flood-filling. 2012-11-13 10:45:55 +13:00
Daniel Beer
a3142bc6b4 Initial commit: version 1.0. 2012-05-04 12:58:42 +12:00