Upload first version
This commit is contained in:
parent
f95d5a63b0
commit
3bdf2003ec
898 changed files with 1405811 additions and 1 deletions
80
README.md
80
README.md
|
|
@ -1 +1,79 @@
|
||||||
# amlnn-model-playground
|
[简体中文](README_CN.md) | [English](README.md)
|
||||||
|

|
||||||
|
|
||||||
|
# amlnn-model-playground
|
||||||
|
|
||||||
|
# Introduction
|
||||||
|
|
||||||
|
**amlnn-model-playground** Has been developed using the **amlnn toolkit**, by completing the **model conversion** and **deployment** steps, we have created a ready to go **model zoo** for commonly used models. The demo package provides complete model conversion scripts, as well as a complete workflow for **Python API**, **OpenAI API**, and **C API** to run the converted model.
|
||||||
|
|
||||||
|
**Objective:** To help users get started and deploy models on the Amlogic NPU platform. The rich algorithm library in the model zoo can help guide developers through test, benchmarking, proof of concept and deployment of edge AI products.
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
- The model conversion functionality in **amlnn-model-playground** currently relies on the model conversion tool `adla-toolkit-binary-x.x.x.x` provided by Amlogic, please contact your sales representivie for access in the short term.
|
||||||
|
- **Android compilation** depends on the NDK toolchain. Currently, version r25c is recommended. Download link: https://github.com/android/ndk/wiki/Unsupported-Downloads
|
||||||
|
- **Linux compilation** toolchain dependency: **gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf**, download link: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads/
|
||||||
|
|
||||||
|
# Support List
|
||||||
|
|
||||||
|
| Category | Model_name | Dtype | Platform |
|
||||||
|
| ---------------------- | ------------------------------------------------------------ | ------ | ------------- |
|
||||||
|
| Classification | [mobilenet_v2](https://storage.googleapis.com/download.tensorflow.org/models/tflite_11_05_08/mobilenet_v2_1.0_224_quant.tgz) | INT8 | A311D2/S905X5 |
|
||||||
|
| Classification | [resnet50-v2](https://github.com/onnx/models/blob/8e893eb39b131f6d3970be6ebd525327d3df34ea/vision/classification/resnet/model/resnet50-v2-7.onnx) | INT8 | A311D2/S905X5 |
|
||||||
|
| Object Detection | [yolov8](https://github.com/ultralytics/ultralytics) | INT8 | A311D2/S905X5 |
|
||||||
|
| Object Detection | [yolov11](https://github.com/ultralytics/ultralytics) | INT8 | A311D2/S905X5 |
|
||||||
|
| Object Detection | [yoloworld](https://github.com/AILab-CVC/YOLO-World) | INT8 | A311D2/S905X5 |
|
||||||
|
| Object Detection | [yoloe](https://github.com/ultralytics/ultralytics) | INT8 | A311D2/S905X5 |
|
||||||
|
| Face Key Points | [retinaface](https://github.com/biubug6/Pytorch_Retinaface) | INT8 | A311D2/S905X5 |
|
||||||
|
| Text Detection | ppocr-det | INT8 | A311D2/S905X5 |
|
||||||
|
| Pose Estimation | blazepose_detect | INT8 | A311D2/S905X5 |
|
||||||
|
| Pose Estimation | blazepose_landmark | INT8 | A311D2/S905X5 |
|
||||||
|
| Voiceprint recognition | [ECAPA-TDNN](https://github.com/TaoRuijie/ECAPA-TDNN) | Hybrid | A311D2/S905X5 |
|
||||||
|
| Speech Recognition | whisper | Hybrid | A311D2/S905X5 |
|
||||||
|
| Image-Text Matching | [clip](https://huggingface.co/openai/clip-vit-base-patch32) | Hybrid | A311D2/S905X5 |
|
||||||
|
| Chat LLM | deepseek | Hybrid | A311D2/S905X5 |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Benchmark List(FPS)
|
||||||
|
|
||||||
|
| Examples | Model_name | input_shapes | Dtype | S905X5 | A311D2 |
|
||||||
|
| ------------------ | ------------ | ---------------- | ----- | ------ | ------ |
|
||||||
|
| mobilenet | mobilenet_v2 | [1, 3, 224, 224] | INT8 |1047.54 | 798.94 |
|
||||||
|
| resnet | resnet50-v2 | [1, 3, 224, 224] | INT8 | 106.78 | 128.91 |
|
||||||
|
| yolov8 | yolov8l | [1, 3, 640, 640] | INT8 | 11.55 | 11.12 |
|
||||||
|
| yolov11 | yolov11n | [1, 3, 640, 640] | INT8 | 41.14 | 41.48 |
|
||||||
|
| yoloworld | yoloworld | [1, 3, 480, 640] | INT8 | 19.38 | 19.04 |
|
||||||
|
| yoloe | yoloe | [1, 3, 288, 512] | INT8 | 53.9 | 37.8 |
|
||||||
|
| retinaface | retinaface | [1, 3, 320, 320] | INT8 | 341.99 | 305.89 |
|
||||||
|
| ppocr-det | paddleocrv4-det | [1, 3, 640, 640] | INT8 | 37.66 | 38.85 |
|
||||||
|
| blazepose_detect | blazepose_detection | [1, 3, 224, 224] | INT8 | 476.29 | 461.74 |
|
||||||
|
| blazepose_landmark | blazepose_landmark_full | [1, 3, 256, 256] | INT16 | 84.59 | 70.31 |
|
||||||
|
| Whisper | encoder_tiny_en | [1, 80, 3000] | Hybrid | 0.71 | 0.58 |
|
||||||
|
| Whisper | decoder_tiny_en | [1, 1500, 384]&[1, 48] | Hybrid | 10.35 | 9.22 |
|
||||||
|
| Clip | clip-vit-base-patch32 | [1, 3, 224, 224] | Hybrid | 7.48 | 6.82 |
|
||||||
|
|
||||||
|
- The performance data represents the runtime of the model on the NPU, as tested using the native case. Unless otherwise specified, it does not include the time spent on pre- and post-processing.
|
||||||
|
- \ means currently supported.
|
||||||
|
|
||||||
|
# Examples Compile
|
||||||
|
|
||||||
|
Each **example** directory contains a **build-android.sh** and build-linux.sh **script**. For compilation steps, refer to **Chapter 4** of the **README.md** file in the corresponding example directory.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# **Release Notes**
|
||||||
|
|
||||||
|
| Version | Description |
|
||||||
|
| ------- | ------------- |
|
||||||
|
| 1.0.0 | First Version |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
79
README_CN.md
Normal file
79
README_CN.md
Normal file
|
|
@ -0,0 +1,79 @@
|
||||||
|
[简体中文](README_CN.md) | [English](README.md)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
# amlnn-model-playground
|
||||||
|
|
||||||
|
# 简介
|
||||||
|
|
||||||
|
**amlnn-model-playground**是基于**amlnn toolkit**完成**模型转换**与**部署**,实现主流常用算法的model zoo。demo包中提供完整的模型转换脚本,以及使用 **Python API**,**OpenAI API** 和 **C API** 对转换后的模型进行推理运行的完整流程。
|
||||||
|
|
||||||
|
**目的:** 帮助用户快速上手,完成算法模型在 Amlogic NPU平台上的部署。model zoo中丰富的算法库可以更好的指导客户AI产品落地。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# 依赖项
|
||||||
|
|
||||||
|
- **amlnn-model-playground** 中的模型转换功能目前依赖于 Amlogic 提供的模型转换工具 **`adla-toolkit-binary-x.x.x.x`**,当前版本请联系您的销售代表获取该工具。
|
||||||
|
- **Android编译**依赖NDK工具链,当前建议使用**r25c**版本,下载链接:https://github.com/android/ndk/wiki/Unsupported-Downloads
|
||||||
|
- **Linux编译**依赖工具链:**gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf** ,下载链接:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads/
|
||||||
|
|
||||||
|
# 支持列表
|
||||||
|
|
||||||
|
| Category | Model_name | Dtype | Platform |
|
||||||
|
| ---------------------- | ------------------------------------------------------------ | ------ | ------------- |
|
||||||
|
| Classification | [mobilenet_v2](https://storage.googleapis.com/download.tensorflow.org/models/tflite_11_05_08/mobilenet_v2_1.0_224_quant.tgz) | INT8 | A311D2/S905X5 |
|
||||||
|
| Classification | [resnet50-v2](https://github.com/onnx/models/blob/8e893eb39b131f6d3970be6ebd525327d3df34ea/vision/classification/resnet/model/resnet50-v2-7.onnx) | INT8 | A311D2/S905X5 |
|
||||||
|
| Object Detection | [yolov8](https://github.com/ultralytics/ultralytics) | INT8 | A311D2/S905X5 |
|
||||||
|
| Object Detection | [yolov11](https://github.com/ultralytics/ultralytics) | INT8 | A311D2/S905X5 |
|
||||||
|
| Object Detection | [yoloworld](https://github.com/AILab-CVC/YOLO-World) | INT8 | A311D2/S905X5 |
|
||||||
|
| Object Detection | [yoloe](https://github.com/ultralytics/ultralytics) | INT8 | A311D2/S905X5 |
|
||||||
|
| Face Key Points | [retinaface](https://github.com/biubug6/Pytorch_Retinaface) | INT8 | A311D2/S905X5 |
|
||||||
|
| Text Detection | ppocr-det | INT8 | A311D2/S905X5 |
|
||||||
|
| Pose Estimation | blazepose_detect | INT8 | A311D2/S905X5 |
|
||||||
|
| Pose Estimation | blazepose_landmark | INT8 | A311D2/S905X5 |
|
||||||
|
| Voiceprint recognition | [ECAPA-TDNN](https://github.com/TaoRuijie/ECAPA-TDNN) | Hybrid | A311D2/S905X5 |
|
||||||
|
| Speech Recognition | [whisper](https://github.com/openai/whisper) | Hybrid | A311D2/S905X5 |
|
||||||
|
| Image-Text Matching | [clip](https://huggingface.co/openai/clip-vit-base-patch32) | Hybrid | A311D2/S905X5 |
|
||||||
|
| Chat LLM | deepseek | Hybrid | A311D2/S905X5 |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Benchmark List(FPS)
|
||||||
|
|
||||||
|
| Examples | Model_name | input_shapes | Dtype | S905X5 | A311D2 |
|
||||||
|
| ------------------ | ------------ | ---------------- | ----- | ------ | ------ |
|
||||||
|
| mobilenet | mobilenet_v2 | [1, 3, 224, 224] | INT8 |1047.54 | 798.94 |
|
||||||
|
| resnet | resnet50-v2 | [1, 3, 224, 224] | INT8 | 106.78 | 128.91 |
|
||||||
|
| yolov8 | yolov8l | [1, 3, 640, 640] | INT8 | 11.55 | 11.12 |
|
||||||
|
| yolov11 | yolov11n | [1, 3, 640, 640] | INT8 | 41.14 | 41.48 |
|
||||||
|
| yoloworld | yoloworld | [1, 3, 480, 640] | INT8 | 19.38 | 19.04 |
|
||||||
|
| yoloe | yoloe | [1, 3, 288, 512] | INT8 | 53.9 | 37.8 |
|
||||||
|
| retinaface | retinaface | [1, 3, 320, 320] | INT8 | 341.99 | 305.89 |
|
||||||
|
| ppocr-det | paddleocrv4-det | [1, 3, 640, 640] | INT8 | 37.66 | 38.85 |
|
||||||
|
| blazepose_detect | blazepose_detection | [1, 3, 224, 224] | INT8 | 476.29 | 461.74 |
|
||||||
|
| blazepose_landmark | blazepose_landmark_full | [1, 3, 256, 256] | INT16 | 84.59 | 70.31 |
|
||||||
|
| Whisper | encoder_tiny_en | [1, 80, 3000] | Hybrid | 0.71 | 0.58 |
|
||||||
|
| Whisper | decoder_tiny_en | [1, 1500, 384]&[1, 48] | Hybrid | 10.35 | 9.22 |
|
||||||
|
| Clip | clip-vit-base-patch32 | [1, 3, 224, 224] | Hybrid | 7.48 | 6.82 |
|
||||||
|
|
||||||
|
- 性能数据是使用natvie case测试出的模型在NPU上的运行时间,如无特殊说明,不包含前后处理的耗时。
|
||||||
|
- \表示暂时不支持。
|
||||||
|
|
||||||
|
# Examples 编译
|
||||||
|
|
||||||
|
每个**example**目录下面都有**build-android.sh** 和**build-linux.sh**脚本,编译步骤参考对应example目录下的**README.md**文件的**第四章节**
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# **Release Notes**
|
||||||
|
|
||||||
|
| Version | Description |
|
||||||
|
| ------- | ------------- |
|
||||||
|
| 1.0.0 | First Version |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BIN
assets/poster.jpeg
Executable file
BIN
assets/poster.jpeg
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 76 KiB |
0
common/.gitkeep
Normal file
0
common/.gitkeep
Normal file
1
common/README.md
Executable file
1
common/README.md
Executable file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
92
common/model_loader.cpp
Executable file
92
common/model_loader.cpp
Executable file
|
|
@ -0,0 +1,92 @@
|
||||||
|
// -------------------------------------------------------------------------
|
||||||
|
// Exposed Functions
|
||||||
|
// -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#include "model_loader.h"
|
||||||
|
#include <cstring>
|
||||||
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
#include <tuple>
|
||||||
|
|
||||||
|
#define LOGE(...) do { fprintf(stderr, __VA_ARGS__); fprintf(stderr, "\n"); } while(0)
|
||||||
|
|
||||||
|
void* init_network(const char* model_path) {
|
||||||
|
void* qcontext = NULL;
|
||||||
|
aml_config config;
|
||||||
|
memset(&config, 0, sizeof(aml_config));
|
||||||
|
config.modelType = ADLA_LOADABLE;
|
||||||
|
config.typeSize = sizeof(aml_config);
|
||||||
|
config.nbgType = NN_ADLA_FILE;
|
||||||
|
config.path = model_path;
|
||||||
|
|
||||||
|
/* set omp, If you are considering high CPU usage during operation,
|
||||||
|
you can turn off this api, set_openmp_opt_flag = false */
|
||||||
|
aml_openmp_opt_t openmp_opt[] =
|
||||||
|
{
|
||||||
|
{
|
||||||
|
.operator_type = AML_Unknown,
|
||||||
|
.enable_openmp = true,
|
||||||
|
.involve_all_ops = true,
|
||||||
|
.openmp_num = 2,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
config.forward_ctrl.softop_info.set_openmp_opt_flag = true;
|
||||||
|
config.forward_ctrl.softop_info.openmp_opt_num = sizeof(openmp_opt) / sizeof(aml_openmp_opt_t);
|
||||||
|
config.forward_ctrl.softop_info.openmp_opt = openmp_opt;
|
||||||
|
|
||||||
|
/* set neon */
|
||||||
|
aml_neon_opt_t neon_opt[] =
|
||||||
|
{
|
||||||
|
{
|
||||||
|
.operator_type = AML_Unknown,
|
||||||
|
.enable_neon = true,
|
||||||
|
.involve_all_ops = true,
|
||||||
|
},
|
||||||
|
|
||||||
|
};
|
||||||
|
config.forward_ctrl.softop_info.set_neon_opt_flag = true;
|
||||||
|
config.forward_ctrl.softop_info.neon_opt_num = sizeof(neon_opt) / sizeof(aml_neon_opt_t);
|
||||||
|
config.forward_ctrl.softop_info.neon_opt = neon_opt;
|
||||||
|
|
||||||
|
qcontext = aml_module_create(&config);
|
||||||
|
if (NULL == qcontext) {
|
||||||
|
LOGE("aml_module_create fail for %s", model_path);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return qcontext;
|
||||||
|
}
|
||||||
|
|
||||||
|
int uninit_network(void* qcontext) {
|
||||||
|
int ret = aml_module_destroy(qcontext);
|
||||||
|
if (ret) {
|
||||||
|
LOGE("aml_module_destroy fail.");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
void* run_network(void* qcontext, std::vector<std::tuple<cv::Mat, float, std::tuple<int, int>>> input_tuples) {
|
||||||
|
for (size_t i = 0; i < input_tuples.size(); ++i) {
|
||||||
|
cv::Mat process_img = std::get<0>(input_tuples[i]);
|
||||||
|
unsigned char* rawdata = process_img.data;
|
||||||
|
|
||||||
|
nn_input inData;
|
||||||
|
memset(&inData, 0, sizeof(nn_input));
|
||||||
|
inData.input_type = BINARY_RAW_DATA;
|
||||||
|
inData.input = rawdata;
|
||||||
|
inData.input_index = i;
|
||||||
|
inData.size = process_img.rows * process_img.cols * process_img.channels() * sizeof(float);
|
||||||
|
|
||||||
|
int ret = aml_module_input_set(qcontext, &inData);
|
||||||
|
if (ret) {
|
||||||
|
LOGE("aml_module_input_set fail for index %zu. Ret=%d", i, ret);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
aml_output_config_t outconfig;
|
||||||
|
memset(&outconfig, 0, sizeof(aml_output_config_t));
|
||||||
|
outconfig.typeSize = sizeof(aml_output_config_t);
|
||||||
|
outconfig.format = AML_OUTDATA_FLOAT32;
|
||||||
|
return aml_module_output_get(qcontext, outconfig);
|
||||||
|
}
|
||||||
16
common/model_loader.h
Executable file
16
common/model_loader.h
Executable file
|
|
@ -0,0 +1,16 @@
|
||||||
|
#ifndef _AMLNN_MODEL_LOADER_H_
|
||||||
|
#define _AMLNN_MODEL_LOADER_H_
|
||||||
|
|
||||||
|
#include <opencv2/opencv.hpp>
|
||||||
|
#include <vector>
|
||||||
|
#include <tuple>
|
||||||
|
#include <unordered_set>
|
||||||
|
#include <string>
|
||||||
|
#include "nn_sdk.h"
|
||||||
|
|
||||||
|
void* init_network(const char* model_path);
|
||||||
|
int uninit_network(void* qcontext);
|
||||||
|
std::tuple<cv::Mat, float, std::tuple<int, int>> preprocess(cv::Mat img, std::tuple<int, int> new_shape);
|
||||||
|
void* run_network(void* qcontext, std::vector<std::tuple<cv::Mat, float, std::tuple<int, int>>> input_tuples);
|
||||||
|
|
||||||
|
#endif
|
||||||
0
dependency/.gitkeep
Normal file
0
dependency/.gitkeep
Normal file
25526
dependency/json/json.hpp
Executable file
25526
dependency/json/json.hpp
Executable file
File diff suppressed because it is too large
Load diff
137
dependency/nnsdk/include/jpeg/jconfig.h
Executable file
137
dependency/nnsdk/include/jpeg/jconfig.h
Executable file
|
|
@ -0,0 +1,137 @@
|
||||||
|
#define HAVE_PROTOTYPES
|
||||||
|
#define HAVE_UNSIGNED_CHAR
|
||||||
|
#define HAVE_UNSIGNED_SHORT
|
||||||
|
|
||||||
|
/* Define this if an ordinary "char" type is unsigned.
|
||||||
|
* If you're not sure, leaving it undefined will work at some cost in speed.
|
||||||
|
* If you defined HAVE_UNSIGNED_CHAR then the speed difference is minimal.
|
||||||
|
*/
|
||||||
|
#undef CHAR_IS_UNSIGNED
|
||||||
|
|
||||||
|
#if defined __MINGW__ || defined __MINGW32__ || (!defined WIN32 && !defined _WIN32)
|
||||||
|
/* Define this if your system has an ANSI-conforming <stddef.h> file.
|
||||||
|
*/
|
||||||
|
#define HAVE_STDDEF_H
|
||||||
|
|
||||||
|
/* Define this if your system has an ANSI-conforming <stdlib.h> file.
|
||||||
|
*/
|
||||||
|
#define HAVE_STDLIB_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define this if your system does not have an ANSI/SysV <string.h>,
|
||||||
|
* but does have a BSD-style <strings.h>.
|
||||||
|
*/
|
||||||
|
#undef NEED_BSD_STRINGS
|
||||||
|
|
||||||
|
/* Define this if your system does not provide typedef size_t in any of the
|
||||||
|
* ANSI-standard places (stddef.h, stdlib.h, or stdio.h), but places it in
|
||||||
|
* <sys/types.h> instead.
|
||||||
|
*/
|
||||||
|
#undef NEED_SYS_TYPES_H
|
||||||
|
|
||||||
|
/* For 80x86 machines, you need to define NEED_FAR_POINTERS,
|
||||||
|
* unless you are using a large-data memory model or 80386 flat-memory mode.
|
||||||
|
* On less brain-damaged CPUs this symbol must not be defined.
|
||||||
|
* (Defining this symbol causes large data structures to be referenced through
|
||||||
|
* "far" pointers and to be allocated with a special version of malloc.)
|
||||||
|
*/
|
||||||
|
#undef NEED_FAR_POINTERS
|
||||||
|
|
||||||
|
/* Define this if your linker needs global names to be unique in less
|
||||||
|
* than the first 15 characters.
|
||||||
|
*/
|
||||||
|
#undef NEED_SHORT_EXTERNAL_NAMES
|
||||||
|
|
||||||
|
/* Although a real ANSI C compiler can deal perfectly well with pointers to
|
||||||
|
* unspecified structures (see "incomplete types" in the spec), a few pre-ANSI
|
||||||
|
* and pseudo-ANSI compilers get confused. To keep one of these bozos happy,
|
||||||
|
* define INCOMPLETE_TYPES_BROKEN. This is not recommended unless you
|
||||||
|
* actually get "missing structure definition" warnings or errors while
|
||||||
|
* compiling the JPEG code.
|
||||||
|
*/
|
||||||
|
#undef INCOMPLETE_TYPES_BROKEN
|
||||||
|
|
||||||
|
/* Define "boolean" as unsigned char, not int, on Windows systems.
|
||||||
|
*/
|
||||||
|
#ifdef _WIN32
|
||||||
|
#ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */
|
||||||
|
typedef unsigned char boolean;
|
||||||
|
#endif
|
||||||
|
#define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The following options affect code selection within the JPEG library,
|
||||||
|
* but they don't need to be visible to applications using the library.
|
||||||
|
* To minimize application namespace pollution, the symbols won't be
|
||||||
|
* defined unless JPEG_INTERNALS has been defined.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef JPEG_INTERNALS
|
||||||
|
|
||||||
|
/* Define this if your compiler implements ">>" on signed values as a logical
|
||||||
|
* (unsigned) shift; leave it undefined if ">>" is a signed (arithmetic) shift,
|
||||||
|
* which is the normal and rational definition.
|
||||||
|
*/
|
||||||
|
#undef RIGHT_SHIFT_IS_UNSIGNED
|
||||||
|
|
||||||
|
/* These are for configuring the JPEG memory manager. */
|
||||||
|
#define DEFAULT_MAX_MEM 1073741824 /*1Gb*/
|
||||||
|
|
||||||
|
#if !defined WIN32 && !defined _WIN32
|
||||||
|
#define INLINE __inline__
|
||||||
|
#undef NO_MKTEMP
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* JPEG_INTERNALS */
|
||||||
|
|
||||||
|
#define JDCT_DEFAULT JDCT_FLOAT
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The remaining options do not affect the JPEG library proper,
|
||||||
|
* but only the sample applications cjpeg/djpeg (see cjpeg.c, djpeg.c).
|
||||||
|
* Other applications can ignore these.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef JPEG_CJPEG_DJPEG
|
||||||
|
|
||||||
|
/* These defines indicate which image (non-JPEG) file formats are allowed. */
|
||||||
|
|
||||||
|
#define BMP_SUPPORTED /* BMP image file format */
|
||||||
|
#define GIF_SUPPORTED /* GIF image file format */
|
||||||
|
#define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */
|
||||||
|
#undef RLE_SUPPORTED /* Utah RLE image file format */
|
||||||
|
#define TARGA_SUPPORTED /* Targa image file format */
|
||||||
|
|
||||||
|
/* Define this if you want to name both input and output files on the command
|
||||||
|
* line, rather than using stdout and optionally stdin. You MUST do this if
|
||||||
|
* your system can't cope with binary I/O to stdin/stdout. See comments at
|
||||||
|
* head of cjpeg.c or djpeg.c.
|
||||||
|
*/
|
||||||
|
#if defined WIN32 || defined _WIN32
|
||||||
|
#define TWO_FILE_COMMANDLINE /* optional */
|
||||||
|
#define USE_SETMODE /* Microsoft has setmode() */
|
||||||
|
#else
|
||||||
|
#undef TWO_FILE_COMMANDLINE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define this if your system needs explicit cleanup of temporary files.
|
||||||
|
* This is crucial under MS-DOS, where the temporary "files" may be areas
|
||||||
|
* of extended memory; on most other systems it's not as important.
|
||||||
|
*/
|
||||||
|
#undef NEED_SIGNAL_CATCHER
|
||||||
|
|
||||||
|
/* By default, we open image files with fopen(...,"rb") or fopen(...,"wb").
|
||||||
|
* This is necessary on systems that distinguish text files from binary files,
|
||||||
|
* and is harmless on most systems that don't. If you have one of the rare
|
||||||
|
* systems that complains about the "b" spec, define this symbol.
|
||||||
|
*/
|
||||||
|
#undef DONT_USE_B_MODE
|
||||||
|
|
||||||
|
/* Define this if you want percent-done progress reports from cjpeg/djpeg.
|
||||||
|
*/
|
||||||
|
#undef PROGRESS_REPORT
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* JPEG_CJPEG_DJPEG */
|
||||||
453
dependency/nnsdk/include/jpeg/jmorecfg.h
Executable file
453
dependency/nnsdk/include/jpeg/jmorecfg.h
Executable file
|
|
@ -0,0 +1,453 @@
|
||||||
|
/*
|
||||||
|
* jmorecfg.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 1991-1997, Thomas G. Lane.
|
||||||
|
* Modified 1997-2013 by Guido Vollbeding.
|
||||||
|
* This file is part of the Independent JPEG Group's software.
|
||||||
|
* For conditions of distribution and use, see the accompanying README file.
|
||||||
|
*
|
||||||
|
* This file contains additional configuration options that customize the
|
||||||
|
* JPEG software for special applications or support machine-dependent
|
||||||
|
* optimizations. Most users will not need to touch this file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Define BITS_IN_JSAMPLE as either
|
||||||
|
* 8 for 8-bit sample values (the usual setting)
|
||||||
|
* 9 for 9-bit sample values
|
||||||
|
* 10 for 10-bit sample values
|
||||||
|
* 11 for 11-bit sample values
|
||||||
|
* 12 for 12-bit sample values
|
||||||
|
* Only 8, 9, 10, 11, and 12 bits sample data precision are supported for
|
||||||
|
* full-feature DCT processing. Further depths up to 16-bit may be added
|
||||||
|
* later for the lossless modes of operation.
|
||||||
|
* Run-time selection and conversion of data precision will be added later
|
||||||
|
* and are currently not supported, sorry.
|
||||||
|
* Exception: The transcoding part (jpegtran) supports all settings in a
|
||||||
|
* single instance, since it operates on the level of DCT coefficients and
|
||||||
|
* not sample values. The DCT coefficients are of the same type (16 bits)
|
||||||
|
* in all cases (see below).
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define BITS_IN_JSAMPLE 8 /* use 8, 9, 10, 11, or 12 */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Maximum number of components (color channels) allowed in JPEG image.
|
||||||
|
* To meet the letter of the JPEG spec, set this to 255. However, darn
|
||||||
|
* few applications need more than 4 channels (maybe 5 for CMYK + alpha
|
||||||
|
* mask). We recommend 10 as a reasonable compromise; use 4 if you are
|
||||||
|
* really short on memory. (Each allowed component costs a hundred or so
|
||||||
|
* bytes of storage, whether actually used in an image or not.)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define MAX_COMPONENTS 10 /* maximum number of image components */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Basic data types.
|
||||||
|
* You may need to change these if you have a machine with unusual data
|
||||||
|
* type sizes; for example, "char" not 8 bits, "short" not 16 bits,
|
||||||
|
* or "long" not 32 bits. We don't care whether "int" is 16 or 32 bits,
|
||||||
|
* but it had better be at least 16.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Representation of a single sample (pixel element value).
|
||||||
|
* We frequently allocate large arrays of these, so it's important to keep
|
||||||
|
* them small. But if you have memory to burn and access to char or short
|
||||||
|
* arrays is very slow on your hardware, you might want to change these.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if BITS_IN_JSAMPLE == 8
|
||||||
|
/* JSAMPLE should be the smallest type that will hold the values 0..255.
|
||||||
|
* You can use a signed char by having GETJSAMPLE mask it with 0xFF.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_UNSIGNED_CHAR
|
||||||
|
|
||||||
|
typedef unsigned char JSAMPLE;
|
||||||
|
#define GETJSAMPLE(value) ((int) (value))
|
||||||
|
|
||||||
|
#else /* not HAVE_UNSIGNED_CHAR */
|
||||||
|
|
||||||
|
typedef char JSAMPLE;
|
||||||
|
#ifdef CHAR_IS_UNSIGNED
|
||||||
|
#define GETJSAMPLE(value) ((int) (value))
|
||||||
|
#else
|
||||||
|
#define GETJSAMPLE(value) ((int) (value) & 0xFF)
|
||||||
|
#endif /* CHAR_IS_UNSIGNED */
|
||||||
|
|
||||||
|
#endif /* HAVE_UNSIGNED_CHAR */
|
||||||
|
|
||||||
|
#define MAXJSAMPLE 255
|
||||||
|
#define CENTERJSAMPLE 128
|
||||||
|
|
||||||
|
#endif /* BITS_IN_JSAMPLE == 8 */
|
||||||
|
|
||||||
|
|
||||||
|
#if BITS_IN_JSAMPLE == 9
|
||||||
|
/* JSAMPLE should be the smallest type that will hold the values 0..511.
|
||||||
|
* On nearly all machines "short" will do nicely.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef short JSAMPLE;
|
||||||
|
#define GETJSAMPLE(value) ((int) (value))
|
||||||
|
|
||||||
|
#define MAXJSAMPLE 511
|
||||||
|
#define CENTERJSAMPLE 256
|
||||||
|
|
||||||
|
#endif /* BITS_IN_JSAMPLE == 9 */
|
||||||
|
|
||||||
|
|
||||||
|
#if BITS_IN_JSAMPLE == 10
|
||||||
|
/* JSAMPLE should be the smallest type that will hold the values 0..1023.
|
||||||
|
* On nearly all machines "short" will do nicely.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef short JSAMPLE;
|
||||||
|
#define GETJSAMPLE(value) ((int) (value))
|
||||||
|
|
||||||
|
#define MAXJSAMPLE 1023
|
||||||
|
#define CENTERJSAMPLE 512
|
||||||
|
|
||||||
|
#endif /* BITS_IN_JSAMPLE == 10 */
|
||||||
|
|
||||||
|
|
||||||
|
#if BITS_IN_JSAMPLE == 11
|
||||||
|
/* JSAMPLE should be the smallest type that will hold the values 0..2047.
|
||||||
|
* On nearly all machines "short" will do nicely.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef short JSAMPLE;
|
||||||
|
#define GETJSAMPLE(value) ((int) (value))
|
||||||
|
|
||||||
|
#define MAXJSAMPLE 2047
|
||||||
|
#define CENTERJSAMPLE 1024
|
||||||
|
|
||||||
|
#endif /* BITS_IN_JSAMPLE == 11 */
|
||||||
|
|
||||||
|
|
||||||
|
#if BITS_IN_JSAMPLE == 12
|
||||||
|
/* JSAMPLE should be the smallest type that will hold the values 0..4095.
|
||||||
|
* On nearly all machines "short" will do nicely.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef short JSAMPLE;
|
||||||
|
#define GETJSAMPLE(value) ((int) (value))
|
||||||
|
|
||||||
|
#define MAXJSAMPLE 4095
|
||||||
|
#define CENTERJSAMPLE 2048
|
||||||
|
|
||||||
|
#endif /* BITS_IN_JSAMPLE == 12 */
|
||||||
|
|
||||||
|
|
||||||
|
/* Representation of a DCT frequency coefficient.
|
||||||
|
* This should be a signed value of at least 16 bits; "short" is usually OK.
|
||||||
|
* Again, we allocate large arrays of these, but you can change to int
|
||||||
|
* if you have memory to burn and "short" is really slow.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef short JCOEF;
|
||||||
|
|
||||||
|
|
||||||
|
/* Compressed datastreams are represented as arrays of JOCTET.
|
||||||
|
* These must be EXACTLY 8 bits wide, at least once they are written to
|
||||||
|
* external storage. Note that when using the stdio data source/destination
|
||||||
|
* managers, this is also the data type passed to fread/fwrite.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_UNSIGNED_CHAR
|
||||||
|
|
||||||
|
typedef unsigned char JOCTET;
|
||||||
|
#define GETJOCTET(value) (value)
|
||||||
|
|
||||||
|
#else /* not HAVE_UNSIGNED_CHAR */
|
||||||
|
|
||||||
|
typedef char JOCTET;
|
||||||
|
#ifdef CHAR_IS_UNSIGNED
|
||||||
|
#define GETJOCTET(value) (value)
|
||||||
|
#else
|
||||||
|
#define GETJOCTET(value) ((value) & 0xFF)
|
||||||
|
#endif /* CHAR_IS_UNSIGNED */
|
||||||
|
|
||||||
|
#endif /* HAVE_UNSIGNED_CHAR */
|
||||||
|
|
||||||
|
|
||||||
|
/* These typedefs are used for various table entries and so forth.
|
||||||
|
* They must be at least as wide as specified; but making them too big
|
||||||
|
* won't cost a huge amount of memory, so we don't provide special
|
||||||
|
* extraction code like we did for JSAMPLE. (In other words, these
|
||||||
|
* typedefs live at a different point on the speed/space tradeoff curve.)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* UINT8 must hold at least the values 0..255. */
|
||||||
|
|
||||||
|
#ifdef HAVE_UNSIGNED_CHAR
|
||||||
|
typedef unsigned char UINT8;
|
||||||
|
#else /* not HAVE_UNSIGNED_CHAR */
|
||||||
|
#ifdef CHAR_IS_UNSIGNED
|
||||||
|
typedef char UINT8;
|
||||||
|
#else /* not CHAR_IS_UNSIGNED */
|
||||||
|
typedef short UINT8;
|
||||||
|
#endif /* CHAR_IS_UNSIGNED */
|
||||||
|
#endif /* HAVE_UNSIGNED_CHAR */
|
||||||
|
|
||||||
|
/* UINT16 must hold at least the values 0..65535. */
|
||||||
|
|
||||||
|
#ifdef HAVE_UNSIGNED_SHORT
|
||||||
|
typedef unsigned short UINT16;
|
||||||
|
#else /* not HAVE_UNSIGNED_SHORT */
|
||||||
|
typedef unsigned int UINT16;
|
||||||
|
#endif /* HAVE_UNSIGNED_SHORT */
|
||||||
|
|
||||||
|
/* INT16 must hold at least the values -32768..32767. */
|
||||||
|
|
||||||
|
#ifndef XMD_H /* X11/xmd.h correctly defines INT16 */
|
||||||
|
typedef short INT16;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* INT32 must hold at least signed 32-bit values. */
|
||||||
|
|
||||||
|
#ifndef XMD_H /* X11/xmd.h correctly defines INT32 */
|
||||||
|
#ifndef _BASETSD_H_ /* Microsoft defines it in basetsd.h */
|
||||||
|
#ifndef _BASETSD_H /* MinGW is slightly different */
|
||||||
|
#ifndef QGLOBAL_H /* Qt defines it in qglobal.h */
|
||||||
|
typedef long INT32;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Datatype used for image dimensions. The JPEG standard only supports
|
||||||
|
* images up to 64K*64K due to 16-bit fields in SOF markers. Therefore
|
||||||
|
* "unsigned int" is sufficient on all machines. However, if you need to
|
||||||
|
* handle larger images and you don't mind deviating from the spec, you
|
||||||
|
* can change this datatype.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef unsigned int JDIMENSION;
|
||||||
|
|
||||||
|
#define JPEG_MAX_DIMENSION 65500L /* a tad under 64K to prevent overflows */
|
||||||
|
|
||||||
|
|
||||||
|
/* These macros are used in all function definitions and extern declarations.
|
||||||
|
* You could modify them if you need to change function linkage conventions;
|
||||||
|
* in particular, you'll need to do that to make the library a Windows DLL.
|
||||||
|
* Another application is to make all functions global for use with debuggers
|
||||||
|
* or code profilers that require it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* a function called through method pointers: */
|
||||||
|
#define METHODDEF(type) static type
|
||||||
|
/* a function used only in its module: */
|
||||||
|
#define LOCAL(type) static type
|
||||||
|
/* a function referenced thru EXTERNs: */
|
||||||
|
#define GLOBAL(type) type
|
||||||
|
/* a reference to a GLOBAL function: */
|
||||||
|
#define EXTERN(type) extern type
|
||||||
|
|
||||||
|
|
||||||
|
/* This macro is used to declare a "method", that is, a function pointer.
|
||||||
|
* We want to supply prototype parameters if the compiler can cope.
|
||||||
|
* Note that the arglist parameter must be parenthesized!
|
||||||
|
* Again, you can customize this if you need special linkage keywords.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_PROTOTYPES
|
||||||
|
#define JMETHOD(type,methodname,arglist) type (*methodname) arglist
|
||||||
|
#else
|
||||||
|
#define JMETHOD(type,methodname,arglist) type (*methodname) ()
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* The noreturn type identifier is used to declare functions
|
||||||
|
* which cannot return.
|
||||||
|
* Compilers can thus create more optimized code and perform
|
||||||
|
* better checks for warnings and errors.
|
||||||
|
* Static analyzer tools can make improved inferences about
|
||||||
|
* execution paths and are prevented from giving false alerts.
|
||||||
|
*
|
||||||
|
* Unfortunately, the proposed specifications of corresponding
|
||||||
|
* extensions in the Dec 2011 ISO C standard revision (C11),
|
||||||
|
* GCC, MSVC, etc. are not viable.
|
||||||
|
* Thus we introduce a user defined type to declare noreturn
|
||||||
|
* functions at least for clarity. A proper compiler would
|
||||||
|
* have a suitable noreturn type to match in place of void.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef HAVE_NORETURN_T
|
||||||
|
typedef void noreturn_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Here is the pseudo-keyword for declaring pointers that must be "far"
|
||||||
|
* on 80x86 machines. Most of the specialized coding for 80x86 is handled
|
||||||
|
* by just saying "FAR *" where such a pointer is needed. In a few places
|
||||||
|
* explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef FAR
|
||||||
|
#ifdef NEED_FAR_POINTERS
|
||||||
|
#define FAR far
|
||||||
|
#else
|
||||||
|
#define FAR
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* On a few systems, type boolean and/or its values FALSE, TRUE may appear
|
||||||
|
* in standard header files. Or you may have conflicts with application-
|
||||||
|
* specific header files that you want to include together with these files.
|
||||||
|
* Defining HAVE_BOOLEAN before including jpeglib.h should make it work.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef HAVE_BOOLEAN
|
||||||
|
#if defined FALSE || defined TRUE || defined QGLOBAL_H
|
||||||
|
/* Qt3 defines FALSE and TRUE as "const" variables in qglobal.h */
|
||||||
|
typedef int boolean;
|
||||||
|
#ifndef FALSE /* in case these macros already exist */
|
||||||
|
#define FALSE 0 /* values of boolean */
|
||||||
|
#endif
|
||||||
|
#ifndef TRUE
|
||||||
|
#define TRUE 1
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
typedef enum { FALSE = 0, TRUE = 1 } boolean;
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#ifndef FALSE /* in case these macros already exist */
|
||||||
|
#define FALSE 0 /* values of boolean */
|
||||||
|
#endif
|
||||||
|
#ifndef TRUE
|
||||||
|
#define TRUE 1
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The remaining options affect code selection within the JPEG library,
|
||||||
|
* but they don't need to be visible to most applications using the library.
|
||||||
|
* To minimize application namespace pollution, the symbols won't be
|
||||||
|
* defined unless JPEG_INTERNALS or JPEG_INTERNAL_OPTIONS has been defined.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef JPEG_INTERNALS
|
||||||
|
#define JPEG_INTERNAL_OPTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef JPEG_INTERNAL_OPTIONS
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These defines indicate whether to include various optional functions.
|
||||||
|
* Undefining some of these symbols will produce a smaller but less capable
|
||||||
|
* library. Note that you can leave certain source files out of the
|
||||||
|
* compilation/linking process if you've #undef'd the corresponding symbols.
|
||||||
|
* (You may HAVE to do that if your compiler doesn't like null source files.)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Capability options common to encoder and decoder: */
|
||||||
|
|
||||||
|
#define DCT_ISLOW_SUPPORTED /* slow but accurate integer algorithm */
|
||||||
|
#define DCT_IFAST_SUPPORTED /* faster, less accurate integer method */
|
||||||
|
#define DCT_FLOAT_SUPPORTED /* floating-point: accurate, fast on fast HW */
|
||||||
|
|
||||||
|
/* Encoder capability options: */
|
||||||
|
|
||||||
|
#define C_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */
|
||||||
|
#define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
|
||||||
|
#define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/
|
||||||
|
#define DCT_SCALING_SUPPORTED /* Input rescaling via DCT? (Requires DCT_ISLOW)*/
|
||||||
|
#define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? */
|
||||||
|
/* Note: if you selected more than 8-bit data precision, it is dangerous to
|
||||||
|
* turn off ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only
|
||||||
|
* good for 8-bit precision, so arithmetic coding is recommended for higher
|
||||||
|
* precision. The Huffman encoder normally uses entropy optimization to
|
||||||
|
* compute usable tables for higher precision. Otherwise, you'll have to
|
||||||
|
* supply different default Huffman tables.
|
||||||
|
* The exact same statements apply for progressive JPEG: the default tables
|
||||||
|
* don't work for progressive mode. (This may get fixed, however.)
|
||||||
|
*/
|
||||||
|
#define INPUT_SMOOTHING_SUPPORTED /* Input image smoothing option? */
|
||||||
|
|
||||||
|
/* Decoder capability options: */
|
||||||
|
|
||||||
|
#define D_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */
|
||||||
|
#define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
|
||||||
|
#define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/
|
||||||
|
#define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? (Requires DCT_ISLOW)*/
|
||||||
|
#define SAVE_MARKERS_SUPPORTED /* jpeg_save_markers() needed? */
|
||||||
|
#define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */
|
||||||
|
#undef UPSAMPLE_SCALING_SUPPORTED /* Output rescaling at upsample stage? */
|
||||||
|
#define UPSAMPLE_MERGING_SUPPORTED /* Fast path for sloppy upsampling? */
|
||||||
|
#define QUANT_1PASS_SUPPORTED /* 1-pass color quantization? */
|
||||||
|
#define QUANT_2PASS_SUPPORTED /* 2-pass color quantization? */
|
||||||
|
|
||||||
|
/* more capability options later, no doubt */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Ordering of RGB data in scanlines passed to or from the application.
|
||||||
|
* If your application wants to deal with data in the order B,G,R, just
|
||||||
|
* change these macros. You can also deal with formats such as R,G,B,X
|
||||||
|
* (one extra byte per pixel) by changing RGB_PIXELSIZE. Note that changing
|
||||||
|
* the offsets will also change the order in which colormap data is organized.
|
||||||
|
* RESTRICTIONS:
|
||||||
|
* 1. The sample applications cjpeg,djpeg do NOT support modified RGB formats.
|
||||||
|
* 2. The color quantizer modules will not behave desirably if RGB_PIXELSIZE
|
||||||
|
* is not 3 (they don't understand about dummy color components!). So you
|
||||||
|
* can't use color quantization if you change that value.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define RGB_RED 0 /* Offset of Red in an RGB scanline element */
|
||||||
|
#define RGB_GREEN 1 /* Offset of Green */
|
||||||
|
#define RGB_BLUE 2 /* Offset of Blue */
|
||||||
|
#define RGB_PIXELSIZE 3 /* JSAMPLEs per RGB scanline element */
|
||||||
|
|
||||||
|
|
||||||
|
/* Definitions for speed-related optimizations. */
|
||||||
|
|
||||||
|
|
||||||
|
/* If your compiler supports inline functions, define INLINE
|
||||||
|
* as the inline keyword; otherwise define it as empty.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef INLINE
|
||||||
|
#ifdef __GNUC__ /* for instance, GNU C knows about inline */
|
||||||
|
#define INLINE __inline__
|
||||||
|
#endif
|
||||||
|
#ifndef INLINE
|
||||||
|
#define INLINE /* default is to define it as empty */
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* On some machines (notably 68000 series) "int" is 32 bits, but multiplying
|
||||||
|
* two 16-bit shorts is faster than multiplying two ints. Define MULTIPLIER
|
||||||
|
* as short on such a machine. MULTIPLIER must be at least 16 bits wide.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MULTIPLIER
|
||||||
|
#define MULTIPLIER int /* type for fastest integer multiply */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* FAST_FLOAT should be either float or double, whichever is done faster
|
||||||
|
* by your compiler. (Note that this type is only used in the floating point
|
||||||
|
* DCT routines, so it only matters if you've defined DCT_FLOAT_SUPPORTED.)
|
||||||
|
* Typically, float is faster in ANSI C compilers, while double is faster in
|
||||||
|
* pre-ANSI compilers (because they insist on converting to double anyway).
|
||||||
|
* The code below therefore chooses float if we have ANSI-style prototypes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef FAST_FLOAT
|
||||||
|
#ifdef HAVE_PROTOTYPES
|
||||||
|
#define FAST_FLOAT float
|
||||||
|
#else
|
||||||
|
#define FAST_FLOAT double
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* JPEG_INTERNAL_OPTIONS */
|
||||||
1180
dependency/nnsdk/include/jpeg/jpeglib.h
Executable file
1180
dependency/nnsdk/include/jpeg/jpeglib.h
Executable file
File diff suppressed because it is too large
Load diff
1103
dependency/nnsdk/include/nn_sdk.h
Executable file
1103
dependency/nnsdk/include/nn_sdk.h
Executable file
File diff suppressed because it is too large
Load diff
187
dependency/nnsdk/include/postprocess/postprocess.h
Executable file
187
dependency/nnsdk/include/postprocess/postprocess.h
Executable file
|
|
@ -0,0 +1,187 @@
|
||||||
|
#ifndef POSTPROCESS_H
|
||||||
|
#define POSTPROCESS_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include "nn_sdk.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct __box
|
||||||
|
{
|
||||||
|
float x;
|
||||||
|
float y;
|
||||||
|
float w;
|
||||||
|
float h;
|
||||||
|
float score;
|
||||||
|
float objectClass;
|
||||||
|
}detBox;
|
||||||
|
|
||||||
|
typedef struct __point
|
||||||
|
{
|
||||||
|
float x;
|
||||||
|
float y;
|
||||||
|
}point_t;
|
||||||
|
|
||||||
|
typedef struct{
|
||||||
|
int index;
|
||||||
|
int classId;
|
||||||
|
float **probs;
|
||||||
|
} sortable_bbox;
|
||||||
|
|
||||||
|
typedef struct{
|
||||||
|
float x, y;
|
||||||
|
} landmark;
|
||||||
|
|
||||||
|
typedef struct{
|
||||||
|
float x, y, w, h, prob_obj;
|
||||||
|
} box;
|
||||||
|
|
||||||
|
typedef struct plate_box_{
|
||||||
|
float x, y, w, h;
|
||||||
|
}plate_box;
|
||||||
|
|
||||||
|
typedef struct{
|
||||||
|
int index;
|
||||||
|
int classId;
|
||||||
|
float probs; //**probs to probs
|
||||||
|
} sortable_bbox_plate;
|
||||||
|
|
||||||
|
/*=================================================
|
||||||
|
output of aml_module_t type:IMAGE_CLASSIFY
|
||||||
|
score: top 5 class confidence
|
||||||
|
top: the class of top 5
|
||||||
|
=================================================*/
|
||||||
|
typedef struct __nn_image_classify
|
||||||
|
{
|
||||||
|
float score[5];
|
||||||
|
unsigned int topClass[5];
|
||||||
|
}img_classify_out_t;
|
||||||
|
|
||||||
|
/*=================================================
|
||||||
|
output of aml_module_t type:OBJECT_DETECT
|
||||||
|
detNum: the number of object detect
|
||||||
|
pBox: the object info detect
|
||||||
|
=================================================*/
|
||||||
|
typedef struct __nn_obj_detect
|
||||||
|
{
|
||||||
|
unsigned int detNum;
|
||||||
|
detBox *pBox;
|
||||||
|
}obj_detect_out_t;
|
||||||
|
|
||||||
|
/*=================================================
|
||||||
|
output of aml_module_t type:FACE_DETECTION
|
||||||
|
detNum: the number of face detect
|
||||||
|
pBox: the face info detect
|
||||||
|
=================================================*/
|
||||||
|
typedef struct __nn_face_detect
|
||||||
|
{
|
||||||
|
unsigned int detNum;
|
||||||
|
detBox pBox[MAX_DETECT_NUM];
|
||||||
|
}face_detect_out_t;
|
||||||
|
|
||||||
|
/*=================================================
|
||||||
|
output of aml_module_t type:FACE_LANDMARK_5
|
||||||
|
pos value:
|
||||||
|
0:left-eye,
|
||||||
|
1:right-eye,
|
||||||
|
2:nose,
|
||||||
|
3:left-mouth,
|
||||||
|
4:right-mouth
|
||||||
|
=================================================*/
|
||||||
|
typedef struct __nn_face_landmark_5
|
||||||
|
{
|
||||||
|
unsigned int detNum;
|
||||||
|
detBox facebox[MAX_DETECT_NUM];
|
||||||
|
point_t pos[MAX_DETECT_NUM][5];
|
||||||
|
}face_landmark5_out_t;
|
||||||
|
|
||||||
|
/*=================================================
|
||||||
|
output of aml_module_t type:FACE_RECOGNIZE
|
||||||
|
faceVector: the vector generate by input face,
|
||||||
|
can recognized by this vector
|
||||||
|
=================================================*/
|
||||||
|
typedef struct __nn_face_recognize
|
||||||
|
{
|
||||||
|
float faceVector[512];
|
||||||
|
}face_recognize_out_t;
|
||||||
|
|
||||||
|
/*=================================================
|
||||||
|
output of aml_module_t type:YOLO_V3
|
||||||
|
detNum: the number of object detect
|
||||||
|
pBox: the object info detect
|
||||||
|
=================================================*/
|
||||||
|
typedef struct __nn_yolov3
|
||||||
|
{
|
||||||
|
unsigned int detNum;
|
||||||
|
detBox *pBox;
|
||||||
|
}yolov3_out_t;
|
||||||
|
|
||||||
|
/*=================================================
|
||||||
|
output of aml_module_t type:YOLO_V5
|
||||||
|
detNum: the number of object detect
|
||||||
|
pBox: the object info detect
|
||||||
|
=================================================*/
|
||||||
|
typedef struct __nn_yolov5
|
||||||
|
{
|
||||||
|
unsigned int detNum;
|
||||||
|
detBox *pBox;
|
||||||
|
}yolov5_out_t;
|
||||||
|
|
||||||
|
/*=================================================
|
||||||
|
output of aml_module_t type:HEAD_DETECTION
|
||||||
|
the return value are detect region for these type.
|
||||||
|
=================================================*/
|
||||||
|
typedef struct __nn_head_detect
|
||||||
|
{
|
||||||
|
obj_detect_out_t headOut;
|
||||||
|
}head_det_out_t;
|
||||||
|
|
||||||
|
/*=================================================
|
||||||
|
output of aml_module_t type:PERSON_DETECT
|
||||||
|
detNum: the number of person detect
|
||||||
|
pBox: the person info detect
|
||||||
|
=================================================*/
|
||||||
|
typedef struct __nn_person_detect
|
||||||
|
{
|
||||||
|
unsigned int detNum;
|
||||||
|
detBox pBox[MAX_DETECT_NUM];
|
||||||
|
}person_detect_out_t;
|
||||||
|
|
||||||
|
typedef struct __nn_plate_detect
|
||||||
|
{
|
||||||
|
unsigned int detNum;
|
||||||
|
float score;
|
||||||
|
detBox pBox[MAX_DETECT_NUM];
|
||||||
|
point_t pos[MAX_DETECT_NUM][4];
|
||||||
|
}plate_det_out_t;
|
||||||
|
|
||||||
|
|
||||||
|
void* process_top5_f32(float *buf, unsigned int num);
|
||||||
|
void* process_top5_i8(int8_t *buf, unsigned int num);
|
||||||
|
void* process_top5_u8(uint8_t *buf, unsigned int num);
|
||||||
|
void process_top5_i8_sta_top15(int8_t *buf,int num, int zeroPoint, float scale, unsigned int label, int *top1_ture, int *top5_ture);
|
||||||
|
|
||||||
|
void* postprocess_object_detect(nn_output *pout);
|
||||||
|
void* postprocess_yolov3(nn_output *pout);
|
||||||
|
void *postprocess_yolov3_dequant(nn_output *pout);
|
||||||
|
void* postprocess_yolov5s(nn_output *pout);
|
||||||
|
void* postprocess_yolov5s_dequant(nn_output *pout);
|
||||||
|
|
||||||
|
void* postprocess_faceland5(nn_output *pout);
|
||||||
|
void* postprocess_faceland5_dequant(nn_output *pout);
|
||||||
|
|
||||||
|
void* postprocess_headdet(nn_output *pout);
|
||||||
|
|
||||||
|
void* postprocess_person_detect(nn_output *pout);
|
||||||
|
|
||||||
|
void* postprocess_plate_detect(nn_output *pout);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} //extern "C"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // POSTPROCESS_H
|
||||||
22
dependency/nnsdk/include/utils/utils.h
Executable file
22
dependency/nnsdk/include/utils/utils.h
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
#ifndef UTILS_H
|
||||||
|
#define UTILS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
unsigned char *get_jpeg_rawData(const char *name,unsigned int width,unsigned int height);
|
||||||
|
void *read_file(const char *file_path, int *file_size);
|
||||||
|
int find_max_index(float *buf, unsigned int length);
|
||||||
|
void save_file(void * buffer, const char *file_path, unsigned int file_size);
|
||||||
|
double cosine_similarity(char *file1, char *file2, int file_size);
|
||||||
|
int bmp_read(const char *filename, int *nRGB, int *xsize, int *ysize);
|
||||||
|
void data_to_fp32(float *new_buffer, unsigned char *old_buffer, int sz, float scale, int zero_point, int type);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} //extern "C"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // UTILS_H
|
||||||
BIN
dependency/nnsdk/lib/android/arm64-v8a/libjpeg.so
Executable file
BIN
dependency/nnsdk/lib/android/arm64-v8a/libjpeg.so
Executable file
Binary file not shown.
BIN
dependency/nnsdk/lib/android/arm64-v8a/libjpeg_t.so
Executable file
BIN
dependency/nnsdk/lib/android/arm64-v8a/libjpeg_t.so
Executable file
Binary file not shown.
BIN
dependency/nnsdk/lib/android/arm64-v8a/libnnsdk.so
Executable file
BIN
dependency/nnsdk/lib/android/arm64-v8a/libnnsdk.so
Executable file
Binary file not shown.
BIN
dependency/nnsdk/lib/android/arm64-v8a/libsentencepiece.a
Executable file
BIN
dependency/nnsdk/lib/android/arm64-v8a/libsentencepiece.a
Executable file
Binary file not shown.
BIN
dependency/nnsdk/lib/android/arm64-v8a/libsentencepiece_bak.so
Executable file
BIN
dependency/nnsdk/lib/android/arm64-v8a/libsentencepiece_bak.so
Executable file
Binary file not shown.
BIN
dependency/nnsdk/lib/android/armeabi-v7a/libjpeg.so
Executable file
BIN
dependency/nnsdk/lib/android/armeabi-v7a/libjpeg.so
Executable file
Binary file not shown.
BIN
dependency/nnsdk/lib/android/armeabi-v7a/libjpeg_t.so
Executable file
BIN
dependency/nnsdk/lib/android/armeabi-v7a/libjpeg_t.so
Executable file
Binary file not shown.
BIN
dependency/nnsdk/lib/android/armeabi-v7a/libnnsdk.so
Executable file
BIN
dependency/nnsdk/lib/android/armeabi-v7a/libnnsdk.so
Executable file
Binary file not shown.
BIN
dependency/nnsdk/lib/android/armeabi-v7a/libsentencepiece.a
Executable file
BIN
dependency/nnsdk/lib/android/armeabi-v7a/libsentencepiece.a
Executable file
Binary file not shown.
25
dependency/opencv/opencv-android-sdk-build/apk/readme.txt
Executable file
25
dependency/opencv/opencv-android-sdk-build/apk/readme.txt
Executable file
|
|
@ -0,0 +1,25 @@
|
||||||
|
How to select the proper version of OpenCV Manager
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
Since version 1.7 several packages of OpenCV Manager are built. Every package is targeted for some
|
||||||
|
specific hardware platform and includes corresponding OpenCV binaries. So, in all cases OpenCV
|
||||||
|
Manager uses built-in version of OpenCV. The new package selection logic in most cases simplifies
|
||||||
|
OpenCV installation on end user devices. In most cases OpenCV Manager may be installed automatically
|
||||||
|
from Google Play.
|
||||||
|
|
||||||
|
If Google Play is not available (i.e. on emulator, developer board, etc), you can install it
|
||||||
|
manually using adb tool:
|
||||||
|
|
||||||
|
adb install <path-to-OpenCV-sdk>/apk/OpenCV_<version>_Manager_<app_version>_<platform>.apk
|
||||||
|
|
||||||
|
Example: OpenCV_3.4.5-dev_Manager_3.45_armeabi-v7a.apk
|
||||||
|
|
||||||
|
Use the list of platforms below to determine proper OpenCV Manager package for your device:
|
||||||
|
|
||||||
|
- armeabi (ARMv5, ARMv6)
|
||||||
|
- armeabi-v7a (ARMv7-A + NEON)
|
||||||
|
- arm64-v8a
|
||||||
|
- mips
|
||||||
|
- mips64
|
||||||
|
- x86
|
||||||
|
- x86_64
|
||||||
12213
dependency/opencv/opencv-android-sdk-build/sdk/etc/haarcascades/haarcascade_eye.xml
Executable file
12213
dependency/opencv/opencv-android-sdk-build/sdk/etc/haarcascades/haarcascade_eye.xml
Executable file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
17030
dependency/opencv/opencv-android-sdk-build/sdk/etc/haarcascades/haarcascade_fullbody.xml
Executable file
17030
dependency/opencv/opencv-android-sdk-build/sdk/etc/haarcascades/haarcascade_fullbody.xml
Executable file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,36 @@
|
||||||
|
|
||||||
|
License for Berkeley SoftFloat Release 3c
|
||||||
|
|
||||||
|
John R. Hauser
|
||||||
|
2017 February 10
|
||||||
|
|
||||||
|
The following applies to the whole of SoftFloat Release 3c as well as to
|
||||||
|
each source file individually.
|
||||||
|
|
||||||
|
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
|
||||||
|
University of California. All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions, and the following disclaimer.
|
||||||
|
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions, and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
3. Neither the name of the University nor the names of its contributors
|
||||||
|
may be used to endorse or promote products derived from this software
|
||||||
|
without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
|
||||||
|
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||||
|
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
Copyright (C) 2016 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
The Android NDK provides a small library named cpufeatures that your app can use at runtime to detect the target device's CPU family and the optional features it supports.
|
||||||
|
It is designed to work as-is on all official Android platform versions.
|
||||||
|
|
||||||
|
https://developer.android.com/ndk/guides/cpu-features.html
|
||||||
51
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/jasper-LICENSE
Executable file
51
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/jasper-LICENSE
Executable file
|
|
@ -0,0 +1,51 @@
|
||||||
|
JasPer License Version 2.0
|
||||||
|
|
||||||
|
Copyright (c) 2001-2006 Michael David Adams
|
||||||
|
Copyright (c) 1999-2000 Image Power, Inc.
|
||||||
|
Copyright (c) 1999-2000 The University of British Columbia
|
||||||
|
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person (the
|
||||||
|
"User") obtaining a copy of this software and associated documentation
|
||||||
|
files (the "Software"), to deal in the Software without restriction,
|
||||||
|
including without limitation the rights to use, copy, modify, merge,
|
||||||
|
publish, distribute, and/or sell copies of the Software, and to permit
|
||||||
|
persons to whom the Software is furnished to do so, subject to the
|
||||||
|
following conditions:
|
||||||
|
|
||||||
|
1. The above copyright notices and this permission notice (which
|
||||||
|
includes the disclaimer below) shall be included in all copies or
|
||||||
|
substantial portions of the Software.
|
||||||
|
|
||||||
|
2. The name of a copyright holder shall not be used to endorse or
|
||||||
|
promote products derived from the Software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
|
||||||
|
LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
|
||||||
|
THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS
|
||||||
|
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||||
|
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO
|
||||||
|
EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
|
||||||
|
INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
|
||||||
|
FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||||
|
WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE
|
||||||
|
PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE
|
||||||
|
THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY.
|
||||||
|
EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS
|
||||||
|
BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL
|
||||||
|
PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS
|
||||||
|
GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE
|
||||||
|
ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE
|
||||||
|
IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL
|
||||||
|
SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES,
|
||||||
|
AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL
|
||||||
|
SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH
|
||||||
|
THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH,
|
||||||
|
PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH
|
||||||
|
RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY
|
||||||
|
EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES.
|
||||||
|
|
||||||
22
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/jasper-README
Executable file
22
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/jasper-README
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
JasPer Readme
|
||||||
|
*************
|
||||||
|
|
||||||
|
This is the source code distribution for JasPer. JasPer is a collection
|
||||||
|
of software (i.e., a library and application programs) for the coding
|
||||||
|
and manipulation of images. This software can handle image data in a
|
||||||
|
variety of formats. One such format supported by JasPer is the JPEG-2000
|
||||||
|
format defined in ISO/IEC 15444-1.
|
||||||
|
|
||||||
|
The complete licensing terms for the JasPer software can be found in
|
||||||
|
the file named "LICENSE" in the top level directory of this software
|
||||||
|
distribution. Any use of this software contrary to the terms of the
|
||||||
|
license is strictly prohibited. The changes made to the software
|
||||||
|
since the last release are described in the file "NEWS". Detailed
|
||||||
|
documentation on the JasPer software can be found in the JasPer Software
|
||||||
|
Reference Manual. This manual is located in the "doc" directory, and
|
||||||
|
includes useful information such as: 1) how to build, install, and use
|
||||||
|
the software, 2) how to submit report bugs, and 3) where to find
|
||||||
|
additional information about the software.
|
||||||
|
|
||||||
|
Enjoy! :)
|
||||||
|
|
||||||
62
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/jasper-copyright
Executable file
62
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/jasper-copyright
Executable file
|
|
@ -0,0 +1,62 @@
|
||||||
|
This package was debianized by Christopher L Cheney <ccheney@debian.org> on
|
||||||
|
Fri, 22 Aug 2003 01:33:34 -0500.
|
||||||
|
|
||||||
|
The current maintainer is Roland Stigge <stigge@antcom.de>
|
||||||
|
|
||||||
|
It was downloaded from http://www.ece.uvic.ca/~mdadams/jasper/
|
||||||
|
|
||||||
|
Upstream Author: Michael Adams <mdadams@ece.uvic.ca>
|
||||||
|
|
||||||
|
License:
|
||||||
|
|
||||||
|
JasPer License Version 2.0
|
||||||
|
|
||||||
|
Copyright (c) 1999-2000 Image Power, Inc.
|
||||||
|
Copyright (c) 1999-2000 The University of British Columbia
|
||||||
|
Copyright (c) 2001-2003 Michael David Adams
|
||||||
|
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person (the
|
||||||
|
"User") obtaining a copy of this software and associated documentation
|
||||||
|
files (the "Software"), to deal in the Software without restriction,
|
||||||
|
including without limitation the rights to use, copy, modify, merge,
|
||||||
|
publish, distribute, and/or sell copies of the Software, and to permit
|
||||||
|
persons to whom the Software is furnished to do so, subject to the
|
||||||
|
following conditions:
|
||||||
|
|
||||||
|
1. The above copyright notices and this permission notice (which
|
||||||
|
includes the disclaimer below) shall be included in all copies or
|
||||||
|
substantial portions of the Software.
|
||||||
|
|
||||||
|
2. The name of a copyright holder shall not be used to endorse or
|
||||||
|
promote products derived from the Software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
|
||||||
|
LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
|
||||||
|
THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS
|
||||||
|
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||||
|
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO
|
||||||
|
EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
|
||||||
|
INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
|
||||||
|
FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||||
|
WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE
|
||||||
|
PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE
|
||||||
|
THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY.
|
||||||
|
EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS
|
||||||
|
BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL
|
||||||
|
PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS
|
||||||
|
GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE
|
||||||
|
ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE
|
||||||
|
IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL
|
||||||
|
SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES,
|
||||||
|
AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL
|
||||||
|
SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH
|
||||||
|
THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH,
|
||||||
|
PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH
|
||||||
|
RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY
|
||||||
|
EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES.
|
||||||
|
|
||||||
|
|
@ -0,0 +1,139 @@
|
||||||
|
libjpeg-turbo Licenses
|
||||||
|
======================
|
||||||
|
|
||||||
|
libjpeg-turbo is covered by three compatible BSD-style open source licenses:
|
||||||
|
|
||||||
|
- The IJG (Independent JPEG Group) License, which is listed in
|
||||||
|
[README.ijg](README.ijg)
|
||||||
|
|
||||||
|
This license applies to the libjpeg API library and associated programs
|
||||||
|
(any code inherited from libjpeg, and any modifications to that code.)
|
||||||
|
|
||||||
|
- The Modified (3-clause) BSD License, which is listed below
|
||||||
|
|
||||||
|
This license covers the TurboJPEG API library and associated programs.
|
||||||
|
|
||||||
|
- The zlib License, which is listed below
|
||||||
|
|
||||||
|
This license is a subset of the other two, and it covers the libjpeg-turbo
|
||||||
|
SIMD extensions.
|
||||||
|
|
||||||
|
|
||||||
|
Complying with the libjpeg-turbo Licenses
|
||||||
|
=========================================
|
||||||
|
|
||||||
|
This section provides a roll-up of the libjpeg-turbo licensing terms, to the
|
||||||
|
best of our understanding.
|
||||||
|
|
||||||
|
1. If you are distributing a modified version of the libjpeg-turbo source,
|
||||||
|
then:
|
||||||
|
|
||||||
|
1. You cannot alter or remove any existing copyright or license notices
|
||||||
|
from the source.
|
||||||
|
|
||||||
|
**Origin**
|
||||||
|
- Clause 1 of the IJG License
|
||||||
|
- Clause 1 of the Modified BSD License
|
||||||
|
- Clauses 1 and 3 of the zlib License
|
||||||
|
|
||||||
|
2. You must add your own copyright notice to the header of each source
|
||||||
|
file you modified, so others can tell that you modified that file (if
|
||||||
|
there is not an existing copyright header in that file, then you can
|
||||||
|
simply add a notice stating that you modified the file.)
|
||||||
|
|
||||||
|
**Origin**
|
||||||
|
- Clause 1 of the IJG License
|
||||||
|
- Clause 2 of the zlib License
|
||||||
|
|
||||||
|
3. You must include the IJG README file, and you must not alter any of the
|
||||||
|
copyright or license text in that file.
|
||||||
|
|
||||||
|
**Origin**
|
||||||
|
- Clause 1 of the IJG License
|
||||||
|
|
||||||
|
2. If you are distributing only libjpeg-turbo binaries without the source, or
|
||||||
|
if you are distributing an application that statically links with
|
||||||
|
libjpeg-turbo, then:
|
||||||
|
|
||||||
|
1. Your product documentation must include a message stating:
|
||||||
|
|
||||||
|
This software is based in part on the work of the Independent JPEG
|
||||||
|
Group.
|
||||||
|
|
||||||
|
**Origin**
|
||||||
|
- Clause 2 of the IJG license
|
||||||
|
|
||||||
|
2. If your binary distribution includes or uses the TurboJPEG API, then
|
||||||
|
your product documentation must include the text of the Modified BSD
|
||||||
|
License.
|
||||||
|
|
||||||
|
**Origin**
|
||||||
|
- Clause 2 of the Modified BSD License
|
||||||
|
|
||||||
|
3. You cannot use the name of the IJG or The libjpeg-turbo Project or the
|
||||||
|
contributors thereof in advertising, publicity, etc.
|
||||||
|
|
||||||
|
**Origin**
|
||||||
|
- IJG License
|
||||||
|
- Clause 3 of the Modified BSD License
|
||||||
|
|
||||||
|
4. The IJG and The libjpeg-turbo Project do not warrant libjpeg-turbo to be
|
||||||
|
free of defects, nor do we accept any liability for undesirable
|
||||||
|
consequences resulting from your use of the software.
|
||||||
|
|
||||||
|
**Origin**
|
||||||
|
- IJG License
|
||||||
|
- Modified BSD License
|
||||||
|
- zlib License
|
||||||
|
|
||||||
|
|
||||||
|
The Modified (3-clause) BSD License
|
||||||
|
===================================
|
||||||
|
|
||||||
|
Copyright (C)\<YEAR\> \<AUTHOR\>. All Rights Reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
- Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
- Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
- Neither the name of the libjpeg-turbo Project nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived from this
|
||||||
|
software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS",
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
|
The zlib License
|
||||||
|
================
|
||||||
|
|
||||||
|
Copyright (C) \<YEAR\>, \<AUTHOR\>.
|
||||||
|
|
||||||
|
This software is provided 'as-is', without any express or implied
|
||||||
|
warranty. In no event will the authors be held liable for any damages
|
||||||
|
arising from the use of this software.
|
||||||
|
|
||||||
|
Permission is granted to anyone to use this software for any purpose,
|
||||||
|
including commercial applications, and to alter it and redistribute it
|
||||||
|
freely, subject to the following restrictions:
|
||||||
|
|
||||||
|
1. The origin of this software must not be misrepresented; you must not
|
||||||
|
claim that you wrote the original software. If you use this software
|
||||||
|
in a product, an acknowledgment in the product documentation would be
|
||||||
|
appreciated but is not required.
|
||||||
|
2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
misrepresented as being the original software.
|
||||||
|
3. This notice may not be removed or altered from any source distribution.
|
||||||
|
|
@ -0,0 +1,279 @@
|
||||||
|
libjpeg-turbo note: This file has been modified by The libjpeg-turbo Project
|
||||||
|
to include only information relevant to libjpeg-turbo, to wordsmith certain
|
||||||
|
sections, and to remove impolitic language that existed in the libjpeg v8
|
||||||
|
README. It is included only for reference. Please see README.md for
|
||||||
|
information specific to libjpeg-turbo.
|
||||||
|
|
||||||
|
|
||||||
|
The Independent JPEG Group's JPEG software
|
||||||
|
==========================================
|
||||||
|
|
||||||
|
This distribution contains a release of the Independent JPEG Group's free JPEG
|
||||||
|
software. You are welcome to redistribute this software and to use it for any
|
||||||
|
purpose, subject to the conditions under LEGAL ISSUES, below.
|
||||||
|
|
||||||
|
This software is the work of Tom Lane, Guido Vollbeding, Philip Gladstone,
|
||||||
|
Bill Allombert, Jim Boucher, Lee Crocker, Bob Friesenhahn, Ben Jackson,
|
||||||
|
Julian Minguillon, Luis Ortiz, George Phillips, Davide Rossi, Ge' Weijers,
|
||||||
|
and other members of the Independent JPEG Group.
|
||||||
|
|
||||||
|
IJG is not affiliated with the ISO/IEC JTC1/SC29/WG1 standards committee
|
||||||
|
(also known as JPEG, together with ITU-T SG16).
|
||||||
|
|
||||||
|
|
||||||
|
DOCUMENTATION ROADMAP
|
||||||
|
=====================
|
||||||
|
|
||||||
|
This file contains the following sections:
|
||||||
|
|
||||||
|
OVERVIEW General description of JPEG and the IJG software.
|
||||||
|
LEGAL ISSUES Copyright, lack of warranty, terms of distribution.
|
||||||
|
REFERENCES Where to learn more about JPEG.
|
||||||
|
ARCHIVE LOCATIONS Where to find newer versions of this software.
|
||||||
|
FILE FORMAT WARS Software *not* to get.
|
||||||
|
TO DO Plans for future IJG releases.
|
||||||
|
|
||||||
|
Other documentation files in the distribution are:
|
||||||
|
|
||||||
|
User documentation:
|
||||||
|
usage.txt Usage instructions for cjpeg, djpeg, jpegtran,
|
||||||
|
rdjpgcom, and wrjpgcom.
|
||||||
|
*.1 Unix-style man pages for programs (same info as usage.txt).
|
||||||
|
wizard.txt Advanced usage instructions for JPEG wizards only.
|
||||||
|
change.log Version-to-version change highlights.
|
||||||
|
Programmer and internal documentation:
|
||||||
|
libjpeg.txt How to use the JPEG library in your own programs.
|
||||||
|
example.c Sample code for calling the JPEG library.
|
||||||
|
structure.txt Overview of the JPEG library's internal structure.
|
||||||
|
coderules.txt Coding style rules --- please read if you contribute code.
|
||||||
|
|
||||||
|
Please read at least usage.txt. Some information can also be found in the JPEG
|
||||||
|
FAQ (Frequently Asked Questions) article. See ARCHIVE LOCATIONS below to find
|
||||||
|
out where to obtain the FAQ article.
|
||||||
|
|
||||||
|
If you want to understand how the JPEG code works, we suggest reading one or
|
||||||
|
more of the REFERENCES, then looking at the documentation files (in roughly
|
||||||
|
the order listed) before diving into the code.
|
||||||
|
|
||||||
|
|
||||||
|
OVERVIEW
|
||||||
|
========
|
||||||
|
|
||||||
|
This package contains C software to implement JPEG image encoding, decoding,
|
||||||
|
and transcoding. JPEG (pronounced "jay-peg") is a standardized compression
|
||||||
|
method for full-color and grayscale images. JPEG's strong suit is compressing
|
||||||
|
photographic images or other types of images that have smooth color and
|
||||||
|
brightness transitions between neighboring pixels. Images with sharp lines or
|
||||||
|
other abrupt features may not compress well with JPEG, and a higher JPEG
|
||||||
|
quality may have to be used to avoid visible compression artifacts with such
|
||||||
|
images.
|
||||||
|
|
||||||
|
JPEG is lossy, meaning that the output pixels are not necessarily identical to
|
||||||
|
the input pixels. However, on photographic content and other "smooth" images,
|
||||||
|
very good compression ratios can be obtained with no visible compression
|
||||||
|
artifacts, and extremely high compression ratios are possible if you are
|
||||||
|
willing to sacrifice image quality (by reducing the "quality" setting in the
|
||||||
|
compressor.)
|
||||||
|
|
||||||
|
This software implements JPEG baseline, extended-sequential, and progressive
|
||||||
|
compression processes. Provision is made for supporting all variants of these
|
||||||
|
processes, although some uncommon parameter settings aren't implemented yet.
|
||||||
|
We have made no provision for supporting the hierarchical or lossless
|
||||||
|
processes defined in the standard.
|
||||||
|
|
||||||
|
We provide a set of library routines for reading and writing JPEG image files,
|
||||||
|
plus two sample applications "cjpeg" and "djpeg", which use the library to
|
||||||
|
perform conversion between JPEG and some other popular image file formats.
|
||||||
|
The library is intended to be reused in other applications.
|
||||||
|
|
||||||
|
In order to support file conversion and viewing software, we have included
|
||||||
|
considerable functionality beyond the bare JPEG coding/decoding capability;
|
||||||
|
for example, the color quantization modules are not strictly part of JPEG
|
||||||
|
decoding, but they are essential for output to colormapped file formats or
|
||||||
|
colormapped displays. These extra functions can be compiled out of the
|
||||||
|
library if not required for a particular application.
|
||||||
|
|
||||||
|
We have also included "jpegtran", a utility for lossless transcoding between
|
||||||
|
different JPEG processes, and "rdjpgcom" and "wrjpgcom", two simple
|
||||||
|
applications for inserting and extracting textual comments in JFIF files.
|
||||||
|
|
||||||
|
The emphasis in designing this software has been on achieving portability and
|
||||||
|
flexibility, while also making it fast enough to be useful. In particular,
|
||||||
|
the software is not intended to be read as a tutorial on JPEG. (See the
|
||||||
|
REFERENCES section for introductory material.) Rather, it is intended to
|
||||||
|
be reliable, portable, industrial-strength code. We do not claim to have
|
||||||
|
achieved that goal in every aspect of the software, but we strive for it.
|
||||||
|
|
||||||
|
We welcome the use of this software as a component of commercial products.
|
||||||
|
No royalty is required, but we do ask for an acknowledgement in product
|
||||||
|
documentation, as described under LEGAL ISSUES.
|
||||||
|
|
||||||
|
|
||||||
|
LEGAL ISSUES
|
||||||
|
============
|
||||||
|
|
||||||
|
In plain English:
|
||||||
|
|
||||||
|
1. We don't promise that this software works. (But if you find any bugs,
|
||||||
|
please let us know!)
|
||||||
|
2. You can use this software for whatever you want. You don't have to pay us.
|
||||||
|
3. You may not pretend that you wrote this software. If you use it in a
|
||||||
|
program, you must acknowledge somewhere in your documentation that
|
||||||
|
you've used the IJG code.
|
||||||
|
|
||||||
|
In legalese:
|
||||||
|
|
||||||
|
The authors make NO WARRANTY or representation, either express or implied,
|
||||||
|
with respect to this software, its quality, accuracy, merchantability, or
|
||||||
|
fitness for a particular purpose. This software is provided "AS IS", and you,
|
||||||
|
its user, assume the entire risk as to its quality and accuracy.
|
||||||
|
|
||||||
|
This software is copyright (C) 1991-2016, Thomas G. Lane, Guido Vollbeding.
|
||||||
|
All Rights Reserved except as specified below.
|
||||||
|
|
||||||
|
Permission is hereby granted to use, copy, modify, and distribute this
|
||||||
|
software (or portions thereof) for any purpose, without fee, subject to these
|
||||||
|
conditions:
|
||||||
|
(1) If any part of the source code for this software is distributed, then this
|
||||||
|
README file must be included, with this copyright and no-warranty notice
|
||||||
|
unaltered; and any additions, deletions, or changes to the original files
|
||||||
|
must be clearly indicated in accompanying documentation.
|
||||||
|
(2) If only executable code is distributed, then the accompanying
|
||||||
|
documentation must state that "this software is based in part on the work of
|
||||||
|
the Independent JPEG Group".
|
||||||
|
(3) Permission for use of this software is granted only if the user accepts
|
||||||
|
full responsibility for any undesirable consequences; the authors accept
|
||||||
|
NO LIABILITY for damages of any kind.
|
||||||
|
|
||||||
|
These conditions apply to any software derived from or based on the IJG code,
|
||||||
|
not just to the unmodified library. If you use our work, you ought to
|
||||||
|
acknowledge us.
|
||||||
|
|
||||||
|
Permission is NOT granted for the use of any IJG author's name or company name
|
||||||
|
in advertising or publicity relating to this software or products derived from
|
||||||
|
it. This software may be referred to only as "the Independent JPEG Group's
|
||||||
|
software".
|
||||||
|
|
||||||
|
We specifically permit and encourage the use of this software as the basis of
|
||||||
|
commercial products, provided that all warranty or liability claims are
|
||||||
|
assumed by the product vendor.
|
||||||
|
|
||||||
|
|
||||||
|
The Unix configuration script "configure" was produced with GNU Autoconf.
|
||||||
|
It is copyright by the Free Software Foundation but is freely distributable.
|
||||||
|
The same holds for its supporting scripts (config.guess, config.sub,
|
||||||
|
ltmain.sh). Another support script, install-sh, is copyright by X Consortium
|
||||||
|
but is also freely distributable.
|
||||||
|
|
||||||
|
The IJG distribution formerly included code to read and write GIF files.
|
||||||
|
To avoid entanglement with the Unisys LZW patent (now expired), GIF reading
|
||||||
|
support has been removed altogether, and the GIF writer has been simplified
|
||||||
|
to produce "uncompressed GIFs". This technique does not use the LZW
|
||||||
|
algorithm; the resulting GIF files are larger than usual, but are readable
|
||||||
|
by all standard GIF decoders.
|
||||||
|
|
||||||
|
We are required to state that
|
||||||
|
"The Graphics Interchange Format(c) is the Copyright property of
|
||||||
|
CompuServe Incorporated. GIF(sm) is a Service Mark property of
|
||||||
|
CompuServe Incorporated."
|
||||||
|
|
||||||
|
|
||||||
|
REFERENCES
|
||||||
|
==========
|
||||||
|
|
||||||
|
We recommend reading one or more of these references before trying to
|
||||||
|
understand the innards of the JPEG software.
|
||||||
|
|
||||||
|
The best short technical introduction to the JPEG compression algorithm is
|
||||||
|
Wallace, Gregory K. "The JPEG Still Picture Compression Standard",
|
||||||
|
Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44.
|
||||||
|
(Adjacent articles in that issue discuss MPEG motion picture compression,
|
||||||
|
applications of JPEG, and related topics.) If you don't have the CACM issue
|
||||||
|
handy, a PDF file containing a revised version of Wallace's article is
|
||||||
|
available at http://www.ijg.org/files/Wallace.JPEG.pdf. The file (actually
|
||||||
|
a preprint for an article that appeared in IEEE Trans. Consumer Electronics)
|
||||||
|
omits the sample images that appeared in CACM, but it includes corrections
|
||||||
|
and some added material. Note: the Wallace article is copyright ACM and IEEE,
|
||||||
|
and it may not be used for commercial purposes.
|
||||||
|
|
||||||
|
A somewhat less technical, more leisurely introduction to JPEG can be found in
|
||||||
|
"The Data Compression Book" by Mark Nelson and Jean-loup Gailly, published by
|
||||||
|
M&T Books (New York), 2nd ed. 1996, ISBN 1-55851-434-1. This book provides
|
||||||
|
good explanations and example C code for a multitude of compression methods
|
||||||
|
including JPEG. It is an excellent source if you are comfortable reading C
|
||||||
|
code but don't know much about data compression in general. The book's JPEG
|
||||||
|
sample code is far from industrial-strength, but when you are ready to look
|
||||||
|
at a full implementation, you've got one here...
|
||||||
|
|
||||||
|
The best currently available description of JPEG is the textbook "JPEG Still
|
||||||
|
Image Data Compression Standard" by William B. Pennebaker and Joan L.
|
||||||
|
Mitchell, published by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1.
|
||||||
|
Price US$59.95, 638 pp. The book includes the complete text of the ISO JPEG
|
||||||
|
standards (DIS 10918-1 and draft DIS 10918-2).
|
||||||
|
|
||||||
|
The original JPEG standard is divided into two parts, Part 1 being the actual
|
||||||
|
specification, while Part 2 covers compliance testing methods. Part 1 is
|
||||||
|
titled "Digital Compression and Coding of Continuous-tone Still Images,
|
||||||
|
Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS
|
||||||
|
10918-1, ITU-T T.81. Part 2 is titled "Digital Compression and Coding of
|
||||||
|
Continuous-tone Still Images, Part 2: Compliance testing" and has document
|
||||||
|
numbers ISO/IEC IS 10918-2, ITU-T T.83.
|
||||||
|
|
||||||
|
The JPEG standard does not specify all details of an interchangeable file
|
||||||
|
format. For the omitted details we follow the "JFIF" conventions, revision
|
||||||
|
1.02. JFIF 1.02 has been adopted as an Ecma International Technical Report
|
||||||
|
and thus received a formal publication status. It is available as a free
|
||||||
|
download in PDF format from
|
||||||
|
http://www.ecma-international.org/publications/techreports/E-TR-098.htm.
|
||||||
|
A PostScript version of the JFIF document is available at
|
||||||
|
http://www.ijg.org/files/jfif.ps.gz. There is also a plain text version at
|
||||||
|
http://www.ijg.org/files/jfif.txt.gz, but it is missing the figures.
|
||||||
|
|
||||||
|
The TIFF 6.0 file format specification can be obtained by FTP from
|
||||||
|
ftp://ftp.sgi.com/graphics/tiff/TIFF6.ps.gz. The JPEG incorporation scheme
|
||||||
|
found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems.
|
||||||
|
IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6).
|
||||||
|
Instead, we recommend the JPEG design proposed by TIFF Technical Note #2
|
||||||
|
(Compression tag 7). Copies of this Note can be obtained from
|
||||||
|
http://www.ijg.org/files/. It is expected that the next revision
|
||||||
|
of the TIFF spec will replace the 6.0 JPEG design with the Note's design.
|
||||||
|
Although IJG's own code does not support TIFF/JPEG, the free libtiff library
|
||||||
|
uses our library to implement TIFF/JPEG per the Note.
|
||||||
|
|
||||||
|
|
||||||
|
ARCHIVE LOCATIONS
|
||||||
|
=================
|
||||||
|
|
||||||
|
The "official" archive site for this software is www.ijg.org.
|
||||||
|
The most recent released version can always be found there in
|
||||||
|
directory "files".
|
||||||
|
|
||||||
|
The JPEG FAQ (Frequently Asked Questions) article is a source of some
|
||||||
|
general information about JPEG.
|
||||||
|
It is available on the World Wide Web at http://www.faqs.org/faqs/jpeg-faq/
|
||||||
|
and other news.answers archive sites, including the official news.answers
|
||||||
|
archive at rtfm.mit.edu: ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/.
|
||||||
|
If you don't have Web or FTP access, send e-mail to mail-server@rtfm.mit.edu
|
||||||
|
with body
|
||||||
|
send usenet/news.answers/jpeg-faq/part1
|
||||||
|
send usenet/news.answers/jpeg-faq/part2
|
||||||
|
|
||||||
|
|
||||||
|
FILE FORMAT WARS
|
||||||
|
================
|
||||||
|
|
||||||
|
The ISO/IEC JTC1/SC29/WG1 standards committee (also known as JPEG, together
|
||||||
|
with ITU-T SG16) currently promotes different formats containing the name
|
||||||
|
"JPEG" which are incompatible with original DCT-based JPEG. IJG therefore does
|
||||||
|
not support these formats (see REFERENCES). Indeed, one of the original
|
||||||
|
reasons for developing this free software was to help force convergence on
|
||||||
|
common, interoperable format standards for JPEG files.
|
||||||
|
Don't use an incompatible file format!
|
||||||
|
(In any case, our decoder will remain capable of reading existing JPEG
|
||||||
|
image files indefinitely.)
|
||||||
|
|
||||||
|
|
||||||
|
TO DO
|
||||||
|
=====
|
||||||
|
|
||||||
|
Please send bug reports, offers of help, etc. to jpeg-info@jpegclub.org.
|
||||||
|
|
@ -0,0 +1,341 @@
|
||||||
|
Background
|
||||||
|
==========
|
||||||
|
|
||||||
|
libjpeg-turbo is a JPEG image codec that uses SIMD instructions (MMX, SSE2,
|
||||||
|
NEON, AltiVec) to accelerate baseline JPEG compression and decompression on
|
||||||
|
x86, x86-64, ARM, and PowerPC systems. On such systems, libjpeg-turbo is
|
||||||
|
generally 2-6x as fast as libjpeg, all else being equal. On other types of
|
||||||
|
systems, libjpeg-turbo can still outperform libjpeg by a significant amount, by
|
||||||
|
virtue of its highly-optimized Huffman coding routines. In many cases, the
|
||||||
|
performance of libjpeg-turbo rivals that of proprietary high-speed JPEG codecs.
|
||||||
|
|
||||||
|
libjpeg-turbo implements both the traditional libjpeg API as well as the less
|
||||||
|
powerful but more straightforward TurboJPEG API. libjpeg-turbo also features
|
||||||
|
colorspace extensions that allow it to compress from/decompress to 32-bit and
|
||||||
|
big-endian pixel buffers (RGBX, XBGR, etc.), as well as a full-featured Java
|
||||||
|
interface.
|
||||||
|
|
||||||
|
libjpeg-turbo was originally based on libjpeg/SIMD, an MMX-accelerated
|
||||||
|
derivative of libjpeg v6b developed by Miyasaka Masaru. The TigerVNC and
|
||||||
|
VirtualGL projects made numerous enhancements to the codec in 2009, and in
|
||||||
|
early 2010, libjpeg-turbo spun off into an independent project, with the goal
|
||||||
|
of making high-speed JPEG compression/decompression technology available to a
|
||||||
|
broader range of users and developers.
|
||||||
|
|
||||||
|
|
||||||
|
License
|
||||||
|
=======
|
||||||
|
|
||||||
|
libjpeg-turbo is covered by three compatible BSD-style open source licenses.
|
||||||
|
Refer to [LICENSE.md](LICENSE.md) for a roll-up of license terms.
|
||||||
|
|
||||||
|
|
||||||
|
Building libjpeg-turbo
|
||||||
|
======================
|
||||||
|
|
||||||
|
Refer to [BUILDING.md](BUILDING.md) for complete instructions.
|
||||||
|
|
||||||
|
|
||||||
|
Using libjpeg-turbo
|
||||||
|
===================
|
||||||
|
|
||||||
|
libjpeg-turbo includes two APIs that can be used to compress and decompress
|
||||||
|
JPEG images:
|
||||||
|
|
||||||
|
- **TurboJPEG API**<br>
|
||||||
|
This API provides an easy-to-use interface for compressing and decompressing
|
||||||
|
JPEG images in memory. It also provides some functionality that would not be
|
||||||
|
straightforward to achieve using the underlying libjpeg API, such as
|
||||||
|
generating planar YUV images and performing multiple simultaneous lossless
|
||||||
|
transforms on an image. The Java interface for libjpeg-turbo is written on
|
||||||
|
top of the TurboJPEG API.
|
||||||
|
|
||||||
|
- **libjpeg API**<br>
|
||||||
|
This is the de facto industry-standard API for compressing and decompressing
|
||||||
|
JPEG images. It is more difficult to use than the TurboJPEG API but also
|
||||||
|
more powerful. The libjpeg API implementation in libjpeg-turbo is both
|
||||||
|
API/ABI-compatible and mathematically compatible with libjpeg v6b. It can
|
||||||
|
also optionally be configured to be API/ABI-compatible with libjpeg v7 and v8
|
||||||
|
(see below.)
|
||||||
|
|
||||||
|
There is no significant performance advantage to either API when both are used
|
||||||
|
to perform similar operations.
|
||||||
|
|
||||||
|
Colorspace Extensions
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
libjpeg-turbo includes extensions that allow JPEG images to be compressed
|
||||||
|
directly from (and decompressed directly to) buffers that use BGR, BGRX,
|
||||||
|
RGBX, XBGR, and XRGB pixel ordering. This is implemented with ten new
|
||||||
|
colorspace constants:
|
||||||
|
|
||||||
|
JCS_EXT_RGB /* red/green/blue */
|
||||||
|
JCS_EXT_RGBX /* red/green/blue/x */
|
||||||
|
JCS_EXT_BGR /* blue/green/red */
|
||||||
|
JCS_EXT_BGRX /* blue/green/red/x */
|
||||||
|
JCS_EXT_XBGR /* x/blue/green/red */
|
||||||
|
JCS_EXT_XRGB /* x/red/green/blue */
|
||||||
|
JCS_EXT_RGBA /* red/green/blue/alpha */
|
||||||
|
JCS_EXT_BGRA /* blue/green/red/alpha */
|
||||||
|
JCS_EXT_ABGR /* alpha/blue/green/red */
|
||||||
|
JCS_EXT_ARGB /* alpha/red/green/blue */
|
||||||
|
|
||||||
|
Setting `cinfo.in_color_space` (compression) or `cinfo.out_color_space`
|
||||||
|
(decompression) to one of these values will cause libjpeg-turbo to read the
|
||||||
|
red, green, and blue values from (or write them to) the appropriate position in
|
||||||
|
the pixel when compressing from/decompressing to an RGB buffer.
|
||||||
|
|
||||||
|
Your application can check for the existence of these extensions at compile
|
||||||
|
time with:
|
||||||
|
|
||||||
|
#ifdef JCS_EXTENSIONS
|
||||||
|
|
||||||
|
At run time, attempting to use these extensions with a libjpeg implementation
|
||||||
|
that does not support them will result in a "Bogus input colorspace" error.
|
||||||
|
Applications can trap this error in order to test whether run-time support is
|
||||||
|
available for the colorspace extensions.
|
||||||
|
|
||||||
|
When using the RGBX, BGRX, XBGR, and XRGB colorspaces during decompression, the
|
||||||
|
X byte is undefined, and in order to ensure the best performance, libjpeg-turbo
|
||||||
|
can set that byte to whatever value it wishes. If an application expects the X
|
||||||
|
byte to be used as an alpha channel, then it should specify `JCS_EXT_RGBA`,
|
||||||
|
`JCS_EXT_BGRA`, `JCS_EXT_ABGR`, or `JCS_EXT_ARGB`. When these colorspace
|
||||||
|
constants are used, the X byte is guaranteed to be 0xFF, which is interpreted
|
||||||
|
as opaque.
|
||||||
|
|
||||||
|
Your application can check for the existence of the alpha channel colorspace
|
||||||
|
extensions at compile time with:
|
||||||
|
|
||||||
|
#ifdef JCS_ALPHA_EXTENSIONS
|
||||||
|
|
||||||
|
[jcstest.c](jcstest.c), located in the libjpeg-turbo source tree, demonstrates
|
||||||
|
how to check for the existence of the colorspace extensions at compile time and
|
||||||
|
run time.
|
||||||
|
|
||||||
|
libjpeg v7 and v8 API/ABI Emulation
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
With libjpeg v7 and v8, new features were added that necessitated extending the
|
||||||
|
compression and decompression structures. Unfortunately, due to the exposed
|
||||||
|
nature of those structures, extending them also necessitated breaking backward
|
||||||
|
ABI compatibility with previous libjpeg releases. Thus, programs that were
|
||||||
|
built to use libjpeg v7 or v8 did not work with libjpeg-turbo, since it is
|
||||||
|
based on the libjpeg v6b code base. Although libjpeg v7 and v8 are not
|
||||||
|
as widely used as v6b, enough programs (including a few Linux distros) made
|
||||||
|
the switch that there was a demand to emulate the libjpeg v7 and v8 ABIs
|
||||||
|
in libjpeg-turbo. It should be noted, however, that this feature was added
|
||||||
|
primarily so that applications that had already been compiled to use libjpeg
|
||||||
|
v7+ could take advantage of accelerated baseline JPEG encoding/decoding
|
||||||
|
without recompiling. libjpeg-turbo does not claim to support all of the
|
||||||
|
libjpeg v7+ features, nor to produce identical output to libjpeg v7+ in all
|
||||||
|
cases (see below.)
|
||||||
|
|
||||||
|
By passing an argument of `--with-jpeg7` or `--with-jpeg8` to `configure`, or
|
||||||
|
an argument of `-DWITH_JPEG7=1` or `-DWITH_JPEG8=1` to `cmake`, you can build a
|
||||||
|
version of libjpeg-turbo that emulates the libjpeg v7 or v8 ABI, so that
|
||||||
|
programs that are built against libjpeg v7 or v8 can be run with libjpeg-turbo.
|
||||||
|
The following section describes which libjpeg v7+ features are supported and
|
||||||
|
which aren't.
|
||||||
|
|
||||||
|
### Support for libjpeg v7 and v8 Features
|
||||||
|
|
||||||
|
#### Fully supported
|
||||||
|
|
||||||
|
- **libjpeg: IDCT scaling extensions in decompressor**<br>
|
||||||
|
libjpeg-turbo supports IDCT scaling with scaling factors of 1/8, 1/4, 3/8,
|
||||||
|
1/2, 5/8, 3/4, 7/8, 9/8, 5/4, 11/8, 3/2, 13/8, 7/4, 15/8, and 2/1 (only 1/4
|
||||||
|
and 1/2 are SIMD-accelerated.)
|
||||||
|
|
||||||
|
- **libjpeg: Arithmetic coding**
|
||||||
|
|
||||||
|
- **libjpeg: In-memory source and destination managers**<br>
|
||||||
|
See notes below.
|
||||||
|
|
||||||
|
- **cjpeg: Separate quality settings for luminance and chrominance**<br>
|
||||||
|
Note that the libpjeg v7+ API was extended to accommodate this feature only
|
||||||
|
for convenience purposes. It has always been possible to implement this
|
||||||
|
feature with libjpeg v6b (see rdswitch.c for an example.)
|
||||||
|
|
||||||
|
- **cjpeg: 32-bit BMP support**
|
||||||
|
|
||||||
|
- **cjpeg: `-rgb` option**
|
||||||
|
|
||||||
|
- **jpegtran: Lossless cropping**
|
||||||
|
|
||||||
|
- **jpegtran: `-perfect` option**
|
||||||
|
|
||||||
|
- **jpegtran: Forcing width/height when performing lossless crop**
|
||||||
|
|
||||||
|
- **rdjpgcom: `-raw` option**
|
||||||
|
|
||||||
|
- **rdjpgcom: Locale awareness**
|
||||||
|
|
||||||
|
|
||||||
|
#### Not supported
|
||||||
|
|
||||||
|
NOTE: As of this writing, extensive research has been conducted into the
|
||||||
|
usefulness of DCT scaling as a means of data reduction and SmartScale as a
|
||||||
|
means of quality improvement. The reader is invited to peruse the research at
|
||||||
|
<http://www.libjpeg-turbo.org/About/SmartScale> and draw his/her own conclusions,
|
||||||
|
but it is the general belief of our project that these features have not
|
||||||
|
demonstrated sufficient usefulness to justify inclusion in libjpeg-turbo.
|
||||||
|
|
||||||
|
- **libjpeg: DCT scaling in compressor**<br>
|
||||||
|
`cinfo.scale_num` and `cinfo.scale_denom` are silently ignored.
|
||||||
|
There is no technical reason why DCT scaling could not be supported when
|
||||||
|
emulating the libjpeg v7+ API/ABI, but without the SmartScale extension (see
|
||||||
|
below), only scaling factors of 1/2, 8/15, 4/7, 8/13, 2/3, 8/11, 4/5, and
|
||||||
|
8/9 would be available, which is of limited usefulness.
|
||||||
|
|
||||||
|
- **libjpeg: SmartScale**<br>
|
||||||
|
`cinfo.block_size` is silently ignored.
|
||||||
|
SmartScale is an extension to the JPEG format that allows for DCT block
|
||||||
|
sizes other than 8x8. Providing support for this new format would be
|
||||||
|
feasible (particularly without full acceleration.) However, until/unless
|
||||||
|
the format becomes either an official industry standard or, at minimum, an
|
||||||
|
accepted solution in the community, we are hesitant to implement it, as
|
||||||
|
there is no sense of whether or how it might change in the future. It is
|
||||||
|
our belief that SmartScale has not demonstrated sufficient usefulness as a
|
||||||
|
lossless format nor as a means of quality enhancement, and thus our primary
|
||||||
|
interest in providing this feature would be as a means of supporting
|
||||||
|
additional DCT scaling factors.
|
||||||
|
|
||||||
|
- **libjpeg: Fancy downsampling in compressor**<br>
|
||||||
|
`cinfo.do_fancy_downsampling` is silently ignored.
|
||||||
|
This requires the DCT scaling feature, which is not supported.
|
||||||
|
|
||||||
|
- **jpegtran: Scaling**<br>
|
||||||
|
This requires both the DCT scaling and SmartScale features, which are not
|
||||||
|
supported.
|
||||||
|
|
||||||
|
- **Lossless RGB JPEG files**<br>
|
||||||
|
This requires the SmartScale feature, which is not supported.
|
||||||
|
|
||||||
|
### What About libjpeg v9?
|
||||||
|
|
||||||
|
libjpeg v9 introduced yet another field to the JPEG compression structure
|
||||||
|
(`color_transform`), thus making the ABI backward incompatible with that of
|
||||||
|
libjpeg v8. This new field was introduced solely for the purpose of supporting
|
||||||
|
lossless SmartScale encoding. Furthermore, there was actually no reason to
|
||||||
|
extend the API in this manner, as the color transform could have just as easily
|
||||||
|
been activated by way of a new JPEG colorspace constant, thus preserving
|
||||||
|
backward ABI compatibility.
|
||||||
|
|
||||||
|
Our research (see link above) has shown that lossless SmartScale does not
|
||||||
|
generally accomplish anything that can't already be accomplished better with
|
||||||
|
existing, standard lossless formats. Therefore, at this time it is our belief
|
||||||
|
that there is not sufficient technical justification for software projects to
|
||||||
|
upgrade from libjpeg v8 to libjpeg v9, and thus there is not sufficient
|
||||||
|
technical justification for us to emulate the libjpeg v9 ABI.
|
||||||
|
|
||||||
|
In-Memory Source/Destination Managers
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
By default, libjpeg-turbo 1.3 and later includes the `jpeg_mem_src()` and
|
||||||
|
`jpeg_mem_dest()` functions, even when not emulating the libjpeg v8 API/ABI.
|
||||||
|
Previously, it was necessary to build libjpeg-turbo from source with libjpeg v8
|
||||||
|
API/ABI emulation in order to use the in-memory source/destination managers,
|
||||||
|
but several projects requested that those functions be included when emulating
|
||||||
|
the libjpeg v6b API/ABI as well. This allows the use of those functions by
|
||||||
|
programs that need them, without breaking ABI compatibility for programs that
|
||||||
|
don't, and it allows those functions to be provided in the "official"
|
||||||
|
libjpeg-turbo binaries.
|
||||||
|
|
||||||
|
Those who are concerned about maintaining strict conformance with the libjpeg
|
||||||
|
v6b or v7 API can pass an argument of `--without-mem-srcdst` to `configure` or
|
||||||
|
an argument of `-DWITH_MEM_SRCDST=0` to `cmake` prior to building
|
||||||
|
libjpeg-turbo. This will restore the pre-1.3 behavior, in which
|
||||||
|
`jpeg_mem_src()` and `jpeg_mem_dest()` are only included when emulating the
|
||||||
|
libjpeg v8 API/ABI.
|
||||||
|
|
||||||
|
On Un*x systems, including the in-memory source/destination managers changes
|
||||||
|
the dynamic library version from 62.1.0 to 62.2.0 if using libjpeg v6b API/ABI
|
||||||
|
emulation and from 7.1.0 to 7.2.0 if using libjpeg v7 API/ABI emulation.
|
||||||
|
|
||||||
|
Note that, on most Un*x systems, the dynamic linker will not look for a
|
||||||
|
function in a library until that function is actually used. Thus, if a program
|
||||||
|
is built against libjpeg-turbo 1.3+ and uses `jpeg_mem_src()` or
|
||||||
|
`jpeg_mem_dest()`, that program will not fail if run against an older version
|
||||||
|
of libjpeg-turbo or against libjpeg v7- until the program actually tries to
|
||||||
|
call `jpeg_mem_src()` or `jpeg_mem_dest()`. Such is not the case on Windows.
|
||||||
|
If a program is built against the libjpeg-turbo 1.3+ DLL and uses
|
||||||
|
`jpeg_mem_src()` or `jpeg_mem_dest()`, then it must use the libjpeg-turbo 1.3+
|
||||||
|
DLL at run time.
|
||||||
|
|
||||||
|
Both cjpeg and djpeg have been extended to allow testing the in-memory
|
||||||
|
source/destination manager functions. See their respective man pages for more
|
||||||
|
details.
|
||||||
|
|
||||||
|
|
||||||
|
Mathematical Compatibility
|
||||||
|
==========================
|
||||||
|
|
||||||
|
For the most part, libjpeg-turbo should produce identical output to libjpeg
|
||||||
|
v6b. The one exception to this is when using the floating point DCT/IDCT, in
|
||||||
|
which case the outputs of libjpeg v6b and libjpeg-turbo can differ for the
|
||||||
|
following reasons:
|
||||||
|
|
||||||
|
- The SSE/SSE2 floating point DCT implementation in libjpeg-turbo is ever so
|
||||||
|
slightly more accurate than the implementation in libjpeg v6b, but not by
|
||||||
|
any amount perceptible to human vision (generally in the range of 0.01 to
|
||||||
|
0.08 dB gain in PNSR.)
|
||||||
|
|
||||||
|
- When not using the SIMD extensions, libjpeg-turbo uses the more accurate
|
||||||
|
(and slightly faster) floating point IDCT algorithm introduced in libjpeg
|
||||||
|
v8a as opposed to the algorithm used in libjpeg v6b. It should be noted,
|
||||||
|
however, that this algorithm basically brings the accuracy of the floating
|
||||||
|
point IDCT in line with the accuracy of the slow integer IDCT. The floating
|
||||||
|
point DCT/IDCT algorithms are mainly a legacy feature, and they do not
|
||||||
|
produce significantly more accuracy than the slow integer algorithms (to put
|
||||||
|
numbers on this, the typical difference in PNSR between the two algorithms
|
||||||
|
is less than 0.10 dB, whereas changing the quality level by 1 in the upper
|
||||||
|
range of the quality scale is typically more like a 1.0 dB difference.)
|
||||||
|
|
||||||
|
- If the floating point algorithms in libjpeg-turbo are not implemented using
|
||||||
|
SIMD instructions on a particular platform, then the accuracy of the
|
||||||
|
floating point DCT/IDCT can depend on the compiler settings.
|
||||||
|
|
||||||
|
While libjpeg-turbo does emulate the libjpeg v8 API/ABI, under the hood it is
|
||||||
|
still using the same algorithms as libjpeg v6b, so there are several specific
|
||||||
|
cases in which libjpeg-turbo cannot be expected to produce the same output as
|
||||||
|
libjpeg v8:
|
||||||
|
|
||||||
|
- When decompressing using scaling factors of 1/2 and 1/4, because libjpeg v8
|
||||||
|
implements those scaling algorithms differently than libjpeg v6b does, and
|
||||||
|
libjpeg-turbo's SIMD extensions are based on the libjpeg v6b behavior.
|
||||||
|
|
||||||
|
- When using chrominance subsampling, because libjpeg v8 implements this
|
||||||
|
with its DCT/IDCT scaling algorithms rather than with a separate
|
||||||
|
downsampling/upsampling algorithm. In our testing, the subsampled/upsampled
|
||||||
|
output of libjpeg v8 is less accurate than that of libjpeg v6b for this
|
||||||
|
reason.
|
||||||
|
|
||||||
|
- When decompressing using a scaling factor > 1 and merged (AKA "non-fancy" or
|
||||||
|
"non-smooth") chrominance upsampling, because libjpeg v8 does not support
|
||||||
|
merged upsampling with scaling factors > 1.
|
||||||
|
|
||||||
|
|
||||||
|
Performance Pitfalls
|
||||||
|
====================
|
||||||
|
|
||||||
|
Restart Markers
|
||||||
|
---------------
|
||||||
|
|
||||||
|
The optimized Huffman decoder in libjpeg-turbo does not handle restart markers
|
||||||
|
in a way that makes the rest of the libjpeg infrastructure happy, so it is
|
||||||
|
necessary to use the slow Huffman decoder when decompressing a JPEG image that
|
||||||
|
has restart markers. This can cause the decompression performance to drop by
|
||||||
|
as much as 20%, but the performance will still be much greater than that of
|
||||||
|
libjpeg. Many consumer packages, such as PhotoShop, use restart markers when
|
||||||
|
generating JPEG images, so images generated by those programs will experience
|
||||||
|
this issue.
|
||||||
|
|
||||||
|
Fast Integer Forward DCT at High Quality Levels
|
||||||
|
-----------------------------------------------
|
||||||
|
|
||||||
|
The algorithm used by the SIMD-accelerated quantization function cannot produce
|
||||||
|
correct results whenever the fast integer forward DCT is used along with a JPEG
|
||||||
|
quality of 98-100. Thus, libjpeg-turbo must use the non-SIMD quantization
|
||||||
|
function in those cases. This causes performance to drop by as much as 40%.
|
||||||
|
It is therefore strongly advised that you use the slow integer forward DCT
|
||||||
|
whenever encoding images with a JPEG quality of 98 or higher.
|
||||||
133
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/libpng-LICENSE
Executable file
133
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/libpng-LICENSE
Executable file
|
|
@ -0,0 +1,133 @@
|
||||||
|
|
||||||
|
This copy of the libpng notices is provided for your convenience. In case of
|
||||||
|
any discrepancy between this copy and the notices in the file png.h that is
|
||||||
|
included in the libpng distribution, the latter shall prevail.
|
||||||
|
|
||||||
|
COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
|
||||||
|
|
||||||
|
If you modify libpng you may insert additional notices immediately following
|
||||||
|
this sentence.
|
||||||
|
|
||||||
|
This code is released under the libpng license.
|
||||||
|
|
||||||
|
libpng versions 1.0.7, July 1, 2000 through 1.6.35, July 15, 2018 are
|
||||||
|
Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are
|
||||||
|
derived from libpng-1.0.6, and are distributed according to the same
|
||||||
|
disclaimer and license as libpng-1.0.6 with the following individuals
|
||||||
|
added to the list of Contributing Authors:
|
||||||
|
|
||||||
|
Simon-Pierre Cadieux
|
||||||
|
Eric S. Raymond
|
||||||
|
Mans Rullgard
|
||||||
|
Cosmin Truta
|
||||||
|
Gilles Vollant
|
||||||
|
James Yu
|
||||||
|
Mandar Sahastrabuddhe
|
||||||
|
Google Inc.
|
||||||
|
Vadim Barkov
|
||||||
|
|
||||||
|
and with the following additions to the disclaimer:
|
||||||
|
|
||||||
|
There is no warranty against interference with your enjoyment of the
|
||||||
|
library or against infringement. There is no warranty that our
|
||||||
|
efforts or the library will fulfill any of your particular purposes
|
||||||
|
or needs. This library is provided with all faults, and the entire
|
||||||
|
risk of satisfactory quality, performance, accuracy, and effort is with
|
||||||
|
the user.
|
||||||
|
|
||||||
|
Some files in the "contrib" directory and some configure-generated
|
||||||
|
files that are distributed with libpng have other copyright owners and
|
||||||
|
are released under other open source licenses.
|
||||||
|
|
||||||
|
libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
|
||||||
|
Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from
|
||||||
|
libpng-0.96, and are distributed according to the same disclaimer and
|
||||||
|
license as libpng-0.96, with the following individuals added to the list
|
||||||
|
of Contributing Authors:
|
||||||
|
|
||||||
|
Tom Lane
|
||||||
|
Glenn Randers-Pehrson
|
||||||
|
Willem van Schaik
|
||||||
|
|
||||||
|
libpng versions 0.89, June 1996, through 0.96, May 1997, are
|
||||||
|
Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,
|
||||||
|
and are distributed according to the same disclaimer and license as
|
||||||
|
libpng-0.88, with the following individuals added to the list of
|
||||||
|
Contributing Authors:
|
||||||
|
|
||||||
|
John Bowler
|
||||||
|
Kevin Bracey
|
||||||
|
Sam Bushell
|
||||||
|
Magnus Holmgren
|
||||||
|
Greg Roelofs
|
||||||
|
Tom Tanner
|
||||||
|
|
||||||
|
Some files in the "scripts" directory have other copyright owners
|
||||||
|
but are released under this license.
|
||||||
|
|
||||||
|
libpng versions 0.5, May 1995, through 0.88, January 1996, are
|
||||||
|
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
|
||||||
|
|
||||||
|
For the purposes of this copyright and license, "Contributing Authors"
|
||||||
|
is defined as the following set of individuals:
|
||||||
|
|
||||||
|
Andreas Dilger
|
||||||
|
Dave Martindale
|
||||||
|
Guy Eric Schalnat
|
||||||
|
Paul Schmidt
|
||||||
|
Tim Wegner
|
||||||
|
|
||||||
|
The PNG Reference Library is supplied "AS IS". The Contributing Authors
|
||||||
|
and Group 42, Inc. disclaim all warranties, expressed or implied,
|
||||||
|
including, without limitation, the warranties of merchantability and of
|
||||||
|
fitness for any purpose. The Contributing Authors and Group 42, Inc.
|
||||||
|
assume no liability for direct, indirect, incidental, special, exemplary,
|
||||||
|
or consequential damages, which may result from the use of the PNG
|
||||||
|
Reference Library, even if advised of the possibility of such damage.
|
||||||
|
|
||||||
|
Permission is hereby granted to use, copy, modify, and distribute this
|
||||||
|
source code, or portions hereof, for any purpose, without fee, subject
|
||||||
|
to the following restrictions:
|
||||||
|
|
||||||
|
1. The origin of this source code must not be misrepresented.
|
||||||
|
|
||||||
|
2. Altered versions must be plainly marked as such and must not
|
||||||
|
be misrepresented as being the original source.
|
||||||
|
|
||||||
|
3. This Copyright notice may not be removed or altered from any
|
||||||
|
source or altered source distribution.
|
||||||
|
|
||||||
|
The Contributing Authors and Group 42, Inc. specifically permit, without
|
||||||
|
fee, and encourage the use of this source code as a component to
|
||||||
|
supporting the PNG file format in commercial products. If you use this
|
||||||
|
source code in a product, acknowledgment is not required but would be
|
||||||
|
appreciated.
|
||||||
|
|
||||||
|
END OF COPYRIGHT NOTICE, DISCLAIMER, and LICENSE.
|
||||||
|
|
||||||
|
TRADEMARK:
|
||||||
|
|
||||||
|
The name "libpng" has not been registered by the Copyright owner
|
||||||
|
as a trademark in any jurisdiction. However, because libpng has
|
||||||
|
been distributed and maintained world-wide, continually since 1995,
|
||||||
|
the Copyright owner claims "common-law trademark protection" in any
|
||||||
|
jurisdiction where common-law trademark is recognized.
|
||||||
|
|
||||||
|
OSI CERTIFICATION:
|
||||||
|
|
||||||
|
Libpng is OSI Certified Open Source Software. OSI Certified Open Source is
|
||||||
|
a certification mark of the Open Source Initiative. OSI has not addressed
|
||||||
|
the additional disclaimers inserted at version 1.0.7.
|
||||||
|
|
||||||
|
EXPORT CONTROL:
|
||||||
|
|
||||||
|
The Copyright owner believes that the Export Control Classification
|
||||||
|
Number (ECCN) for libpng is EAR99, which means not subject to export
|
||||||
|
controls or International Traffic in Arms Regulations (ITAR) because
|
||||||
|
it is open source, publicly available software, that does not contain
|
||||||
|
any encryption software. See the EAR, paragraphs 734.3(b)(3) and
|
||||||
|
734.7(b).
|
||||||
|
|
||||||
|
Glenn Randers-Pehrson
|
||||||
|
glennrp at users.sourceforge.net
|
||||||
|
July 15, 2018
|
||||||
222
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/libpng-README
Executable file
222
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/libpng-README
Executable file
|
|
@ -0,0 +1,222 @@
|
||||||
|
README for libpng version 1.6.35 - July 15, 2018 (shared library 16.0)
|
||||||
|
See the note about version numbers near the top of png.h
|
||||||
|
|
||||||
|
See INSTALL for instructions on how to install libpng.
|
||||||
|
|
||||||
|
Libpng comes in several distribution formats. Get libpng-*.tar.gz or
|
||||||
|
libpng-*.tar.xz or if you want UNIX-style line endings in the text files,
|
||||||
|
or lpng*.7z or lpng*.zip if you want DOS-style line endings.
|
||||||
|
|
||||||
|
Version 0.89 was the first official release of libpng. Don't let the
|
||||||
|
fact that it's the first release fool you. The libpng library has been in
|
||||||
|
extensive use and testing since mid-1995. By late 1997 it had
|
||||||
|
finally gotten to the stage where there hadn't been significant
|
||||||
|
changes to the API in some time, and people have a bad feeling about
|
||||||
|
libraries with versions < 1.0. Version 1.0.0 was released in
|
||||||
|
March 1998.
|
||||||
|
|
||||||
|
****
|
||||||
|
Note that some of the changes to the png_info structure render this
|
||||||
|
version of the library binary incompatible with libpng-0.89 or
|
||||||
|
earlier versions if you are using a shared library. The type of the
|
||||||
|
"filler" parameter for png_set_filler() has changed from png_byte to
|
||||||
|
png_uint_32, which will affect shared-library applications that use
|
||||||
|
this function.
|
||||||
|
|
||||||
|
To avoid problems with changes to the internals of the png info_struct,
|
||||||
|
new APIs have been made available in 0.95 to avoid direct application
|
||||||
|
access to info_ptr. These functions are the png_set_<chunk> and
|
||||||
|
png_get_<chunk> functions. These functions should be used when
|
||||||
|
accessing/storing the info_struct data, rather than manipulating it
|
||||||
|
directly, to avoid such problems in the future.
|
||||||
|
|
||||||
|
It is important to note that the APIs did not make current programs
|
||||||
|
that access the info struct directly incompatible with the new
|
||||||
|
library, through libpng-1.2.x. In libpng-1.4.x, which was meant to
|
||||||
|
be a transitional release, members of the png_struct and the
|
||||||
|
info_struct can still be accessed, but the compiler will issue a
|
||||||
|
warning about deprecated usage. Since libpng-1.5.0, direct access
|
||||||
|
to these structs is not allowed, and the definitions of the structs
|
||||||
|
reside in private pngstruct.h and pnginfo.h header files that are not
|
||||||
|
accessible to applications. It is strongly suggested that new
|
||||||
|
programs use the new APIs (as shown in example.c and pngtest.c), and
|
||||||
|
older programs be converted to the new format, to facilitate upgrades
|
||||||
|
in the future.
|
||||||
|
****
|
||||||
|
|
||||||
|
Additions since 0.90 include the ability to compile libpng as a
|
||||||
|
Windows DLL, and new APIs for accessing data in the info struct.
|
||||||
|
Experimental functions include the ability to set weighting and cost
|
||||||
|
factors for row filter selection, direct reads of integers from buffers
|
||||||
|
on big-endian processors that support misaligned data access, faster
|
||||||
|
methods of doing alpha composition, and more accurate 16->8 bit color
|
||||||
|
conversion.
|
||||||
|
|
||||||
|
The additions since 0.89 include the ability to read from a PNG stream
|
||||||
|
which has had some (or all) of the signature bytes read by the calling
|
||||||
|
application. This also allows the reading of embedded PNG streams that
|
||||||
|
do not have the PNG file signature. As well, it is now possible to set
|
||||||
|
the library action on the detection of chunk CRC errors. It is possible
|
||||||
|
to set different actions based on whether the CRC error occurred in a
|
||||||
|
critical or an ancillary chunk.
|
||||||
|
|
||||||
|
The changes made to the library, and bugs fixed are based on discussions
|
||||||
|
on the PNG-implement mailing list and not on material submitted
|
||||||
|
privately to Guy, Andreas, or Glenn. They will forward any good
|
||||||
|
suggestions to the list.
|
||||||
|
|
||||||
|
For a detailed description on using libpng, read libpng-manual.txt. For
|
||||||
|
examples of libpng in a program, see example.c and pngtest.c. For usage
|
||||||
|
information and restrictions (what little they are) on libpng, see
|
||||||
|
png.h. For a description on using zlib (the compression library used by
|
||||||
|
libpng) and zlib's restrictions, see zlib.h
|
||||||
|
|
||||||
|
I have included a general makefile, as well as several machine and
|
||||||
|
compiler specific ones, but you may have to modify one for your own needs.
|
||||||
|
|
||||||
|
You should use zlib 1.0.4 or later to run this, but it MAY work with
|
||||||
|
versions as old as zlib 0.95. Even so, there are bugs in older zlib
|
||||||
|
versions which can cause the output of invalid compression streams for
|
||||||
|
some images. You will definitely need zlib 1.0.4 or later if you are
|
||||||
|
taking advantage of the MS-DOS "far" structure allocation for the small
|
||||||
|
and medium memory models. You should also note that zlib is a
|
||||||
|
compression library that is useful for more things than just PNG files.
|
||||||
|
You can use zlib as a drop-in replacement for fread() and fwrite() if
|
||||||
|
you are so inclined.
|
||||||
|
|
||||||
|
zlib should be available at the same place that libpng is, or at zlib.net.
|
||||||
|
|
||||||
|
You may also want a copy of the PNG specification. It is available
|
||||||
|
as an RFC, a W3C Recommendation, and an ISO/IEC Standard. You can find
|
||||||
|
these at http://www.libpng.org/pub/png/pngdocs.html .
|
||||||
|
|
||||||
|
This code is currently being archived at libpng.sourceforge.io in the
|
||||||
|
[DOWNLOAD] area, and at http://libpng.download/src . If you
|
||||||
|
can't find it in any of those places, e-mail me, and I'll help you find it.
|
||||||
|
|
||||||
|
I am not a lawyer, but I believe that the Export Control Classification
|
||||||
|
Number (ECCN) for libpng is EAR99, which means not subject to export
|
||||||
|
controls or International Traffic in Arms Regulations (ITAR) because it
|
||||||
|
is open source, publicly available software, that does not contain any
|
||||||
|
encryption software. See the EAR, paragraphs 734.3(b)(3) and 734.7(b).
|
||||||
|
|
||||||
|
If you have any code changes, requests, problems, etc., please e-mail
|
||||||
|
them to me. Also, I'd appreciate any make files or project files,
|
||||||
|
and any modifications you needed to make to get libpng to compile,
|
||||||
|
along with a #define variable to tell what compiler/system you are on.
|
||||||
|
If you needed to add transformations to libpng, or wish libpng would
|
||||||
|
provide the image in a different way, drop me a note (and code, if
|
||||||
|
possible), so I can consider supporting the transformation.
|
||||||
|
Finally, if you get any warning messages when compiling libpng
|
||||||
|
(note: not zlib), and they are easy to fix, I'd appreciate the
|
||||||
|
fix. Please mention "libpng" somewhere in the subject line. Thanks.
|
||||||
|
|
||||||
|
This release was created and will be supported by myself (of course
|
||||||
|
based in a large way on Guy's and Andreas' earlier work), and the PNG
|
||||||
|
development group.
|
||||||
|
|
||||||
|
Send comments/corrections/commendations to png-mng-implement at
|
||||||
|
lists.sourceforge.net (subscription required; visit
|
||||||
|
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
|
||||||
|
to subscribe).
|
||||||
|
|
||||||
|
You can't reach Guy, the original libpng author, at the addresses
|
||||||
|
given in previous versions of this document. He and Andreas will
|
||||||
|
read mail addressed to the png-implement list, however.
|
||||||
|
|
||||||
|
Please do not send general questions about PNG. Send them to
|
||||||
|
png-mng-misc at lists.sf.net (subscription required; visit
|
||||||
|
https://lists.sourceforge.net/lists/listinfo/png-mng-misc to
|
||||||
|
subscribe). If you have a question about something
|
||||||
|
in the PNG specification that is related to using libpng, send it
|
||||||
|
to me. Send me any questions that start with "I was using libpng,
|
||||||
|
and ...". If in doubt, send questions to me. I'll bounce them
|
||||||
|
to others, if necessary.
|
||||||
|
|
||||||
|
Please do not send suggestions on how to change PNG. We have
|
||||||
|
been discussing PNG for twenty years now, and it is official and
|
||||||
|
finished. If you have suggestions for libpng, however, I'll
|
||||||
|
gladly listen. Even if your suggestion is not used immediately,
|
||||||
|
it may be used later.
|
||||||
|
|
||||||
|
Files in this distribution:
|
||||||
|
|
||||||
|
ANNOUNCE => Announcement of this version, with recent changes
|
||||||
|
CHANGES => Description of changes between libpng versions
|
||||||
|
KNOWNBUG => List of known bugs and deficiencies
|
||||||
|
LICENSE => License to use and redistribute libpng
|
||||||
|
README => This file
|
||||||
|
TODO => Things not implemented in the current library
|
||||||
|
Y2KINFO => Statement of Y2K compliance
|
||||||
|
example.c => Example code for using libpng functions
|
||||||
|
libpng.3 => manual page for libpng (includes libpng-manual.txt)
|
||||||
|
libpng-manual.txt => Description of libpng and its functions
|
||||||
|
libpngpf.3 => manual page for libpng's private functions
|
||||||
|
png.5 => manual page for the PNG format
|
||||||
|
png.c => Basic interface functions common to library
|
||||||
|
png.h => Library function and interface declarations (public)
|
||||||
|
pngpriv.h => Library function and interface declarations (private)
|
||||||
|
pngconf.h => System specific library configuration (public)
|
||||||
|
pngstruct.h => png_struct declaration (private)
|
||||||
|
pnginfo.h => png_info struct declaration (private)
|
||||||
|
pngdebug.h => debugging macros (private)
|
||||||
|
pngerror.c => Error/warning message I/O functions
|
||||||
|
pngget.c => Functions for retrieving info from struct
|
||||||
|
pngmem.c => Memory handling functions
|
||||||
|
pngbar.png => PNG logo, 88x31
|
||||||
|
pngnow.png => PNG logo, 98x31
|
||||||
|
pngpread.c => Progressive reading functions
|
||||||
|
pngread.c => Read data/helper high-level functions
|
||||||
|
pngrio.c => Lowest-level data read I/O functions
|
||||||
|
pngrtran.c => Read data transformation functions
|
||||||
|
pngrutil.c => Read data utility functions
|
||||||
|
pngset.c => Functions for storing data into the info_struct
|
||||||
|
pngtest.c => Library test program
|
||||||
|
pngtest.png => Library test sample image
|
||||||
|
pngtrans.c => Common data transformation functions
|
||||||
|
pngwio.c => Lowest-level write I/O functions
|
||||||
|
pngwrite.c => High-level write functions
|
||||||
|
pngwtran.c => Write data transformations
|
||||||
|
pngwutil.c => Write utility functions
|
||||||
|
arm => Contains optimized code for the ARM platform
|
||||||
|
powerpc => Contains optimized code for the PowerPC platform
|
||||||
|
contrib => Contributions
|
||||||
|
arm-neon => Optimized code for ARM-NEON platform
|
||||||
|
powerpc-vsx => Optimized code for POWERPC-VSX platform
|
||||||
|
examples => Example programs
|
||||||
|
gregbook => source code for PNG reading and writing, from
|
||||||
|
Greg Roelofs' "PNG: The Definitive Guide",
|
||||||
|
O'Reilly, 1999
|
||||||
|
libtests => Test programs
|
||||||
|
mips-msa => Optimized code for MIPS-MSA platform
|
||||||
|
pngminim => Minimal decoder, encoder, and progressive decoder
|
||||||
|
programs demonstrating use of pngusr.dfa
|
||||||
|
pngminus => Simple pnm2png and png2pnm programs
|
||||||
|
pngsuite => Test images
|
||||||
|
testpngs
|
||||||
|
tools => Various tools
|
||||||
|
visupng => Contains a MSVC workspace for VisualPng
|
||||||
|
intel => Optimized code for INTEL-SSE2 platform
|
||||||
|
mips => Optimized code for MIPS platform
|
||||||
|
projects => Contains project files and workspaces for
|
||||||
|
building a DLL
|
||||||
|
owatcom => Contains a WATCOM project for building libpng
|
||||||
|
visualc71 => Contains a Microsoft Visual C++ (MSVC)
|
||||||
|
workspace for building libpng and zlib
|
||||||
|
vstudio => Contains a Microsoft Visual C++ (MSVC)
|
||||||
|
workspace for building libpng and zlib
|
||||||
|
scripts => Directory containing scripts for building libpng:
|
||||||
|
(see scripts/README.txt for the list of scripts)
|
||||||
|
|
||||||
|
Good luck, and happy coding.
|
||||||
|
|
||||||
|
-Glenn Randers-Pehrson (current maintainer, since 1998)
|
||||||
|
Internet: glennrp at users.sourceforge.net
|
||||||
|
|
||||||
|
-Andreas Eric Dilger (former maintainer, 1996-1997)
|
||||||
|
Internet: adilger at enel.ucalgary.ca
|
||||||
|
Web: http://www-mddsp.enel.ucalgary.ca/People/adilger/
|
||||||
|
|
||||||
|
-Guy Eric Schalnat (original author and former maintainer, 1995-1996)
|
||||||
|
(formerly of Group 42, Inc)
|
||||||
|
Internet: gschal at infinet.com
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
Copyright (c) 1988-1997 Sam Leffler
|
||||||
|
Copyright (c) 1991-1997 Silicon Graphics, Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, distribute, and sell this software and
|
||||||
|
its documentation for any purpose is hereby granted without fee, provided
|
||||||
|
that (i) the above copyright notices and this permission notice appear in
|
||||||
|
all copies of the software and related documentation, and (ii) the names of
|
||||||
|
Sam Leffler and Silicon Graphics may not be used in any advertising or
|
||||||
|
publicity relating to the software without the specific, prior written
|
||||||
|
permission of Sam Leffler and Silicon Graphics.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||||
|
WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
|
||||||
|
ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||||
|
OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||||
|
WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||||
|
LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||||
|
OF THIS SOFTWARE.
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
Developers:
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Florian Kainz <kainz@ilm.com>
|
||||||
|
Rod Bogart <rgb@ilm.com>
|
||||||
|
Drew Hess <dhess@ilm.com>
|
||||||
|
Bill Anderson <wja@ilm.com>
|
||||||
|
Wojciech Jarosz <wjarosz@ucsd.edu>
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Rito Trevino
|
||||||
|
Josh Pines
|
||||||
|
Christian Rouet
|
||||||
|
|
||||||
|
Win32 build system:
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Nick Porcino <NPorcino@lucasarts.com>
|
||||||
|
Kimball Thurston
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
Developers:
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Florian Kainz <kainz@ilm.com>
|
||||||
|
Rod Bogart <rgb@ilm.com>
|
||||||
|
Drew Hess <dhess@ilm.com>
|
||||||
|
Paul Schneider <paultschneider@mac.com>
|
||||||
|
Bill Anderson <wja@ilm.com>
|
||||||
|
Wojciech Jarosz <wjarosz@ucsd.edu>
|
||||||
|
Andrew Kunz <akunz@ilm.com>
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Simon Green <SGreen@nvidia.com>
|
||||||
|
Rito Trevino <etrevino@ilm.com>
|
||||||
|
Josh Pines
|
||||||
|
Christian Rouet
|
||||||
|
Rodrigo Damazio <rdamazio@lsi.usp.br>
|
||||||
|
Greg Ward <gward@lmi.net>
|
||||||
|
Joseph Goldstone <joseph@lp.com>
|
||||||
|
Loren Carpenter, Pixar Animation Studios
|
||||||
|
|
||||||
|
Win32 build system:
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Nick Porcino <NPorcino@lucasarts.com>
|
||||||
|
Kimball Thurston
|
||||||
|
|
||||||
|
Win32 port contributors:
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
Dustin Graves <dgraves@computer.org>
|
||||||
|
Jukka Liimatta <jukka.liimatta@twilight3d.com>
|
||||||
|
Baumann Konstantin <Konstantin.Baumann@hpi.uni-potsdam.de>
|
||||||
|
Daniel Koch <daniel@eyeonline.com>
|
||||||
|
E. Scott Larsen <larsene@cs.unc.edu>
|
||||||
|
stephan mantler <step@acm.org>
|
||||||
|
Andreas Kahler <AKahler@nxn-software.com>
|
||||||
|
Frank Jargstorff <fjargstorff@nvidia.com>
|
||||||
|
Lutz Latta
|
||||||
34
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/openexr-LICENSE
Executable file
34
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/openexr-LICENSE
Executable file
|
|
@ -0,0 +1,34 @@
|
||||||
|
Copyright (c) 2006, Industrial Light & Magic, a division of Lucasfilm
|
||||||
|
Entertainment Company Ltd. Portions contributed and copyright held by
|
||||||
|
others as indicated. All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above
|
||||||
|
copyright notice, this list of conditions and the following
|
||||||
|
disclaimer.
|
||||||
|
|
||||||
|
* Redistributions in binary form must reproduce the above
|
||||||
|
copyright notice, this list of conditions and the following
|
||||||
|
disclaimer in the documentation and/or other materials provided with
|
||||||
|
the distribution.
|
||||||
|
|
||||||
|
* Neither the name of Industrial Light & Magic nor the names of
|
||||||
|
any other contributors to this software may be used to endorse or
|
||||||
|
promote products derived from this software without specific prior
|
||||||
|
written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||||
|
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||||
|
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||||
|
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
|
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
diff --git a/3rdparty/openexr/IlmImf/ImfAcesFile.cpp b/3rdparty/openexr/IlmImf/ImfAcesFile.cpp
|
||||||
|
index de4bf83..9418b9d 100644
|
||||||
|
--- a/3rdparty/openexr/IlmImf/ImfAcesFile.cpp
|
||||||
|
+++ b/3rdparty/openexr/IlmImf/ImfAcesFile.cpp
|
||||||
|
@@ -42,6 +42,7 @@
|
||||||
|
#include <ImfRgbaFile.h>
|
||||||
|
#include <ImfStandardAttributes.h>
|
||||||
|
#include <Iex.h>
|
||||||
|
+#include <algorithm> // for std::max()
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
using namespace Imath;
|
||||||
|
diff --git a/3rdparty/openexr/IlmImf/ImfOutputFile.cpp b/3rdparty/openexr/IlmImf/ImfOutputFile.cpp
|
||||||
|
index 8831ec9..e69b92b 100644
|
||||||
|
--- a/3rdparty/openexr/IlmImf/ImfOutputFile.cpp
|
||||||
|
+++ b/3rdparty/openexr/IlmImf/ImfOutputFile.cpp
|
||||||
|
@@ -58,6 +58,7 @@
|
||||||
|
#include <vector>
|
||||||
|
#include <fstream>
|
||||||
|
#include <assert.h>
|
||||||
|
+#include <algorithm> // for std::max()
|
||||||
|
|
||||||
|
|
||||||
|
namespace Imf {
|
||||||
|
diff --git a/3rdparty/openexr/IlmImf/ImfScanLineInputFile.cpp b/3rdparty/openexr/IlmImf/ImfScanLineInputFile.cpp
|
||||||
|
index f7a12a3..5d8b522 100644
|
||||||
|
--- a/3rdparty/openexr/IlmImf/ImfScanLineInputFile.cpp
|
||||||
|
+++ b/3rdparty/openexr/IlmImf/ImfScanLineInputFile.cpp
|
||||||
|
@@ -56,6 +56,7 @@
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
#include <assert.h>
|
||||||
|
+#include <algorithm> // for std::max()
|
||||||
|
|
||||||
|
|
||||||
|
namespace Imf {
|
||||||
|
diff --git a/3rdparty/openexr/IlmImf/ImfTiledMisc.cpp b/3rdparty/openexr/IlmImf/ImfTiledMisc.cpp
|
||||||
|
index 57f52f1..9588e78 100644
|
||||||
|
--- a/3rdparty/openexr/IlmImf/ImfTiledMisc.cpp
|
||||||
|
+++ b/3rdparty/openexr/IlmImf/ImfTiledMisc.cpp
|
||||||
|
@@ -43,6 +43,7 @@
|
||||||
|
#include "Iex.h"
|
||||||
|
#include <ImfMisc.h>
|
||||||
|
#include <ImfChannelList.h>
|
||||||
|
+#include <algorithm> // for std::max()
|
||||||
|
|
||||||
|
|
||||||
|
namespace Imf {
|
||||||
|
diff --git a/3rdparty/openexr/IlmImf/ImfTiledOutputFile.cpp b/3rdparty/openexr/IlmImf/ImfTiledOutputFile.cpp
|
||||||
|
index 0882106..0bc3cb3 100644
|
||||||
|
--- a/3rdparty/openexr/IlmImf/ImfTiledOutputFile.cpp
|
||||||
|
+++ b/3rdparty/openexr/IlmImf/ImfTiledOutputFile.cpp
|
||||||
|
@@ -63,6 +63,7 @@
|
||||||
|
#include <fstream>
|
||||||
|
#include <assert.h>
|
||||||
|
#include <map>
|
||||||
|
+#include <algorithm> // for std::max()
|
||||||
|
|
||||||
|
|
||||||
|
namespace Imf {
|
||||||
|
diff --git a/3rdparty/openexr/Imath/ImathMatrixAlgo.cpp b/3rdparty/openexr/Imath/ImathMatrixAlgo.cpp
|
||||||
|
index f0d2ed6..7ddc649 100644
|
||||||
|
--- a/3rdparty/openexr/Imath/ImathMatrixAlgo.cpp
|
||||||
|
+++ b/3rdparty/openexr/Imath/ImathMatrixAlgo.cpp
|
||||||
|
@@ -44,6 +44,7 @@
|
||||||
|
|
||||||
|
#include "ImathMatrixAlgo.h"
|
||||||
|
#include <cmath>
|
||||||
|
+#include <algorithm> // for std::max()
|
||||||
|
|
||||||
|
#if defined(OPENEXR_DLL)
|
||||||
|
#define EXPORT_CONST __declspec(dllexport)
|
||||||
42
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/protobuf-LICENSE
Executable file
42
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/protobuf-LICENSE
Executable file
|
|
@ -0,0 +1,42 @@
|
||||||
|
This license applies to all parts of Protocol Buffers except the following:
|
||||||
|
|
||||||
|
- Atomicops support for generic gcc, located in
|
||||||
|
src/google/protobuf/stubs/atomicops_internals_generic_gcc.h.
|
||||||
|
This file is copyrighted by Red Hat Inc.
|
||||||
|
|
||||||
|
- Atomicops support for AIX/POWER, located in
|
||||||
|
src/google/protobuf/stubs/atomicops_internals_power.h.
|
||||||
|
This file is copyrighted by Bloomberg Finance LP.
|
||||||
|
|
||||||
|
Copyright 2014, Google Inc. All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above
|
||||||
|
copyright notice, this list of conditions and the following disclaimer
|
||||||
|
in the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
* Neither the name of Google Inc. nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived from
|
||||||
|
this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
Code generated by the Protocol Buffer compiler is owned by the owner
|
||||||
|
of the input file used when generating it. This code is not
|
||||||
|
standalone and requires a support library to be linked with it. This
|
||||||
|
support library is itself covered by the above license.
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
Project: Protocol Buffers - Google's data interchange format
|
||||||
|
Source code: https://github.com/google/protobuf
|
||||||
|
Version: 3.5.1
|
||||||
16
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/quirc-LICENSE
Executable file
16
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/quirc-LICENSE
Executable file
|
|
@ -0,0 +1,16 @@
|
||||||
|
quirc -- QR-code recognition library
|
||||||
|
Copyright (C) 2010-2012 Daniel Beer <dlbeer@gmail.com>
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or distribute this software for
|
||||||
|
any purpose with or without fee is hereby granted, provided that the
|
||||||
|
above copyright notice and this permission notice appear in all
|
||||||
|
copies.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
|
||||||
|
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
|
||||||
|
AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||||
|
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||||
|
PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||||
|
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
PERFORMANCE OF THIS SOFTWARE.
|
||||||
115
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/zlib-README
Executable file
115
dependency/opencv/opencv-android-sdk-build/sdk/etc/licenses/zlib-README
Executable file
|
|
@ -0,0 +1,115 @@
|
||||||
|
ZLIB DATA COMPRESSION LIBRARY
|
||||||
|
|
||||||
|
zlib 1.2.11 is a general purpose data compression library. All the code is
|
||||||
|
thread safe. The data format used by the zlib library is described by RFCs
|
||||||
|
(Request for Comments) 1950 to 1952 in the files
|
||||||
|
http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and
|
||||||
|
rfc1952 (gzip format).
|
||||||
|
|
||||||
|
All functions of the compression library are documented in the file zlib.h
|
||||||
|
(volunteer to write man pages welcome, contact zlib@gzip.org). A usage example
|
||||||
|
of the library is given in the file test/example.c which also tests that
|
||||||
|
the library is working correctly. Another example is given in the file
|
||||||
|
test/minigzip.c. The compression library itself is composed of all source
|
||||||
|
files in the root directory.
|
||||||
|
|
||||||
|
To compile all files and run the test program, follow the instructions given at
|
||||||
|
the top of Makefile.in. In short "./configure; make test", and if that goes
|
||||||
|
well, "make install" should work for most flavors of Unix. For Windows, use
|
||||||
|
one of the special makefiles in win32/ or contrib/vstudio/ . For VMS, use
|
||||||
|
make_vms.com.
|
||||||
|
|
||||||
|
Questions about zlib should be sent to <zlib@gzip.org>, or to Gilles Vollant
|
||||||
|
<info@winimage.com> for the Windows DLL version. The zlib home page is
|
||||||
|
http://zlib.net/ . Before reporting a problem, please check this site to
|
||||||
|
verify that you have the latest version of zlib; otherwise get the latest
|
||||||
|
version and check whether the problem still exists or not.
|
||||||
|
|
||||||
|
PLEASE read the zlib FAQ http://zlib.net/zlib_faq.html before asking for help.
|
||||||
|
|
||||||
|
Mark Nelson <markn@ieee.org> wrote an article about zlib for the Jan. 1997
|
||||||
|
issue of Dr. Dobb's Journal; a copy of the article is available at
|
||||||
|
http://marknelson.us/1997/01/01/zlib-engine/ .
|
||||||
|
|
||||||
|
The changes made in version 1.2.11 are documented in the file ChangeLog.
|
||||||
|
|
||||||
|
Unsupported third party contributions are provided in directory contrib/ .
|
||||||
|
|
||||||
|
zlib is available in Java using the java.util.zip package, documented at
|
||||||
|
http://java.sun.com/developer/technicalArticles/Programming/compression/ .
|
||||||
|
|
||||||
|
A Perl interface to zlib written by Paul Marquess <pmqs@cpan.org> is available
|
||||||
|
at CPAN (Comprehensive Perl Archive Network) sites, including
|
||||||
|
http://search.cpan.org/~pmqs/IO-Compress-Zlib/ .
|
||||||
|
|
||||||
|
A Python interface to zlib written by A.M. Kuchling <amk@amk.ca> is
|
||||||
|
available in Python 1.5 and later versions, see
|
||||||
|
http://docs.python.org/library/zlib.html .
|
||||||
|
|
||||||
|
zlib is built into tcl: http://wiki.tcl.tk/4610 .
|
||||||
|
|
||||||
|
An experimental package to read and write files in .zip format, written on top
|
||||||
|
of zlib by Gilles Vollant <info@winimage.com>, is available in the
|
||||||
|
contrib/minizip directory of zlib.
|
||||||
|
|
||||||
|
|
||||||
|
Notes for some targets:
|
||||||
|
|
||||||
|
- For Windows DLL versions, please see win32/DLL_FAQ.txt
|
||||||
|
|
||||||
|
- For 64-bit Irix, deflate.c must be compiled without any optimization. With
|
||||||
|
-O, one libpng test fails. The test works in 32 bit mode (with the -n32
|
||||||
|
compiler flag). The compiler bug has been reported to SGI.
|
||||||
|
|
||||||
|
- zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 it works
|
||||||
|
when compiled with cc.
|
||||||
|
|
||||||
|
- On Digital Unix 4.0D (formely OSF/1) on AlphaServer, the cc option -std1 is
|
||||||
|
necessary to get gzprintf working correctly. This is done by configure.
|
||||||
|
|
||||||
|
- zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works with
|
||||||
|
other compilers. Use "make test" to check your compiler.
|
||||||
|
|
||||||
|
- gzdopen is not supported on RISCOS or BEOS.
|
||||||
|
|
||||||
|
- For PalmOs, see http://palmzlib.sourceforge.net/
|
||||||
|
|
||||||
|
|
||||||
|
Acknowledgments:
|
||||||
|
|
||||||
|
The deflate format used by zlib was defined by Phil Katz. The deflate and
|
||||||
|
zlib specifications were written by L. Peter Deutsch. Thanks to all the
|
||||||
|
people who reported problems and suggested various improvements in zlib; they
|
||||||
|
are too numerous to cite here.
|
||||||
|
|
||||||
|
Copyright notice:
|
||||||
|
|
||||||
|
(C) 1995-2017 Jean-loup Gailly and Mark Adler
|
||||||
|
|
||||||
|
This software is provided 'as-is', without any express or implied
|
||||||
|
warranty. In no event will the authors be held liable for any damages
|
||||||
|
arising from the use of this software.
|
||||||
|
|
||||||
|
Permission is granted to anyone to use this software for any purpose,
|
||||||
|
including commercial applications, and to alter it and redistribute it
|
||||||
|
freely, subject to the following restrictions:
|
||||||
|
|
||||||
|
1. The origin of this software must not be misrepresented; you must not
|
||||||
|
claim that you wrote the original software. If you use this software
|
||||||
|
in a product, an acknowledgment in the product documentation would be
|
||||||
|
appreciated but is not required.
|
||||||
|
2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
misrepresented as being the original software.
|
||||||
|
3. This notice may not be removed or altered from any source distribution.
|
||||||
|
|
||||||
|
Jean-loup Gailly Mark Adler
|
||||||
|
jloup@gzip.org madler@alumni.caltech.edu
|
||||||
|
|
||||||
|
If you use the zlib library in a product, we would appreciate *not* receiving
|
||||||
|
lengthy legal documents to sign. The sources are provided for free but without
|
||||||
|
warranty of any kind. The library has been entirely written by Jean-loup
|
||||||
|
Gailly and Mark Adler; it does not include third-party code.
|
||||||
|
|
||||||
|
If you redistribute modified sources, we would appreciate that you include in
|
||||||
|
the file ChangeLog history information documenting your changes. Please read
|
||||||
|
the FAQ for more information on the distribution of modified source versions.
|
||||||
221
dependency/opencv/opencv-android-sdk-build/sdk/etc/valgrind.supp
Executable file
221
dependency/opencv/opencv-android-sdk-build/sdk/etc/valgrind.supp
Executable file
|
|
@ -0,0 +1,221 @@
|
||||||
|
{
|
||||||
|
OpenCV-IPP static init
|
||||||
|
Memcheck:Cond
|
||||||
|
fun:ippicvGetCpuFeatures
|
||||||
|
fun:ippicvStaticInit
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-getInitializationMutex
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cv22getInitializationMutexEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-SingletonBuffer
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cv20allocSingletonBufferEm
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-getStdAllocator
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cv3Mat15getStdAllocatorEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-getOpenCLAllocator
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cv3ocl18getOpenCLAllocatorEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-getCoreTlsData
|
||||||
|
Memcheck:Leak
|
||||||
|
fun:_Znwm
|
||||||
|
fun:_ZN2cv14getCoreTlsDataEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-TLS-getTlsStorage
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cvL13getTlsStorageEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-TLS-getData()
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:*setData*
|
||||||
|
fun:_ZNK2cv16TLSDataContainer7getDataEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-parallel_for-reconfigure
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cv10ThreadPool12reconfigure_Ej
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-parallel_for-instance
|
||||||
|
Memcheck:Leak
|
||||||
|
fun:_Znwm
|
||||||
|
fun:*instance*
|
||||||
|
...
|
||||||
|
fun:_ZN2cv13parallel_for_ERKNS_5RangeERKNS_16ParallelLoopBodyEd
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-parallel_for-setNumThreads()
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cv13setNumThreadsEi
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-parallel_for-getNumThreads()
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cv13getNumThreadsEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-getIPPSingelton
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cv3ippL15getIPPSingeltonEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-getGlobalMatOpInitializer
|
||||||
|
Memcheck:Leak
|
||||||
|
fun:_Znwm
|
||||||
|
fun:_ZN2cvL25getGlobalMatOpInitializerEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-CoreTLSData
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZNK2cv7TLSDataINS_11CoreTLSDataEE3getEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-getThreadID()
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cv5utils11getThreadIDEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-ThreadID
|
||||||
|
Memcheck:Leak
|
||||||
|
fun:_Znwm
|
||||||
|
fun:_ZNK2cv7TLSDataINS_12_GLOBAL__N_18ThreadIDEE18createDataInstanceEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-ThreadID-TLS
|
||||||
|
Memcheck:Leak
|
||||||
|
fun:_Znwm
|
||||||
|
fun:getThreadIDTLS
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-CoreTLS
|
||||||
|
Memcheck:Leak
|
||||||
|
fun:_Znwm
|
||||||
|
fun:_ZNK2cv7TLSDataINS_11CoreTLSDataEE18createDataInstanceEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-UMatDataAutoLockerTLS
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cvL21getUMatDataAutoLockerEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-haveOpenCL
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cv3ocl10haveOpenCLEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-DNN-getLayerFactoryMutex
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cv3dnn*L20getLayerFactoryMutexEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-ocl::Context
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cv3ocl7Context10getDefaultEb
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-ocl::Device
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cv3ocl6Device10getDefaultEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-ocl::Queue
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cv3ocl5Queue6createERKNS0_7ContextERKNS0_6DeviceE
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-ocl::Program
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cv3ocl6Kernel6createEPKcRKNS0_7ProgramE
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-ocl::ProgramEntry
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZNK2cv3ocl8internal12ProgramEntrycvRNS0_13ProgramSourceEEv
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-ocl::Context::getProg
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_ZN2cv3ocl7Context7getProgERKNS0_13ProgramSourceERKNS_6StringERS5_
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-getTraceManager()
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:getTraceManagerCallOnce
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-ITT
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:__itt_*create*
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCV-FFmpeg-swsscale
|
||||||
|
Memcheck:Addr16
|
||||||
|
...
|
||||||
|
fun:sws_scale
|
||||||
|
fun:_ZN20CvVideoWriter_FFMPEG10writeFrameEPKhiiiii
|
||||||
|
fun:cvWriteFrame_FFMPEG
|
||||||
|
}
|
||||||
122
dependency/opencv/opencv-android-sdk-build/sdk/etc/valgrind_3rdparty.supp
Executable file
122
dependency/opencv/opencv-android-sdk-build/sdk/etc/valgrind_3rdparty.supp
Executable file
|
|
@ -0,0 +1,122 @@
|
||||||
|
{
|
||||||
|
IPP static init
|
||||||
|
Memcheck:Cond
|
||||||
|
fun:ippicvGetCpuFeatures
|
||||||
|
fun:ippicvStaticInit
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
TBB - allocate_via_handler_v3 issue
|
||||||
|
Memcheck:Leak
|
||||||
|
fun:malloc
|
||||||
|
fun:_ZN3tbb8internal23allocate_via_handler_v3Em
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
GTest
|
||||||
|
Memcheck:Cond
|
||||||
|
fun:_ZN7testing8internal11CmpHelperLEIddEENS_15AssertionResultEPKcS4_RKT_RKT0_
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCL
|
||||||
|
Memcheck:Cond
|
||||||
|
...
|
||||||
|
obj:**/libOpenCL.so*
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCL-Intel
|
||||||
|
Memcheck:Cond
|
||||||
|
...
|
||||||
|
obj:**/libigdrcl.so
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCL-Intel
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
obj:*/libigdrcl.so*
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCL
|
||||||
|
Memcheck:Param
|
||||||
|
ioctl(generic)
|
||||||
|
...
|
||||||
|
fun:clGetPlatformIDs
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
OpenCL-Init
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:clGetPlatformIDs
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
glib
|
||||||
|
Memcheck:Leak
|
||||||
|
fun:*alloc
|
||||||
|
obj:*/libglib*
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
gcrypt
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
obj:*/libgcrypt*
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
p11-kit
|
||||||
|
Memcheck:Leak
|
||||||
|
fun:*alloc
|
||||||
|
obj:*/libp11-kit*
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
gobject
|
||||||
|
Memcheck:Leak
|
||||||
|
fun:*alloc
|
||||||
|
...
|
||||||
|
obj:*/libgobject*
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
tasn
|
||||||
|
Memcheck:Leak
|
||||||
|
fun:*alloc
|
||||||
|
obj:*/libtasn*.so*
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
dl_init
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_dl_init
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
dl_open
|
||||||
|
Memcheck:Leak
|
||||||
|
...
|
||||||
|
fun:_dl_open
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
GDAL
|
||||||
|
Memcheck:Leak
|
||||||
|
fun:*alloc
|
||||||
|
...
|
||||||
|
obj:/usr/lib/libgdal.so.1.17.1
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
FFMPEG-sws_scale
|
||||||
|
Memcheck:Addr16
|
||||||
|
...
|
||||||
|
fun:sws_scale
|
||||||
|
...
|
||||||
|
fun:cvWriteFrame_FFMPEG
|
||||||
|
}
|
||||||
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/libIlmImf.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/libIlmImf.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/libcpufeatures.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/libcpufeatures.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/liblibjasper.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/liblibjasper.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/liblibjpeg-turbo.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/liblibjpeg-turbo.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/liblibpng.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/liblibpng.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/liblibprotobuf.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/liblibprotobuf.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/liblibtiff.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/liblibtiff.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/liblibwebp.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/liblibwebp.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/libquirc.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/libquirc.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/libtegra_hal.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/libtegra_hal.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/libzlib.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/arm64-v8a/libzlib.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/libIlmImf.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/libIlmImf.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/libcpufeatures.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/libcpufeatures.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/liblibjasper.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/liblibjasper.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/liblibjpeg-turbo.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/liblibjpeg-turbo.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/liblibpng.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/liblibpng.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/liblibprotobuf.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/liblibprotobuf.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/liblibtiff.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/liblibtiff.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/liblibwebp.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/liblibwebp.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/libquirc.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/libquirc.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/libtegra_hal.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/libtegra_hal.a
vendored
Executable file
Binary file not shown.
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/libzlib.a
vendored
Executable file
BIN
dependency/opencv/opencv-android-sdk-build/sdk/native/3rdparty/libs/armeabi-v7a/libzlib.a
vendored
Executable file
Binary file not shown.
|
|
@ -0,0 +1,2 @@
|
||||||
|
OPENCV_3RDPARTY_COMPONENTS:=cpufeatures zlib libjpeg-turbo libwebp libpng libtiff libjasper IlmImf tegra_hal
|
||||||
|
OPENCV_EXTRA_COMPONENTS:=dl m log
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
OPENCV_3RDPARTY_COMPONENTS:=cpufeatures zlib libjpeg-turbo libwebp libpng libtiff libjasper IlmImf tegra_hal
|
||||||
|
OPENCV_EXTRA_COMPONENTS:=dl m log
|
||||||
120
dependency/opencv/opencv-android-sdk-build/sdk/native/jni/OpenCV.mk
Executable file
120
dependency/opencv/opencv-android-sdk-build/sdk/native/jni/OpenCV.mk
Executable file
|
|
@ -0,0 +1,120 @@
|
||||||
|
# In order to compile your application under cygwin
|
||||||
|
# you might need to define NDK_USE_CYGPATH=1 before calling the ndk-build
|
||||||
|
|
||||||
|
USER_LOCAL_PATH:=$(LOCAL_PATH)
|
||||||
|
|
||||||
|
USER_LOCAL_C_INCLUDES:=$(LOCAL_C_INCLUDES)
|
||||||
|
USER_LOCAL_CFLAGS:=$(LOCAL_CFLAGS)
|
||||||
|
USER_LOCAL_STATIC_LIBRARIES:=$(LOCAL_STATIC_LIBRARIES)
|
||||||
|
USER_LOCAL_SHARED_LIBRARIES:=$(LOCAL_SHARED_LIBRARIES)
|
||||||
|
USER_LOCAL_LDLIBS:=$(LOCAL_LDLIBS)
|
||||||
|
|
||||||
|
LOCAL_PATH:=$(subst ?,,$(firstword ?$(subst \, ,$(subst /, ,$(call my-dir)))))
|
||||||
|
|
||||||
|
OPENCV_TARGET_ARCH_ABI:=$(TARGET_ARCH_ABI)
|
||||||
|
OPENCV_THIS_DIR:=$(patsubst $(LOCAL_PATH)\\%,%,$(patsubst $(LOCAL_PATH)/%,%,$(call my-dir)))
|
||||||
|
OPENCV_MK_DIR:=$(dir $(lastword $(MAKEFILE_LIST)))
|
||||||
|
OPENCV_3RDPARTY_LIBS_DIR:=$(OPENCV_THIS_DIR)/../3rdparty/libs/$(OPENCV_TARGET_ARCH_ABI)
|
||||||
|
OPENCV_BASEDIR:=
|
||||||
|
OPENCV_LOCAL_C_INCLUDES:="$(LOCAL_PATH)/$(OPENCV_THIS_DIR)/include/opencv" "$(LOCAL_PATH)/$(OPENCV_THIS_DIR)/include"
|
||||||
|
OPENCV_MODULES:=calib3d features2d imgcodecs imgproc core
|
||||||
|
OPENCV_SUB_MK:=$(call my-dir)/OpenCV-$(TARGET_ARCH_ABI).mk
|
||||||
|
|
||||||
|
ifeq ($(OPENCV_LIB_TYPE),)
|
||||||
|
OPENCV_LIB_TYPE:=SHARED
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OPENCV_LIB_TYPE),SHARED)
|
||||||
|
OPENCV_LIBS:=java3
|
||||||
|
OPENCV_LIB_TYPE:=SHARED
|
||||||
|
else
|
||||||
|
OPENCV_LIBS:=$(OPENCV_MODULES)
|
||||||
|
OPENCV_LIB_TYPE:=STATIC
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OPENCV_LIB_TYPE),SHARED)
|
||||||
|
OPENCV_3RDPARTY_COMPONENTS:=
|
||||||
|
OPENCV_EXTRA_COMPONENTS:=
|
||||||
|
else
|
||||||
|
include $(OPENCV_SUB_MK)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OPENCV_LIB_TYPE),SHARED)
|
||||||
|
OPENCV_LIBS_DIR:=$(OPENCV_THIS_DIR)/../libs/$(OPENCV_TARGET_ARCH_ABI)
|
||||||
|
OPENCV_LIB_SUFFIX:=so
|
||||||
|
else
|
||||||
|
OPENCV_LIBS_DIR:=$(OPENCV_THIS_DIR)/../staticlibs/$(OPENCV_TARGET_ARCH_ABI)
|
||||||
|
OPENCV_LIB_SUFFIX:=a
|
||||||
|
OPENCV_INSTALL_MODULES:=on
|
||||||
|
endif
|
||||||
|
|
||||||
|
define add_opencv_module
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE:=opencv_$1
|
||||||
|
LOCAL_SRC_FILES:=$(OPENCV_LIBS_DIR)/libopencv_$1.$(OPENCV_LIB_SUFFIX)
|
||||||
|
include $(PREBUILT_$(OPENCV_LIB_TYPE)_LIBRARY)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define add_opencv_3rdparty_component
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE:=$1
|
||||||
|
LOCAL_SRC_FILES:=$(OPENCV_3RDPARTY_LIBS_DIR)/lib$1.a
|
||||||
|
include $(PREBUILT_STATIC_LIBRARY)
|
||||||
|
endef
|
||||||
|
|
||||||
|
ifeq ($(OPENCV_MK_$(OPENCV_TARGET_ARCH_ABI)_ALREADY_INCLUDED),)
|
||||||
|
ifeq ($(OPENCV_INSTALL_MODULES),on)
|
||||||
|
$(foreach module,$(OPENCV_LIBS),$(eval $(call add_opencv_module,$(module))))
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(foreach module,$(OPENCV_3RDPARTY_COMPONENTS),$(eval $(call add_opencv_3rdparty_component,$(module))))
|
||||||
|
|
||||||
|
ifneq ($(OPENCV_BASEDIR),)
|
||||||
|
OPENCV_LOCAL_C_INCLUDES += $(foreach mod, $(OPENCV_MODULES), $(OPENCV_BASEDIR)/modules/$(mod)/include)
|
||||||
|
endif
|
||||||
|
|
||||||
|
#turn off module installation to prevent their redefinition
|
||||||
|
OPENCV_MK_$(OPENCV_TARGET_ARCH_ABI)_ALREADY_INCLUDED:=on
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OPENCV_LOCAL_CFLAGS),)
|
||||||
|
OPENCV_LOCAL_CFLAGS := -fPIC -DANDROID -fsigned-char
|
||||||
|
endif
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
|
LOCAL_C_INCLUDES:=$(USER_LOCAL_C_INCLUDES)
|
||||||
|
LOCAL_CFLAGS:=$(USER_LOCAL_CFLAGS)
|
||||||
|
LOCAL_STATIC_LIBRARIES:=$(USER_LOCAL_STATIC_LIBRARIES)
|
||||||
|
LOCAL_SHARED_LIBRARIES:=$(USER_LOCAL_SHARED_LIBRARIES)
|
||||||
|
LOCAL_LDLIBS:=$(USER_LOCAL_LDLIBS)
|
||||||
|
|
||||||
|
# Details: #10229
|
||||||
|
ifeq ($(OPENCV_SKIP_ANDROID_IPP_FIX_1),)
|
||||||
|
LOCAL_LDFLAGS += -Wl,--exclude-libs,libippicv.a
|
||||||
|
LOCAL_LDFLAGS += -Wl,--exclude-libs,libippiw.a
|
||||||
|
else
|
||||||
|
ifeq ($(OPENCV_SKIP_ANDROID_IPP_FIX_2),)
|
||||||
|
LOCAL_LDFLAGS += -Wl,-Bsymbolic
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
LOCAL_C_INCLUDES += $(OPENCV_LOCAL_C_INCLUDES)
|
||||||
|
LOCAL_CFLAGS += $(OPENCV_LOCAL_CFLAGS)
|
||||||
|
|
||||||
|
ifeq ($(OPENCV_INSTALL_MODULES),on)
|
||||||
|
LOCAL_$(OPENCV_LIB_TYPE)_LIBRARIES += $(foreach mod, $(OPENCV_LIBS), opencv_$(mod))
|
||||||
|
else
|
||||||
|
$(call __ndk_info,OpenCV: You should ignore warning about 'non-system libraries in linker flags' and 'opencv_java' library.)
|
||||||
|
$(call __ndk_info, 'OPENCV_INSTALL_MODULES:=on' can be used to build APK with included OpenCV binaries)
|
||||||
|
LOCAL_LDLIBS += -L$(call host-path,$(LOCAL_PATH)/$(OPENCV_LIBS_DIR)) $(foreach lib, $(OPENCV_LIBS), -lopencv_$(lib))
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OPENCV_LIB_TYPE),STATIC)
|
||||||
|
LOCAL_STATIC_LIBRARIES += $(OPENCV_3RDPARTY_COMPONENTS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
LOCAL_LDLIBS += $(foreach lib,$(OPENCV_EXTRA_COMPONENTS), -l$(lib))
|
||||||
|
|
||||||
|
#restore the LOCAL_PATH
|
||||||
|
LOCAL_PATH:=$(USER_LOCAL_PATH)
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
set(OpenCV_VERSION 3.4.5)
|
||||||
|
set(PACKAGE_VERSION ${OpenCV_VERSION})
|
||||||
|
|
||||||
|
set(PACKAGE_VERSION_EXACT False)
|
||||||
|
set(PACKAGE_VERSION_COMPATIBLE False)
|
||||||
|
|
||||||
|
if(PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION)
|
||||||
|
set(PACKAGE_VERSION_EXACT True)
|
||||||
|
set(PACKAGE_VERSION_COMPATIBLE True)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PACKAGE_FIND_VERSION_MAJOR EQUAL 3
|
||||||
|
AND PACKAGE_FIND_VERSION VERSION_LESS PACKAGE_VERSION)
|
||||||
|
set(PACKAGE_VERSION_COMPATIBLE True)
|
||||||
|
endif()
|
||||||
50
dependency/opencv/opencv-android-sdk-build/sdk/native/jni/OpenCVConfig.cmake
Executable file
50
dependency/opencv/opencv-android-sdk-build/sdk/native/jni/OpenCVConfig.cmake
Executable file
|
|
@ -0,0 +1,50 @@
|
||||||
|
# ===================================================================================
|
||||||
|
# The OpenCV CMake configuration file
|
||||||
|
#
|
||||||
|
# ** File generated automatically, do not modify **
|
||||||
|
#
|
||||||
|
# Usage from an external project:
|
||||||
|
# In your CMakeLists.txt, add these lines:
|
||||||
|
#
|
||||||
|
# find_package(OpenCV REQUIRED)
|
||||||
|
# include_directories(${OpenCV_INCLUDE_DIRS}) # Not needed for CMake >= 2.8.11
|
||||||
|
# target_link_libraries(MY_TARGET_NAME ${OpenCV_LIBS})
|
||||||
|
#
|
||||||
|
# Or you can search for specific OpenCV modules:
|
||||||
|
#
|
||||||
|
# find_package(OpenCV REQUIRED core videoio)
|
||||||
|
#
|
||||||
|
# If the module is found then OPENCV_<MODULE>_FOUND is set to TRUE.
|
||||||
|
#
|
||||||
|
# This file will define the following variables:
|
||||||
|
# - OpenCV_LIBS : The list of all imported targets for OpenCV modules.
|
||||||
|
# - OpenCV_INCLUDE_DIRS : The OpenCV include directories.
|
||||||
|
# - OpenCV_ANDROID_NATIVE_API_LEVEL : Minimum required level of Android API.
|
||||||
|
# - OpenCV_VERSION : The version of this OpenCV build: "3.4.5"
|
||||||
|
# - OpenCV_VERSION_MAJOR : Major version part of OpenCV_VERSION: "3"
|
||||||
|
# - OpenCV_VERSION_MINOR : Minor version part of OpenCV_VERSION: "4"
|
||||||
|
# - OpenCV_VERSION_PATCH : Patch version part of OpenCV_VERSION: "5"
|
||||||
|
# - OpenCV_VERSION_STATUS : Development status of this build: ""
|
||||||
|
#
|
||||||
|
# ===================================================================================
|
||||||
|
|
||||||
|
# Extract directory name from full path of the file currently being processed.
|
||||||
|
# Note that CMake 2.8.3 introduced CMAKE_CURRENT_LIST_DIR. We reimplement it
|
||||||
|
# for older versions of CMake to support these as well.
|
||||||
|
if(CMAKE_VERSION VERSION_LESS "2.8.3")
|
||||||
|
get_filename_component(CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT DEFINED OpenCV_CONFIG_SUBDIR)
|
||||||
|
set(OpenCV_CONFIG_SUBDIR "/abi-${ANDROID_NDK_ABI_NAME}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(OpenCV_CONFIG_PATH "${CMAKE_CURRENT_LIST_DIR}${OpenCV_CONFIG_SUBDIR}")
|
||||||
|
if(EXISTS "${OpenCV_CONFIG_PATH}/OpenCVConfig.cmake")
|
||||||
|
include("${OpenCV_CONFIG_PATH}/OpenCVConfig.cmake")
|
||||||
|
else()
|
||||||
|
if(NOT OpenCV_FIND_QUIETLY)
|
||||||
|
message(WARNING "Found OpenCV Android Pack but it has no binaries compatible with your ABI (can't find: ${OpenCV_CONFIG_SUBDIR})")
|
||||||
|
endif()
|
||||||
|
set(OpenCV_FOUND FALSE)
|
||||||
|
endif()
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
set(OpenCV_VERSION 3.4.5)
|
||||||
|
set(PACKAGE_VERSION ${OpenCV_VERSION})
|
||||||
|
|
||||||
|
set(PACKAGE_VERSION_EXACT False)
|
||||||
|
set(PACKAGE_VERSION_COMPATIBLE False)
|
||||||
|
|
||||||
|
if(PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION)
|
||||||
|
set(PACKAGE_VERSION_EXACT True)
|
||||||
|
set(PACKAGE_VERSION_COMPATIBLE True)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PACKAGE_FIND_VERSION_MAJOR EQUAL 3
|
||||||
|
AND PACKAGE_FIND_VERSION VERSION_LESS PACKAGE_VERSION)
|
||||||
|
set(PACKAGE_VERSION_COMPATIBLE True)
|
||||||
|
endif()
|
||||||
|
|
@ -0,0 +1,328 @@
|
||||||
|
# ===================================================================================
|
||||||
|
# The OpenCV CMake configuration file
|
||||||
|
#
|
||||||
|
# ** File generated automatically, do not modify **
|
||||||
|
#
|
||||||
|
# Usage from an external project:
|
||||||
|
# In your CMakeLists.txt, add these lines:
|
||||||
|
#
|
||||||
|
# find_package(OpenCV REQUIRED)
|
||||||
|
# include_directories(${OpenCV_INCLUDE_DIRS}) # Not needed for CMake >= 2.8.11
|
||||||
|
# target_link_libraries(MY_TARGET_NAME ${OpenCV_LIBS})
|
||||||
|
#
|
||||||
|
# Or you can search for specific OpenCV modules:
|
||||||
|
#
|
||||||
|
# find_package(OpenCV REQUIRED core videoio)
|
||||||
|
#
|
||||||
|
# You can also mark OpenCV components as optional:
|
||||||
|
|
||||||
|
# find_package(OpenCV REQUIRED core OPTIONAL_COMPONENTS viz)
|
||||||
|
#
|
||||||
|
# If the module is found then OPENCV_<MODULE>_FOUND is set to TRUE.
|
||||||
|
#
|
||||||
|
# This file will define the following variables:
|
||||||
|
# - OpenCV_LIBS : The list of all imported targets for OpenCV modules.
|
||||||
|
# - OpenCV_INCLUDE_DIRS : The OpenCV include directories.
|
||||||
|
# - OpenCV_COMPUTE_CAPABILITIES : The version of compute capability.
|
||||||
|
# - OpenCV_ANDROID_NATIVE_API_LEVEL : Minimum required level of Android API.
|
||||||
|
# - OpenCV_VERSION : The version of this OpenCV build: "3.4.5"
|
||||||
|
# - OpenCV_VERSION_MAJOR : Major version part of OpenCV_VERSION: "3"
|
||||||
|
# - OpenCV_VERSION_MINOR : Minor version part of OpenCV_VERSION: "4"
|
||||||
|
# - OpenCV_VERSION_PATCH : Patch version part of OpenCV_VERSION: "5"
|
||||||
|
# - OpenCV_VERSION_STATUS : Development status of this build: ""
|
||||||
|
#
|
||||||
|
# Advanced variables:
|
||||||
|
# - OpenCV_SHARED : Use OpenCV as shared library
|
||||||
|
# - OpenCV_INSTALL_PATH : OpenCV location
|
||||||
|
# - OpenCV_LIB_COMPONENTS : Present OpenCV modules list
|
||||||
|
# - OpenCV_USE_MANGLED_PATHS : Mangled OpenCV path flag
|
||||||
|
#
|
||||||
|
# Deprecated variables:
|
||||||
|
# - OpenCV_VERSION_TWEAK : Always "0"
|
||||||
|
#
|
||||||
|
# ===================================================================================
|
||||||
|
|
||||||
|
# ======================================================
|
||||||
|
# Version variables:
|
||||||
|
# ======================================================
|
||||||
|
SET(OpenCV_VERSION 3.4.5)
|
||||||
|
SET(OpenCV_VERSION_MAJOR 3)
|
||||||
|
SET(OpenCV_VERSION_MINOR 4)
|
||||||
|
SET(OpenCV_VERSION_PATCH 5)
|
||||||
|
SET(OpenCV_VERSION_TWEAK 0)
|
||||||
|
SET(OpenCV_VERSION_STATUS "")
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
|
||||||
|
if(NOT CMAKE_VERSION VERSION_LESS 2.8.8
|
||||||
|
AND OpenCV_FIND_COMPONENTS # prevent excessive output
|
||||||
|
)
|
||||||
|
# HANDLE_COMPONENTS was introduced in CMake 2.8.8
|
||||||
|
list(APPEND _OpenCV_FPHSA_ARGS HANDLE_COMPONENTS)
|
||||||
|
# The missing components will be handled by the FindPackageHandleStandardArgs
|
||||||
|
# module.
|
||||||
|
set(_OpenCV_HANDLE_COMPONENTS_MANUALLY FALSE)
|
||||||
|
else()
|
||||||
|
# The missing components will be handled by this config.
|
||||||
|
set(_OpenCV_HANDLE_COMPONENTS_MANUALLY TRUE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Extract directory name from full path of the file currently being processed.
|
||||||
|
# Note that CMake 2.8.3 introduced CMAKE_CURRENT_LIST_DIR. We reimplement it
|
||||||
|
# for older versions of CMake to support these as well.
|
||||||
|
if(CMAKE_VERSION VERSION_LESS "2.8.3")
|
||||||
|
get_filename_component(CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Extract the directory where *this* file has been installed (determined at cmake run-time)
|
||||||
|
# Get the absolute path with no ../.. relative marks, to eliminate implicit linker warnings
|
||||||
|
set(OpenCV_CONFIG_PATH "${CMAKE_CURRENT_LIST_DIR}")
|
||||||
|
get_filename_component(OpenCV_INSTALL_PATH "${OpenCV_CONFIG_PATH}/../../../../" REALPATH)
|
||||||
|
|
||||||
|
# Search packages for host system instead of packages for target system.
|
||||||
|
# in case of cross compilation this macro should be defined by toolchain file
|
||||||
|
if(NOT COMMAND find_host_package)
|
||||||
|
macro(find_host_package)
|
||||||
|
find_package(${ARGN})
|
||||||
|
endmacro()
|
||||||
|
endif()
|
||||||
|
if(NOT COMMAND find_host_program)
|
||||||
|
macro(find_host_program)
|
||||||
|
find_program(${ARGN})
|
||||||
|
endmacro()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Android API level from which OpenCV has been compiled is remembered
|
||||||
|
set(OpenCV_ANDROID_NATIVE_API_LEVEL "24")
|
||||||
|
|
||||||
|
# ==============================================================
|
||||||
|
# Check OpenCV availability
|
||||||
|
# ==============================================================
|
||||||
|
if(OpenCV_ANDROID_NATIVE_API_LEVEL GREATER ANDROID_NATIVE_API_LEVEL)
|
||||||
|
if(NOT OpenCV_FIND_QUIETLY)
|
||||||
|
message(WARNING "Minimum required by OpenCV API level is android-${OpenCV_ANDROID_NATIVE_API_LEVEL}")
|
||||||
|
endif()
|
||||||
|
set(OpenCV_FOUND 0)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Some additional settings are required if OpenCV is built as static libs
|
||||||
|
set(OpenCV_SHARED OFF)
|
||||||
|
|
||||||
|
# Enables mangled install paths, that help with side by side installs
|
||||||
|
set(OpenCV_USE_MANGLED_PATHS FALSE)
|
||||||
|
|
||||||
|
set(OpenCV_LIB_COMPONENTS opencv_calib3d;opencv_core;opencv_features2d;opencv_imgcodecs;opencv_imgproc)
|
||||||
|
set(OpenCV_INCLUDE_DIRS "${OpenCV_INSTALL_PATH}/sdk/native/jni/include" "${OpenCV_INSTALL_PATH}/sdk/native/jni/include/opencv")
|
||||||
|
|
||||||
|
if(NOT TARGET opencv_core)
|
||||||
|
include(${CMAKE_CURRENT_LIST_DIR}/OpenCVModules${OpenCV_MODULES_SUFFIX}.cmake)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT CMAKE_VERSION VERSION_LESS "2.8.11")
|
||||||
|
# Target property INTERFACE_INCLUDE_DIRECTORIES available since 2.8.11:
|
||||||
|
# * http://www.cmake.org/cmake/help/v2.8.11/cmake.html#prop_tgt:INTERFACE_INCLUDE_DIRECTORIES
|
||||||
|
foreach(__component ${OpenCV_LIB_COMPONENTS})
|
||||||
|
if(TARGET ${__component})
|
||||||
|
set_target_properties(
|
||||||
|
${__component}
|
||||||
|
PROPERTIES
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${OpenCV_INCLUDE_DIRS}"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
if(NOT DEFINED OPENCV_MAP_IMPORTED_CONFIG)
|
||||||
|
if(CMAKE_GENERATOR MATCHES "Visual Studio" OR MSVC)
|
||||||
|
# OpenCV supports Debug and Release builds only.
|
||||||
|
# But MSVS has 'RelWithDebInfo' 'MinSizeRel' configurations for applications.
|
||||||
|
# By default CMake maps these configuration on the first available (Debug) which is wrong.
|
||||||
|
# Non-Debug build of Application can't be used with OpenCV Debug build (ABI mismatch problem)
|
||||||
|
# Add mapping of RelWithDebInfo and MinSizeRel to Release here
|
||||||
|
set(OPENCV_MAP_IMPORTED_CONFIG "RELWITHDEBINFO=!Release;MINSIZEREL=!Release")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
set(__remap_warnings "")
|
||||||
|
macro(ocv_map_imported_config target)
|
||||||
|
if(DEFINED OPENCV_MAP_IMPORTED_CONFIG) # list, "RELWITHDEBINFO=Release;MINSIZEREL=Release"
|
||||||
|
get_target_property(__available_configurations ${target} IMPORTED_CONFIGURATIONS)
|
||||||
|
foreach(remap ${OPENCV_MAP_IMPORTED_CONFIG})
|
||||||
|
if(remap MATCHES "^(.+)=(!?)([^!]+)$")
|
||||||
|
set(__remap_config "${CMAKE_MATCH_1}")
|
||||||
|
set(__final_config "${CMAKE_MATCH_3}")
|
||||||
|
set(__force_flag "${CMAKE_MATCH_2}")
|
||||||
|
string(TOUPPER "${__final_config}" __final_config_upper)
|
||||||
|
string(TOUPPER "${__remap_config}" __remap_config_upper)
|
||||||
|
if(";${__available_configurations};" MATCHES ";${__remap_config_upper};" AND NOT "${__force_flag}" STREQUAL "!")
|
||||||
|
# configuration already exists, skip remap
|
||||||
|
set(__remap_warnings "${__remap_warnings}... Configuration already exists ${__remap_config} (skip mapping ${__remap_config} => ${__final_config}) (available configurations: ${__available_configurations})\n")
|
||||||
|
continue()
|
||||||
|
endif()
|
||||||
|
if(__available_configurations AND NOT ";${__available_configurations};" MATCHES ";${__final_config_upper};")
|
||||||
|
# skip, configuration is not available
|
||||||
|
if(NOT "${__force_flag}" STREQUAL "!")
|
||||||
|
set(__remap_warnings "${__remap_warnings}... Configuration is not available '${__final_config}' for ${target}, build may fail (available configurations: ${__available_configurations})\n")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
set_target_properties(${target} PROPERTIES
|
||||||
|
MAP_IMPORTED_CONFIG_${__remap_config} "${__final_config}"
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
message(WARNING "Invalid entry of OPENCV_MAP_IMPORTED_CONFIG: '${remap}' (${OPENCV_MAP_IMPORTED_CONFIG})")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
|
||||||
|
# ==============================================================
|
||||||
|
# Form list of modules (components) to find
|
||||||
|
# ==============================================================
|
||||||
|
if(NOT OpenCV_FIND_COMPONENTS)
|
||||||
|
set(OpenCV_FIND_COMPONENTS ${OpenCV_LIB_COMPONENTS})
|
||||||
|
list(REMOVE_ITEM OpenCV_FIND_COMPONENTS opencv_java)
|
||||||
|
if(GTest_FOUND OR GTEST_FOUND)
|
||||||
|
list(REMOVE_ITEM OpenCV_FIND_COMPONENTS opencv_ts)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(OpenCV_WORLD_COMPONENTS )
|
||||||
|
|
||||||
|
# expand short module names and see if requested components exist
|
||||||
|
foreach(__cvcomponent ${OpenCV_FIND_COMPONENTS})
|
||||||
|
# Store the name of the original component so we can set the
|
||||||
|
# OpenCV_<component>_FOUND variable which can be checked by the user.
|
||||||
|
set (__original_cvcomponent ${__cvcomponent})
|
||||||
|
if(NOT __cvcomponent MATCHES "^opencv_")
|
||||||
|
set(__cvcomponent opencv_${__cvcomponent})
|
||||||
|
endif()
|
||||||
|
list(FIND OpenCV_LIB_COMPONENTS ${__cvcomponent} __cvcomponentIdx)
|
||||||
|
if(__cvcomponentIdx LESS 0)
|
||||||
|
if(_OpenCV_HANDLE_COMPONENTS_MANUALLY)
|
||||||
|
# Either the component is required or the user did not set any components at
|
||||||
|
# all. In the latter case, the OpenCV_FIND_REQUIRED_<component> variable
|
||||||
|
# will not be defined since it is not set by this config. So let's assume
|
||||||
|
# the implicitly set components are always required.
|
||||||
|
if(NOT DEFINED OpenCV_FIND_REQUIRED_${__original_cvcomponent} OR
|
||||||
|
OpenCV_FIND_REQUIRED_${__original_cvcomponent})
|
||||||
|
message(FATAL_ERROR "${__cvcomponent} is required but was not found")
|
||||||
|
elseif(NOT OpenCV_FIND_QUIETLY)
|
||||||
|
# The component was marked as optional using OPTIONAL_COMPONENTS
|
||||||
|
message(WARNING "Optional component ${__cvcomponent} was not found")
|
||||||
|
endif()
|
||||||
|
endif(_OpenCV_HANDLE_COMPONENTS_MANUALLY)
|
||||||
|
#indicate that module is NOT found
|
||||||
|
string(TOUPPER "${__cvcomponent}" __cvcomponentUP)
|
||||||
|
set(${__cvcomponentUP}_FOUND "${__cvcomponentUP}_FOUND-NOTFOUND")
|
||||||
|
set(OpenCV_${__original_cvcomponent}_FOUND FALSE)
|
||||||
|
else()
|
||||||
|
# Not using list(APPEND) here, because OpenCV_LIBS may not exist yet.
|
||||||
|
# Also not clearing OpenCV_LIBS anywhere, so that multiple calls
|
||||||
|
# to find_package(OpenCV) with different component lists add up.
|
||||||
|
set(OpenCV_LIBS ${OpenCV_LIBS} "${__cvcomponent}")
|
||||||
|
#indicate that module is found
|
||||||
|
string(TOUPPER "${__cvcomponent}" __cvcomponentUP)
|
||||||
|
set(${__cvcomponentUP}_FOUND 1)
|
||||||
|
set(OpenCV_${__original_cvcomponent}_FOUND TRUE)
|
||||||
|
endif()
|
||||||
|
if(OpenCV_SHARED AND ";${OpenCV_WORLD_COMPONENTS};" MATCHES ";${__cvcomponent};" AND NOT TARGET ${__cvcomponent})
|
||||||
|
get_target_property(__implib_dbg opencv_world IMPORTED_IMPLIB_DEBUG)
|
||||||
|
get_target_property(__implib_release opencv_world IMPORTED_IMPLIB_RELEASE)
|
||||||
|
get_target_property(__location_dbg opencv_world IMPORTED_LOCATION_DEBUG)
|
||||||
|
get_target_property(__location_release opencv_world IMPORTED_LOCATION_RELEASE)
|
||||||
|
get_target_property(__include_dir opencv_world INTERFACE_INCLUDE_DIRECTORIES)
|
||||||
|
add_library(${__cvcomponent} SHARED IMPORTED)
|
||||||
|
set_target_properties(${__cvcomponent} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${__include_dir}")
|
||||||
|
if(__location_dbg)
|
||||||
|
set_property(TARGET ${__cvcomponent} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
|
||||||
|
set_target_properties(${__cvcomponent} PROPERTIES
|
||||||
|
IMPORTED_IMPLIB_DEBUG "${__implib_dbg}"
|
||||||
|
IMPORTED_LINK_INTERFACE_LIBRARIES_DEBUG ""
|
||||||
|
IMPORTED_LOCATION_DEBUG "${__location_dbg}"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
if(__location_release)
|
||||||
|
set_property(TARGET ${__cvcomponent} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(${__cvcomponent} PROPERTIES
|
||||||
|
IMPORTED_IMPLIB_RELEASE "${__implib_release}"
|
||||||
|
IMPORTED_LINK_INTERFACE_LIBRARIES_RELEASE ""
|
||||||
|
IMPORTED_LOCATION_RELEASE "${__location_release}"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
if(TARGET ${__cvcomponent})
|
||||||
|
ocv_map_imported_config(${__cvcomponent})
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
if(__remap_warnings AND NOT OpenCV_FIND_QUIETLY)
|
||||||
|
message("OpenCV: configurations remap warnings:\n${__remap_warnings}OpenCV: Check variable OPENCV_MAP_IMPORTED_CONFIG=${OPENCV_MAP_IMPORTED_CONFIG}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# ==============================================================
|
||||||
|
# Compatibility stuff
|
||||||
|
# ==============================================================
|
||||||
|
set(OpenCV_LIBRARIES ${OpenCV_LIBS})
|
||||||
|
|
||||||
|
#
|
||||||
|
# Some macros for samples
|
||||||
|
#
|
||||||
|
macro(ocv_check_dependencies)
|
||||||
|
set(OCV_DEPENDENCIES_FOUND TRUE)
|
||||||
|
foreach(d ${ARGN})
|
||||||
|
if(NOT TARGET ${d})
|
||||||
|
message(WARNING "OpenCV: Can't resolve dependency: ${d}")
|
||||||
|
set(OCV_DEPENDENCIES_FOUND FALSE)
|
||||||
|
break()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
# adds include directories in such way that directories from the OpenCV source tree go first
|
||||||
|
function(ocv_include_directories)
|
||||||
|
set(__add_before "")
|
||||||
|
file(TO_CMAKE_PATH "${OpenCV_INSTALL_PATH}" __baseDir)
|
||||||
|
foreach(dir ${ARGN})
|
||||||
|
get_filename_component(__abs_dir "${dir}" ABSOLUTE)
|
||||||
|
if("${__abs_dir}" MATCHES "^${__baseDir}")
|
||||||
|
list(APPEND __add_before "${dir}")
|
||||||
|
else()
|
||||||
|
include_directories(AFTER SYSTEM "${dir}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
include_directories(BEFORE ${__add_before})
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
macro(ocv_include_modules)
|
||||||
|
include_directories(BEFORE "${OpenCV_INCLUDE_DIRS}")
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
macro(ocv_include_modules_recurse)
|
||||||
|
include_directories(BEFORE "${OpenCV_INCLUDE_DIRS}")
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
macro(ocv_target_link_libraries)
|
||||||
|
target_link_libraries(${ARGN})
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
# remove all matching elements from the list
|
||||||
|
macro(ocv_list_filterout lst regex)
|
||||||
|
foreach(item ${${lst}})
|
||||||
|
if(item MATCHES "${regex}")
|
||||||
|
list(REMOVE_ITEM ${lst} "${item}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
# We do not actually need REQUIRED_VARS to be checked for. Just use the
|
||||||
|
# installation directory for the status.
|
||||||
|
find_package_handle_standard_args(OpenCV REQUIRED_VARS OpenCV_INSTALL_PATH
|
||||||
|
VERSION_VAR OpenCV_VERSION ${_OpenCV_FPHSA_ARGS})
|
||||||
|
|
@ -0,0 +1,169 @@
|
||||||
|
#----------------------------------------------------------------
|
||||||
|
# Generated CMake target import file for configuration "Release".
|
||||||
|
#----------------------------------------------------------------
|
||||||
|
|
||||||
|
# Commands may need to know the format version.
|
||||||
|
set(CMAKE_IMPORT_FILE_VERSION 1)
|
||||||
|
|
||||||
|
# Import target "libcpufeatures" for configuration "Release"
|
||||||
|
set_property(TARGET libcpufeatures APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(libcpufeatures PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/libcpufeatures.a"
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND _IMPORT_CHECK_TARGETS libcpufeatures )
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_libcpufeatures "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/libcpufeatures.a" )
|
||||||
|
|
||||||
|
# Import target "zlib" for configuration "Release"
|
||||||
|
set_property(TARGET zlib APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(zlib PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/libzlib.a"
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND _IMPORT_CHECK_TARGETS zlib )
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_zlib "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/libzlib.a" )
|
||||||
|
|
||||||
|
# Import target "libjpeg-turbo" for configuration "Release"
|
||||||
|
set_property(TARGET libjpeg-turbo APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(libjpeg-turbo PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/liblibjpeg-turbo.a"
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND _IMPORT_CHECK_TARGETS libjpeg-turbo )
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_libjpeg-turbo "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/liblibjpeg-turbo.a" )
|
||||||
|
|
||||||
|
# Import target "libtiff" for configuration "Release"
|
||||||
|
set_property(TARGET libtiff APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(libtiff PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C;CXX"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/liblibtiff.a"
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND _IMPORT_CHECK_TARGETS libtiff )
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_libtiff "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/liblibtiff.a" )
|
||||||
|
|
||||||
|
# Import target "libwebp" for configuration "Release"
|
||||||
|
set_property(TARGET libwebp APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(libwebp PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/liblibwebp.a"
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND _IMPORT_CHECK_TARGETS libwebp )
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_libwebp "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/liblibwebp.a" )
|
||||||
|
|
||||||
|
# Import target "libjasper" for configuration "Release"
|
||||||
|
set_property(TARGET libjasper APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(libjasper PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/liblibjasper.a"
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND _IMPORT_CHECK_TARGETS libjasper )
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_libjasper "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/liblibjasper.a" )
|
||||||
|
|
||||||
|
# Import target "libpng" for configuration "Release"
|
||||||
|
set_property(TARGET libpng APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(libpng PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/liblibpng.a"
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND _IMPORT_CHECK_TARGETS libpng )
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_libpng "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/liblibpng.a" )
|
||||||
|
|
||||||
|
# Import target "IlmImf" for configuration "Release"
|
||||||
|
set_property(TARGET IlmImf APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(IlmImf PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/libIlmImf.a"
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND _IMPORT_CHECK_TARGETS IlmImf )
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_IlmImf "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/libIlmImf.a" )
|
||||||
|
|
||||||
|
# Import target "libprotobuf" for configuration "Release"
|
||||||
|
set_property(TARGET libprotobuf APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(libprotobuf PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/liblibprotobuf.a"
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND _IMPORT_CHECK_TARGETS libprotobuf )
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_libprotobuf "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/liblibprotobuf.a" )
|
||||||
|
|
||||||
|
# Import target "quirc" for configuration "Release"
|
||||||
|
set_property(TARGET quirc APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(quirc PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/libquirc.a"
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND _IMPORT_CHECK_TARGETS quirc )
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_quirc "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/libquirc.a" )
|
||||||
|
|
||||||
|
# Import target "tegra_hal" for configuration "Release"
|
||||||
|
set_property(TARGET tegra_hal APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(tegra_hal PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/libtegra_hal.a"
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND _IMPORT_CHECK_TARGETS tegra_hal )
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_tegra_hal "${_IMPORT_PREFIX}/sdk/native/3rdparty/libs/arm64-v8a/libtegra_hal.a" )
|
||||||
|
|
||||||
|
# Import target "opencv_core" for configuration "Release"
|
||||||
|
set_property(TARGET opencv_core APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(opencv_core PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/sdk/native/staticlibs/arm64-v8a/libopencv_core.a"
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND _IMPORT_CHECK_TARGETS opencv_core )
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_opencv_core "${_IMPORT_PREFIX}/sdk/native/staticlibs/arm64-v8a/libopencv_core.a" )
|
||||||
|
|
||||||
|
# Import target "opencv_imgproc" for configuration "Release"
|
||||||
|
set_property(TARGET opencv_imgproc APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(opencv_imgproc PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/sdk/native/staticlibs/arm64-v8a/libopencv_imgproc.a"
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND _IMPORT_CHECK_TARGETS opencv_imgproc )
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_opencv_imgproc "${_IMPORT_PREFIX}/sdk/native/staticlibs/arm64-v8a/libopencv_imgproc.a" )
|
||||||
|
|
||||||
|
# Import target "opencv_features2d" for configuration "Release"
|
||||||
|
set_property(TARGET opencv_features2d APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(opencv_features2d PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/sdk/native/staticlibs/arm64-v8a/libopencv_features2d.a"
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND _IMPORT_CHECK_TARGETS opencv_features2d )
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_opencv_features2d "${_IMPORT_PREFIX}/sdk/native/staticlibs/arm64-v8a/libopencv_features2d.a" )
|
||||||
|
|
||||||
|
# Import target "opencv_imgcodecs" for configuration "Release"
|
||||||
|
set_property(TARGET opencv_imgcodecs APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(opencv_imgcodecs PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/sdk/native/staticlibs/arm64-v8a/libopencv_imgcodecs.a"
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND _IMPORT_CHECK_TARGETS opencv_imgcodecs )
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_opencv_imgcodecs "${_IMPORT_PREFIX}/sdk/native/staticlibs/arm64-v8a/libopencv_imgcodecs.a" )
|
||||||
|
|
||||||
|
# Import target "opencv_calib3d" for configuration "Release"
|
||||||
|
set_property(TARGET opencv_calib3d APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(opencv_calib3d PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/sdk/native/staticlibs/arm64-v8a/libopencv_calib3d.a"
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND _IMPORT_CHECK_TARGETS opencv_calib3d )
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_opencv_calib3d "${_IMPORT_PREFIX}/sdk/native/staticlibs/arm64-v8a/libopencv_calib3d.a" )
|
||||||
|
|
||||||
|
# Commands beyond this point should not need to know the version.
|
||||||
|
set(CMAKE_IMPORT_FILE_VERSION)
|
||||||
|
|
@ -0,0 +1,176 @@
|
||||||
|
# Generated by CMake
|
||||||
|
|
||||||
|
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5)
|
||||||
|
message(FATAL_ERROR "CMake >= 2.6.0 required")
|
||||||
|
endif()
|
||||||
|
cmake_policy(PUSH)
|
||||||
|
cmake_policy(VERSION 2.6)
|
||||||
|
#----------------------------------------------------------------
|
||||||
|
# Generated CMake target import file.
|
||||||
|
#----------------------------------------------------------------
|
||||||
|
|
||||||
|
# Commands may need to know the format version.
|
||||||
|
set(CMAKE_IMPORT_FILE_VERSION 1)
|
||||||
|
|
||||||
|
# Protect against multiple inclusion, which would fail when already imported targets are added once more.
|
||||||
|
set(_targetsDefined)
|
||||||
|
set(_targetsNotDefined)
|
||||||
|
set(_expectedTargets)
|
||||||
|
foreach(_expectedTarget libcpufeatures zlib libjpeg-turbo libtiff libwebp libjasper libpng IlmImf libprotobuf quirc tegra_hal opencv_core opencv_imgproc opencv_features2d opencv_imgcodecs opencv_calib3d)
|
||||||
|
list(APPEND _expectedTargets ${_expectedTarget})
|
||||||
|
if(NOT TARGET ${_expectedTarget})
|
||||||
|
list(APPEND _targetsNotDefined ${_expectedTarget})
|
||||||
|
endif()
|
||||||
|
if(TARGET ${_expectedTarget})
|
||||||
|
list(APPEND _targetsDefined ${_expectedTarget})
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
if("${_targetsDefined}" STREQUAL "${_expectedTargets}")
|
||||||
|
unset(_targetsDefined)
|
||||||
|
unset(_targetsNotDefined)
|
||||||
|
unset(_expectedTargets)
|
||||||
|
set(CMAKE_IMPORT_FILE_VERSION)
|
||||||
|
cmake_policy(POP)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
if(NOT "${_targetsDefined}" STREQUAL "")
|
||||||
|
message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_targetsDefined}\nTargets not yet defined: ${_targetsNotDefined}\n")
|
||||||
|
endif()
|
||||||
|
unset(_targetsDefined)
|
||||||
|
unset(_targetsNotDefined)
|
||||||
|
unset(_expectedTargets)
|
||||||
|
|
||||||
|
|
||||||
|
# Compute the installation prefix relative to this file.
|
||||||
|
get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||||
|
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
|
||||||
|
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
|
||||||
|
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
|
||||||
|
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
|
||||||
|
if(_IMPORT_PREFIX STREQUAL "/")
|
||||||
|
set(_IMPORT_PREFIX "")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Create imported target libcpufeatures
|
||||||
|
add_library(libcpufeatures STATIC IMPORTED)
|
||||||
|
|
||||||
|
# Create imported target zlib
|
||||||
|
add_library(zlib STATIC IMPORTED)
|
||||||
|
|
||||||
|
# Create imported target libjpeg-turbo
|
||||||
|
add_library(libjpeg-turbo STATIC IMPORTED)
|
||||||
|
|
||||||
|
# Create imported target libtiff
|
||||||
|
add_library(libtiff STATIC IMPORTED)
|
||||||
|
|
||||||
|
set_target_properties(libtiff PROPERTIES
|
||||||
|
INTERFACE_LINK_LIBRARIES "zlib"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create imported target libwebp
|
||||||
|
add_library(libwebp STATIC IMPORTED)
|
||||||
|
|
||||||
|
set_target_properties(libwebp PROPERTIES
|
||||||
|
INTERFACE_LINK_LIBRARIES "libcpufeatures"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create imported target libjasper
|
||||||
|
add_library(libjasper STATIC IMPORTED)
|
||||||
|
|
||||||
|
# Create imported target libpng
|
||||||
|
add_library(libpng STATIC IMPORTED)
|
||||||
|
|
||||||
|
set_target_properties(libpng PROPERTIES
|
||||||
|
INTERFACE_LINK_LIBRARIES "zlib"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create imported target IlmImf
|
||||||
|
add_library(IlmImf STATIC IMPORTED)
|
||||||
|
|
||||||
|
set_target_properties(IlmImf PROPERTIES
|
||||||
|
INTERFACE_LINK_LIBRARIES "zlib"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create imported target libprotobuf
|
||||||
|
add_library(libprotobuf STATIC IMPORTED)
|
||||||
|
|
||||||
|
# Create imported target quirc
|
||||||
|
add_library(quirc STATIC IMPORTED)
|
||||||
|
|
||||||
|
# Create imported target tegra_hal
|
||||||
|
add_library(tegra_hal STATIC IMPORTED)
|
||||||
|
|
||||||
|
# Create imported target opencv_core
|
||||||
|
add_library(opencv_core STATIC IMPORTED)
|
||||||
|
|
||||||
|
set_target_properties(opencv_core PROPERTIES
|
||||||
|
INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:dl>;\$<LINK_ONLY:m>;\$<LINK_ONLY:log>;\$<LINK_ONLY:tegra_hal>;\$<LINK_ONLY:zlib>;\$<LINK_ONLY:libcpufeatures>;\$<LINK_ONLY:tegra_hal>"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create imported target opencv_imgproc
|
||||||
|
add_library(opencv_imgproc STATIC IMPORTED)
|
||||||
|
|
||||||
|
set_target_properties(opencv_imgproc PROPERTIES
|
||||||
|
INTERFACE_LINK_LIBRARIES "opencv_core;\$<LINK_ONLY:dl>;\$<LINK_ONLY:m>;\$<LINK_ONLY:log>;\$<LINK_ONLY:tegra_hal>"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create imported target opencv_features2d
|
||||||
|
add_library(opencv_features2d STATIC IMPORTED)
|
||||||
|
|
||||||
|
set_target_properties(opencv_features2d PROPERTIES
|
||||||
|
INTERFACE_LINK_LIBRARIES "opencv_core;opencv_imgproc;\$<LINK_ONLY:dl>;\$<LINK_ONLY:m>;\$<LINK_ONLY:log>;\$<LINK_ONLY:tegra_hal>"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create imported target opencv_imgcodecs
|
||||||
|
add_library(opencv_imgcodecs STATIC IMPORTED)
|
||||||
|
|
||||||
|
set_target_properties(opencv_imgcodecs PROPERTIES
|
||||||
|
INTERFACE_LINK_LIBRARIES "opencv_core;opencv_imgproc;\$<LINK_ONLY:dl>;\$<LINK_ONLY:m>;\$<LINK_ONLY:log>;\$<LINK_ONLY:tegra_hal>;\$<LINK_ONLY:zlib>;\$<LINK_ONLY:libjpeg-turbo>;\$<LINK_ONLY:libwebp>;\$<LINK_ONLY:libpng>;\$<LINK_ONLY:libtiff>;\$<LINK_ONLY:libjasper>;\$<LINK_ONLY:IlmImf>"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create imported target opencv_calib3d
|
||||||
|
add_library(opencv_calib3d STATIC IMPORTED)
|
||||||
|
|
||||||
|
set_target_properties(opencv_calib3d PROPERTIES
|
||||||
|
INTERFACE_LINK_LIBRARIES "opencv_core;opencv_imgproc;opencv_features2d;\$<LINK_ONLY:dl>;\$<LINK_ONLY:m>;\$<LINK_ONLY:log>;\$<LINK_ONLY:tegra_hal>"
|
||||||
|
)
|
||||||
|
|
||||||
|
if(CMAKE_VERSION VERSION_LESS 2.8.12)
|
||||||
|
message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Load information for each installed configuration.
|
||||||
|
get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||||
|
file(GLOB CONFIG_FILES "${_DIR}/OpenCVModules-*.cmake")
|
||||||
|
foreach(f ${CONFIG_FILES})
|
||||||
|
include(${f})
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
# Cleanup temporary variables.
|
||||||
|
set(_IMPORT_PREFIX)
|
||||||
|
|
||||||
|
# Loop over all imported files and verify that they actually exist
|
||||||
|
foreach(target ${_IMPORT_CHECK_TARGETS} )
|
||||||
|
foreach(file ${_IMPORT_CHECK_FILES_FOR_${target}} )
|
||||||
|
if(NOT EXISTS "${file}" )
|
||||||
|
message(FATAL_ERROR "The imported target \"${target}\" references the file
|
||||||
|
\"${file}\"
|
||||||
|
but this file does not exist. Possible reasons include:
|
||||||
|
* The file was deleted, renamed, or moved to another location.
|
||||||
|
* An install or uninstall procedure did not complete successfully.
|
||||||
|
* The installation package was faulty and contained
|
||||||
|
\"${CMAKE_CURRENT_LIST_FILE}\"
|
||||||
|
but not all the files it references.
|
||||||
|
")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
unset(_IMPORT_CHECK_FILES_FOR_${target})
|
||||||
|
endforeach()
|
||||||
|
unset(_IMPORT_CHECK_TARGETS)
|
||||||
|
|
||||||
|
# This file does not depend on other imported targets which have
|
||||||
|
# been exported from the same project but in a separate export set.
|
||||||
|
|
||||||
|
# Commands beyond this point should not need to know the version.
|
||||||
|
set(CMAKE_IMPORT_FILE_VERSION)
|
||||||
|
cmake_policy(POP)
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue