favoritas37
51346e19d6
Fixed processing of RGB32 images. Fix inverted y directly at the construction of the image. Fixes issue #27 .
2017-03-20 15:11:40 +02:00
favoritas37
f581e879de
fixed compilation of QZXingLive for platforms other than Android
2017-03-16 16:26:48 +02:00
favoritas37
a69cd45ac6
added higher resolution icons in QZXingLive
2017-03-03 19:02:49 +02:00
Neutrino
7dd3489290
fixed type mistake in ReedSolomonEncoder::encode
2017-02-16 14:13:03 +08:00
favoritas37
3ee00d8cff
Merge branch 'oKcerG-register-types-qzxingcpp'
2017-01-30 09:11:25 +02:00
favoritas37
cd9fc3b029
resolving merge conflicts
2017-01-30 09:07:52 +02:00
favoritas37
29860c538c
Added example with proper handling of Android application permissions for QZXingLive triggered by #22
2017-01-29 17:54:16 +02:00
favoritas37
5ef72fa114
added license reference to the headers of the project
2017-01-27 13:50:46 +02:00
Nikolaos Ftylitakis
452054720d
Merge pull request #20 from nickdiego/fix-captureRect
...
QZXingFilter: More fixes to captureRect stuff
2017-01-23 20:18:31 +02:00
favoritas37
88012f5aa2
Updated BarcodeEncoder project. Previous implementation caused compilation error when compiled with MSVC. Also this implementation is more compact
2017-01-23 19:45:47 +02:00
favoritas37
3397ee4a2b
fixed linker error for QZXingTests when compiled with MSVC. Minor styling edits in TestCase.cpp
2017-01-23 18:05:57 +02:00
Nick Diego Yamane
815dec7252
QZXingFilter: More fixes to captureRect stuff
2017-01-22 23:43:39 -04:00
favoritas37
fe26b2112e
align file name casing to camel case for qzxing.cpp and imagehandler
2017-01-22 18:42:03 +02:00
Nikolaos Ftylitakis
154451e968
Merge pull request #18 from nickdiego/upstream-fixes
...
Fix some critical bugs in QZXingFilter
2017-01-22 17:58:23 +02:00
Nick Diego Yamane
557a52b17d
QZXingFilter: Enforce captureRect validation
...
captureRect is accessible and modifyable via QML, so that
it can take arbitrary values, what can make QZXingFilter to crash
the application.
This issue was experienced when running code similar to QZXingLive
example on an android device, where captureRect is bound based on
VideoOutput's contentRect and sourceRect, when QML Engine is
calculating layout for the pages it sets temp values to width/height
of elements (including VideoOutput) what causes captureRect to be
set to invalid values for the QZXingFilter's perspective, such
as negative values for x and y.
Signed-off-by: Nick Diego Yamane <nick.diego@gmail.com>
2017-01-19 03:22:33 -04:00
Nick Diego Yamane
2083f7a805
QZXingFilter: Fix crash when destructing QZXingFilter
...
QZXingFilterRunnable runs QFuture to perform
decoder::decodeImage() and stores it in a
class var of its owner (QZXingFilter), but
when QZXingFilter is destructed it was not canceling
that QFuture, making possible to the QFuture to try to
access filter->decoder->decodeImage() after filter's
are already destructed (dangling pointer).
Issue detected when using QZXingFilter QML Element in
an Page pushed in a StackView. When the page containing the
QZXingFilter is poped from the StackView, (by default) the
filter is unloaded/destructed, what makes the app crash
without this patch.
Signed-off-by: Nick Diego Yamane <nick.diego@gmail.com>
2017-01-19 03:22:33 -04:00
oKcerG
b3d0c8209b
Define static function to registers types in qzxing.cpp, not in qzxing.h
...
This simplifies the code for QZXingFilter (revert it to what it was before)
Also added a global include file, to include all QZXing user classes.
Reverts 5627d2fbb5
, eb6bdb41e9
, 1bae498386
& 213c4d684b
2017-01-18 16:01:18 +01:00
favoritas37
5627d2fbb5
deallocate instance of QZXing on QZXingFilter destruction. update the initialization list to match the declaration order
2017-01-17 16:35:26 +02:00
favoritas37
eb6bdb41e9
revert propert decoder of QZXingFilter that was mistakenly renamed. Allocate an instance of QZXing at the creation of QZXingFilter
2017-01-17 16:13:42 +02:00
favoritas37
54a7fc9d72
added missing includes for QDebug and QFuture.
2017-01-17 13:40:33 +02:00
favoritas37
1bae498386
properly fix compile issue by forward declaring QZXing in QZXingFilter. Had to make decoder variable as pointer in order to avoid the compiler requirement to known the exact size of the class...that had to be forward declared. Properly addresses issue #16
2017-01-17 13:37:20 +02:00
favoritas37
213c4d684b
fixes #16 . compilation error due to a forgotten include in QZXing.h
2017-01-17 13:16:36 +02:00
Nikolaos Ftylitakis
cbaef5e90f
Delete gradle.properties
...
removed unnecessary file
2017-01-16 20:04:22 +02:00
favoritas37
c48d31f523
removed unecessary file
2017-01-16 20:02:13 +02:00
favoritas37
703d79174d
Update main readme file to include the latest changes with the dependency control. Added more info for a quick introduction to the library
2017-01-16 19:58:34 +02:00
favoritas37
75eb47e8c5
fine tune the use of QZXing::registerQMLTypes to include the QZXingFilter. Update QZXingLive with the latest changes
2017-01-16 19:57:25 +02:00
favoritas37
905ee3359a
make QZXingLive aware of the Android configuration
2017-01-16 19:54:20 +02:00
favoritas37
ac2d636532
Added initial Android files
2017-01-16 19:52:44 +02:00
favoritas37
a3e71ec1e7
created qzxing_qml and qzxing_multimedia qmake CONFIG tags for QZXing.pri to allow the control of dependencies based on the needs. qzxing_qml enables QML specific parts of the library. qzxing_multimedia enables QZXingFilter which requires Qt's multimedia.
2017-01-15 20:36:41 +02:00
Nikolaos Ftylitakis
b1eaeb1960
Merge pull request #13 from KDAB/improved_qzxingfilter
...
great improvements of QZXing and QZXingLive performance provided by @milianw from KDAB!
QZXingFilter becomes integral part of QZXing library source code.
closes #5
2017-01-14 17:15:31 +02:00
Milian Wolff
594b178501
Make QZXingFilter "official" by moving it out of the example folder
...
The filter is much more performant than using the QZXing API in an
imparative way for the use-case of live-analyzing video frames in QML.
2017-01-10 13:24:55 +01:00
Milian Wolff
61508f461a
Optimize: Return the matrix reference directly instead of copying it.
...
This removes another copy of frame data, thereby improving the FPS
of the QZXingFilter example noticeably.
2017-01-10 13:17:54 +01:00
Milian Wolff
449a808972
Crop to capture rect directly when converting RGB to grayscale
...
This improves the performance since we only need to convert the
actually interesting part of the frame, instead of the full frame.
2017-01-10 13:17:54 +01:00
Milian Wolff
c882465649
Improve performance of rgb(a) reading, convert directly to greyscale
...
This again leads to a noticeable performance improvement of the
QZXingFilter example, as we get rid of one full copy of the image
data by converting directly into greyscale, instead of first
converting to RGB and then converting to greyscale.
2017-01-10 13:17:54 +01:00
Milian Wolff
9d378fa2e4
use __builtin_ctz instead of reinventing it in a slower way
2017-01-10 13:17:54 +01:00
Milian Wolff
b5e4f06e9f
Fix linking on recent Qt for iOS
...
The qtmn hack is not required anymore.
2017-01-10 13:17:54 +01:00
Milian Wolff
0e10d8aeca
Add simple FPS counter to QZXingLive example
2017-01-10 13:17:54 +01:00
Milian Wolff
69e05c1ff1
Add support for NV12 video frames
...
This was encountered on a recent Android device.
2017-01-10 13:17:54 +01:00
Milian Wolff
75b1a0d355
Further optimize QZXingFilterRunnable::processVideoFrameProbed
...
Do not call detaching QByteArray::data, use constData instead.
Also hoist some constants out of the inner conversion loops and make
more variables const.
2017-01-10 13:17:54 +01:00
Milian Wolff
3eb5b0b869
Cleanup debug code, save at most 100 images.
2017-01-10 13:17:54 +01:00
Milian Wolff
bc2badb5b5
Optimize: reduce memory allocations, convert directly to grayscale
...
This dramatically improves the performance of the QZXingFilter.
2017-01-10 13:17:54 +01:00
Milian Wolff
d112bf4186
Don't try harder by default in the QZXingLive example
2017-01-10 13:17:54 +01:00
Milian Wolff
7937cb84b5
Only try to mirror images when tryHarder is set to true
...
Additionally, this is only done until a match is found, instead of
always applying mirroring for the 2nd, 3rd and 4th frames.
2017-01-10 13:17:54 +01:00
Milian Wolff
cafad4a9c0
Add captureRect functionality
...
This allows one to only detect within a certain unscaled region
of the input frame. The reduction of pixels scanned leads to
a significant performance win, and the removal of the scaling
improves the quality of the checked image, thereby leading to
higher detection rates.
2017-01-10 13:17:54 +01:00
Milian Wolff
a7103d5cac
Expand QZXingFilter example code
...
- allow autofocus and manual focus
- count number of tags matched
- allow configuring the barcode scanner from QML
2017-01-10 13:17:54 +01:00
Milian Wolff
eba661a424
Make QZXing's tryHarder, charSet and foundedFormat accessible from QML
2017-01-10 13:17:54 +01:00
Milian Wolff
4c22c65b5e
Constify data and put it into the .rodata section
2017-01-10 13:17:54 +01:00
Milian Wolff
bb903ca27e
Enable all decoders by default
...
Otherwise this leads to access of uninitialized, when one forgets
to set a custom list of decoders.
2017-01-10 13:17:54 +01:00
Milian Wolff
8cdfdee225
Make test compile on 64bit Linux machines
2017-01-10 13:17:54 +01:00
favoritas37
b68b4c3fed
minor edits in QQrDecorder readme file
2016-12-28 15:01:20 +02:00