# Scandit SDK 5.17

## New Features/Performance Improvements

- Significantly improved recognition of low-resolution 1d barcodes (especially of Code128 and EAN13 barcodes).
- Faster 1d barcode scan speed in single barcode scanning use-cases.
- Added Latin-1 (ISO-8859-1) support for Code 128.
- Improved ink spread support for DataBar.
- DLID parser: firstNames and lastNames fields added.
- DLID parser: isExpired field added.

## Bug Fixes/Software Updates in Scandit SDK 5.17.0 (September 30th 2020)

# All SDKs

- Updated ARM mbedTLS library to version 2.23.0.
- Increase recognition robustness of DataBar Limited barcodes by fixing an issue in the finder pattern detection.
- MRTD parser: metadata field no longer contains incorrect information.
- MRTD parser: Portugal TD1 documents are now parsed correctly.
- MRTD parser: O-0 false positive compensation is now working when check digit is O.
- MRTD parser: French ID MRTD returns ISO country code in the issuingState field like other MRTD types.
- DLID parser: Redundant commas in name field removed.
- DLID parser: Some expiry dates for magnetic type format that were not parsed are now properly recognized.
- UsUsid parser: Fix order of name in name and sponsorName fields.
- DLID parser: An incorrectly truncated field ad the end of the code no longer fails the parser.
- MRTD parser: Fix a parser crash when the document number check digit was not present in the code.

# Scandit SDK 5.16

## New Features/Performance Improvements

- Improved recognition of Code128 and EAN13 codes with low resolution.
- Improved recognition of MicroQR codes with low resolution or perspective distortion.
- Improved recognition of Aztec codes with a small module count.
- Extended default symbol count ranges for the following symbologies:
  - Code128 and Code39 changed from 7-20 to 6-40.
  - Code93 changed from 7-22 to 6-40.
  - MSI-Plessey changed from 7-20 to 6-32.
  - ITF changed from 8-18 to 6-40.

## Bug Fixes/Software Updates in Scandit SDK 5.16.2 (August 10th 2020)

# All SDKs

- UsUsid parser: Improved parsing of the following fields: eyeColor, hairColor, weight, directCareFlag, civilianHealthCareFlag, payGrade, bloodType, dates.

## Bug Fixes/Software Updates in Scandit SDK 5.16.1 (July 24th 2020)

# All SDKs

- DLID parser: Fixed the issue that Alberta, AAMVA version 3 were not parsed.

# Cordova

- Fixed multiple potential nullpointer exceptions.

## Bug Fixes/Software Updates in Scandit SDK 5.16.0 (July 6th 2020)

# All SDKs

- Fixed a rare dead lock when deallocating the ScRecognitionContext.
- Fixed a rare out-of-bounds access in the PDF417 reader.
- Fixed decoding of DataBar Expanded codes with 21 or 22 segments.
- DLID parser: Fixed incorrect parsing of dates for North Carolina, AAMVA version 1.
- DLID parser: Fixed issue that caused dates to not be parsed for West Virginia and Wyoming, AAMVA version 4.

# Linux

- Changed type of field `SpData::length` from `size_t` to `uint32_t`.
- Added `sc_tracked_object_get_barcode` which allows to query a tracked barcode object

# Scandit SDK 5.15

## New Features/Performance Improvements

- Added support for IATA 2of5 symbology.
- DLID parser: added issuer field.
- SwissQr parser: minimalVersion option added to the parser. The default minimal version of SwissQr codes that are parsed was changed to 2.0.
- US Uniformed Services ID (UsUsid) parser support for PDF417 barcodes.
- MRTD parser: allowFalsePositiveCompensation option added.

## Bug Fixes/Software Updates in Scandit SDK 5.15.2 (July 6th 2020)

# All SDKs

- Fix rare crashes in the Aztec reader

## Bug Fixes/Software Updates in Scandit SDK 5.15.1 (June 10th 2020)

# All SDKs

- Improved recognition of Aztec codes with small module counts.
- Improved MRTD parser false positive compensation algorithm.

# React Native

- Fixed an issue where the camera sometimes wasn't restarted properly after stopping it, resulting in a black camera preview.

## Bug Fixes/Software Updates in Scandit SDK 5.15.0 (May 8th 2020)

# All SDKs

- Code 128 now always uses relaxed quiet zone rules. It is no longer necessary to use the relaxed quiet zone symbology extension.
- Improved recognition for 1d barcodes close to 1px per bar.
- Fix a very rare infinite loop in the QR code reader.
- SwissQr parser: fixed bug where additional, empty sections were treated as an error.

# iOS

- Fixed an issue that was, sometimes, causing the camera permissions warning to disappear.

# Linux

- Added function to set the frame rate of V4L2 cameras.
- Load versioned shared object files for libGLESv2 and libEGL.

# Scandit SDK 5.14

## New Features/Performance Improvements

- Significantly improved PDF417 recognition:
  - the PDF417 reader is now better at handling PDF417 codes for which both the start and end delimiter patterns are heavily damaged
  - the PDF417 reader is now better at dealing with erasures and codes that are slightly bent.
  - the PDF417 reader is now better at handling codes close to the camera's resolution limit
- Added nationality and documentNumber fields for machine readable zones of French national identity cards.
- GS1 parser: With disabled strictMode, invalid AIs and AI data that is too small do no longer abort parsing. Instead we return a result along with relevant error messages.
- MRTD parser: Checking if issuing country and nationality fields are valid has been added.
- SwissQr parser: Added support for parsing addresses provided in a combined form for 2.0 and 2.1 standards.

## Bug Fixes/Software Updates in Scandit SDK 5.14.5 (April 15th 2020)

# All SDKs

- Fix an issue in the PDF417 reader introduced in 5.14.0 that resulted in PDF417 codes with three rows (i.e. the minimum number of rows) not being scanned.

# React Native

- Fix a crash that could occur when using MatrixScan on older Android devices (Android 7 and lower).

## Bug Fixes/Software Updates in Scandit SDK 5.14.4 (March 25th 2020)

# All SDKs

- Fix rare crash in the QR Code reader.

## Bug Fixes/Software Updates in Scandit SDK 5.14.3 (March 17th 2020)

# All SDKs

- Fix rare crash in PDF417 reader introduced in SDK 5.14.0.

## Bug Fixes/Software Updates in Scandit SDK 5.14.2 (March 9th 2020)

# All SDKs

- Fix an issue in MatrixScan introduced in SDK 5.14.0 that could cause a rare crash on certain devices.

## Bug Fixes/Software Updates in Scandit SDK 5.14.1 (March 2nd 2020)

# All SDKs

- GS1 parser: Fix an issue that caused an Android crash when parsing data containing non-ASCII characters.
- Fix an issue introduced in 5.14.0 that caused the barcode scanner to run slower when restricting the scan area by a tiny amount.

## Bug Fixes/Software Updates in Scandit SDK 5.14.0 (January 29th 2020)

# All SDKs

- Added support to configure Codabar codes with less than three data symbols.
- Fix an issue that caused inaccurate locations to be returned when two barcodes with the same data and symbology are printed next to each other.
- Fix an issue that caused the barcode scanner to crash upon decoding a PDF417 code with a macro control block without optional fields.
- Increased the maximum supported symbol count for Code93 from 40 to 60.
- DLID parser: Fix an issue with parsing multiple DLID codes using the same parser instance.

# Android

- No longer crashing because of certain device specific vibration issues.

# Windows

- The support for Windows Phone 8.1 and Windows 8.1 store apps has been discontinued.

# Cordova

- The support for Windows has been discontinued.
- Fixed a potential ANR on Android when pressing the back button to cancel the full screen scanner.

# Scandit SDK 5.13

## New Features/Performance Improvements

- Improved Data Matrix scan performance in case of rotations and damaged borders.
- Improved highlighting accuracy for 1d barcodes.
- DL/ID parser: Added support for parsing codes encoded in magnetic stripe format (as defined in AAMVA DL/ID-2016 Annex F).
- SwissQr parser: Added support for parsing standard 2.0 and 2.1 codes.

## Bug Fixes/Software Updates in Scandit SDK 5.13.2 (November 14th 2019)

# Xamarin

- `ScanSettings.setProperty()` now accepts objects instead of just integers.

## Bug Fixes/Software Updates in Scandit SDK 5.13.1 (November 4th 2019)

# All SDKs

- Data Matrix scan performance improvements introduced in 5.13 now also apply when scanning rectangular Data Matrix codes.
- VIN parser: Fixed issue with parsing VIN codes with optional prefixes/suffix added to Code39 codes.

## Bug Fixes/Software Updates in Scandit SDK 5.13.0 (October 24th 2019)

# All SDKs

- Fix rare crash caused by a division-by-zero.
- DL/ID parser: Added support for Windows line ending (\r\n) segment separators.

# iOS

- The `didRecognizeText` callback is no longer called from the main thread.

# Xamarin

- Fixed a MissingMethodException for UWP target version 1809 (build 17763).
- The extended sample is now properly closing the camera when it is moved to the background and no longer unnecessarily

# Cordova

- Fixed an issue with full-screen scanners not showing up properly on iOS 13.

# React Native

- Added text recognition (OCR) functionality to provide additional data capture capabilities. This functionality is not integrated in the default build. Contact support@scandit.com if you want to try it out, or visit scandit.com for more information.

# Scandit SDK 5.12

## New Features/Performance Improvements

- Vehicle identification number (VIN) parser support.
- Improved Data Matrix detection robustness.
- MRTD parser: Added Swiss Drivers License format.
- GS1 parser: Added NHS extension support.

## Bug Fixes/Software Updates in Scandit SDK 5.12.1 (September 13th 2019)

### iOS

- Fixed an issue where sometimes, after presenting another camera preview, the picker's camera preview would show up with a long delay.

## Bug Fixes/Software Updates in Scandit SDK 5.12.0 (September 3rd 2019)

### All SDKs

- Improved code duplicate removal for add-on codes. Prior to version 5.12, it was possible to have frames in which add-on codes were returned without a matching main code (EAN13, UPCA etc.). For code duplicate filter != 0, when first a main code was scanned without an add-on code and then in the next frame both a main code and add-on code were scanned, then only the add-on code was reported to the user. Now both the main code and add-on code are reported.
- Fixed false positive PDF417 and MicroPDF417 results for codes with very low error correction levels.

### Linux

- Added a sample for the Python barcode generator API.
- The minimum required libc version for armv6l and armhf builds was increased from version 2.20 to 2.23.

### Android

- Fixed focus issues on Panasonic FZ-N1 and the Vuzix M300 and M300XL

### Titanium

- Added `result.isGs1DataCarrier` to check whether a scanned code is a GS1 data carrier.

### Cordova

- Added `location` and `predictedLocation` to barcodes and tracked barcodes as well as `convertedLocation` and `convertedPredictedLocation` which are in view coordinate space (instead of camera frame coordinate space).
- Fixed a problem with `setMatrixScanHighlightingColor` that did not set the color correctly.
- Fixed an ANR on Android that could occur when putting the App into the background.

### React Native

- Added `onChangeTrackedCodes` callback with a new session property `allTrackedBarcodes` to keep track of all tracked barcodes. The barcodes now have a `location` and `predictedLocation` as well as `convertedLocation` and `convertedPredictedLocation` which are in view coordinate space (instead of camera frame coordinate space).
- Added `startScanningInPausedState()` to be able to start the camera without already actively scanning.
- Fixed an ANR on Android when stopScanning is called consecutively.

# Scandit SDK 5.11

## New Features/Performance Improvements

- Improved MatrixScan frame rate performance on (most) low-end Android devices by up to 100%.
- Improved Direct Part Marking mode execution speed.
- Added support for decoding of blurry Code32 codes.
- Improved DotCode reader for cigarette package scanning.
- Added support for PDF417 codes with a broken or partly missing start or end pattern.

## Bug Fixes/Software Updates in Scandit SDK 5.11.4 (June 18th 2019)

### All SDKs

- Fixed a rare bug introduced in 5.11.2 where leading DataMatrix characters get stripped sometimes.
- Fixed missing group separator characters in certain GS1 DataBar Expanded codes.

## Bug Fixes/Software Updates in Scandit SDK 5.11.3 (May 20th 2019)

### All SDKs

- Improved track duplicate filtering in MatrixScan.

### React Native

- Fixed an issue with non existing event blocks.
- Changed to using `RCTDirectEventBlock` as bubbling event blocks caused problems.

### Titanium

- Added `setCodeDuplicateFilter()` to adjust the duplicate filtering behavior.

## Bug Fixes/Software Updates in Scandit SDK 5.11.2 (April 29th 2019)

### All SDKs

- Fixed track duplications in MatrixScan.
- Fixed GPU shader issues for certain platforms.
- Fixed the incorrect interpretation of leading group separator characters (ASCII 29) as FNC1 characters in DataMatrix codes.

### React Native

- Fixed a deadlock when scanning a code at the same time as stopping the scanner.
- Added `onPropertyChanged` to listen to property changes like the torch status.

## Bug Fixes/Software Updates in Scandit SDK 5.11.1 (April 10th 2019)

### All SDKs

- Removed the SCRECOGNITIONCONTEXTSTATUSUNLICENSEDSYMBOLOGYENABLED error flag introduced in 5.11.0 to avoid API breakage.
- Fixed crash caused by invalid SDK licenses.

## Bug Fixes/Software Updates in Scandit SDK 5.11.0 (April 4th 2019)

### All SDKs

- Removed GS1 DataBar Expanded AI verification to allow non GS1 barcode data. Please use the parsing library to verify the correctness of GS1 AIs.
- Updated the GS1 parser to match specification version 19. The GS1 AIs 22, 714, 8009, 8011, 8013 and 8026 have been added.
- Added support to parse GS1 data with incorrect AI separator characters.
- Fixed incorrect FNC1 parsing in numeric DataBar Expanded data blocks.
- Fixed the handling of false positive Code32 reads if Code39 and Code32 are enabled at the same time.
- Increased the default 1d barcode generator code height from 1 to 64 units.
- Added variable row stride support to GPU image upload to speed up use-cases with a restricted scan area.

### Android

- Fixed auto focus issues when pausing the picker.
- Improved MatrixScan auto-focus stability on a wide range of rugged devices and low-end Android devices.

### Titanium

- Added the option to enable two and five digit add-on codes. If there is an add-on found, it will be returned via the normal callback in addition to the “main” barcode.

### React Native

- Added `switchTorchOn` to programmatically turn the torch on and off.

# Scandit SDK 5.10

## New Features/Performance Improvements

- Improved scanning performance for DataMatrix codes (higher frame rate and better robustness)
- DL/ID parser: Improved robustness of header and subfile parsing for driving licenses that do not follow the AAMVA DL/ID Card Design Standard properly.
- Added Posi LAPA 4 State Code postal symbology scanning support.
- Added ITF and Code39 barcode generator support.

## Bug Fixes/Software Updates in Scandit SDK 5.10.1 (January 23rd 2019)

### Android

- Issues with retrieving camera info on specific devices will no longer lead to crashes.

### Cordova

- MatrixScan highlighting color changes are fixed on Android & iOS, the documentation has been updated with more info.
- On Android `startScanning(true)` will now start the scanning in paused state like on iOS.
- On Android the scanning will now stay paused when it was put in the background in paused state.

## Bug Fixes/Software Updates in Scandit SDK 5.10.0 (January 10th 2019)

### All SDKs

- Significantly improved Direct Part Marking mode execution speed.
- Fixed GS1 AI 20 parsing in some MicroPDF417 codes.
- Added support for color inverted Code39 codes.
- Increased the maximum supported symbol count for ITF codes from 46 to 50.
- Improved decoding of QR codes with damaged finder patterns.
- Fixed rare false positive EAN13 reads on Samsung J5.
- Fixed DataBar Expanded general purpose AI decoding after an 392x AI.
- Print correct ascii characters for DataMatrix headers and trailers encoded with macro characters.

### Linux

- Improved localization in single frame mode if no GPU is available.
- Added Camera class and its usage example to Python API.
- The minimum required libc version for amd64 (x86_64), i386 and arm64 builds were increased from version 2.19 to 2.23. The armhf and armv6 builds remain at libc version 2.20.

### Android

- Improved auto-focus for certain Samsung Galaxy S9 devices (e.g., SM-G960F).
- Improved auto-exposure behavior on Amazon Fire 10 HD, 7th gen under low-light conditions.

### Titanium

- Increased the default supported symbol count for ITF codes from 46 to 50.
- Increased the default supported symbol count for Code128 codes from 48 to 50.

# Scandit SDK 5.9

## New Features/Performance Improvements

- Added Code 32 (Italian Pharma Code) symbology support.
- Added EAN-13/UPCA symbology to the barcode generator.
- Added beta implementation of advanced overlays for MatrixScan (iOS, Android and Xamarin Native only)

## Bug Fixes/Software Updates in Scandit SDK 5.9.2 (October 25th 2018)

### All SDKs

- Added parser support for machine readable zones of French national identity cards.

### iOS

- Enable stack protection (-fstack-protector-strong) for iOS binaries.
- Temporarily disable motion compensation on the iPhone XS, XS Max and XR to work around issues on these devices.

### Android

- Fixed a crash in the view based matrix scan sample.

## Bug Fixes/Software Updates in Scandit SDK 5.9.1 (October 12th 2018)

### Linux

- Changed the default maximum number of codes per frame in single frame mode from 9 to 1.

### Android

- Fixed issues with turning on the torch again after stopping and then restarting the picker.

### Xamarin

- Added a new property `alwaysShowModally` which forces the ScanditService to show modally on iOS even if a navigation controller is at the top of the view hierarchy.

## Bug Fixes/Software Updates in Scandit SDK 5.9.0 (September 28th 2018)

### All SDKs

- Improved MatrixScan accuracy in certain corner cases.
- Improved scanning performance for QR codes with logos in the center.
- Improved scanning performance for QR codes printed on fabric.
- Fixed scanning of Databar Expanded codes with an ISO/IEC 646 to numeric encoding transition.
- Fixed scanning of DotCodes with synthetic images containing only black and white pixels.
- Fixed a rare issue where blurry barcode decoding sometimes stopped working after thousands scans.

### Android

- Added external ID support for ISVs.
- Improved scanning performance on the Verifone Carbon Mobile 5.
- Improved auto-focus and auto-exposure for the Huawei Y6 (SLA-L02, SLA-L03 and SLA-L22).

### iOS

- Added external ID support for ISVs.
- Added Barcode generator API for EAN-13, UPCA, Code128, QR and Data Matrix.
- Fixed default visibility of the torch button.

### Linux

- Added Python bindings for the barcode generator API.
- Added first plane offset support for all image formats.
- Fixed rare runtime symbol collision issues when linking against certain libraries (e.g., libprotobuf).

### Cordova

- Added `setSearchBarKeyboardType()` to change the search bar's keyboard to one that allows text input.

### Xamarin

- Added Parser API to Xamarin.Forms.

# Scandit SDK 5.8

## New Features/Performance Improvements

- Barcode generator API for Code128, QR and Data Matrix on the Android platform.
- Enabled detection of mirrored Data Matrix codes by default.

## Bug Fixes/Software Updates in Scandit SDK 5.8.2 (August 15th 2018)

### All SDKs

- Important: Fixed a bug in 5.8.1 that required all production customer to have at least an intermittent network connection (once within 6 month of use) to register with our registration services. If you deploy 5.8.1 to an app that has been operating on an internal network without Internet access, the SDK will show an error message. For customers operating on an internal network, we recommend that you either upgrade to 5.8.2 or adjust your firewall to allow an (intermittent) connection to our registration servers.
- Fixed automatic mirroring detection for DataMatrix codes.
- Improved duplicate filtering for difficult localization cases.

### Cordova/PhoneGap

- Fixed a problem where search bar related methods did not work on iOS.

## Bug Fixes/Software Updates in Scandit SDK 5.8.1 (July 10th 2018)

### All SDKs

- Return unique results for each frame also when duplicate filtering is disabled.
- Fixed duplication of MatrixScan tracks if strong motion is present.
- Scans assigned to the wrong MatrixScan track are now forgotten after some time.

### Android

- Use smoother auto-focus when matrix scan is enabled on the following devices: Samsung Xcover 4, Nokia 6 (2018), Galaxy A5.

## Bug Fixes/Software Updates in Scandit SDK 5.8.0 (June 25th 2018)

### All SDKs

- Reduced initialization time of the scanner when starting it for the first time with certain usage patterns.

### Android

- Fixed preview cropping and scaling issues for certain Google Glass devices.
- Fixed the package naming for the text recognition sample.
- Added the LicenseKeyValidationListener to programmatically know if the app key validation failed.

### iOS

- Added the LicenseKeyValidationDelegate to programmatically know if the app key validation failed.

### Linux

- Added ARM64 architecture support.
- Added UYVY frame data support for V4L2 cameras.
- Added grayscale frame data support for V4L2 cameras.
- Added barcode tracking (MatrixScan) API support.
- Added row stride support for RGB, RGBA and Gray images.

### Cordova/PhoneGap

- Added a callback to get the frame image when a barcode is scanned.
- Added a method to programmatically know if the app key validation failed.
- Fixed an issue where sometimes the WKWebView thread is blocked indefinitely if the scanner is presented modally and the cordova-plugin-wkwebview-engine plugin is used.

### ReactNative

- Added a callback to get the frame image when a barcode is scanned.

### Xamarin

- Added .NET Standard framework to Scandit.BarcodePicker.Unified NuGet package.

# Scandit SDK 5.7

## New Features/Performance Improvements

- Added Micro QR symbology support.
- Added support for DotCode scanning on cigarette packages.
- Added support for inverted Aztec codes.
- Improved decoding of QR codes with damaged finder patterns.
- Improved decoding of low-contrast (e.g., black bars on red background) codes.

## Bug Fixes/Software Updates in Scandit SDK 5.7.3 (June 15th 2018)

### All SDKs

- Reduced initialization time of the scanner when starting it for the first time with certain usage patterns.

## Bug Fixes/Software Updates in Scandit SDK 5.7.2 (April 18th 2018)

### Android

- Fixed initializing the code duplicate filter setting using a JSON configuration file. This issue was introduced in 5.7.0 and limited the code duplicate filter to 0.5s on Cordova/Phonegap.

### Cordova/PhoneGap

- Fixed the plugin to work with secondary webviews on top of the main webview.

## Bug Fixes/Software Updates in Scandit SDK 5.7.1 (April 6th 2018)

### All SDKs

- Fixed a rare out-of-bounds access in the QR code reader.

### Android

- Fixed auto-focus issues that affected certain Samsung Galaxy S8 firmware versions.

### Cordova/PhoneGap

- Fixed scan case for iOS.

## Bug Fixes/Software Updates in Scandit SDK 5.7.0 (March 23th 2018)

### All SDKs

- Improved location highlighting accuracy.
- Improved decoding of blurry Code 39 codes with a bar ratio of 1 to 2.
- Improved decoding of low contrast PDF417 and MicroPDF417 codes.
- DL/ID parser: fix an issue that caused the two-letter state code to be left out of the unified address field for North Carolina.
- Added support for DataBar bar patterns that do not comply with the specification.

### Android

- Improved scan case scanning capabilities.
- Added additional scan case settings methods specifically for Matrix Scan in downward facing mode.
- Improved auto-focus for the Samsung Galaxy S9 (SM-G960) and S9+ (SM-G965).
- Improved auto-focus for the Samsung Galaxy A8 (SM-A530) and A8+ (SM-A730).

### iOS

- Fixed an issue that could cause a preview resolution change to take a very long time.
- Fixed an issue that could cause the torch button to not show up after switching camera.
- Added SBSSymbologyFromString() function to convert a symbology string to its corresponding symbology enum.
- The `switchCamera` property can be observed via the property observer.
- In Swift, `add(propertyObserver:)` and `remove(propertyObserver:)` have been renamed to `addPropertyObserver(_:)` and `removePropertyObserver(_:)` to compensate for weak type information.
- Added a separate property to configure the 2d scan area for the scan case.

### Windows

- Added `LOCATIONS_ONLY` GUI style.

### Cordova/PhoneGap

- Added `setTimeout()` function to ScanCase.
- Added `scanBeepEnabled()` function to ScanCase.
- Added `errorSoundEnabled()` function to ScanCase.
- Added `setMatrixScanHighlightingColor()` function to ScanOverlay.
- Improved MatrixScan performance by not serializing barcodes if the didScan callback is not defined.

### Linux

- Removed the OpenMP dependency for x86 architectures to increase portability.
- Fixed libscanditsdk.so compatibility issues when linking against different libstdc++ versions.

### Titanium

- Introduced a new build for Titanium 7 on Android, it is identified with `titanium7` on the dashboard. The build for Titanium 6 remains, marked with `titanium6`, but is now only usable for Titanium 6.2+. Older versions of Titanium are no longer supported.

# Scandit SDK 5.6

## New Features/Performance Improvements

- Up to 50% faster frame processing through a better multi-threading implementation if many 1d and 2d symbologies are enabled.
- Added all four types of Machine Readable Travel Documents (MRTD) specified by the International Civil Aviation Organization (ICAO) to the Scandit Parsing Library to support the decoding of MRZ zones on ID documents with OCR.
- Added support to parse the Swiss QR payment codes (QR-Rechnung) to the Scandit Parsing Library.
- Improved scanning performance for large QR codes.
- Improved location highlighting accuracy.

## Bug Fixes/Software Updates in Scandit SDK 5.6.3 (March 13th 2018)

### iOS

- Fixed a retain cycle in the Scan Case API.

### Titanium

- Fix an issue with Titanium Android that caused the license validation to fail with Error 257, even if the MatrixScan feature was not used.

## Bug Fixes/Software Updates in Scandit SDK 5.6.2 (February 12th 2018)

### Android

- Fix an issue that could cause didScan to be invoked twice when using the simultaneous barcode+text mode.

### iOS

- Avoid calling property observers if the value is NaN.

## Bug Fixes/Software Updates in Scandit SDK 5.6.1 (January 26th 2018)

### Windows

- Remove use of GetModuleFileNameA that caused app validation for Windows 8.1 Store Apps to fail.
- Further fixes for 'Unable to start video capture: The given key was not present in the dictionary' error on latest Windows 10 versions.

## Bug Fixes/Software Updates in Scandit SDK 5.6.0 (January 8th 2018)

### All SDKs

- Exposed the property change observer (torch, recognition mode, zoom) on Xamarin Native and Cordova.
- Fixed rare incorrect Code39 reads when codes are very small and blurry.
- Added option to the GS1 AI parser to handle human readable GS1 AI strings
- Added option to the GS1 AI parser to include the human readable GS1 AI string in the parser output.
- The parser's fieldsArray has been renamed to fields and fieldsDict/fieldsMap to fieldsByName. The old methods are deprecated but still available.

### Android

- Armeabi (ARMv5) support has been dropped. Google officially deprecated armeabi builds starting with the Android NDK r15 (July 2017). You should use an older version of the SDK if you still require it.
- Improved MatrixScan animation responsiveness and accuracy.
- Added case mode support.
- Added support for ARGB image format.

### iOS

- Fixed an issue that caused the zoom factor not to properly reset after the application has been put into the background.
- Added support for ARGB image format.
- Fixed an issue that caused text recognition (OCR) to stop working upon changing the preview resolution.

### Linux

- Added support for ARGB image format.

### Windows

- Added an interface to check if a barcode is color inverted.
- Fixed 'Unable to start video capture: The given key was not present in the dictionary' error on latest Windows 10 versions.

### Cordova/PhoneGap

- The plugin now also works with cordova-android 7+

### ReactNative

- Orientation changes under Android are supported.
- The torch and camera buttons have been added.
- The scanning hot spot and restricting the active scanning area have been added.
- Added MatrixScan.

### Titanium

- Removed support for Titanium 5.x. If you can not update to Titanium 6.x use the SDK versions 4.16 or 5.5.

# Scandit SDK 5.5

## New Features/Performance Improvements

- ReactNative support for iOS and Android. The plugin source can be found on Github: https://github.com/Scandit/barcodescanner-sdk-react-native
- Initial GS1 DotCode symbology support as defined in the AIM Specification Revision 3.0.
- Improved support for recognizing DataMatrix codes. In particular, reading of large codes with perspective and non-linear distortions has been greatly improved. In addition, a new direct part marking (DPM) mode has been added that can be used to scan codes engraved or etched into metal. The DPM mode is off by default and must be configured by enabling the direct_part_marking_mode extension.
- Improved MatrixScan performance for 2D codes and use-cases that require a very high resolution.

## Bug Fixes/Software Updates in Scandit SDK 5.5.2 (December 7th 2017)

### Android

- Fix an issue on devices with armv5 that causes loading of the barcode scanner library to fail due to undefined references to `__atomic_fetch_add_4`.

## Bug Fixes/Software Updates in Scandit SDK 5.5.1 (November 7th 2017)

### All SDKs

- Fixed a rare issue with the QR code decoder.
- Scan in the default scan area in every frame when in single frame mode.
- Improved matrix scan performance for Data Matrix and other 2d symbologies.
- Fixed a rare issue that made the scanner unresponsive after several scans.

### Cordova/PhoneGap

- Added `volumeButtonToScanEnabled` in `ScanCase` for enabling/disabling the start scanner when volume button is pressed behavior.

## Bug Fixes/Software Updates in Scandit SDK 5.5.0 (October 17th 2017)

### Low-Level API/Linux

- Added functionality to convert symbology name strings to the corresponding enum value.
- Added SIGINT handling to the Linux camera sample.
- Fixed missing error handling in sc_camera_get_frame.

### Android

- BarcodePicker now has constructors for view inflation.
- Fixed dark preview images on Honeywell ScanPal EDA50 devices.
- Added an interface to check if a barcode is color inverted.

### iOS

- Fix issue introduced in 5.4 that caused the auto-focus to get stuck after a tap-to-focus event on some devices.
- Added an interface to check if a barcode is color inverted.

### Xamarin

- Added option to restrict the orientation of the picker in Xamarin unified.

# Scandit SDK 5.4

## New Features/Performance Improvements

- Added text recognition (OCR) functionality to provide additional data capture capabilities. This functionality is available on iOS, Android, Xamarin and Cordova/Phonegap. It is not integrated in the default build. Contact support@scandit.com if you want to try it out, or visit scandit.com for more information.
- Improved tolerance for non-conformant PDF417 start and end patterns and added support for codes with a missing or unreadable start pattern.
- Added MatrixScan support for Xamarin Native Android and iOS.
- Added MatrixScan support for Cordova Android and iOS.
- Added quiet zone violation support for QR codes.
- Improved angle tolerance of the blurry reader.

## Bug Fixes/Software Updates in Scandit SDK 5.4.2 (September 13th 2017)

### Android

- Improved auto-focus and auto-exposure for the Samsung Galaxy S8 active (SM-G892) and a Samsung Galaxy S8 model (SM-G950U).

### Cordova/PhoneGap

- Fixed a rare null pointer exception on Android.

## Bug Fixes/Software Updates in Scandit SDK 5.4.1 (September 1st 2017)

### All SDKs

- Increased tolerance for Codabar intersymbol gaps.

### Android

- Improved auto-focus and auto-exposure for a Samsung Galaxy S5 model (SAMSUNG-SM-G900) and the Samsung Galaxy Note8.

### iOS

- Scan case: Added support for configuring the height of the scanning area.

## Bug Fixes/Software Updates in Scandit SDK 5.4.0 (August 17th 2017)

### All SDKs

- Improved decoding performance of Code 128 with severe ink-spread.
- Fixed an off-by-one error in analytics that could lead to an Error 6.
- Added optional mod 16 and mod 11 checksums to Codabar.
- The "MissingCameraPermissionInfoText" is now translatable on iOS, Android and Cordova.
- Fixed regression of scanning performance for QR codes with small quiet zone violations introduced in Scandit SDK 5.3.0.

### Android

- Improved auto-focus and auto-exposure for Samsung Galaxy S8.
- Added x86_64 builds. Feel free to delete them if the library size is critical.
- Added a MatrixScan guide to the documentation.

### iOS

- Added `setViewfinderWidth:height:landscapeWidth:landscapeHeight` to `SBSOverlayController`. The `setViewfinderHeight:width:landscapeHeight:landscapeWidth` method has been marked deprecated.
- Stopping the camera will now reset the focus and the exposure.
- Fixed an issue that may cause the preview to either stay black or display a static frame when opening and stopping the picker in quick succession.
- The method `property:changedToValue:` in the `SBSPropertyObserver` protocol has been updated to `barcodePicker:property:changedToValue:`.
- Scan case: state changes made in the didInitialize delegate method are now no longer ignored.
- `[SBSScanSettings pre47DefaultSettings]` has been deprecated. Instead the required symbologies should be enabled individually.
- Fixed an issue that may cause the scanner to process a few more frames while the app is in the background.
- Fixed an issue that may cause the exposure adjustment to get stuck.
- Added a MatrixScan guide to the documentation.
- Fixed an issue that may cause the application to crash in SCUserLocationManager
- When using `SBSGuiStyleLocationsOnly` or `SBSGuiStyleNone`, the logo can now be moved with `setViewfinderWidth:height:landscapeWidth:landscapeHeight:`

### Linux

- Added Python 3 bindings and a Python sample app.
- Enabled GPU support for low-end Linux devices (e.g., Raspberry Pi models 0 and 3).
- Fixed "this function declaration is not a prototype" warnings in the header files.
- Added a barcode scanner preset to configure single frame mode use-cases.

### Windows

- The Windows NuGet package for Scandit.Recognition now includes support for C. Code targeting Windows Desktop (x86, x64) can directly use the C/C++ API of the Scandit SDK. This feature is not available for UWP/Windows Store apps.

### Cordova/PhoneGap

- Added a new UI locations-only UI mode. This UI mode is identical to None, with the difference that barcode locations are highlighted.
- Added a matrix scan sample app.

### Xamarin

- Added a new UI locations-only UI mode. This UI mode is identical to None, with the difference that barcode locations are highlighted.
- Xamarin.iOS: Fixed an issue with image to picker coordinate conversion that caused all converted coordinates to be zero.
- Xamarin.iOS and Xamarin.Android: Added a matrix scan sample app.

# Scandit SDK 5.3

## New Features/Performance Improvements

- Improved PDF417 scan range and handling of codes with glare and defects.
- Added blurry decoding of MSI Plessey barcodes that use a check digit. The maximum decode range improved up to 65% (device dependent).
- Improved scanning performance and increased angle and non-planarity tolerance for large QR codes.
- Important: As announced in the 5.0 release notes, APIs deprecated during the 4.x release cycle have been removed. You will have to update your applications to use the new APIs provided on the different platforms:
  - ScanditSDKBarcodePicker on Android and iOS has been removed. Please update your application to use SBSBarcodePicker (iOS), or BarcodePicker (Android).
  - cordova.exec-based API for Cordova/Phonegap has been removed. Please update your app to use the BarcodePicker API.
  - ScanditSDK.* API for Xamarin has been removed. Please update your app to use the BarcodePicker API for iOS and Android.

## Bug Fixes/Software Updates in Scandit SDK 5.3.4 (July 25th 2017)

### Android

- Fixed focus issues on selected Samsung Galaxy S7 devices (SM-G930P, SM-G935P, SM-G930A and SM-G935A).

### Cordova/PhoneGap

- Fixed an issue that would cause the callbacks to not run synchronously on the engine thread, making it impossible to reject codes.

## Bug Fixes/Software Updates in Scandit SDK 5.3.3 (June 27th 2017)

### Android

- Fixed regression that broke scanning on the Samsung Galaxy Y.

### iOS

- Fixed a retain cycle in `SBSScanCase` introduced in 5.3.1.

## Bug Fixes/Software Updates in Scandit SDK 5.3.2 (June 22th 2017)

### Android

- Fixed a regression introduced in 5.3.0 that broke scanning on the Samsung J3, S4 and the Vuzix M100.

## Bug Fixes/Software Updates in Scandit SDK 5.3.1 (June 15th 2017)

### All SDKs

- Fixed incorrect symbol count computation for MSI Plessey when blurry decoding was used.
- Fixed decoding issues for QR codes with module sizes between one and two pixels.

### Android

- Fixed focus issues on Samsung Galaxy S5 running Android 6.0 or newer.
- Fixed focus issues on selected Samsung Galaxy S7 devices (SM-G930V, SM-G935V, SM-G930T and SM-G935T).

### iOS

- Scan case: expose a new option to control the duration for which the scanner should remain in active state after the volume button has been released.
- Added a module map: it is now possible to use our SDK from Swift without a bridging header, by just using `import ScanditBarcodeScanner`.

### Windows

- Fix issue in UTF-8 conversion for codes that use more than one encoding.

## Bug Fixes/Software Updates in Scandit SDK 5.3.0 (May 26th 2017)

### All SDKs

- Updated the DataBar GS1 AI definitions to the GS1 General Specification version 17.0.1.
- Added support to disable the Code11 checksum.
- Added support for inverse coloured Code128 codes (white code on black background).
- Fixed a rare segmentation fault in handling of analytics responses.
- The stripping of leading FNC1 characters in GS1 Code128 and DataMatrix codes can now be configured through a symbology extension (strip_leading_fnc1).

### Android

- Added a new UI locations-only UI mode. This UI mode is identical to None, with the difference that barcode locations are highlighted.
- The locations-only, and None UI modes now display a "scanning by Scandit" logo.
- Fixed issue on Vuzix M100 that caused the first processed frame to take a very long time.

### iOS

- Added a new UI locations-only UI mode. This UI mode is identical to None, with the difference that barcode locations are highlighted.
- The locations-only and None UI modes now display a "scanning by Scandit" logo.

### Cordova/PhoneGap

- Added support for Apache Cordova 7.0.0.

### Xamarin

- The picker of the unified API on Android now supports device rotation and no longer restarts the activity.

# Scandit SDK 5.2

## New Features/Performance Improvements

- The new MatrixScan feature enables multi barcode scanning and tracking of 1d symbologies on Android and iOS.
- New PDF417 reader implementation with an improved rotation and pitch tolerance and erasure support.
- Improved highlighting accuracy for 1d barcodes that are localized or scanned.
- As announced in the 5.0 release notes, the following APIs will be removed in the upcoming 5.3 release:
  - ScanditSDKBarcodePicker on Android and iOS
  - cordova.exec-based API for Cordova/Phonegap.
  - ScanditSDK.* API for Xamarin

## Bug Fixes/Software Updates in Scandit SDK 5.2.1 (April 21th 2017)

### All SDKs

- Fix issue with highlighting of Postal Code symbologies introduced in 5.2.0.

### Cordova/Phonegap

- Android: Fix a rare race condition that could cause the app to hang while stopping the scanner.

### Linux

- Fixed loading of images with indexed colors and non 8bit color depth in the C API sample.

## Bug Fixes/Software Updates in Scandit SDK 5.2.0 (April 4th 2017)

### All SDKs

- Add support for MicroPDF417 Macro character encodings.
- MaxiCode support for the case.
- Default scan locations without a barcode are no longer added to the scan session.
- Fixed a regression in Code 128 decoding performance for badly printed codes (introduced in 4.14).
- Fixed incorrect handling of invalid Extended Channel Interpretations (ECI).
- Improved recognition of Code 128 barcodes with printing errors.
- Increase performance in case only 2d barcode symbologies are enabled.
- Added relaxed sharp quiet zone check symbology extension (relaxed_sharp_quiet_zone_check) support for UPCA, EAN13 and EAN8.
- Improved scan speed for barcodes that are placed very close to each other vertically on a label.
- Improved the recognition of large QR codes.
- We no longer produce false positive Aztec results when scanning codes with a close-to-zero percentage of error code words.

### Android

- Library is once again Java 6 compatible.
- Deprecated getMicroDataMatrixEnabled/setMicroDataMatrixEnabled. This setting no longer has any effect and can be safely removed from the code.
- Galaxy J3: Improve exposure behavior for low-light conditions.

### iOS

- Fix a bug that caused SBSScanSession stopScanning not to work when called in didProcessFrame.
- Fix an issue that caused an invalid license message to be displayed, even though the app key was set.
- Added nullability annotations to SBSScanCaseDelegate.
- In Swift all symbologies are now lower camel case.

### Cordova/Phonegap

- Fix issue with settings maxNumberOfCodesPerFrame to values larger than one (iOS only).

### Titanium

- Added function to set relative zoom.
- Added function to set high density mode.
- Reverted Android symbology names to their proper format.
- Published an extended sample application on GitHub.

# Scandit SDK 5.1

## New Features/Performance Improvements

- Improved blurry scan performance for a wide range of Android devices, for example the Samsung Galaxy A5 and J5 devices.
- Improved off center Aztec scan performance.
- The Aztec error correction can now handle codes that are damaged by dirt or small scale glare and codes that are partially outside of the camera image.

## Bug Fixes/Software Updates in Scandit SDK 5.1.1 (February 17th 2017)

### All SDKs

- Improve support for variable-size Codabar inter-character gaps.

### Android

- Improve auto-focus and auto-exposure for Galaxy S7 Active.
- Improve auto-focus for Sony Xperia Z5.
- Fixed an issue that caused a degradation in scan performance when changing the scan settings while the camera is already running.

### Titanium

- Adjusted the behavior of stopScanning to match across platforms.
- Fixed the drawViewfinder function on iOS.

## Bug Fixes/Software Updates in Scandit SDK 5.1.0 (January 13th 2017)

### All SDKs

- Minor behaviour change: If the EAN13 symbology is enabled, then UPCA codes are scanned too. The codes are returned as a 13 digit EAN13 code. Prior to 5.1 UPCA had to be enabled explicitly.
- Improved erasure correction for PDF417 and MicroPDF417.
- Removed tiny QR and tiny DataMatrix modes. Enabling these modes is still safe, but will have no effect. It might be necessary to adapt the zoom value in case of performance regressions.
- Improved accuracy of localized barcode bounding boxes.
- Fix an issue in the QR reader that can cause frame processing to take forever.
- Fix incorrect UTF-8 conversion of UPCE codes in UPCA representation.

### Android

- Fix choppy camera preview on Samsung Galaxy J3.
- Fix an issue that caused the camera switch button to flicker when turning the torch on.
- Fix an inconsistency between how the torch behaves on Android and iOS. Previous to this change, the torch would be enabled when enabling the torch and switching from rear (back) to front camera and back. Now the torch is off when returning to the rear camera.
- We no longer require a camera restart when enabling the torch.
- Added support for optimizing the scan performance for vertical codes.

### iOS

- Added support for optimizing the scan performance for vertical codes.
- Fix an inconsistency in naming of setTorchOffImage and setTorchOnImage in Swift.
- Improve swift types for `[SBSScanSettings settingsWithDictionary:error:]`.
- Added method to create a SBSScanCaseSettings instance from an NSDictionary.

### Windows

- Scandit.Recognition can now be used with Windows Desktop applications.
- Added character encoding information of raw barcode data to the public API.
- Added automatic barcode data conversion from non-ASCII characters to UTF-8. E.g. for QR codes in Kanji mode.
- Added optional support for GPU acceleration through ANGLE. Requires the ANGLE UWP NuGet package version 2.1.13 or newer. This feature is currently not supported for Windows 8.1.

### Titanium

- Fix a bug in setViewfinderSize on iOS, which caused the new size not to be applied correctly.
- Add missing implementation for setCameraSwitchButtonMarginsAndSize and setTorchButtonMarginsAndSize on Android.
- Add missing implementation for setReverseDetectionEnabled on Android.
- Added scan case API support on iOS.

# Linux

- Fix rare deadlock on SDK deallocation.

# Scandit SDK 5.0

## Important Changes

- Support for iOS 6.0 and iOS 7.0 has been dropped. The minimal deployment target is now iOS 8.0.
- As part of the 5.x release cycle, we will remove some of the APIs deprecated during the 4.x releases. You will have to update your applications to use the new APIs, The deprecated APIs remain available in 5.0, 5.1 and 5.2 but will be completely removed in 5.3. These APIs include:
  - ScanditSDKBarcodePicker on Android and iOS
  - cordova.exec-based API for Cordova/Phonegap.
  - ScanditSDK.* API for Xamarin

## Bug Fixes/Software Updates in Scandit SDK 5.0.1 (December 1st 2016)

### Android

- Improved 1D barcode decode range and scan speed on Motorola G3, G4 and G4 Plus. The scanning distance of a 10mil EAN13 code using the 4G Plus increased from 6-30cm to 4-45cm.

### Windows

- Fixed issue that caused camera initialization to fail on devices with the latest Windows 10 installed.

### Titanium

- Increased the api level of the modules to be compatible with SDK version 6.0.0.

### Xamarin

- Add missing framework dependencies for iOS.
- Implement Pinch to zoom for iOS, Android and Unified.
- Fixed vibrate permission in the Unified Extended Sample app.
- Fixed disabling the restricted scan area in the Unified Extended Sample app.
- Enable AutoFocusOnTapEnabled by default in Unified (only works on iOS)

## Bug Fixes/Software Updates in Scandit SDK 5.0.0 (October 27th 2016)

### All SDKs

- Starting with 5.0 the low-level API function sc_barcode_get_data() no longer returns the UTF-8 representation of the data. Instead the raw string, as it is encoded in the code, is returned. Most symbologies, especially all 1d symbologies, are not affected by this change. This fixes an issue with binary-encoded PDF417 codes that can not be represented as UTF-8.
- The encoding of individual data sections can now be queried using sc_barcode_get_data_encoding().
- Fixed a decoder bug in Aztec when switching encoding modes.
- Fixed defect error correction of Aztec code parameter data.
- iOS and Android barcode picker API: Added a new interface for controlling the areas in which barcodes and 2d codes are scanned. This interface allows to separately control the scan areas for wide (linear 1d, PDF417, MicroPDF417 etc.) and square codes (QR, Aztec, Data Matrix etc.).

### Android

- Added conversion to UTF-8 for non ASCII encodings. This fixes the display of (Micro)PDF417 codes with ECI data and QR codes in Kanji or Hanzi mode.
- Fixed scanning area restriction issues on devices with non-landscape camera sensor orientation.
- Improved camera configuration parameters on Google Glass.

### iOS

- Swift-er SDK: in order to improve the experience of working with Swift, some methods of `SBSOverlayController` have been renamed. As a consequence, Swift code using these methods needs to be updated, anyway the compiler should automatically suggest the new names. Please note that this change will not break your Objective-C code.
- The minimal supported iOS version has been raised to 8.0, which is the minimum iOS version supported by Xcode 8.
- Update sample projects to be compatible with Xcode 8. Support for Xcode 7 has been removed.

### Cordova/Phonegap

- Fix preview size of subview picker on Android when the phone is put to sleep in landscape orientation and woken up again in portrait.

### Xamarin

- Added an extended sample app.
- Added Windows support for Xamarin Forms.

# Scandit SDK 4.16

## New Features/Performance Improvements

- Improved speed and accuracy of barcode localization for all 1d and 2d symbologies. In addition to these symbology-independent improvements, 1d barcodes with a very large height to width aspect ratio are localized much more reliably. Moreover, the localization of MicroPDF417 codes has been improved as well. MicroPDF417 codes are used as part of GS1 composite codes A and B. As a result, these composite codes can now be scanned much more quickly.
- Added support for two postal code symbologies: RM4SCC (Royal Mail 4 State Customer Code) and KIX (Klant Index).
- Added a unified Xamarin API suitable to be used together with Xamarin Forms. By using this API, the same code can be used for platforms targeting iOS, Android.

## Bug Fixes/Software Updates in Scandit SDK 4.16.4 (October 25th 2016)

### All SDKs

- Fixed a rare invalid memory allocation in the blurry reader introduced in 4.16.0.

### Android

- Fixed scanning area restriction issues on devices with non-landscape camera sensor orientation.

### Cordova/Phonegap

- Accept UPCA and UPC12 as a symbology enum with the same value.

## Bug Fixes/Software Updates in Scandit SDK 4.16.3 (October 17th 2016)

### All SDKs

- Fixed a rare crash in the blurry reader introduced in 4.16.0.
- Fixed a rare crash in the sharp reader.

### Android

- Fixed a rare camera-related crash on Android

### Xamarin

- The iOS sample now includes a NSCameraUsageDescription. This is required when targeting iOS 10 and newer, as otherwise the camera requests fail at runtime.

## Bug Fixes/Software Updates in Scandit SDK 4.16.2 (September 26th, 2016)

### All SDKs

- Fixed two rare integer underflows in the blurry reader introduced in 4.16.0.

## Bug Fixes/Software Updates in Scandit SDK 4.16.1 (September 13th, 2016)

### All SDKs

- Accept Code39 inter symbol gaps that are up to 6 units wide.
- Allow more than six codes per frame to be scanned.
- Add support for scanning PDF417 and MicroPDF417 codes with the scan case (iOS, Phonegap iOS and Xamarin iOS).

### Low-Level API/Linux

- Add functionality to retrieve software license strings.

### Android

- Improve auto-focus performance for Moto G4 and Moto G4 plus.
- Improve auto-focus performance for Galaxy Note 5.

## Bug Fixes/Software Updates in Scandit SDK 4.16.0 (31st of August 2016)

### All SDKs

- New unified SDK build type that can be customized through the license key.
- Fixed partial code reads of blurry Code39 codes.
- Fixed an issue that caused the new code rejection feature to fail when the session was cleared in the didScan callback.
- Picker API's: PDF417 codes are now affected by the scanning area height, even if the scanning area height is very small. Previously, the scanning area height would only affect the area in which PDF417 codes are scanned if it was larger than 0.1.

### Android

- Fix auto-focus issues with Nexus 4.
- Fix issue that caused the process frame listener not to be called under certain circumstances.
- Fix a potential race condition in setting/reading the license key from different threads.

### iOS

- Add `resumeScanningWithCompletionHandler:`, `pauseScanningWithCompletionHandler:` which accept a block to be invoked when the asynchronous operation finishes.
- Use lightweight generics for all public methods and properties that use NSSet, NSDictionary and NSArray. For example, the newlyRecognizedCodes array of SBSScanSession is now marked to only contain SBSCode instances. This is a breaking change for Swift: Code that was previously checking the type no longer has to do so.
- Cleanup layout of the extended sample app.

### Linux

- Enabled GPU support for Linux x86 and x86_64.
- Added a function to get the currently enabled extensions for a particular symbology.

### Windows

- Fixed race-condition in the initialization of the barcode picker that caused a crash.
- Fixed issue that caused camera initialization to fail on devices with the latest Windows 10 installed.
- Add support for using the barcode scanner SDK with Microsoft HoloLens

### Cordova/Phonegap

- The barcode scanner plugin now includes a NSCameraUsageDescription. This is required when targeting iOS 10 and newer, as otherwise the camera requests fail at runtime.
- Fix an issue in the extended sample app that caused the continue button to be shown when it shouldn't, e.g. when pressing the home tab button when already on the home tab.
- Fix issue with turning on the torch programmatically before or immediately after calling startScanning.

### Xamarin

- Added NuGet package support.
- Added Scan Case API.

# Scandit SDK 4.15

## New Features/Performance Improvements

- Add pinch-to-zoom support to the iOS and Android barcode picker that allows to control the zoom level with a pinch gesture.
- Improved MicroPDF417 scan performance. Partial row scans (erasures), code highlighting and upside down codes are now supported.
- Improved decoding of ITF (Interleaved 2 of 5), EAN13, EAN8, UPC-A, UPC-E and PDF417 codes when the image is over- or under-exposed, or the code has ink-spread.

## Bug Fixes/Software Updates in Scandit SDK 4.15.1 (August 8th, 2016)

### All SDKs

- Fixed a rare null pointer access in analytics if the device has no more disk space available.
- Fixed a rare out of bound read in the PDF417 error correction.
- Handle an unexpected exception in the PDF417 error correction.
- Fixed a rare out of bound read for certain 1d barcode symbologies.

### Android

- Fixed incorrect NEON detection for ARMv7 devices. This bug could lead to slightly lower frame rates on affected devices.

## Bug Fixes/Software Updates in Scandit SDK 4.15.0 (July 28th, 2016)

### All SDKs

- Backwards incompatible change: The default value of code duplicate filter has been changed from 500ms to 0 (disabled). Code that relies on duplicate filtering will need to manually set the code duplicate filter. The default value of the barcode picker API's is not affected by this change and remains at 500ms.
- Improved performance of blurry barcode decoder on x86 and x64-based devices such as some Android phones/tablets and Windows tablets.
- Updated the GS1 DataBar AI parser to comply with the GS1 General Specification version 13. The AIs 337 (kilograms per square metre), 394 (discount of a coupon), 415 (GLN of invoicing party), 8012 (software version) and 8111 (loyalty points) have been added.
- Add functionality to implement custom integrity checks for recognized codes. Codes that fail these additional integrity checks can be marked as rejected. As result, beeping, code highlighting as well as vibration are suppressed. This feature allows to implement custom checksums, or other types of integrity checks.
- The new UPC-E extension 'remove_leading_upca_zero' allows to remove the leading zero if the UPC-E code is returned in its UPC-A representation using the extension 'return_as_upca'.
- Fixed an issue with setDeviceName() that caused it to alternate between setting and unsetting the specified name.
- Fixed an issue that could cause duplicate scan events to be transmitted by analytics.

### Android

- Add support for switching the UI style while the camera preview is running.
- Instead of showing a dialog box when the camera can not be accessed, display the error message inside the BarcodePicker view itself.
- The deprecated set1DScanningEnabled/set2DScanningEnabled no longer have any effect. A message is printed that they are not supposed to be used anymore.
- Enable remove_leading_zero for UPCA by default when creating ScanSettings from a JSON dictionary. This fixes an inconsistency between the iOS and Android barcode picker implementation.
- Disable torch for Samsung Galaxy Core 2 Duo which behaves in unpredictable ways and may lead to app freezes when turned on.
- Added possibility to specify runnables to be executed when asynchronous operations such as starting the scanning finishes. This functionality behaves identical to the completionHandler support on iOS.
- Fixed an issue where the camera preview would not resize properly after rotating the device in non-fullscreen.
- Fixed an issue that caused beeping to no longer work after creating tens of barcode pickers.
- Fixed a potential issue when the camera preview is not able to start.

### iOS

- Fix issue with default values when initializing the scan settings from a dictionary. Previously it was not possible to disable the "remove_leading_zero" extension for UPCA codes. It would always be enabled.
- Nul-bytes in SBSCode.data are now handled more gracefully. Previously, the string would get cut-off after the first nul-byte. While it's still recommended to use SBSCode.rawData for cases where nul-bytes are expected, this improves a few cases where nul-bytes are used to delimit UTF8-encoded data.
- Improved angle tolerance of the Scan Case.
- Improved focus performance on devices released prior to iPhone 6.

### Phonegap

- Add didStateChange event. This event is invoked whenever the state of the picker changes, e.g. when the picker state changes from active to stopped.
- Fix issue that caused cancel events to be ignored for the full-screen picker when the cancel event was immediately sent after the picker has been started (affected only Android and Windows)
- Fix issue that caused the didScan callback not to be blocking when a scan happened during a modal show animation (iOS only).
- Support Android 6.0-style permission requests for accessing the camera. This makes it possible to use the barcode scanner plugin with a target SDK of 23. Previously, the target SDK had to be set to 22 and lower.
- Added laser UI support for the Windows platform.

### Xamarin

- Remove support for building pre-unified iOS applications. Applications will have to switch to the unified iOS framework.

### Linux

- Fixed rowstride related bug for the SC_IMAGE_LAYOUT_YPCRCB_8U layout.
- Added ARMv6l architecture build. Executing the SDK on the Raspberry Pi Zero is now possible.

# Scandit SDK 4.14

## New Features/Performance Improvements

- Added support for the MicroPDF417 symbology. Performance will be improved in coming SDK versions. Reverse code scans are currently unsupported.
- Added GS1 Composite Codes support for all the three composite types A, B and C.
- New sharp Code128 matching algorithm that can handle more severe (reverse) ink spread than before.
- Improved the dynamic range and angle estimation accuracy of the barcode localization. Ability to detect smaller codes than in previous versions. Furthermore, the angles of recognized barcodes are reported more accurately.

## Bug Fixes/Software Updates in Scandit SDK 4.14.1 (June 15th, 2016)

### Android

- Improve Auto-Focus and Auto-Exposure behavior of Samsung Galaxy J5.

### iOS

- Fix a linker warning when building for the simulator.

### Phonegap

- Make sure ScanSession.pauseScanning calls BarcodePicker.pauseScanning. Instead of calling pause/stop with cordova.exec, use the implementation offered by the JS BarcodePicker class. This makes sure the same logic is used when calling pauseScanning/stopScanning on the session and on the picker.

### Xamarin

- Fix an issue in the sample application that caused the preview to stay black. This was caused by a configuration problem in the sample application.

## Bug Fixes/Software Updates in Scandit SDK 4.14.0 (May 31st, 2016)

### All SDKs

- Fixed that barcodes at certain angles were not reliably localized.
- Reduced the minimum supported symbol count for ITF from 6 to 4 digits.
- Reduced blurry barcode decoder frame times by a factor of 3 on ARM64 devices.
- Fixed a rare crash in the blurry decoder.

### Android

- Use TextureView instead of SurfaceView for devices that support it. This fixes a few layout and rendering issues when displaying a cropped/scaled picker.
- Improved auto-focus behavior when hot spot is not in the center of the image.
- For Android Lollipop and higher: move files generated by the barcode scanner to the no-backup directory to avoid including them in backups.
- Fix focus issues on HTC One X.
- Improve auto-focus for Galaxy S7.
- Do not throw exception when the picker has been instantiated without a prior call to ScanditLicense.setAppKey
- Improve performance of blurry decoder on Galaxy Tab Pro 8.4.

### iOS

- Reduce power-consumption of standby mode in case API.
- Add possibility to display camera preview when using the scan case API
- Fix a bug that caused the viewfinder to show in the wrong color when switching between the rectangle and laser UI styles.
- Fix bug that caused the torch button to not work when the scanner is in paused state.
- Fixed an issue in the SBSScanCase class that caused the scanner to not start in pause mode when using the designated initializer.
- Improve scan performance for the scan case.
- Do not export deprecated enum values to swift, since they cause issues with lldb when another project defines enum values of the same name.
- Fix an issue that caused beeps to be cut off or stretched when using the volume button for triggering scans in the case API.

### Phonegap

- Android and iOS scan callbacks are now called synchronously from the engine, fixing any previously experienced double scans.
- The startScanning(paused) and applyScanSettings(settings) functions have been fixed on Android (they were already working on iOS).
- Documented how to use the Scandit SDK on the Telerik Platform.
- Add rawData property to recognized codes which allows access to the data encoded in a barcode as an array of char codes.
- Fix a bug in the parsing of the scanning hot spot on Android that caused x and y coordinates to be flipped.

# Scandit SDK 4.13

## New Features/Performance Improvements

- Added Xamarin for Windows Phone 8.1, Windows 8.1 and Universal Windows Platform (Windows 10) support - our Windows is now more complete with the support for the popular development platforms Xamarin and Phonegap/Cordova.

- Improved glare compensation for blurry 1D barcodes - the improved glare compensation for blurry barcodes makes our barcode scan engine more reliable in challenging conditions, where the images remains blurry because of a slow autofocus.

- Added support for the Code25 symbology also known as 'Industrial 2 of 5', 'Standard 2 of 5' or 'Discrete 2 of 5'. The verification of the optional Mod10 checksum can be enabled to improve detection rates. With Code25, we added support for another rare 1D barcode symbology in addition to all common symbologies we've supporting for years.

- DataBar-14 and DataBar Expanded decoders are now significantly faster and more robust. The highlighting of Databar codes is also more precise. We would recommend that users of the previous generation of Scandit DataBar decoder upgrade to take advantage of the significant speed improvements (worst case frames with expanded Databar barcodes are now up to a factor 10 faster).

- Dynamic ink spread compensation for Code39 codes. The ink spread compensation for Code39 barcodes has been further improved and now tolerates even more severe ink spread than before.

## Bug Fixes/Software Updates in Scandit SDK 4.13.4 (May 17th, 2016)

### Phonegap

- Fixed an issue with relative constraints when changing the device orientation.

## Bug Fixes/Software Updates in Scandit SDK 4.13.3 (May 2nd, 2016)

### Phonegap

- Fixed a crash when using the new constraints and rotating the device on Android.
- Added the applyScanSettings function under Android which was not working before.

## Bug Fixes/Software Updates in Scandit SDK 4.13.2 (April 29th, 2016)

### All SDKs

- Fixed out of bound reads in the DataBar-14 reader that occasionally lead to slow frames on ARMv7 iOS devices.

### Android

- Fix auto-focus issues on Galaxy J7, Galaxy S6 Edge(+) and Galaxy Note5.

## Bug Fixes/Software Updates in Scandit SDK 4.13.1 (April 12th, 2016)

### All SDKs

- Fixed a rare crash in the blurry 1d reader caused by a race condition.

### iOS

- Fix missing nullability specifier warning in SBSScanCase.h

### Windows

- Added a community edition of all our Windows platforms.

### Phonegap

- Fixed a crash when editing the overlay after showing the picker.
- Added view constraints that extend the currently available margins by also providing the option to set width and height.

## Bug Fixes/Software Updates in Scandit SDK 4.13.0 (April 5th, 2016)

### All SDKs

- Reduced the incorrect default Code11 maximum symbol count from 31 to 20.
- Fixed a rare crash in the Aztec Code reader.
- Fixed a rare crash in the QR Code reader.
- Fixed a rare crash in the PDF417 reader.

### Android

- Dropped support for Android 9 (market share dropped below 0.1%). The oldest Android OS version we support is now Android 10 (2.3.3).

### iOS

- Added new API for the Scandit scan case.
- Fixed issue that caused last preview frame of a previous picker to be displayed initially when starting another picker.

### Windows

- Added torch on/off button to the scan UI.
- Added camera switch button to the scan UI.
- Added support for the laser line GUI style, similar to the laser line available on iOS and Android.

### Phonegap

- Added an extended sample that shows multiple ways to integrate the barcode scanner into a Cordova/PhoneGap application.
- Switched plugin to use the ScanditBarcodeScanner AAR file for android. This breaks support for ant-based builds. Gradle must now be used to build Android phonegap/cordova projects.
- Added ability to specify the picker margins in percent of the screen width/height.
- Fixed bug in parsing scanningHotSpotHeight when using the old (cordova.exec-based) API.

### Xamarin

- Added Xamarin for Windows Phone 8.1, Windows 8.1 and Universal Windows Platform (Windows 10) support
- Fixed issues when using functions of the new api with float or int parameters on 64bit devices.

# Scandit SDK 4.12

## New Features/Performance Improvements

- Added support for the Data Matrix Rectangular Extension (DMRE) as defined in the AIM-D Symbology Specification Revision 1.01.
- Improved Data Matrix reader robustness for rotated codes and codes with perspective distortions.
- Added Windows PhoneGap/Cordova support (Windows Universal Platform, Windows 8.1, Windows Phone 8.1).
- Added a UPC-E extension to return the result in the UPC-A representation (return_as_upca).

## Bug Fixes/Software Updates in Scandit SDK 4.12.2 (March 3rd, 2016)

### Phonegap

- Fixed a crash that sometimes occurred when scanning a code during the modal view controller animation.

## Bug Fixes/Software Updates in Scandit SDK 4.12.1 (February 29, 2016)

### Android

- Fix rare crash on Sprint One M9 (0PJA2) upon closing the barcode picker.
- Fix a rare crash on DROID RAZR.

### Windows

- Remove use of prohibited API calls which will cause app validation to fail on Windows Phone 8.1
- Fix a bug in the SymbologySettings.ActiveSymbolCount getter that caused only the first element to be returned.

## Bug Fixes/Software Updates in Scandit SDK 4.12.0 (February 19, 2016)

### All SDKs

- Barcode scanner settings in the low-level API can now be serialized as JSON.
- License verification errors now trigger an alert in the UI and the scanner stops scanning any barcode. Previously, the SDK crashed when the license key could not be verified.
- Fixed bug in DataBar-14 result parser if the composite linkage flag in the DataBar code is set.
- Increased the maximum supported symbol count for Code 39 and Code 93 to 40 symbols.

### Android

- Updated samples to handle camera permission requests for Android Marshmallow (API level 23) and onwards.
- BarcodePickerActivity: handle camera permission requests for Android Marshmallow (API level 23) and onwards.
- Fixed selection of preview resolution on Masabi S1000. Previously a very low resolution was chosen.
- Fixed aspect ratio of preview on Masabi S1000.
- Fixed issue with camera switch button and torch button sizes on Galaxy Tab (GT-P1000).
- Fixed issue with volume of the beep for Android devices running Marshmallow (API level 23).

### iOS

- Software update to add a subclass of the SBSBarcodePicker to iOS Storyboards.
- Added startScanningInPausedState:completionHandler: method to the SBSBarcodePicker. The completionHandler is invoked when the camera has completed initialization.
- Improved auto-focus behavior for iPads, especially iPad Air 2.

### Windows

- Fixed issue on Lumia 1520 that caused the preview image to flicker.
- Fixed issue on Lumia 950 and Lumia 950 XL that caused the video feed to fail after a short time.
- Fixed issue on Windows 10 Phone devices that may cause the camera initialization to fail after a suspend.
- Improved error message in case VideoInputRT.FrameAccess is not listed as class that can be activated.
- Fixed a few access violation errors during fast picker start/stop sequences.

### Phonegap

- Added Windows PhoneGap/Cordova support (Windows Universal Platform, Windows 8.1, Windows Phone 8.1).
- Fixed an issue where array parameters would not be set on some Android versions because of deserialization issues.

### Titanium

- SetSize now calls viewDidLayoutSubviews to allow for landscape to landscape rotation and properly places the viewfinder.
- Added camera permission requests to the examples for Android 6.

### Xamarin

- Updated the API to the lastest native iOS and Android (4.7+/4.9+) Scandit SDK APIs. The old Xamarin API is still available.

# Scandit SDK 4.11

## New Features/Performance Improvements

- Added support for the GS1 DataBar Limited symbology.
- Improved recognition of Aztec codes. The Aztec decoder now supports 360 degrees of rotation and can scan pitched and skewed codes significantly better.
- Introduced a new API for our Phonegap/Cordova plugin that reflects the native APIs better and increases the customization options.

## Bug Fixes/Software Updates in Scandit SDK 4.11.1 (February 1, 2016)

### Phonegap

- Fixed a crash when using 4.11 with the legacy API and setting margins under Android.
- Fixed a crash when setting the allowed orientations under iOS.

### Titanium

- Readded the setSize() function under iOS as the standard frame change function is not called by Titanium when the picker is added to a list view.

## Bug Fixes/Software Updates in Scandit SDK 4.11.0 (January 14, 2016)

### All SDKs

- Improved robustness of the blurry UPC-E decoder.
- Fixed an issue in the Code39 decoder where only a substring of the entire barcode data was reported under certain rare conditions.

### Android

- Improved accuracy of barcode highlighting on phones where screen resolution does not have the same aspect ratio as the video preview.
- Fixed auto-exposure issues on Samsung Galaxy Core Plus (SM G350).
- Software update to create scan settings from a JSON object.

### iOS

- Added support for import of the Scandit BarcodeScanner into Swift library projects.
- Software update to create scan settings from a JSON object.

### Windows

- Software update to support all 4 device orientations (portrait, landscape etc). Previously only landscape orientation was supported.
- Added x86 variant for Windows Phone 8.1 assemblies. The Windows phone packages can now be run in the emulator.
- Added x64 variant for the Windows 8.1 assemblies.
- Fixed an issue on Windows 10 Phone that sometimes caused the picker to fail when sending the application to the background.
- Added workaround for a bug in the x86 native toolchain compiler that caused the scanner to access invalid memory.

### Phonegap

- Introduced a new API that reflects the native APIs better and increases the customization options. The old API is still available. New features will only be added to the new API.

### Xamarin

- Fixed the Android bindings such that the overlay view once again inherits from RelativeLayout.

# Scandit SDK 4.10

## New Features/Performance Improvements

- Our new QR code decoder supports perspective distortions and a much wider range of rotations. The pitch and skew (yaw) tolerance increased to up to 70 degrees (for QR codes of version 1 (without 4th alignment pattern) and version 2 and higher (with 4th alignment pattern) - this is an increase of ~50% over SDK version 4.8. We also improved the maximum decode range and robustness of the QR decoder for a much improved QR code scanning user experience (see the video on our web page for details).
- Scandit’s unique blurry decoding now decodes 1D barcodes before the autofocus has kicked in on additional popular Samsung devices such as the Galaxy S4 and S6. The impact is that the time to scan a barcode is drastically reduced on these devices as well.
- Our Barcode Scanner SDK for Windows now ships with Windows Universal Platform Support (Windows 10).

## Bug Fixes/Software Updates in Scandit SDK 4.10.2 (January 5, 2016)

### All SDKs

- Fixed incorrect sharp UPC-E end pattern parsing for some codes.

### iOS

- Added SBSCode.isGs1DataCarrier and SBSCode.symbologyName properties.

### Phonegap

- Fixed a bug that made it impossible to disable symbologies that are enabled by default.

## Bug Fixes/Software Updates in Scandit SDK 4.10.1 (December 7, 2015)

### All SDKs

- Fixed a rare out of bounds memory access in the Aztec reader.
- Fixed a rare out of bounds memory access in the DataMatrix reader

### Android

- Fixed the green and pink camera feed that showed up on the Samsung Galaxy Core Plus because of driver problems with certain fps ranges.

### Windows

- Strip leading zero from scanned UPCA codes for consistency with other platforms

## Bug Fixes/Software Updates in Scandit SDK 4.10.0 (December 1, 2015)

### Android

- Fixed a typo in the low-level API: IMAGE_LAYOUT_RBBA_8U is now IMAGE_LAYOUT_RGBA_8U.
- Fixed bug in sample project import for Android Studio.
- Improved exposure and auto-focus behaviour for Samsung Xcover 3, Nexus 6P and Urovo i9000s.

### iOS

- Improved iPad Air 2 front camera decode range.
- Enums are now properly exposed Swift-style. IMPORTANT: This introduces a slight incompatibility to previous version and requires clients to update their code. Code that was using e.g. SBSSymbologyCodabar will need to be updated to use SBSSymbology.Codabar (Likewise for other enumerations). Objective-C code is not affected by this change.
- The SBSBarcodePicker API has been annotated with nonnull, nullable. IMPORTANT: Swift code using the barcode picker will need to be updated. Objective-C code is not affected by this change.
- Fixed an issue when calling `[SBSBarcodePicker switchTorchOn:YES]` before or right after calling `[SBSBarcodePicker startScanning]` that caused the torch either not to turn on, or to flicker before being turned on.
- Added support for recognition of QR codes containing invalid characters.
- Fixed a bug in the activation system with simulator use.

### Titanium

- Software update to support stopping and resuming scanning as well as starting the picker in paused state.

### Phonegap

- Fixed a bug with setting the button position and size after the possibility to set margins and size was introduced in 4.9.

# Scandit SDK 4.9

## New Features/Performance Improvements

- Added support for mirrored QR codes. Enabled by default.
- Improved recognition of small QR codes.
- Improved recognition of damaged or badly printed QR codes.
- More accurate reporting of QR code locations.
- Added support for Code 11.
- Added support for MaxiCode (beta).
- Added relaxed check for sharp quiet zone extension (relaxed_sharp_quiet_zone_check) to Code39 and Code128. The quiet zone may be interrupted by at most one bar.

## Bug Fixes/Software Updates in Scandit SDK 4.9.2 (November 30, 2015)

### Android

- Fixed a race condition introduced in 4.9.1 that could lead to a crash when invoking startScanning delayed.
- Fixed the code highlighting on the Nexus 5x and Nexus 6.

## Bug Fixes/Software Updates in Scandit SDK 4.9.1 (November 18, 2015)

### iOS

- Fixed the renaming of the internally used MBProgressHUD classes which lead to duplicated symbols.

### Android

- Fixed wrong orientation of the front and back camera preview on Nexus 5x and Nexus 6.
- The laser UI no longer looks active when starting in paused state.

### Phonegap

- Fixed a bug introduced in 4.9.0 where for some symbologies barcodes over a certain length were no longer decoded.

## Bug Fixes/Software Updates in Scandit SDK 4.9.0 (November 3, 2015)

### All SDKs

- Reduced the minimum supported Code39 code length from 3 to 1 data symbol.
- Increased the maximum default Code39 code length from 17 to 18 data symbols.

### iOS

- The torch and camera switch buttons now have meaningful accessibility labels and hints that can be changed.
- Improved auto-exposure behavior on iPhone 5S and onwards when restricted area scanning is enabled.
- The default line width of highlighted barcodes has been increased from 1 to 2 for better visibility.

### Android

- New barcode picker API implemented in the com.scandit.barcodepicker package. This API is the new default and we encourage everyone to use this API for new applications. The com.mirasense.scanditsdk API remains available. Existing applications can continue to use this API. However, new functionality is only added to the com.scandit.barcodepicker package.
- New self-contained barcode picker activity for simple barcode scanning use-cases. This reduces the amount of code to be written when a single barcode needs to be scanned in a full-screen picker activity.
- Reduced line-width of highlighted barcodes.
- The torch and camera switch buttons now have meaningful content descriptions that can be changed.
- The barcode scanner can now be included in your project as an AAR file.
- The sample projects included in the SDK are now available as Android Studio projects.

### Windows

- Improved auto-focus control for phones and tablets.
- Fixed issue on Nokia Lumia 630 and possibly others that caused camera initialization to fail.

### Phonegap

- Fixed the inverse recognition option so that it enables inverted Data Matrix and QR codes.
- Added separate interfaces to enable inverted Data Matrix and QR codes individually.
- Added parameter to start the scanner in paused state.
- Added parameter to set the device name for analytics.

### Titanium

- Fixed a bug where it was possible that after calling stopScanning inside the success callback function more codes were scanned before the stopScanning took effect.
- Added function to set the device name for analytics.

# Scandit SDK 4.8

## New Features/Performance Improvements

- Barcode Picker and low-level barcode scanner API for Desktop Windows 8.1 (x86) and Windows Phone 8.1 (ARM).
- Added support for an optional Code39 mod 43 checksum as used in the LOGMARS (Logistics Applications of Automated Marking and Reading Symbols) and HIBC (Health Industry Bar Code) Labeler Identification Code (LIC) standards.
- Added Full ASCII Code39 decoding mode. Can be enabled by setting the symbology extension "full_ascii".
- Blurry upside-down codes are now scanned on high-end devices with a fixed-focus back camera too. Previously blurry upside-down codes were only supported on fixed-focus front cameras.
- Improved blurry ITF performance.

## Bug Fixes/Software Updates in Scandit SDK 4.8.3 (October 20, 2015)

### All SDKs

- Fix decoding of color-inverted QR codes when color-inverted Data Matrix is disabled.

### iOS

- Don't embed bitcode when targeting the simulator. This fixes a duplicate symbols error when building for the simulator.

## Bug Fixes/Software Updates in Scandit SDK 4.8.2 (October 2, 2015)

### iOS

- Fix a bitcode compatibility issue with XCode 7.0.1 that caused application archiving to fail. Archiving worked fine in XCode 7.0.

### Windows

- Fix an issue on some tablets that caused the video preview to be of low quality, even though a high-resolution video streaming format was chosen. This bug did not effect recognition performance, but only preview quality.

## Bug Fixes/Software Updates in Scandit SDK 4.8.1 (September 22, 2015)

### All SDKs

- Fix issue in sc_barcode_scanner_is_setup_complete() that caused false to be returned when no blurry symbologies were enabled.

### Android

- Fix regression introduced in 4.8.0 that caused ScanditSDK.set2DScanningEnabled to have no effect.

### iOS

- Removed arm7s slice. It is no longer supported in Xcode 7.
- The iOS framework now contains bitcode information for all the architectures. It is no longer neccessary to disable bitcode generation in the iOS projects.
- Remove CFBundleExecutable key from ScanditBarcodeScanner.bundle. This key caused deployment of Titanium applications to fail in Xcode 7.

### Phonegap

- New option to show/hide the viewfinder.

## Bug Fixes/Software Updates in Scandit SDK 4.8.0 (September 15, 2015)

### All SDKs

- Important: Analytics connects to new default hostnames ending with ".scandit.com". The former hostnames ending with ".mirasense.com" will only be used as a fallback. Please adjust your firewall rules.
- Fixed erratic crashes on exit caused by a race condition.
- Improved PDF417 localization in portrait orientation.
- Fixed incorrect PDF417 highlighting if codes are upside-down.
- Fixed PDF417 decoding when force2dRecognition is enabled.
- Improved barcode localization in high density mode.

### iOS

- Added a sample that shows how to use the barcode scanner with Swift. The sample is closely based on the SimpleSample.
- New alternative laser scan UI.
- Fixed decoding of PDF417 codes with ISO/IEC 8859 encoded data.
- Fixed a bug in the SBSBarcodePickerManager related to multiple concurrent requesters.

### Android

- Updated scan UI design.
- Improved UI rendering on low-resolution screens.
- New alternative laser scan UI.
- Improved auto-focus and exposure behavior for Samsung Galaxy Xcover 3.
- Improved auto-exposure behavior of Nexus 5 in low-light conditions.
- Fixed scanning of upside-down 1d codes using front cameras.
- Improved phone/tablet device classification for small tablets

### Phonegap

- New alternative laser scan UI exposed.
- All Android resources are now copied on install.

### Titanium

- The setting of the view's width and height is now consistent and always works.

# Scandit SDK 4.7

## New Features/Performance Improvements

- Improved blurry decoding if quiet zone violations are present.
- Improved blurry decoding in complex situations (on a sticker, surrounded by lines, borders or text).
- Higher frame rates for 1d barcode decoding.
- Reduced interleaved 2 of 5 (ITF) false positives.

## Bug Fixes/Software Updates in Scandit SDK 4.7.5 (August 28, 2015)

### iOS

- Fixed the setting of the viewfinder color in normal and decoded state.

### Phonegap

- Fixed the torch function.
- Moved the Android lifecycle events into the plugin reducing the code written by the user.

## Bug Fixes/Software Updates in Scandit SDK 4.7.4 (August 25, 2015)

### iOS

- Fixed a display problem with the icon top constraints on iOS 7 related to hiding and unhiding the navigation bar.
- Changed the internal init call to go to initWithNibName:bundle: to avoid problems caused by subclassing the picker and calling initWithSettings: inside another init method.

## Bug Fixes/Software Updates in Scandit SDK 4.7.3 (August 21, 2015)

### iOS

- Fixed a typo that caused the torch on icon to be set even though the torch off icon should have been set.

## Bug Fixes/Software Updates in Scandit SDK 4.7.2 (August 20, 2015)

### Phonegap

- Reduce depth of directory structure to avoid path-name issues on Windows
- Fixed callbacks under Android after calling non-scan functions.

## Bug Fixes/Software Updates in Scandit SDK 4.7.1 (August 18, 2015)

### iOS

- Setting custom image resources for the torch and camera icon is fixed for asset catalogs and all scale factors.
- Fix a crash-on-exit when camera preview was running. Now the camera is stopped before the application exits.

### Android

- Workaround for getting high-density mode to work on Vuzix (M100).

### Titanium

- Calls to nonexisting functions have been removed to fix a crash when displaying the picker.

## Bug Fixes/Software Updates in Scandit SDK 4.7.0 (June 23, 2015)

### All SDKs

- Improved location highlighting precision for blurry 1d codes.

### Linux / C API

- Added support to query and set the framerate of a camera.

### iOS

This release includes a significant refactoring of the iOS barcode picker and introduces new APIs.

- Added support for two-digit and five-digit add-ons.
- The barcode picker API introduces a new scan settings class through which the scanning process is configured. The former APIs for barcode picker configuration remain available but it is recommended to switch to the new APIs.
- Added a new set of delegates for getting "scan" and process frame events.
- Added a per-symbology setting for controlling the length of barcodes to be decoded.
- Added support for an optional interleaved 2-of-5 checksum.
- Updated scan UI.
- Improved code highlighting.
- New batch scanning sample app.

### Android

- New batch scanning sample app.
- Improved auto-focus behavior of Samsung Galaxy S6.
- Increased auto-focus retrigger interval on most of the Android phones.
- Fixed an issue that caused the view finder rectangle not to be updated when setting the hot spot while the scanner is running.

### Phonegap

- Updated Android and iOS plugin to use the new scan settings.
- Added the option to display the scanner as a subview (scaled/cropped).
- Added new functions to cancel, pause, resume, stop, start and resize the scanner.

# Scandit SDK 4.6

## New Features/Performance Improvements

- Better scanning performance due to new motion compensation approach.
- Significantly improved barcode recognition in landscape mode when the angle is close to zero degrees.
- Added GS1 Databar application identifiers (AI) 16, 243, 255, 427, 710-713, 7004-7010, 8010, 8011, 8017 and 8019 to comply with the new GS1 General Specifications Version 15.
- Added support for the Android ARM64 (arm64-v8a) architecture.

## Bug Fixes/Software Updates in Scandit SDK 4.6.1 (July 3, 2015)

### Android

- Minor update to camera control and camera preview.

## Bug Fixes/Software Updates in Scandit SDK 4.6.0 (June 22, 2015)

### All SDKs

- Important: GS1 Databar Expanded now returns the machine readable GS1 encoding and no longer the human readable representation.

- Important: All GS1 Databar-14 result codes now start with the GS1 GTIN "01" application identifier.

- Improved location highlighting precision for DataMatrix and Aztec codes.

- Fixed scanning of short ITF codes (8 to 10 characters).

### Android

- Added support for an optional ITF modulo 10 check digit.

### iOS

- Fixed barcode highlighting in the iPad Air 2 front camera video stream.
- Added new motion compensation mode which allows codes to be scanned in the presence of motion blur. This new compensation mode is disabled by default. To enable motion compensation, use `[ScanditSDKBarcodePicker setMotionCompensationEnabled:YES]`.
- Important: applications must now link to the GLES framework.

### Linux / C API

- New modular low-level API in C with advanced configuration options (beta).
- Added support for asynchronous engine setup.
- Added support to run multiple scan engines in parallel.
- Added support for an optional ITF modulo 10 check digit.

# Scandit SDK 4.5

## New Features/Performance Improvements

- Support for EAN2 and EAN5 extension codes (Android only)

- Improved blurry decoding of Code39, Code93 and Code128 barcodes

## Bug Fixes/Software Updates in Scandit SDK 4.5.1 (June 12, 2015)

### All SDKs

- Fixed a bug that prevented the decoding of some large Data Matrix codes.

### Android

- Added ScanditSDKCode.getRawByteData that allows to retrieve the actual byte data encoded barcodes without interpreting them as utf-8 strings. This is intended for codes that store non-textural data that can not be represented as utf-8.

### iOS

- Added the "rawData" key-value pair to the barcode dictionary that can be used to retrieve the actual raw byte sequence encoded in codes. This is intended for codes that store non-textural data that can not be represented as utf-8.

## Bug Fixes/Software Updates in Scandit SDK 4.5.0 (April 16, 2015)

### All SDKs

- Reduce rate of wrongly decoded ITF codes (false positives) when the code is only partially visible in the frame.
- Fixed incorrect GS1 FNC1 parsing for some DataMatrix encodings.

### Android

- Fixed a bug on Google Glass that sometimes lead to a double beep after successfully decoding a barcode.

### iOS

- Improved iPad Air 2 scan performance.

# Scandit SDK 4.4

## New Features/Performance Improvements

- New glare compensation algorithm - Scandit 4.4 significantly improves the scanning performance in the presence of glare (and shadows).
- Inverted QR code support (white QR codes on a dark background) - can be enabled via an API method.
- The active scanning area can now be defined as a rectangle (previously only the height of the scanning area could be adjusted).
- Significantly improved performance with damaged barcodes (worn, weak print, ink spread).
- Reduced the likelihood of false positive barcodes with challenging codes (e.g. with very blurry, ink spread).
- Better blurry decoding of UPC-E and ITF barcodes.

## Bug Fixes/Software Updates in Scandit SDK 4.4.2 (March 31, 2015)

### All SDKs

- Fixed a rare race condition introduced in 4.4.0 that could lead to crashes during initialization

### Android

- disable macro mode for LG P880 for improved recognition performance.
- fix bug in camera handling that caused media server restart after closing the scanner. Affected devices (LG P880 and Motorola MC40) would take a long time to open the camera a second time.

### iOS

- Returned barcode strings with illegal UTF8 characters are no longer nil, instead the illegal characters are ignored.

## Bug Fixes/Software Updates in Scandit SDK 4.4.1 (March 02, 2015)

### Android

- bug fix to prevent slow-down in camera frame acquisition after successive camera restarts.
- bug fix to prevent null pointer exception when camera is running for extended time and device enters sleep state.

### iOS

- minor update to documentation in extended sample app

## Bug Fixes/Software Updates in Scandit SDK 4.4.0 (February 03, 2015)

### All SDKs

- fixed bug in front-facing camera implementation where default scan line orientation was wrong which impacted decoding performance significantly when fixed-focus front-facing camera was used.
- fixed bug where stacked Databar 14 codes were not decoded when restrictActiveScanningArea was activated.
- fixed bug where expanded Databar implementation occasionally reported an AI key repeatedly.
- fixed bug where FNC1 characters that indicated end of variable length GS1 application identifier (AI) in GS1-128 code were stripped from result. They are now encoded again as ASCI character “GS” (group separator).

### iOS

- fixed bug where build in iOS simulator resulted in a build error.
- minor update to extended sample app ui to correct black bar in some views

### Android

- fixed bug where torch icon did not change state when the torch was switched on programmatically.
- added missing changeCameraFacing implementation

# Scandit SDK 4.3

## New Features/Better scan performance:

- Support for Aztec codes
- New Android camera control for faster camera start and better autofocus and exposure management. (Android only)
- Significantly higher frame rate (up to 50% increased) and fixed issues with dropped camera frames. (Android only)

## Bug fixes/Software Updates in 4.3.3 (January 5th, 2015) (Android only)

### Android

- Software update to address issues when two barcode pickers were instantiated within the same app. With the new camera control in 4.3.0, the lifecycle of the two ScanditSDKListeners was not clearly defined so that the wrong of the two pickers could receive scan results via the callbacks. This is now fixed in Scandit SDK 4.3.3.

## Bug fixes/Software Updates in 4.3.2 (December 30th, 2014) (Android only)

### Android

- Added ignoreAspectRatio implementation of Scandit SDK 4.2 and earlier to address Android issue where camera preview crop of 85% and higher turns into full image camera preview on a number of Android devices.

## Bug fixes/Software Updates in 4.3.1 (December 18th, 2014) (Android only)

### Android

- Important software update to prevent (rare) crashes when Scandit SDK is not properly configured on initial start of barcode picker.
- Software update to fix issues with method to set custom torch icon. In 4.3.0, setting a custom torch icon did not work.
- Software update to fix issue when setDeviceOrientation fails on Android 2.3 devices. The failure of this method call had no negative implications from a usability perspective.

## Bug fixes/Software Updates in 4.3.0

### Titanium

- Added support for arm64 under Ti

### Xamarin

- Added support for unified Xamarin component with arm64 support

# Scandit SDK 4.2 for iOS

## New Features/Better scan performance:

- Support for Truncated PDF417 codes
- Better performance of Datamatrix decoder for lasered Datamatrix codes and those printed with weak contrast.
- Better performance of QR decoder with QR codes printed with weak print quality.
- Improved PDF417 decoder with support for error correction.
- Better exposure management and autofocus management. In previous versions, the exposure was slow to adjust and did not adjust at all on some devices.
- Added new long range working range (autofocus is no longer set to macro-mode in this long range working range)

## Bug fixes in 4.2.2 (Oct 13th, 2014) (iOS only)

### iOS only

- Fixed issues with multi-scan beta implementation

## Bug fixes in 4.2.1 (Oct 7th, 2014) (iOS only)

### iOS only

- Added support for x86 64bit simulator support and fixed problem with simulator support issues

## Bug fixes/Software Updates in 4.2.0 (Sep 11th, 2014)

### iOS only

- Fixed bug that led to slow Datamatrix and QR Code decoding performance on iPhone 4 and iPhone 3GS in 4.2.0 BETAs

### Phonegap/Cordova

- added continuous mode to our Cordova plugins for iOS and Android where multiple barcodes can be scanned in sequence without closing the camera after each scan. This mode can be enabled when the scan function is invoked