1818 Commits

Autor SHA1 Mensagem Data
Evgeny Talanin 6484732509 Updated docs to 2.4.3 2012-11-02 17:29:49 +04:00
Andrey Kamaev 54f96f045e Merge pull request #134 from apavlenko/android-tutorial 2012-11-02 17:02:40 +04:00
Andrey Kamaev 4224a64264 Merge pull request #133 from vpisarev/ios_atomic_fix 2012-11-02 17:01:51 +04:00
Andrey Pavlenko 65c6b81cbc Android Tutorial update (TADP link, Android SDK platforms, CDT) 2012-11-02 16:11:08 +04:00
Vadim Pisarevsky 9a08b7be45 fixed compile problem with the old Xcode (<4.5) 2012-11-02 15:29:16 +04:00
Andrey Kamaev f2af0e7a57 Merge pull request #132 from taka-no-me/version-2.4.3 2012-11-02 14:31:30 +04:00
Andrey Kamaev 4ac5223afa Merge pull request #131 from taka-no-me/tegra-fast 2012-11-02 14:31:02 +04:00
Andrey Kamaev 828faf4e68 Merge pull request #129 from cuda-geek/CCL-test-fix 2012-11-02 14:30:20 +04:00
Andrey Kamaev 63ee26adda Merge pull request #127 from cuda-geek/apple2clang 2012-11-02 14:29:39 +04:00
Andrey Kamaev 4a2f626d85 Remove "-rc" suffix from version 2012-11-02 14:27:34 +04:00
Andrey Kamaev dbb5a32453 Use Tegra version of cv::FAST 2012-11-02 13:16:16 +04:00
Vadim Pisarevsky 42471c082f possibly fixed compile errors in GPU module on Windows 2012-11-02 12:03:25 +04:00
marina.kolpakova 97cab339d2 fix Connected Components Labeling test crash 2012-11-01 23:59:01 +04:00
marina.kolpakova a04ef08602 Merge pull request #122 from kirill-kornyakov:2.4-android-documentation-fixes 2012-11-01 22:30:06 +04:00
Kirill Kornyakov 2b7d65d078 Updated OpenCV4Android SDK tutorial 2012-11-01 22:28:46 +04:00
Kirill Kornyakov 61ed591728 Updated Introduction into Android Development tutorial 2012-11-01 22:28:46 +04:00
Kirill Kornyakov 1c77f0abfe Rewrote abs documentation without funcx, so now :ocv:funcx: is used only for operator() 2012-11-01 22:28:46 +04:00
Kirill Kornyakov 2efd9b6ad7 Fixed a couple of minor issues in Javadocs 2012-11-01 22:28:46 +04:00
Kirill Kornyakov c5fb2de887 Updated link to OpenCV for Android page in README.android 2012-11-01 22:28:46 +04:00
marina.kolpakova 7a5b9a6b7f replase __APPLE__ marco with __clang__ 2012-11-01 19:34:05 +04:00
marina.kolpakova 5ce9965459 Merge pull request #125 from taka-no-me:perf_tests 2012-11-01 19:31:33 +04:00
marina.kolpakova 358fcbd5b6 Merge pull request #115 from asmorkalov:java_test_data_update 2012-11-01 19:29:18 +04:00
marina.kolpakova 09dec4e873 Merge pull request #124 from branch taka-no-me:vs8-vs9-tbb 2012-11-01 19:26:30 +04:00
marina.kolpakova 334f6344dd Merge pull request #120 from NikoKJ:ocl2.4.3 2012-11-01 19:16:22 +04:00
marina.kolpakova 9b92de9a88 Merge pull request #121 from branch asmorkalov:android_samples_fix 2012-11-01 19:11:53 +04:00
marina.kolpakova 57fc5e00f3 Merge pull request #126 from vpisarev:bug_fixes3 2012-11-01 19:01:27 +04:00
Vadim Pisarevsky 3d0c08816d another fix to make OpenCV more friendly for iOS developers. We now use libc++ instead of libstdc++ and clang instead of gcc to build opencv2.framework. 2012-11-01 18:15:48 +04:00
Andrey Kamaev 9a01532caa Merge pull request #123 from asmorkalov/manager_static_lib_info 2012-11-01 17:08:45 +04:00
Vadim Pisarevsky d9d4e8df6f fixed bugs #2300 (Vector::dot) and #2467 (build with Xcode 4.5 with --stdlib=libc++) 2012-11-01 16:37:39 +04:00
Andrey Kamaev e3be5f138a Fixed sanity checks in several performance tests 2012-11-01 16:29:30 +04:00
Alexander Smorkalov 34896529d5 Review comments applied. 2012-11-01 16:19:11 +04:00
Andrey Kamaev fd4909360f Remove windows.h include from opencv2/core/internal.hpp to avoid conflicts with TBB library. 2012-11-01 12:44:10 +04:00
Andrey Kamaev 7267d518d5 Fix build in Visual Studio 2005 2012-11-01 12:42:51 +04:00
Alexander Smorkalov fc085d9dbd info library for OpenCV added. 2012-10-31 20:48:37 +04:00
Alexander Smorkalov a1a2cb0aeb OpenCV Samples testing problems fixed:
Memory leak in color-blob-detection sample fixed;
Default face size in face-detection is set to 20%;
Error handling improved;
Some possible mat leak fixed;
Manager verison and engine interface version incremented to fix incompatibilities;
Docs updated;
2012-10-31 17:24:50 +04:00
Andrey Kamaev b5ecb1d32d Merge pull request #111 from taka-no-me/algorithm/addParam-short 2012-10-31 16:57:06 +04:00
Andrey Kamaev 74fe158f4b Merge pull request #117 from vpisarev/doc_updates 2012-10-31 16:56:04 +04:00
Andrey Kamaev a1c96c4b3c Merge pull request #118 from asmorkalov/opencv_manager_cmake 2012-10-31 16:54:07 +04:00
Andrey Kamaev 3e10e057cb Merge pull request #110 from vpisarev/test_fixes2 2012-10-31 16:52:50 +04:00
Andrey Kamaev f15e49041e Merge pull request #112 from taka-no-me/warnings 2012-10-31 16:51:35 +04:00
Vadim Pisarevsky 849a8c8d20 fixed many errors in warnings in rst docs; added ocl module description (by Niko Li) 2012-10-31 15:15:51 +04:00
NikoKJ 2045c85ad5 a minor bug fix for brute force 2012-10-31 16:01:56 +08:00
Alexander Smorkalov da31e12fed CMake for OpenCV Manager updated;
Some repo normalization problems fixed;
Deprecated cmake keys removed;
Warning fixed.
2012-10-31 11:47:27 +04:00
Vadim Pisarevsky adc1d94e95 updated patch for tests; reenabled SURF & Denoising; removed fixes in ocl tests, since this is already fixed in another pull request 2012-10-30 15:25:46 +04:00
Andrey Kamaev 78fd99abdb Merge rebased pull request #106 from albenoit/retina_devel 2012-10-30 15:07:35 +04:00
alexandre benoit 08ff5f92f4 minor updates for doc redirections and tutorial images size 2012-10-30 15:06:13 +04:00
alexandre benoit f593616b84 minor update 2012-10-30 15:06:13 +04:00
alexandre benoit e475010e14 updated first image sample 2012-10-30 15:06:13 +04:00
alexandre benoit 3fb90abb76 added retina code tutorial 2012-10-30 15:06:13 +04:00
alexandre benoit f05f374fb5 updated tutorial, rapid spell check, retina parameters discussion added 2012-10-30 15:06:13 +04:00
alexandre benoit 3eb4e38735 updated tutorial, need spell check, validation, nicer images and a discussion on parameters 2012-10-30 15:06:13 +04:00
alexandre benoit 23bd673598 adding retina tutorial 2012-10-30 15:06:13 +04:00
alexandre benoit cdc4679b3e introducing a tutorial for the retina model 2012-10-30 15:06:13 +04:00
Alexander b0106ca25e Test data form features2d updated. 2012-10-30 15:05:09 +04:00
Andrey Kamaev 0be590d898 Merge pull request #109 from asmorkalov/2.4 2012-10-30 13:02:29 +04:00
Andrey Kamaev f3a158c862 Merge pull request #102 from NikoKJ/ocl4_2.43 2012-10-30 13:01:57 +04:00
NikoKJ 9ccdd17376 eliminate all the warnings on win32 and win64
add a new function abssum
fix the bug of test and perf because someone remove non-free module from cmakelist.txt
2012-10-30 13:01:42 +04:00
Vadim Pisarevsky 63bd6f9adf fixed compile errors in ocl tests; disabled a few problematic tests 2012-10-29 23:37:18 +04:00
Alexander d495daf1ed Memory leak of native OpenCV mats fixed. 2012-10-29 16:56:21 +04:00
Andrey Kamaev ad982f4ed6 Turn off video IO perf tests on Android 2012-10-26 17:00:31 +04:00
Andrey Kamaev fcad269e53 Specify sanity threshold for WarpPerspective perf test 2012-10-26 17:00:31 +04:00
Andrey Kamaev 84934f7bfc Fix SHORT data type support in Algorithm
* typo in Algorithm::addParam for 'short' data type which results in segmentation fault on ARM
  on attempt to set type property for FAST using setter inherited from Algorithm
* added short type support to read/write methods
* improved some error messages
2012-10-26 17:00:13 +04:00
Andrey Kamaev d936f06297 Merge pull request #103 from asmorkalov/2.4 2012-10-26 14:40:18 +04:00
Alexander Smorkalov 83d8bc8c55 Tutorial 1 updated. Execution time camera switching implemented.
Some unification done to simplify camera switching.
2012-10-26 13:30:20 +04:00
Alexander Smorkalov 016b2cadb0 Issue 2473 Service connection leak in OpenCV Manager installation waiting fixed.
Some code refactoring done.
2012-10-26 13:30:20 +04:00
Alexander Smorkalov 9217095955 Issue 2472 Android samples crash on Camera.StartPreview on Android 4.1 fixed. 2012-10-26 13:30:20 +04:00
Andrey Kamaev bbb2d27add Merge pull request #74 from taka-no-me/cl2cpp 2012-10-25 14:56:53 +04:00
Andrey Kamaev 63397e825c Cleanup CMakeLists.txt of ocl module 2012-10-25 14:55:37 +04:00
Andrey Kamaev 42414b5689 Merge pull request #92 from LeonidBeynenson/cv_algorithm_changes_2.4 2012-10-25 14:52:50 +04:00
Andrey Kamaev 2b0072d823 Suppress more warnings in gtest on OS X 2012-10-24 20:36:30 +04:00
Andrey Kamaev 673aa91bac Fix remaining windows build warnings 2012-10-24 20:27:20 +04:00
Evgeny Talanin 12747068b5 Updated docs to 2.4.3 rc 2012-10-24 17:28:17 +04:00
Andrey Kamaev ca20228956 Merge pull request #95 from apavlenko/perf-test/warp 2012-10-24 15:39:53 +04:00
Andrey Kamaev 6c5922542e Merge pull request #97 from asmorkalov/2.4 2012-10-24 15:02:05 +04:00
Andrey Kamaev 734b0da014 Merge pull request #94 from vpisarev/test_fixes 2012-10-24 14:42:20 +04:00
Vadim Pisarevsky ae10ecd264 fixed 2 test failures (test_DrawChessboardCorners & Core_Array.expressions) 2012-10-24 14:41:15 +04:00
Alexander Smorkalov e7e14b20cd OpenCV Manager version ++. 2012-10-24 13:25:07 +04:00
Alexander Smorkalov 293063eed3 Code normalization problems fixed.
Rair hangs on library installation fixed.
2012-10-24 12:47:43 +04:00
Alexander Smorkalov 680fba7e0d Repo normalization problems fixed. 2012-10-24 12:46:36 +04:00
Alexander Smorkalov 4f0f6686d1 Undefind behavior in Async Service Helper fixed. 2012-10-24 12:28:31 +04:00
Andrey Pavlenko a94e80bea3 fixing typos in perf tests for warp funcs 2012-10-24 11:21:58 +04:00
Alexander Smorkalov 76bcf72ded 2.4.3 version support added to OpenCV Manager. Docs updated. Samples updated. 2012-10-24 09:51:01 +04:00
LeonidBeynenson d6aa3bd8ed Made changes in cv::Algorithm
made it to give more verbose errors when arguments of wrong types are passed, added setters with types (e.g. setInt, etc)
2012-10-23 21:37:27 +04:00
Andrey Kamaev 080b9bbcd3 Merge pull request #80 from apavlenko/android-samples-refactor 2012-10-23 20:53:59 +04:00
Andrey Kamaev b88323afc3 Merge pull request #91 from taka-no-me/warnings/windows 2012-10-23 20:52:42 +04:00
Andrey Kamaev 9b149edde6 Merge pull request #90 from taka-no-me/version_2.4.3-rc 2012-10-23 20:36:51 +04:00
Alexander Smorkalov c1d42664bc Refactring. Bug fix. 2012-10-23 20:06:58 +04:00
Alexander Smorkalov a942747046 Code review coments fixed. Lint wornings fixed. 2012-10-23 20:06:58 +04:00
Alexander Smorkalov 4c06d0834e camera-preview sample removed from CMakeLists.txt 2012-10-23 20:06:58 +04:00
Alexander Smorkalov 84856fa2c1 CMakeLists.txt rescued. Androidmanifest unified. 2012-10-23 20:06:58 +04:00
Alexander Smorkalov a5ee07d340 Image manipulations sample ported on new framework. 2012-10-23 20:06:58 +04:00
Alexander Smorkalov 898320a0f6 Code clean up. 2012-10-23 20:06:58 +04:00
Alexander Smorkalov c64ee44c9e Color blob detection sample ported on new framework. 2012-10-23 20:06:33 +04:00
Alexander Smorkalov 2fd8b51a26 Face detection sample ported on new framework. 2012-10-23 20:06:33 +04:00
Alexander Smorkalov d9ea16ce57 Tutorial1 ported on new framework. 2012-10-23 20:06:33 +04:00
Alexander Smorkalov 873f47654a Tutorial2 ported on new framework. 2012-10-23 20:06:33 +04:00
Alexander Smorkalov 31763bdcf0 Tutorial3 ported on new framework. 2012-10-23 20:06:33 +04:00
Alexander Smorkalov 50500e5923 Tutorial4 ported on new sample framework. 2012-10-23 20:06:33 +04:00
Alexander Smorkalov 641ee645ab New sample framework integrated to Java part of SDK;
Frame format setter added to both views.
2012-10-23 20:06:33 +04:00
Alexander Smorkalov 9029acf6f0 openCV application framework moved to modules/java/... folder. Now it is part of OpenCV SDK. 2012-10-23 20:06:33 +04:00
Alexander Smorkalov 68ab3d5be6 Processing thread added to Java camera view. 2012-10-23 20:06:32 +04:00
Alexander Smorkalov 8393fd0c9d Auto focus added;
Old Android support added;
Android 4.1.x fixes added;
Thead sync added;
Camera errors handling added.
2012-10-23 20:06:32 +04:00
Alexander Smorkalov f8bcff8ff3 Device rotation support added;
Nexus 7 support added.
2012-10-23 20:05:16 +04:00
Alexander Smorkalov 09901fae2b OnResume/OnPause handlers added to start/stop camera.
OpenCV initialization moved to onResume event to support package installation waiting.
2012-10-23 20:05:16 +04:00
Alexander Smorkalov cc3430dbcc Naming fixed;
Warnings fixed;
Nexus 7 support added to manifest.
2012-10-23 20:04:09 +04:00
Konstantin Bezruk cd152c3a03 Puzzle15 implementation with use of the OpenCV surface framework 2012-10-23 20:02:46 +04:00
Alexander Smorkalov 5f1339b319 Menu and style removed from sample. 2012-10-23 20:02:46 +04:00
Andrey Pavlenko a32004f90c adding initial version of a sample with new Camera-View handling design 2012-10-23 20:01:23 +04:00
Andrey Kamaev 1a500813f6 Remove dead blobtrackingkalman.cpp 2012-10-23 18:20:07 +04:00
Andrey Kamaev ac96bb357c Suppress more warnings in libtiff 2012-10-23 18:20:07 +04:00
Andrey Kamaev 9751014067 Fix warnings from MSVC 10 64-bit 2012-10-23 18:20:07 +04:00
Andrey Kamaev afc79e2a02 Fix warnings from MSVC 9 64-bit 2012-10-23 18:20:07 +04:00
Andrey Kamaev 0072078857 Hide non-windows variable in gtest 2012-10-23 18:09:49 +04:00
Andrey Kamaev 1d8729a7aa Don't use _interlockedExchangeAdd in case of GNU compiler 2012-10-23 18:09:49 +04:00
Andrey Kamaev 15b7b01243 Merge pull request #86 from taka-no-me/test/python_kmeans 2012-10-23 18:03:52 +04:00
Andrey Kamaev 6f08d03322 Advance version number to 2.4.3-rc 2012-10-23 17:59:59 +04:00
Andrey Kamaev 08e4298a96 Merge pull request #84 from Daniil-Osokin/perfTest-warpPerspective 2012-10-23 17:35:05 +04:00
Andrey Kamaev cd320565dd Merge pull request #82 from taka-no-me/perf/fix_failures 2012-10-23 16:22:16 +04:00
Andrey Kamaev 2d6ff8e946 Merge pull request #88 from taka-no-me/build_ubuntu_x86_o2 2012-10-23 16:20:56 +04:00
Daniil Osokin e9ba5c225d extended perf test warpPerspectiveLarge 2012-10-23 16:06:03 +04:00
Andrey Kamaev ed00642600 Force build with -O2 instead of -O3 on 32-bit linux 2012-10-23 15:52:11 +04:00
Andrey Kamaev e64bb3654a Remove wrong assertion 2012-10-23 15:28:44 +04:00
Andrey Kamaev 585f3bc391 Disable perf test for unstable solvePnPRansac 2012-10-23 12:13:39 +04:00
Andrey Kamaev b45a870d9a Limit 32S data in perf test for addWeighted to avoid integer overflow 2012-10-23 12:07:32 +04:00
Andrey Kamaev c13eb07d47 Fix argument parsing for old command line parser 2012-10-23 12:07:01 +04:00
Andrey Kamaev 22e352d9cc Merge pull request #76 vpisarev/test_fixes_1 2012-10-22 21:13:26 +04:00
Vadim Pisarevsky fbe0d6963c disabled several tests on Mac when no FFMPEG is used; disabled automatic table initialization in imgwarp in the case of MinGW 2012-10-22 21:13:26 +04:00
Andrey Kamaev 781d89829f Merge pull request #79 from taka-no-me:warnings 2012-10-22 20:56:53 +04:00
Andrey Kamaev 2e91405833 Fix OS X build warnings 2012-10-22 20:33:14 +04:00
Andrey Kamaev 40030d2ca0 Fix windows build warnings 2012-10-22 19:13:18 +04:00
Andrey Kamaev 15076f9232 Fix implementation of PCA overload with retained variance parameter 2012-10-22 18:46:20 +04:00
Andrey Kamaev d0ec65e80c Fix linux build warning 2012-10-22 18:38:22 +04:00
Andrey Kamaev bfa466dcbd Merge pull request #75 form taka-no-me:comments/2463 2012-10-22 18:31:20 +04:00
Andrey Kamaev 9900f8deb2 Remove russian comments 2012-10-22 17:24:43 +04:00
Andrey Kamaev ecb707ca7b Convert cl2cpp.py script to cmake
New version removes inner comments and empty lines
2012-10-22 17:19:55 +04:00
Andrey Kamaev 769f61f8c7 Merge pull request #55 from vpisarev/ocl_fixes 2012-10-22 16:40:18 +04:00
Andrey Kamaev d1d6ce63fc Merge pull request #48 from kazuki-ma/2430_ostream_24 2012-10-22 16:27:10 +04:00
Vadim Pisarevsky eea6fe8e7f Merge pull request #71 from NikoKJ/ocl4_2.4.3
This patch is for the ocl module of 2.4.3

(tested on Mac (OSX 10.8, Xcode 4.5, OpenCL 1.1(?))
2012-10-22 04:57:42 -07:00
Vadim Pisarevsky 1770ba1df7 Merge pull request #66 from alekcac/ios-armv7s
added support armv7s for iOS framework; tested on my computer (OSX 10.8, Xcode 4.5)
2012-10-22 04:07:07 -07:00
marina.kolpakova 8e2f729aa7 Merge remote-tracking branch 'cuda-geek/surf-with-mask-fix' into 2.4 2012-10-22 13:16:27 +04:00
Niko 5df77a841e remove redundant OPENCL_DIR flag
remove as much warnings as possible
use enum instead of MACRO for ocl.hpp
add command line parser in accuracy test and perf test
some bug fix for arthim functions
2012-10-22 15:14:22 +08:00
marina.kolpakova b14f447cc6 fix GPU SURF tests for masked case 2012-10-21 11:40:08 +04:00
marina.kolpakova 99c666691e Restore core multiply/divide depth to CV_64F value.
After setting depth to CV_32F for non double types this produces difference in results. I've attached test that reproduce this issue.The issue was found during anali broken GPU tests  for multiply/device functions.
2012-10-21 11:20:39 +04:00
Kazuki MATSUDA 72c93dabd3 Add stream operators (Requested #2430)
Add output stream operators (<<) for Rect, Size, Matx, Vec.
I can't add operations for cv::KeyPoint.

And putting together all operator<<.
(Matx, Point_, Point3_, Vec, Size_, Rect_)
2012-10-20 11:19:42 +09:00
Andrey Kamaev b6a2717c2b Merge pull request #65 from taka-no-me:android/warnings 2012-10-19 20:49:19 +04:00
Andrey Kamaev 59452dfc6f Merge pull request #64 from vpisarev/bugs_1939_2100 2012-10-19 20:47:58 +04:00
Vadim Pisarevsky 40a30b6f30 fixed type "compatible -> incompatible" in the error message 2012-10-19 20:47:58 +04:00
Vadim Pisarevsky d652cc72f2 fixed bugs #2100 (kind of) and #1393
[edit: cleaned whitespace]
2012-10-19 20:47:57 +04:00
Alexander Shishkov 2dba13f7d4 added support armv7s for iOS framework
for supporting with iOS 6 devices
2012-10-19 19:36:20 +04:00
Andrey Kamaev 8fb6d9f650 Fix Android build warnings 2012-10-19 16:14:14 +04:00
Andrey Kamaev 546ec2af65 Merge pull request #54 from taka-no-me:doc/fix-signatures 2012-10-19 15:02:30 +04:00
Andrey Kamaev 09abcd567e Merge pull request #50 from taka-no-me:parallel/fix-build-2445 2012-10-19 14:57:08 +04:00
Andrey Kamaev 7173c82382 Include unistd.h to parallel.cpp on UNIX-like systems
This fixes build without TBB and CUDA. Issue #2445
2012-10-19 14:38:30 +04:00
marina.kolpakova ec8fb32336 Merge pull request #63 from jet47/gpu-sep-filters 2012-10-19 13:08:44 +04:00
Vladislav Vinogradov 34b4a35ea7 gpu separable filters for CV_8UC3, CV_32FC3 and CV_32FC4 types 2012-10-19 12:41:14 +04:00
Andrey Kamaev 9a97c74ef3 Merge pull request #61 from vpisarev/bug_2509 2012-10-19 11:17:25 +04:00
Andrey Kamaev 49397f7946 Merge pull request #60 from kirill-kornyakov/documentation-link-to-answers2 2012-10-19 11:00:10 +04:00
Andrey Kamaev 1341c64290 Merge pull request #51 from taka-no-me/java/fix-build-after-normalization 2012-10-19 10:27:16 +04:00
Andrey Kamaev 65d07c56fb Merge pull request #57 from vpisarev/bug_2429_2.4 2012-10-18 19:42:14 +04:00
Andrey Kamaev e1c3ffb23f Fix weight calculation for the last pixel in generic area resize.
Also removed assigned only variable.
2012-10-18 19:41:45 +04:00
Vadim Pisarevsky 80f9bd864f fixed bug #2429
[edit: cleaned whitespace]
2012-10-18 19:39:22 +04:00
Vadim Pisarevsky c40718ab61 fixed bug #2059 2012-10-18 14:41:26 +04:00
Kirill Kornyakov 908f25bc43 changed link to Q&A forum in the docs 2012-10-18 14:25:34 +04:00
Andrey Kamaev 634fedc3cb Merge pull request #56 from vpisarev/bug_2447_2.4 2012-10-18 13:28:01 +04:00
Vadim Pisarevsky f5742e6cac fix bug #2447 - unary operator bug for single column matrix 2012-10-18 13:28:01 +04:00
Andrey Kamaev 461b69f6ee Eliminate discrepancies between signatures in documentation and OpenCV headers
All errors were found by doc/check_docs2.py
2012-10-17 21:24:55 +04:00
Andrey Kamaev 57d077b936 Fix Java API generation after normalization
The rst_parser.py was unintentionally corrupted by normalization.
This fix repairs the script and fixes Java API generation.
2012-10-17 18:20:46 +04:00
OpenCV Buildbot 04384a71e4 Normalize line endings and whitespace 2012-10-17 15:32:23 +04:00
vpisarev f75946a16a made opencv_ocl module build with VS2012 2012-10-17 15:08:03 +04:00
Andrey Kamaev 69020da607 Merge branch 'release2.4.3' into 2.4 2012-10-17 02:17:08 +04:00
Andrey Kamaev f4e33ea0ba Fix build of samples 2012-10-17 02:09:46 +04:00
Andrey Kamaev 7225f89ea2 Revert opencv_videostab to the state of 2.4.2 2012-10-17 02:09:43 +04:00
marina.kolpakova e5437e5486 Fix binary compatibility of opencv_gpu 2012-10-17 02:09:40 +04:00
Andrey Kamaev ed51162568 Fix binary compatibility of Java wrappers 2012-10-17 02:09:37 +04:00
Andrey Kamaev 42c8a42ad3 Fix binary compatibility of opencv_objdetect 2012-10-17 02:09:34 +04:00
Andrey Kamaev a07cc84436 Fix binary compatibility of opencv_nonfree 2012-10-17 02:09:31 +04:00
Andrey Kamaev 26bcb3812c Fix binary compatibility of opencv_contrib 2012-10-17 02:09:28 +04:00
Andrey Kamaev 971d02cde6 Fix binary compatibility of opencv_stitching 2012-10-17 02:09:26 +04:00
Andrey Kamaev edee177ef1 Fix binary compatibility of opencv_ml 2012-10-17 02:09:23 +04:00
Andrey Kamaev 7d6a2f1bca Revert "skip of table header in MLData (#1962)"
This reverts commit 4d36be8794.

Conflicts:
	modules/ml/include/opencv2/ml/ml.hpp
	modules/ml/src/data.cpp
2012-10-17 02:09:20 +04:00
Andrey Kamaev 0dc3d61071 Revert "yet another portion of changes towards the binary compatibility"
This reverts commit 618fbf5508.
2012-10-17 02:09:17 +04:00
Andrey Kamaev 5a730d09cd Fix binary compatibility of opencv_features2d 2012-10-17 02:09:14 +04:00
Andrey Kamaev 88e9a072ec Fix binary compatibility of opencv_flann 2012-10-16 15:13:00 +04:00
Andrey Kamaev 64b56d7018 Revert "remaining C-style planar subdivisions data structures are moved to legacy"
This reverts commit 4aaaef5967.

Conflicts:
    modules/imgproc/include/opencv2/imgproc/types_c.h
    modules/legacy/include/opencv2/legacy/legacy.hpp
2012-10-16 15:13:00 +04:00
Andrey Kamaev ebac3a02aa Fix backward compatibility of opencv_core 2012-10-16 15:13:00 +04:00
Andrey Kamaev d566c6bc86 Revert "add new version of CommandLineParser. add empty docs"
This reverts commit 54a202b3d5.

Conflicts:
	modules/core/doc/command_line_parser.rst
	modules/core/include/opencv2/core/core.hpp
	modules/core/src/cmdparser.cpp
	modules/gpu/perf/main.cpp
	modules/gpu/test/main.cpp
	modules/ts/src/ts_perf.cpp
2012-10-15 20:01:44 +04:00
Andrey Kamaev 52e490ef88 Revert "fixed compile error under linux"
This reverts commit e2d9fc4dcc.
2012-10-15 20:01:44 +04:00
Andrey Kamaev 58f31819cc Return drawContours back to imgproc
This partly reverts commit 6ca618277c.
2012-10-15 18:12:33 +04:00
Andrey Kamaev dbd30d4fba Revert "fixing Java test and sample after moving drawContours() from Imgproc to Core"
This reverts commit eb4ce67dac.

Conflicts:
	samples/android/color-blob-detection/src/org/opencv/samples/colorblobdetect/ColorBlobDetectionView.java
2012-10-15 17:53:57 +04:00
Andrey Kamaev a3b1971977 Bring back escaped virtual destructors from 2.4.2 2012-10-15 17:48:49 +04:00
Andrey Kamaev 3ffe0f0117 Remove unused tbb::task_scheduler_init from perf tests 2012-10-15 16:25:06 +04:00
Andrey Kamaev c3881ede62 Refactor thread management in performance tests 2012-10-15 16:14:11 +04:00
Kirill Kornyakov aedf56404e made imread description slightly better #2406 2012-10-15 15:23:38 +04:00
Vadim Pisarevsky 5b2271c6fb another fix for #2332 test 2012-10-15 14:12:32 +04:00
Vadim Pisarevsky 78a0b9787c fixed build errors on Mac; moved test for #2332 from imgproc to highgui 2012-10-15 13:55:32 +04:00
Andrey Kamaev 460644b8a4 Reimplement thread management functions:
* Refactor auto-detection of parallel frameworks
* Implement cv:getNumThreads, cv::setNumThreads and cv::getThreadNum for all supported frameworks
* From now cv::setNumThreads(0) can be used to turn off parallelisation
2012-10-15 12:44:16 +04:00
Andrey Kamaev b54f59de90 Move thread-related functions implementation to parallel.cpp 2012-10-15 12:44:16 +04:00
Ilya Lavrenov 2cda65a782 fixed cvtColor (RGB <-> Lab) tests and created another one 2012-10-15 12:22:36 +04:00
Ilya Lavrenov 5f9aedbe01 fixed bug in cvtColor RGB(BGR) <-> Lab conversion 2012-10-15 12:21:16 +04:00
Anatoly Baksheev f9ac5e2404 minor 2012-10-12 23:03:31 +04:00
KOLANICH c1f2b1fcc4 replaced python build script with WSH one for windows platforms 2012-10-12 23:03:30 +04:00
Evgeny Talanin cfe28e3b73 Added test inspired by #2332 2012-10-12 18:43:00 +04:00
Kirill Kornyakov e770691522 deleted wrong line 2012-10-12 17:31:26 +04:00
Kirill Kornyakov de98da42f7 commented wrong line 2012-10-12 17:30:23 +04:00
Kirill Kornyakov 84176fa027 Added perf test for warpPerpsective with large resolutions 2012-10-12 17:14:23 +04:00
Vadim Pisarevsky fa368d6202 Merge remote-tracking branch 'origin/master' 2012-10-12 16:29:20 +04:00
Vadim Pisarevsky 5474b4d4bc finally, a proper fix for VNG (both SSE2 and C version) 2012-10-12 16:28:26 +04:00
marina.kolpakova 319e861cf2 FAIL_NO_CPU marco 2012-10-12 14:46:18 +04:00
marina.kolpakova 8d7ac8ad19 minor ending fix 2012-10-12 14:46:18 +04:00
marina.kolpakova 800cb9d0e6 allow gpu module write sanity data for GPU and CPU tests in one xml 2012-10-12 14:46:18 +04:00
Daniil Osokin 4500c48349 fixed 7 point mode in findFundamentalMat #1978 2012-10-12 14:38:52 +04:00
Evgeny Talanin 5dd1ec98f7 #720 patch apply 2012-10-12 14:25:36 +04:00
Vsevolod Glumov b91ca6a73f Removed the phrase, that was causing all the confusion. Issue #2406.
+ Some minor formatting fixes.
2012-10-12 14:15:30 +04:00
Vadim Pisarevsky 7bbf8744d6 Merge remote-tracking branch 'origin/master' 2012-10-12 14:01:47 +04:00
Vadim Pisarevsky cb58e5a3a4 let Kalman handle the missing measurements (bug #1380) 2012-10-12 14:01:36 +04:00
marina.kolpakova 296aa7c4fb One more fix for Kepler-specific gpu::integral usage 2012-10-12 13:45:09 +04:00
Daniil Osokin 1d3ec99102 fixed batchDistance minimum finding #2292 2012-10-12 13:25:55 +04:00
Andrey Kamaev 2abb67cc92 Merge pull request #29 from thorikawa/feature-523 2012-10-12 13:16:17 +04:00
Evgeny Talanin 2e7656dbdf #2192 patch apply 2012-10-12 13:03:43 +04:00
Andrey Kamaev 83799d6bf4 Fix Mat indexing in TrackingMotion tutorial code (supersedes pull request #38) 2012-10-12 12:59:50 +04:00
Vladislav Vinogradov 304714862f fixed bug in gpu::HOGDescriptor::computeConfidenceMultiScale 2012-10-12 12:49:10 +04:00
Vladislav Vinogradov 8abcad6b00 fixed CUDA_FAST_MATH flag 2012-10-12 12:49:10 +04:00
Andrey Kamaev a390c1e2e6 Merge pull request #40 from emchristiansen/manualBRISKFREAK 2012-10-12 12:31:11 +04:00
Eric Christiansen 594ce1c869 fixed indentation 2012-10-12 12:31:11 +04:00
Eric Christiansen caebcdcb3d Minor tweak to add BRISK and FREAK support for the Java wrapper 2012-10-12 12:31:11 +04:00
Andrey Kamaev a3a658c034 Quiet MSVC warning 2012-10-12 12:19:34 +04:00
Vadim Pisarevsky bddd06e6c4 another fix for the updated parallel_for_ implementation 2012-10-11 23:22:32 +04:00
Vadim Pisarevsky d64438dcfd fixed build errors in the case of TBB and Concurrency 2012-10-11 23:04:45 +04:00
Vadim Pisarevsky 8441cf700d added function cv::findNonZero (patch #2205) 2012-10-11 22:52:15 +04:00
Vadim Pisarevsky d72cc06b96 fixed possibly inccorrect interval measurements in flann's timer (bug #1165). Note: this may break binary compatibility, but since the class is not wrapped in Java and not exposed in Windows API, for example (it's considered internal-use class for flann), the effect should be minimal 2012-10-11 22:40:37 +04:00
Vadim Pisarevsky 354a5f2686 added recommended number of stripes to parallel_for_, modified some of the functions to use larger stripes (for better performance) 2012-10-11 22:37:14 +04:00
Andrey Kamaev 821de96346 Adjust thresholds in sanity checks for batchDistance 2012-10-11 20:35:28 +04:00
Andrey Kamaev b8a67dc0e3 Adjust thresholds in sanity checks for calcOpticalFlowPyrLK 2012-10-11 19:46:18 +04:00
Alexander Smorkalov 5a524bdfd7 Issue #1861 Improve Javadoc documentation fixed. Multiline code segments added to Javadoc. 2012-10-11 19:21:40 +04:00
Vsevolod Glumov a2088d0c52 Replaced SVN instructions with Git ones for 'Installation in Windows' section (Issue #2249); Also, fixed both bugs from issue #2374 in the same section. 2012-10-11 18:37:00 +04:00
Andrey Kamaev 97640847c5 Add methods to sort keypoints and corresponding descriptors 2012-10-11 18:25:45 +04:00
Andrey Kamaev 18295bc778 Improve performance tests failures formatting 2012-10-11 17:41:02 +04:00
Andrey Kamaev 8f44f25f47 Fix AndroidManifest.xml generation for OpenCV Android library project (second attempt) 2012-10-11 17:09:57 +04:00
Vsevolod Glumov a3080636ba Replaced SVN instructions with Git instructions in iOS and Linux installation tutorials. Issue #2249
+ Minor formatting fixes.
2012-10-11 16:44:53 +04:00
Andrey Kamaev f41ab3a330 Merge pull request #34 from roynos/master 2012-10-11 16:31:20 +04:00
Alexander Smorkalov 0c70b45625 Clickable optin turned off. Text disapearing fixed. 2012-10-11 16:27:01 +04:00
Andrey Kamaev c46affe63e android.toolchain.cmake: restore implicit link with math library for C++ objects
Ticket #2426
2012-10-11 16:10:01 +04:00
Andrey Kamaev 7cb525d63f Fix AndroidManifest.xml generation for OpenCV Android library project 2012-10-11 15:47:57 +04:00
Andrey Kamaev dc4a649513 Fix OS X build 2012-10-11 15:36:47 +04:00
Andrey Kamaev be98693aaf Enable parallel CvtColorLoop for all platforms 2012-10-11 15:05:43 +04:00
Andrey Kamaev df94591336 Fix instability of Luv/Lab color conversions 2012-10-11 15:05:43 +04:00
Vadim Pisarevsky 7ee6040192 enable Matx as Mat elements (bug #1705). 2012-10-11 15:02:48 +04:00
Daniil Osokin e435674a90 added perf test for gabor filter 2012-10-11 14:52:35 +04:00
Daniil Osokin f1e025dc68 delete normalization in gabor kernel #1995 2012-10-11 14:40:15 +04:00
Alexander Smorkalov eb189713ae Issue #2431 OpenCV Manager UI crashes at start fixed.
Data rase in OpenCV Manager connection fixed.
2012-10-11 14:39:42 +04:00
Evgeny Talanin bd4620f04e #2408 patch apply (see pull request at https://github.com/Itseez/opencv/pull/33) 2012-10-11 14:38:25 +04:00
Vadim Pisarevsky 43e3b83832 fixed potential memory buffer corruption in StereoSGBM (patch #2203) 2012-10-11 14:07:07 +04:00
Evgeny Talanin 8528b0abcd #1941 fix 2012-10-11 13:45:21 +04:00
Vadim Pisarevsky 56d3cad326 enabled odd size in DFT_COMPLEX_OUTPUT test 2012-10-11 12:27:10 +04:00
niko 97156897b2 format files to ANSI C style with coolformat
change the download channels to oclchannles()
fix bugs of arithm functions
perf fix of bilateral
bug fix of split test case
add build_warps functions
2012-10-11 16:22:47 +08:00
Vsevolod Glumov 69fbc6102c Fixed an issue with 'how_to_scan_images.cpp' tutorial code. Issue #2259 2012-10-11 03:51:34 +04:00
Vsevolod Glumov 1f21b96b9d Fixed the formulas, based on issue #2145 2012-10-11 03:26:23 +04:00
Vadim Pisarevsky 37ad10bf0d fixed bug with partly uninitialized output of dft with DFT_COMPLEX_OUTPUT flag (bug #2223) 2012-10-11 00:53:43 +04:00
Vadim Pisarevsky 63c9412922 enable huge value range in highgui sliders on Windows (patch #941) 2012-10-10 23:05:15 +04:00
Anatoly Baksheev 1d68850cb2 Added CUDA fast math flag 2012-10-10 22:16:51 +04:00
Andrey Kamaev 354b77e2e1 Applied fix from bug #2324: ocv_list_unique makes for incorrect linking 2012-10-10 19:40:55 +04:00
Andrey Kamaev d6a8753124 Remove second argument from VideoCapture_Reading perf test 2012-10-10 19:40:19 +04:00
Andrey Kamaev d40083a926 Add concurrency test for solvePnPRansac 2012-10-10 18:23:11 +04:00
Andrey Kamaev 423837ddae Restore theRNG seed reset on test SetUp as it is still needed 2012-10-10 18:07:03 +04:00
Vadim Pisarevsky 0e314163e5 fixed INT64_C & UINT64_C definitions (patch #2033) 2012-10-10 17:27:32 +04:00
Oleg Sklyarov 2f4e8ee73e Merge branch 'master' of git://code.opencv.org/opencv 2012-10-10 17:05:29 +04:00
Oleg Sklyarov 3f61b9792b fixed bug #2407: run.py now understands android device names with spaces 2012-10-10 16:59:00 +04:00
Vladislav Vinogradov a008d6fc17 fixed bug #2425 : Concurrent convolutions with streams 2012-10-10 16:55:16 +04:00
Vadim Pisarevsky 9368aa9f7b Merge remote-tracking branch 'origin/master' 2012-10-10 16:16:05 +04:00
Vadim Pisarevsky e80cbbb101 fixed C= detection script 2012-10-10 16:15:27 +04:00
marina.kolpakova b28acfc12e add GPU module specific command line arguments 2012-10-10 16:13:25 +04:00
marina.kolpakova f88be98ec4 print information message about target device for GPU module tests 2012-10-10 16:13:25 +04:00
marina.kolpakova 715a0032e0 add sanity checks into the denoising gpu performance tests 2012-10-10 16:13:25 +04:00
marina.kolpakova 45190aea47 add sanity checks into the features2d gpu performance tests 2012-10-10 16:13:25 +04:00
marina.kolpakova 2243645d36 add sanity checks into the objdetect gpu performance tests 2012-10-10 16:13:25 +04:00
marina.kolpakova 3de2023c61 add sanity checks into the calib3d gpu performance tests 2012-10-10 16:13:25 +04:00
marina.kolpakova dce323a67b add sanity checks into the video gpu performance tests 2012-10-10 16:13:25 +04:00
marina.kolpakova d7ef6f078f temporarily disable HoughLines test 2012-10-10 16:13:25 +04:00
marina.kolpakova 3dbfde421c add sanity checks into the matop gpu performance tests 2012-10-10 16:13:25 +04:00
marina.kolpakova 2a277fb777 add sanity checks into the filters gpu performance tests 2012-10-10 16:13:25 +04:00
marina.kolpakova 1e344d7eba add sanity checks into the imgproc gpu performance tests 2012-10-10 16:13:24 +04:00
marina.kolpakova e46e928429 add sanity checks in core gpu pefrormance tests 2012-10-10 16:13:24 +04:00
marina.kolpakova f5d6367ea1 GPU module performance tests are aligned with other OpenCV pefrofmance tests 2012-10-10 16:13:24 +04:00
marina.kolpakova 10f1004465 move GPU utiluty functions in utility.cpp 2012-10-10 16:13:24 +04:00
marina.kolpakova a9ab26f799 main.cpp moved to perf_main.cpp 2012-10-10 16:13:24 +04:00
Vladislav Vinogradov ece77e3930 fixed cvtColor parameter in KeypointBasedMotionEstimatorGpu::estimate 2012-10-10 16:07:07 +04:00
Vadim Pisarevsky e625d86485 added C= support; modified threading logic in threshold 2012-10-10 15:36:32 +04:00
Daniil Osokin 1516a6169a fixed one more msvc warning in tbb kmeans 2012-10-10 14:53:29 +04:00
Daniil Osokin cc2d12b3e6 fixed msvc warning in tbb kmeans 2012-10-10 14:35:28 +04:00
Alexander Smorkalov a91de25f10 Build fix after issue #2284 fix. 2012-10-10 14:27:17 +04:00
Alexander Smorkalov 9ad5fd709b Fixed Javadoc problems with ">" and "<" symbols. 2012-10-10 13:31:03 +04:00
Andrey Kamaev 006a4ba529 Fix gcc build error introduced in a9f36df 2012-10-10 13:24:49 +04:00
Andrey Kamaev cabddaeb4f Revert "Issue #2035 Calling cv::namedWindow crashes on Android fixed."
This reverts commit 36135fc59d.
2012-10-10 13:24:49 +04:00
daniil.osokin e83ff354bd added TBB for kmeans (patch #1261: thanks to Boris Mansencal) 2012-10-10 12:51:12 +04:00
daniil.osokin a245161de6 added perf test for kmeans 2012-10-10 12:51:11 +04:00
Alexander Smorkalov 36135fc59d Issue #2035 Calling cv::namedWindow crashes on Android fixed.
Window-related functions is guarded from calls from application code.
Old implementations with "no-gui" exception are stell compiled and linked to OpenCV library for binary compatibility.
2012-10-10 12:40:36 +04:00
Alexander Smorkalov 306ed9801a Issue #2284 BaseLoaderCallback requires use of Activity fixed. 2012-10-10 11:44:01 +04:00
Andrey Kamaev a9f36dfcfe Fix read after the end of local buffer in SSE-optimized TYPE_5_8 and TYPE_7_12 FAST cornerScore 2012-10-10 02:32:47 +04:00
Andrey Kamaev 56b27bcc7e Fix inconsistent argument type in HammingLUT distance (flann)
this fixes 64-bit MSVC warning
2012-10-10 00:31:22 +04:00
Vadim Pisarevsky 044d38a051 expanded cv::threshold parallelization to other threading frameworks; fixed potential bug with unprocessed bottom of the image; fixed build problem in stitching 2012-10-09 22:38:04 +04:00
Vadim Pisarevsky e365726c4a fixed example of iteration through a SparseMat (bug #2310) 2012-10-09 22:16:57 +04:00
Vadim Pisarevsky a09c88ab16 added Asus Xtion QVGA modes to the OpenNI backend (patch #1753) 2012-10-09 22:01:43 +04:00
Vadim Pisarevsky 89de0bebd8 Merge remote-tracking branch 'origin/master' 2012-10-09 21:52:56 +04:00
Vadim Pisarevsky 3243ad3483 applied patch #1473 (timestamp retrieval in OpenNI) 2012-10-09 21:52:41 +04:00
Andrey Kamaev 0afd51253d Add else branch to previous fix 2012-10-09 20:34:10 +04:00
Andrey Kamaev 34bfda10ca Fix regression in core arithmetic 2012-10-09 20:25:36 +04:00
Andrey Kamaev 8ebd04cbf9 Fix sanity checks in highgui module 2012-10-09 19:39:03 +04:00
Andrey Kamaev 4a53199e7a Quiet logs in stitching module 2012-10-09 19:28:15 +04:00
Andrey Kamaev 7cc67701a6 Add sanity checks to stitching perf tests 2012-10-09 19:17:58 +04:00
Andrey Kamaev 39d6eb7312 Add sanity check support for vector<DMatch> 2012-10-09 19:17:58 +04:00
Andrey Kamaev d970a9159e Add sanity checks to nonfree module 2012-10-09 19:17:58 +04:00
Kirill Kornyakov e8a173bcaf Merge branch 'master' of git://5.9.49.245/opencv 2012-10-09 18:57:02 +04:00
Kirill Kornyakov 9b8c47399a fixed compilation error because of DetectionBasedTracker 2012-10-09 18:55:20 +04:00
Andrey Kamaev 5047f2d64d Fix perf tests in features2d module 2012-10-09 18:41:27 +04:00
Andrey Kamaev 95b6a103b5 Add sanity checks support for vertor<KeyPoint> 2012-10-09 18:41:26 +04:00
Andrey Kamaev 5a5c477be6 Make performance tests for solvePnPRansec more determenistic 2012-10-09 18:41:26 +04:00
Andrey Kamaev d4cf9e22cc Fix terrible perf test for FAST detector 2012-10-09 18:41:26 +04:00
Andrey Kamaev b95923360d Add sanity checkes to video module perf tests 2012-10-09 18:41:26 +04:00
Alexander Smorkalov 9a76573172 Auto expand of OpenCV version for Android Library prject and some documentation pages added. 2012-10-09 18:30:58 +04:00
Alexander Smorkalov 705b4724cb ABI Compatibility config generator bug fix. 2012-10-09 18:30:58 +04:00
Vadim Pisarevsky b0ad424087 fixed several warnings from VS2010 2012-10-09 17:24:37 +04:00
Vadim Pisarevsky a135e862c1 made opencv headers windows.h-less (Bug #2122) 2012-10-09 17:12:42 +04:00
Vadim Pisarevsky df8364ce63 Fixed "arr = NaN" case (bug #2056) 2012-10-09 16:28:31 +04:00
Vadim Pisarevsky d54f4e1cfb added #undef True/False to avoid collision with X11 (Patch #1562) 2012-10-09 16:02:06 +04:00
Vadim Pisarevsky a8c5e35619 some more fixes towards binary compatibility 2012-10-09 15:56:16 +04:00
Andrey Kamaev e2ff0ed1fb Add sanity checks to objdetect module perf tests 2012-10-09 15:28:51 +04:00
Andrey Kamaev c146c54bcd Fix sanity checks for empty objects 2012-10-09 15:28:51 +04:00
Andrey Kamaev f8672d49a0 Add sanity checks to calib3d perf tests 2012-10-09 15:28:51 +04:00
Evgeny Talanin 7c71c8fa52 #2258 fix 2012-10-09 14:52:47 +04:00
Alexander Smorkalov 9ab19691d4 OpenCV Manager documentation updated.
Diagram rendering script updated.
2012-10-09 10:34:40 +04:00
Alexander Smorkalov 4b808b1199 RESTART_REQUIRED status removed from OpenCV Manager API;
OpenCV info library name fixed;
Minimum API level for OpenCV library project increased up to 3 for using message dialogs.
2012-10-09 10:34:40 +04:00
Anatoly Baksheev 408e0dcbd0 Fixed output log in GPU perf tests 2012-10-09 00:44:48 +04:00
Anatoly Baksheev c9bcbda827 more compilation fixes 2012-10-09 00:12:28 +04:00
Anatoly Baksheev 91a1a71de2 fixed compilation under Ubuntu without CUDA 2012-10-08 22:44:11 +04:00
Vadim Pisarevsky a310e2f027 fixed the case of scale != 1 in stereo_match.cpp (patch #1936) 2012-10-08 22:39:11 +04:00
Vadim Pisarevsky a63669f819 fixed linking CLP in the case of MinGW (patch #1872) 2012-10-08 22:24:38 +04:00
Vadim Pisarevsky ca6f2f080f hopefully, correctly applied modified patch #2034 that handles Windows case 2012-10-08 22:18:13 +04:00
Vadim Pisarevsky 4be8fd7253 Merge remote-tracking branch 'origin/master' 2012-10-08 22:00:40 +04:00
Vadim Pisarevsky 0bfa58b68d fixed detection of IPP 7.1 (patch #2413: thanks to Gino van den Bergen!) 2012-10-08 22:00:25 +04:00
Anatoly Baksheev bc0d0c8f31 fixed compilation without CUDA 2012-10-08 21:49:40 +04:00
Andrey Kamaev 13bfcd643e Fix sanity checks in improc perf tests 2012-10-08 21:37:58 +04:00
Andrey Kamaev a3ab6d147d Fix CV_ENUM macro instability 2012-10-08 21:37:58 +04:00
Vadim Pisarevsky 4be7619ce4 _InputArray/_OutputArray destructors are temporary made non-virtual. Please, restore it after 2.4.3 2012-10-08 21:37:15 +04:00
Vadim Pisarevsky 618fbf5508 yet another portion of changes towards the binary compatibility 2012-10-08 21:36:27 +04:00
Anatoly Baksheev 5b31c46c4f added MatCn enum to GPU perf tests 2012-10-08 19:57:20 +04:00
Anatoly Baksheev 9a4265a8d0 fast nlm (class version) 2012-10-08 19:57:20 +04:00
Anatoly Baksheev 4b5bbb7752 fast_nlm initial version 2012-10-08 19:57:19 +04:00
Andrey Kamaev 2446c9329f Remove bad perf test for cvRound 2012-10-08 18:40:41 +04:00
Andrey Kamaev 8c8ebd9ca6 Fix sanity checks for arithmetic tests on CV_32S data 2012-10-08 18:06:17 +04:00
Andrey Kamaev 6151a6ea0b Make SANITY_CHECK required for all performance tests 2012-10-08 17:17:42 +04:00
Vadim Pisarevsky 94b97b7a63 partially recovered binary compatibility (ticket #2415) 2012-10-08 17:06:05 +04:00
Andrey Kamaev 25a9b0a255 Fix depth calculation for Scalar in core arithmetic 2012-10-08 16:15:27 +04:00
Andrey Kamaev c0f2a8e0cc Fix build without SSE 2012-10-08 16:08:16 +04:00
Alexander Smorkalov febfdc9fa2 Wating for OpenCV library package installation added. 2012-10-08 14:37:59 +04:00
Alexander Smorkalov 11839e2cc9 Wating for OpenCV Manager installation added. 2012-10-08 14:37:59 +04:00
Alexander Smorkalov 601b87e3ed Java tests updated. Build fix. 2012-10-08 14:37:59 +04:00
Alexey Spizhevoy cb705aad1a updated DP seaming to support 4 channel images 2012-10-08 14:29:10 +04:00
Vadim Pisarevsky 925d0cc769 added test for box filter 16u, fixed bug #2416 2012-10-08 14:11:39 +04:00
Ilya Lavrenov 280ecb68bf changed file path 2012-10-08 13:27:28 +04:00
Ilya Lavrenov 2759f026e9 fixed Bug #2074 2012-10-08 12:59:15 +04:00
cuda_geek 6b19c76233 fix hardcoded paths for static build OpenCV with CUDA 2012-10-08 10:52:58 +04:00
Andrey Kamaev b486a59221 Quiet MSVC warning 2012-10-08 10:36:48 +04:00
marina.kolpakova 23699acca0 fix for bug 2264
fix compilation OpenCV with cxx11 under Ubuntu with clang and gcc 4.7
2012-10-08 02:37:22 +04:00
Alexey Spizhevoy 2ec264303e Added initial docs for the videostab module 2012-10-05 21:33:00 +04:00
Abhinav Gupta c0638aa2e0 Update samples/cpp/tutorial_code/features2D/SURF_detector.cpp
Changes made for OpenCV 2.4.2 compatibility
2012-10-05 21:31:41 +04:00
Andrey Kamaev 73cb77842e Replace jpegs with png (see 06a13d9) 2012-10-05 18:15:44 +04:00
Andrey Kamaev 2885eb86b8 Remove alignment reqirements from NEON optimizations in libpng
On Android memory is not guaranted to be aligned and applications often crash with BUSERROR
2012-10-05 18:15:44 +04:00
Vladislav Vinogradov f017ad5943 Merge branch 'gpu-device-layer' 2012-10-05 18:13:46 +04:00
Vladislav Vinogradov be19150672 deleted thrust header 2012-10-05 18:06:46 +04:00
Vladislav Vinogradov ab3a5244ba moved device layer headers to include directory 2012-10-05 18:04:23 +04:00
Alexander Smorkalov 9085fbe1e0 Native cameras build script output colorized. 2012-10-05 18:00:20 +04:00
Vladislav Vinogradov 3ebec7448d minor refactoring:
moved lbp.hpp to src/cuda folder
added missing cv::gpu::device namespace
deleted whitespaces
2012-10-05 17:43:22 +04:00
Ilya Lavrenov a703df5456 parallel cvtColor for MSVS and Apple 2012-10-05 13:11:24 +04:00
Leonid Beynenson 2fd8ad65b9 Made changes in cv::DetectionBasedTracker -- now it can return status of the tracked objects 2012-10-04 20:50:59 +04:00
Andrey Kamaev 9218bdcbb4 TBB version of GridAdaptedFeatureDetector 2012-10-04 16:58:34 +04:00
Vladislav Vinogradov 8d07e92b2c disabled NPP resize for 8uc4+Cubic (Bug #2388) 2012-10-04 13:33:47 +04:00
Vladislav Vinogradov cfc09d01c8 disabled NVidia test output by default 2012-10-04 13:33:06 +04:00
Roy Reapor 5d9d4659ad Fixed issue 2404
- imdecode_() only creates a temporary file when needed.
- Use the string's empty() function to flag if the temporary file needs
to be deleted.
2012-10-03 23:06:59 -07:00
Roy Reapor aa400c5837 Fixed issue 2403
Created temporary files are now deleted in Win32.
2012-10-03 22:44:29 -07:00
Vadim Pisarevsky 06a13d9ba0 replaced jpegs with png's. Accuracy tests pass; performance tests were not tried yet 2012-10-02 23:07:46 +04:00
Alexander Smorkalov d40a2c28c5 Ant build.xml and deps added. 2012-10-02 16:21:53 +04:00
Alexander Smorkalov 5ffbcf1e16 MIPS arch support added to OpenCV manager;
Internal OpenCV library in OpenCV Manager support added;
Unit tests improved, platform specific tests added, MIPS related tests added;
Code refactoring done.
2012-10-02 16:21:53 +04:00
Alexander Smorkalov ad58e96581 Automation for build and test OpenCV Manager on several devices added. 2012-10-02 16:21:53 +04:00
Alexander Smorkalov d64d76086e MIPS architecture support added. Native camera library built for MIPS device. 2012-10-02 16:21:53 +04:00
Vladislav Vinogradov 11367e2c3d added GpuMat support to OutputArray 2012-10-02 14:34:17 +04:00
Vadim Pisarevsky b2bf90e951 fixed build errors in java bindings on desktop in Debug mode 2012-10-02 10:49:19 +04:00
Anatoly Baksheev 4df537bc1c warnings 2012-10-01 23:57:38 +04:00
Anatoly Baksheev 55b1d7c097 added CUDA_DISABLER preprocessor commands 2012-10-01 23:57:38 +04:00
Anatoly Baksheev 46874d40df warnings under windows 2012-10-01 23:57:37 +04:00
Ilya Lavrenov c560a78c65 stable cvtColor 2012-10-01 18:52:27 +04:00
Ilya Lavrenov 45593030ab fixed TestRemap_Remap 2012-10-01 17:29:56 +04:00
Vadim Pisarevsky 57d9699058 added the note about 1-pixel border in findContours (relates to ticket #2362) 2012-10-01 16:43:07 +04:00
Vadim Pisarevsky a4adf57edc fixed typos in the mat tutorial (ticket #2380) 2012-10-01 16:35:12 +04:00
Vadim Pisarevsky c9f1490302 added variant of cv::imdecode with the specified output matrix 2012-10-01 16:23:40 +04:00
Vadim Pisarevsky 420dd22258 fixed a few warnings reported by Oleg; restored SSE2 optimization in FAST 2012-10-01 14:12:19 +04:00
marina.kolpakova dc568d4de1 fix for 4-channels TIFF missing 'break' statement 2012-10-01 08:33:56 +04:00
Marius Muja ae4ff999d7 Merge branch 'master' of git://code.opencv.org/opencv 2012-09-28 10:40:51 -07:00
Marius Muja 5cf6c5f0b2 Added test to fix backwards compatibility with the way LSH was handled before comit 7236858b 2012-09-28 10:40:38 -07:00
Andrey Kamaev 06e7101795 Add Tegra optimization for fastNlMeansDenoising 2012-09-28 18:56:36 +04:00
Andrey Pavlenko a8e7f91e34 java samples fix (clear view before drawing frame) of 'dirty' FPS display bug 2012-09-28 18:21:22 +04:00
Ilya Lavrenov 9ee87bd04b added parallel version of CvtColorLoop - main inner function of cvtColor 2012-09-28 17:42:48 +04:00
marina.kolpakova c6e741196a fix device pointer alignmen in sft-based integral integration 2012-09-28 14:55:45 +04:00
marina.kolpakova ed6885dd8b fixed bit arifmetic in sft-based integral 2012-09-28 14:55:45 +04:00
Alexey Spizhevoy eafb024112 fixed one of the log messages in the stitching module 2012-09-28 14:37:38 +04:00
Andrey Pavlenko 8c1550a4ec a new Java test to imencode() with params 2012-09-27 19:11:02 +04:00
Marius Muja 7236858bea Exposed HierarchicalClusteringIndex in OpenCV wrapper 2012-09-27 03:58:17 -07:00
Andrey Pavlenko 56200dbd37 REVERT OF: Update libjpeg to release 8d (reverse-merged from commit d28af08ef3) 2012-09-26 14:02:23 +04:00
Andrey Pavlenko 4e193a3380 REVERT OF reverted libjpeg to an earlier version (reverse-merged from commit bfc8a52402) 2012-09-26 14:01:51 +04:00
Alexey Spizhevoy 317a27e9eb fixed the bug #2385 2012-09-25 16:08:43 +04:00
Vadim Pisarevsky 60769f544f possibly repaired FAST test (however, FAST<7/12> and <5/8> could still do something different than described in the paper) 2012-09-25 15:50:03 +04:00
Evgeny Talanin 6308be2c3e Changed parallel_for to parallel_for_ in hog.cpp and cascadedetect.cpp 2012-09-25 12:18:33 +04:00
Ilya Lavrenov b8c185de9f changed map indexes in test_remap 2012-09-24 20:36:25 +04:00
Ilya Lavrenov 6a3d5a1355 reorganized the resize algorithm 2012-09-24 17:07:08 +04:00
Anatoly Baksheev f059899329 fixed bug in nln (out of border access) 2012-09-24 17:01:44 +04:00
Anatoly Baksheev dffba48517 Added host compiler check before CUDA detection. For not supported compilers CUDA will be disabled. 2012-09-24 16:56:19 +04:00
Vadim Pisarevsky 854902b077 lowered tolerance thresholds in BRISK tests 2012-09-24 16:31:07 +04:00
bitwangyaoyao 3579c61388 Merge branch 'master' of git://code.opencv.org/opencv 2012-09-24 20:29:21 +08:00
bitwangyaoyao 09359982b1 some optimizations to ocl::pyrDown, PyrLK and Canny 2012-09-24 20:28:35 +08:00
Vadim Pisarevsky d09b3828b8 fixed fail in arithmetic test 2012-09-24 16:14:19 +04:00
Kirill Kornyakov 494ae1562d Added 240p resolution alias for perf tests 2012-09-24 15:44:11 +04:00
Vadim Pisarevsky da6e3ebff2 Merge remote-tracking branch 'origin/master' 2012-09-24 15:11:45 +04:00
Vadim Pisarevsky bfc8a52402 reverted libjpeg to an earlier version 2012-09-24 15:11:29 +04:00
Ilya Lavrenov 33983bcbb7 edited misprint 2012-09-24 14:18:54 +04:00
Ilya Lavrenov 0e07b0d73a uncommented auto enabling GCD on Mac 2012-09-24 14:18:15 +04:00
Ilya Lavrenov 9c89947433 edited misprint 2012-09-24 13:46:09 +04:00
Ilya Lavrenov 2627c91c5e added platform specific definitions in resize algorithm 2012-09-24 12:57:39 +04:00
Ilya Lavrenov 077115bd4a debug 2012-09-24 12:40:20 +04:00
Ilya Lavrenov bb589a590e debug 2012-09-24 11:35:46 +04:00
Vadim Pisarevsky 427ce1247a some bugfixes & improvements in openfabmap code, docs and samples by Arren Glover 2012-09-23 20:57:34 +04:00
Ilya Lavrenov b7b32e74a5 some restructuring of resize algorithm code 2012-09-21 18:17:54 +04:00
Ilya Lavrenov 222303f24b attempt 2012-09-21 17:25:42 +04:00
Ivan Korolev a8ba2d7f52 Added Rotation motion mode in the videostab module 2012-09-21 17:04:28 +04:00
Anatoly Baksheev 3b075a50e9 fixed warnings under windows 2012-09-21 13:41:56 +04:00
niko 0abe7f3196 many bugs fix for intel's HD4000
from my svn 855
2012-09-21 16:51:45 +08:00
Alexey Spizhevoy f3bc1aede1 removed obsolte global motion estimation method 2012-09-21 10:46:21 +04:00
Leonid Beynenson 46ce5976ae Fix: Windows compilation error in CommandLineParser. 2012-09-20 18:11:33 +04:00
Leonid Beynenson 0bde00a88a Changed CommandLineParser to make it less verbose
when it is unrequired.
2012-09-20 18:01:24 +04:00
Alexander Kapustin 858f437162 Merge branch 'master' of git://code.opencv.org/opencv 2012-09-20 17:32:54 +04:00
Andrey Kamaev 44e8d76d74 Change denoising strength parameter from int to float 2012-09-20 17:27:48 +04:00
Alexander Kapustin 8f4ddad52d 1. New function ActualScalarDepth was added
2. Two new NeonOptimized functions subtract_8u8u32f and subtract_8u8u8s were added
2012-09-20 17:24:20 +04:00
Alexander Kapustin bb3332508e 1. New function ActualScalarDepth was added
2. Two new NeonOptimized functions subtract_8u8u32f and subtract_8u8u8s were added

Conflicts:
	modules/core/src/arithm.cpp
2012-09-20 16:59:48 +04:00
Vladislav Vinogradov 6f175a3c52 changed the type of the arguments to const reference (Bug #2376)
ORB_GPU::downloadKeyPoints
ORB_GPU::convertKeyPoints
2012-09-20 13:52:04 +04:00
yao 2e36338636 remove warnings of some functions in ocl module 2012-09-20 09:23:11 +08:00
Andrey Kamaev 82b30963d2 Restore pdf patch command 2012-09-19 18:45:57 +04:00
Andrey Pavlenko 3bad6ac0ee This reverts commit 738d3fef38. 2012-09-19 18:03:50 +04:00
Vadim Pisarevsky 1ded1597e7 fixed mixed-type array operations (bug #2336) 2012-09-19 17:55:34 +04:00
Alexander Kapustin 738d3fef38 1. New function ActualScalarDepth was added
2. Two new NeonOptimized functions subtract_8u8u32f and subtract_8u8u8s were added
2012-09-19 17:08:25 +04:00
Vadim Pisarevsky 45fd6f509f Merge remote-tracking branch 'origin/master' 2012-09-19 16:57:27 +04:00
Vadim Pisarevsky 40d5b026c7 fixed verbose mode in highgui's DirectShow wrapper (bug #2350) 2012-09-19 16:57:10 +04:00
Andrey Kamaev 56ac2937d8 Fix typo 2012-09-19 16:56:54 +04:00
Vadim Pisarevsky 54705a009a Merge remote-tracking branch 'origin/master' 2012-09-19 16:52:07 +04:00
Vadim Pisarevsky c3c49a317b fixed outlier filtering in cvStereoRectifyUncalibrated (bug #2367) 2012-09-19 16:51:49 +04:00
Andrey Kamaev f42b38ac44 Refactor fast NL-means denoising
* reorder arguments
* rewrite accuracy tests
* replace doubles with integer arithmetic inside the main loop
2012-09-19 16:50:56 +04:00
OpenCV Buildbot 87f282eed2 update FFMPEG wrapper binaries 2012-09-19 16:49:39 +04:00
Vadim Pisarevsky 4e07561141 fixed possible compile error in cap_ffmpeg_impl.hpp (bug #2365) 2012-09-19 16:48:19 +04:00
yao d38359620e some optimizations to ocl::blend 2012-09-19 10:52:25 +08:00
Oleg Sklyarov bbe418427e Added WQHD = 1444p frame size 2012-09-18 18:02:29 +04:00
Vadim Pisarevsky 2d334401b1 improved the condition in the FAST test 2012-09-18 14:34:50 +04:00
Vadim Pisarevsky d2613dd9f6 added patches by Bram Bolder 2012-09-18 14:11:08 +04:00
yao 310bd8701c a little optimizations to ocl::pyrDown 2012-09-18 17:57:37 +08:00
Alexander Smorkalov b1d14f766d Bug with several "in use" labels fixed in OpenCV Manager UI. 2012-09-18 11:07:26 +04:00
Alexander Smorkalov 0105d0a241 "in use" label update fix in OpenCV Manager UI. 2012-09-18 11:07:26 +04:00
Alexander Smorkalov 92b0cc541e Minor bug fix in building all native camera libs for android 2012-09-18 11:07:26 +04:00
Alexander Smorkalov ada27b54eb NDK detection bug fix. 2012-09-18 11:07:26 +04:00
Alexander Mordvintsev 556e6c1475 Merge branch 'master' of git://code.opencv.org/opencv 2012-09-17 19:42:55 +04:00
Ilya Lavrenov fffd263ce4 attempt 2012-09-17 19:39:49 +04:00
Alexander Mordvintsev 1017dea332 Merge branch 'master' of git://code.opencv.org/opencv 2012-09-17 19:37:38 +04:00
Alexander Mordvintsev 2a96f28bc1 get rid of Lock in gabor_threads.py 2012-09-17 19:30:20 +04:00
Ilya Lavrenov f58c5646b0 fixed wrong condition with interpolation types 2012-09-17 18:30:55 +04:00
Ilya Lavrenov 5ab3fe489f changed resize_area test 2012-09-17 17:38:23 +04:00
Andrey Kamaev 7e35838849 Minor refactoring of NL-means denoising 2012-09-17 17:19:00 +04:00
Andrey Pavlenko 3c4917555d fixing git commit getting for Android build 2012-09-17 17:08:48 +04:00
Ilya Lavrenov a65cb5d2de added extra debug parameters in resize test 2012-09-17 17:08:06 +04:00
Vadim Pisarevsky 58fb8692c3 added test for png encoding bug #2352 2012-09-17 16:44:40 +04:00
Ilya Lavrenov 03daf44848 added recalculating scale coefficients 2012-09-17 16:31:30 +04:00
Vadim Pisarevsky d9e801fbfa improved image rendering performance in Qt backend for highgui UI (bug #2356) 2012-09-17 16:13:53 +04:00
Vadim Pisarevsky 37f4ea6be7 Merge remote-tracking branch 'origin/master' 2012-09-17 16:12:36 +04:00
Vadim Pisarevsky 7946fcdb69 added test for #2336 2012-09-17 16:12:30 +04:00
Andrey Kamaev e73089bdb5 Fix windows build warnings 2012-09-17 13:30:28 +04:00
Andrey Kamaev 089de14ed7 Fix copy-paste bug in AVX optimization of haar 2012-09-17 13:30:28 +04:00
Andrey Kamaev f32eb05ea1 Fix AVX and other SIMD support detection 2012-09-17 13:30:28 +04:00
Andrey Kamaev cd05d9aaad Fix build of Java API for Windows 2012-09-17 13:21:20 +04:00
Andrey Kamaev fe0d07ae53 Add experimental support for desktop Java
Based on pull request #31 (thanks to Eric Christiansen)
Support for Java is turned off by default and can be enabled setting
BUILD_opencv_java to ON (e.g. cmake -DBUILD_opencv_java=ON ..)
2012-09-17 13:21:20 +04:00
Andrey Kamaev ece71d6a06 Remove misused REQUIRED keyword from CMake scripts 2012-09-17 13:21:20 +04:00
yao 78e89890b0 add PyrLK to ocl module 2012-09-17 09:48:34 +08:00
Andrey Kamaev 0e9405e591 Honor resently added functionality in hdr_parser and rst_parser; minor fixes in documentation 2012-09-14 22:26:32 +04:00
Alexander Smorkalov e9009db667 All HTC One S related changes reverted due to applyProperties problems on other devices. Libraries rebuilt.
(cherry picked from commit 8104164c78)
2012-09-14 19:23:36 +04:00
Alexander Smorkalov dc5c7ee68f Link to OpenCV website updated. Full Manager version added to UI. Screen orientation fixed. 2012-09-14 17:45:29 +04:00
Alexander Smorkalov d55e114f96 Issue #2357 OpenCV manager fails to determine hardware platfrom on Tegra2 fixed. 2012-09-14 17:45:29 +04:00
Vsevolod Glumov 415636a677 Fixed a minor issue in OpenCV4Android Reference. 2012-09-14 17:06:59 +04:00
Alexander Smorkalov 8104164c78 All HTC One S related changes reverted due to applyProperties problems on other devices. Libraries rebuilt. 2012-09-14 16:51:38 +04:00
yao 9efd7019ad A more reasonable verify method for ocl::HOG accuracy test 2012-09-14 17:07:29 +08:00
Vsevolod Glumov 1052a0b4eb Fixed some language issues in OpenCV4Android Reference. 2012-09-14 11:10:53 +04:00
Vladislav Vinogradov 538847e8a3 fixed compilation under VS2012 (Bug #2352, #2355) 2012-09-14 09:34:56 +04:00
Andrey Kamaev 4772c42c66 Tweak strip flags for Android camera wrapper libs 2012-09-13 20:28:25 +04:00
Andrey Kamaev 1e69d47ba5 Remove -g from Android complier flags in release mode (used by NDK but inconvenient for CMake) 2012-09-13 20:27:54 +04:00
yao 04e946b2a3 make ocl surf sample compile on Linux 2012-09-13 17:34:06 +08:00
Vladislav Vinogradov 35b671efb5 disabled utility code in gpu tests when WITH_CUDA=false 2012-09-13 12:17:35 +04:00
Vladislav Vinogradov fd77ef7ece optimized gpu pyrDown and sepFilter2D 2012-09-13 10:21:43 +04:00
Vladislav Vinogradov 7591ee1688 fixed gpu perf tests (VideoCapture reopen) 2012-09-13 10:18:42 +04:00
Alexander Smorkalov af2de86914 Native camera fix for Nexus 7 with Android JB. Camera build script updated.
(cherry picked from commit afe30d0f8a)
2012-09-12 15:29:17 +04:00
Alexander Smorkalov afe30d0f8a Native camera fix for Nexus 7 with Android JB. Camera build script updated. 2012-09-12 14:29:00 +04:00
Alexander Smorkalov ccafed3d90 ABI compatibility check config generator updated. Command line params added. NDK searching added. 2012-09-12 11:18:28 +04:00
Alexander Smorkalov ec8b79cc91 Small camera build script improvements. 2012-09-12 11:18:28 +04:00
yao c09e2f88df Add a SURF sample for ocl module 2012-09-12 11:49:37 +08:00
yao 656f06fa74 add bruteForceMatcher to ocl module 2012-09-12 11:40:13 +08:00
niko 23244a3565 rename all the perf test files
fix the channel 3 bug in matrix operation
perf and buf fix for LUT haardetect convertC3C4 resize warpaffine copytom settom
add convovle
remove stereo
2012-09-12 10:31:09 +08:00
Vadim Pisarevsky e94cd1ec72 updated description of LineIterator with information about LineIterator::pos() (ticket #2338) 2012-09-11 20:20:05 +04:00
Vadim Pisarevsky 52ede9c84d fixed just introduced bug in Python wrapper generator 2012-09-11 20:04:18 +04:00
Alexander Smorkalov f22a3af483 Issue #2345 Adapt OpenCV Manager UI for different screen resolution partially fixed. Layout for small resolution added.
Layout for small display resolution added.
2012-09-11 17:10:26 +04:00
Alexander Smorkalov a699594854 Issue # 2344 OpenCV Manager doesn't tell which pack is used fixed. 2012-09-11 17:10:26 +04:00
Vadim Pisarevsky 84087a8566 fixed crash in Python's SURF wrapper (bug #2325) 2012-09-11 16:47:25 +04:00
Vladislav Vinogradov e975259c06 several fixes in gpu module
fixed iterations>1 case in morphological operations
fixed possible access violation in HSV2RGB
fixed the case learningRate==0 in BackgroundSubtractorMOG2
2012-09-11 15:00:59 +04:00
Vadim Pisarevsky 9956c42804 fixed iterations>1 case in morphological operations (bug #2348; thanks to Andrei Zaharescu for the fix) 2012-09-11 14:49:56 +04:00
Vadim Pisarevsky f53d94c645 fixed OpenCL detection in Linux (patch #2261) 2012-09-11 14:32:31 +04:00
Vadim Pisarevsky 9ea5b6bb44 fixed possible access violation in HSV2RGB (patch #2020) 2012-09-11 14:25:34 +04:00
Vadim Pisarevsky bbeffcc115 fixed the case learningRate==0 in BackgroundSubtractorMOG2 (patch #2221; thanks to Will Lucas) 2012-09-11 14:13:37 +04:00
Vadim Pisarevsky bb93651048 added support for bi-level PNG's (patch #2301; thanks to Costantino Grana) 2012-09-11 14:05:25 +04:00
Vadim Pisarevsky b3408a9b3a fixed bug #2186 (thanks to Joao Soares for the patch) 2012-09-11 13:56:25 +04:00
Ilya Lavrenov fbd9bfba47 fixed some warnings and errors on windows 2012-09-10 21:37:44 +04:00
Andrey Kamaev b1b5e392e6 Fix Android build warnings in new imgproc tests 2012-09-10 20:33:35 +04:00
Ilya Lavrenov dd1091bbe1 a reference function for remap was stabilized 2012-09-10 19:55:03 +04:00
Andrey Kamaev a201233b59 Fix warning in Android camera code 2012-09-10 19:44:59 +04:00
Andrey Kamaev 36f912261b Move gpu sample to gpu folder 2012-09-10 19:17:50 +04:00
Andrey Kamaev 200a81746e Improve Eigen search
Should now automatically detect it during Android build
2012-09-10 18:15:29 +04:00
Alexander Smorkalov 8a8e719690 getWidth/getHeight optimized.
(cherry picked from commit 7d4432df27)
2012-09-10 17:15:54 +04:00
Alexander Smorkalov 7d4432df27 getWidth/getHeight optimized. 2012-09-10 17:08:35 +04:00
Vladislav Vinogradov 98c92f196e added Generalized Hough implementation 2012-09-10 16:49:40 +04:00
Alexander Smorkalov 86c7e183d2 Issue #2316 Change default libnative_camera path implemented. 2012-09-10 16:29:37 +04:00
Andrey Kamaev e564a53ccd Add gitignore for Android tests and samples 2012-09-10 15:48:57 +04:00
Alexander Smorkalov 43a401ba19 OpenCV Manager version incremented. 2012-09-10 11:37:36 +04:00
Alexander Smorkalov 1de829c359 abi-compatibility-check tool configuration script for adnroid added. 2012-09-10 11:37:36 +04:00
yao 7d83db7d4d fix ocl::columnsum bug 2012-09-10 14:52:28 +08:00
Philipp Wagner 42f7329c78 Merge branch 'master' of git://code.opencv.org/opencv 2012-09-07 22:44:15 +02:00
Philipp Wagner cfa250eff5 The labels of a model are now cloned instead of using Mat::copyTo, because Mat::copyTo leads to a crash with the Python wrapper. I need to further investigate it. 2012-09-07 22:42:46 +02:00
Andrey Kamaev f268af8ef0 Removed remaining SWIG marks from headers 2012-09-07 22:19:43 +04:00
Philipp Wagner a5e37779fb Added a simple CMakeLists.txt to the facerec_samples, which are not included in the samples folder. Makes building these samples a lot easier. 2012-09-07 17:33:44 +02:00
Andrey Kamaev 4bd2c6b50d Android toolchain: added fixes/workarounds for NDK r8b and NDK r6 bugs 2012-09-07 18:27:47 +04:00
Alexander Smorkalov 0ab954a3c4 Issue #2270 OpenCV Manager fails with JNI error fixed.
Local reference table overflow in JNI code fixed.
(cherry picked from commit 457c878538)
2012-09-07 18:12:41 +04:00
Andrey Morozov e2d9fc4dcc fixed compile error under linux 2012-09-07 18:01:06 +04:00
Vadim Pisarevsky 7c13dc6cb3 little fix in command line parser - catch unknown parameter types 2012-09-07 17:49:38 +04:00
Vadim Pisarevsky 0598f33a85 refactored command line parser, fixed the docs 2012-09-07 17:44:01 +04:00
Alexander Smorkalov 0efa9d4c06 Build script for all native cameras added.
(cherry picked from commit b16b50d61b)
2012-09-07 17:37:33 +04:00
Alexander Smorkalov a12baf180a All native camera libraries rebuild after HTC One S fix.
(cherry picked from commit 568d9583c1)
2012-09-07 17:37:32 +04:00
Alexander Smorkalov da167d8f38 Issue #2248 OpenCV manager fails to determine hardware platfrom on Android Emulator fixed.
Search keys for /proc/sysinfo updated.
(cherry picked from commit db3a35f901)
2012-09-07 17:37:31 +04:00
Alexander Smorkalov c07ba32e16 Native camera issue on HTC One S fixed.
Camera connect->disconnect->connect leads to sigsegv.
Apply properties method reimplemented.
(cherry picked from commit 710e070990)
2012-09-07 17:37:31 +04:00
Alexander Smorkalov b16b50d61b Build script for all native cameras added. 2012-09-07 17:22:48 +04:00
Alexander Smorkalov 568d9583c1 All native camera libraries rebuild after HTC One S fix. 2012-09-07 17:22:48 +04:00
Alexander Smorkalov db3a35f901 Issue #2248 OpenCV manager fails to determine hardware platfrom on Android Emulator fixed.
Search keys for /proc/sysinfo updated.
2012-09-07 17:22:48 +04:00
Alexander Smorkalov 710e070990 Native camera issue on HTC One S fixed.
Camera connect->disconnect->connect leads to sigsegv.
Apply properties method reimplemented.
2012-09-07 17:22:47 +04:00
Vadim Pisarevsky 19e1f89cd6 regenerated opencv_cheatsheet.pdf from the previously updated opencv_cheatsheet.tex 2012-09-07 15:35:18 +04:00
Vadim Pisarevsky 53fdae93bd fixed compile error on Windows 2012-09-07 15:25:32 +04:00
AoD314 54a202b3d5 add new version of CommandLineParser. add empty docs 2012-09-07 13:24:48 +04:00
Andrey Kamaev 6a112aa87a Use TBB 4.1 on Android 2012-09-06 19:38:13 +04:00
Andrey Kamaev 70234433d3 Reduce verbosity of Java API generators 2012-09-06 18:54:38 +04:00
Andrey Kamaev b8adc04545 Fix Android build warnings 2012-09-06 18:54:38 +04:00
Andrey Kamaev b8767f5fbe Disable TBB on Android for mips 2012-09-06 18:54:38 +04:00
Andrey Kamaev 2cc262bce4 Fix Android CMake toolchain compiler and linker flags 2012-09-06 18:54:38 +04:00
Andrey Pavlenko 04e9698685 possibility to maintain custom hardware-specific libs folders 2012-09-06 16:09:20 +04:00
Andrey Pavlenko 186f8b7417 possibility to maintain custom hardware-specific libs folders 2012-09-06 16:03:07 +04:00
Vadim Pisarevsky 36dacc688a removed non-existing CoreAnimation framework from the list of required frameworks (bug #2326) 2012-09-06 14:22:40 +04:00
Vadim Pisarevsky 283087dd56 fixed typo (bug #2327) 2012-09-06 14:16:18 +04:00
Vsevolod Glumov 037e3ee288 Fixed some minor formatting issues in 'old_basic_structures' and 'operations_on_arrays'. 2012-09-06 10:57:28 +04:00
yao a1796469f7 Merge branch 'master' of git://code.opencv.org/opencv 2012-09-06 14:39:56 +08:00
yao 1b6639aa3d A little optimization on ocl/pyrdown, ocl/canny 2012-09-06 14:39:20 +08:00
Vsevolod Glumov 3d072dce02 Revert "Another batch of fixed 'undocumented parameter' warnings in 'operations_on_arrays.rst'."
This reverts commit 907a9101eb.
2012-09-06 10:38:03 +04:00
Vsevolod Glumov 907a9101eb Another batch of fixed 'undocumented parameter' warnings in 'operations_on_arrays.rst'. 2012-09-05 18:13:54 +04:00
Vadim Pisarevsky 932100c5a3 fixed build errors and warnings on Windows 2012-09-05 17:06:07 +04:00
Andrey Kamaev d3501f1545 Android toolchain: restored explicit include_directories of system /usr/include
It is needed because of explicit STL include paths.
Otherwise some standard headers (like fenv.h) can not not be correctly found by the compiler.
2012-09-05 16:29:05 +04:00
Vadim Pisarevsky dcdbc638af Merge https://github.com/urikz/opencv 2012-09-05 16:01:59 +04:00
Andrey Kamaev bcd0aefbca Fix gcc build errors and warnings 2012-09-05 15:51:51 +04:00
Yury Zemlyanskiy 66ce62cd0d Small fixed #3 2012-09-05 14:39:33 +04:00
Yury Zemlyanskiy 036258b8da Small fixed #2 2012-09-05 14:36:40 +04:00
Yury Zemlyanskiy 9d1aa37e21 Small fixes 2012-09-05 14:19:44 +04:00
Yury Zemlyanskiy 4e0fdf2205 Merge remote-tracking branch 'itseez/opencv'
Conflicts:
	modules/video/src/simpleflow.cpp
	modules/video/test/test_simpleflow.cpp
2012-09-05 13:40:14 +04:00
Yury Zemlyanskiy 0c10ed26e3 Update to improve performance of SimpleFlow algorithm
+ Improve performance of calcOpticalFlowSingleScale method
+ Small refactoring

Current results:

IMAGE NAMES          RMSE
Beanbags
Dimetrodon           0.329428
DogDance
Grove2               0.550852
Grove3               1.464699
Hydrangea            0.523277
MiniCooper
RubberWhale          0.367246
Urban2               2.717003
Urban3               4.185070
Venus                0.775422
Walking

Time (for Urban3):
17.490248 sec
2012-09-05 13:27:47 +04:00
Takahiro Horikawa ec45453baa #523 Fix the problem where the MaxSize parameter in cvHaarDetectObjects does not work when the flag CV_HAAR_SCALE_IMAGE is not set. 2012-09-04 20:46:42 -07:00
Ilya Lavrenov 5eac0419b2 changed eps in validate_result function 2012-09-04 22:22:07 +04:00
Ilya Lavrenov be51e5d1b1 More strict tests for image waring algorithms 2012-09-04 21:52:40 +04:00
Andrey Kamaev 07d92d9e5a Fix android build warnings 2012-09-04 17:44:23 +04:00
Andrey Kamaev 8325a28d09 Merge branch 'android-toolchain' 2012-09-04 17:10:52 +04:00
Andrey Kamaev 02b33792cb Fix precompiled headers support detection for gcc-4.6 toolchain from Android NDK r8b
The version reported by toolchain is 4.6.x-google so regex needs an adjustment.
2012-09-04 16:50:55 +04:00
Andrey Kamaev b0c7280978 Android toolchain: protect from changes of NDK_CCACHE on subsequent cmake 2012-09-04 16:33:24 +04:00
Andrey Kamaev af415085d8 Fix Android build with CMake 2.6.3-2.8.3 2012-09-04 16:21:44 +04:00
Andrey Kamaev 53d219c857 Improved CMake warnings about known problems of Android NDKs 2012-09-04 16:21:44 +04:00
Vsevolod Glumov 16717a8641 Partially cleaned 'operations_on_arrays' section of undocumented parameters. 2012-09-04 15:44:21 +04:00
Vadim Pisarevsky 959674618f restored SSE2 and added AVX optimization of the old haar face detector 2012-09-04 14:59:38 +04:00
Vadim Pisarevsky dea52eb730 fixed 4-channel resizeAreaFast x2 decimation case 2012-09-04 14:51:31 +04:00
Vadim Pisarevsky bf7295f584 fixed multiple build warnings 2012-09-04 14:15:00 +04:00
Vadim Pisarevsky e17b70e533 updated documentation with the new PCA functionality 2012-09-04 14:14:24 +04:00
Kevin 93155c6ae0 Overloaded PCA constructor and ( ) operator to implement Feature#2287 - PCA that retains a specified amount of variance from the data. A sample was added to samples/cpp to demonstrate the new functionality. Docs and Tests were also updated 2012-09-04 13:58:59 +04:00
Vadim Pisarevsky a74a2302aa fixed bug #2331 2012-09-04 13:34:52 +04:00
Alexander Smorkalov a08290d843 Merge branch 'master' of git://code.opencv.org/opencv 2012-09-04 10:50:35 +04:00
Alexander Smorkalov 457c878538 Issue #2270 OpenCV Manager fails with JNI error fixed.
Local reference table overflow in JNI code fixed.
2012-09-04 10:39:44 +04:00
yao 8f8a69d6f5 fix bug of ocl::canny 2012-09-04 08:51:08 +08:00
Andrey Kamaev a3125c0b8d Added C++ runtime search for standalone toolchain 2012-09-04 02:08:27 +04:00
Andrey Kamaev ac808b51a5 Fixing STL support in case of standalone toolchain 2012-09-03 19:13:51 +04:00
Andrey Kamaev c91850ec2e Fix executable and C objects linking 2012-09-03 18:42:13 +04:00
Vadim Pisarevsky 778c31a1c8 added SSE2-optimized boxfilter by Grigoriy Frolov 2012-09-03 17:31:20 +04:00
Vadim Pisarevsky 67ff95083d added openfabmap code, contributed by Arren Glover. fixed several warnings in the new versions of retina filters 2012-09-03 17:03:31 +04:00
Andrey Kamaev 6ee7ecb617 Merge pull request #28: add openexr to 3rdparty libs 2012-09-03 16:03:25 +04:00
Andrey Kamaev 52581750fc Fix openexr build on Linux 2012-09-03 15:58:30 +04:00
niko 11b403900e add channel 3 for test/main.cpp
add remap
2012-09-03 18:07:31 +08:00
yao c8bfc0fd89 A little fix to ocl accuracy tests, make them more uniformed 2012-09-03 17:23:13 +08:00
yao 0fdb55a54d update some of the functions in ocl module to the latest version 2012-09-03 17:03:37 +08:00
Andrey Kamaev e402bb496d Add support for all NDK runtimes 2012-09-03 03:54:06 +04:00
Andrey Kamaev 7280039d8c Update readme for 3rdparty libs 2012-09-02 21:16:57 +04:00
Andrey Kamaev 577d9cdece Fix openexr build on MinGW 2012-09-02 20:44:09 +04:00
Andrey Kamaev 941391c0be Fix openexr build with MSVC 2012-09-02 20:44:07 +04:00
Andrey Kamaev 867777f825 Added OpenEXR library v1.7.1 2012-09-02 20:44:04 +04:00
Andrey Kamaev 21a536f999 Add NDK release detection into CMake toolchain 2012-09-02 19:56:12 +04:00
Andrey Kamaev c9dbb0d314 Several small fixes in Android CMake toolchain
* fix formatting
* honor Windows-style paths
* suppress warnings inside try_compile
* correct caching of toolchain variables
2012-09-02 18:59:41 +04:00
Andrey Kamaev 3fb3851c7a Remove debug print 2012-09-01 08:42:07 +04:00
Vsevolod Glumov ce4ac2d74a Cleaned 'old_basic_structures' of undocumented parameters. 2012-08-31 19:32:07 +04:00
kir 44da71daf4 removed duplicated sample (for facedetect) 2012-08-31 18:38:42 +04:00
Andrey Kamaev f2a486c34b Fix Android samples for devices having front camera only (Nexus 7)
(cherry picked from commit 067744d071)
2012-08-31 18:29:55 +04:00
Andrey Kamaev 58baf2b455 Fix package name of Android color blob detection sample
(cherry picked from commit fc93518449)

Signed-off-by: Andrey Kamaev <andrey.kamaev@itseez.com>
2012-08-31 18:28:44 +04:00
Andrey Kamaev 11bffb0e7d Unify manifest files in Android examples
(cherry picked from commit bd12f636c8)

Signed-off-by: Andrey Kamaev <andrey.kamaev@itseez.com>
2012-08-31 18:28:38 +04:00
Andrey Kamaev ca0609dde3 Fixed java camera release in Android tutorial-0 sample
(cherry picked from commit cd59cf3ab5)

Signed-off-by: Andrey Kamaev <andrey.kamaev@itseez.com>
2012-08-31 18:28:30 +04:00
Andrey Kamaev 067744d071 Fix Android samples for devices having front camera only (Nexus 7) 2012-08-31 18:25:08 +04:00
Andrey Kamaev fc93518449 Fix package name of Android color blob detection sample 2012-08-31 17:47:12 +04:00
Andrey Kamaev bd12f636c8 Unify manifest files in Android examples 2012-08-31 17:47:12 +04:00
Alexandre Benoit 37fe2a252a updated Retina module code for more flexible parallelisation : TBB parallel for loops are replaced by opencv parallel_for_ wrapper... compile error corrected 2012-08-31 14:55:32 +02:00
Alexandre Benoit 5a6114e299 updated code for more flexible parallelisation : TBB parallel for loops are replaced by opencv parallel_for_ wrapper 2012-08-31 14:14:57 +02:00
Vadim Pisarevsky e5f9f97954 fixed build warnings on Windows 2012-08-31 14:56:28 +04:00
Vadim Pisarevsky 1686b0d9d3 Merge remote-tracking branch 'origin/master' 2012-08-31 14:56:09 +04:00
Yury Zemlyanskiy 1fde184192 Small fixes for SimpleFlow algorithm
+ Fixed warnings
+ Add new function calcOpticalFlow with smaller number of arguments
+ Add asserts to algorithm and remove 'exit(1)'
2012-08-31 14:39:59 +04:00
Yury Zemlyanskiy 784c09d6f9 Updates for SimpleFlow algorithm
+ New format for flow data - CV_32C2
+ Memory optimization
+ Cross Bilateral Filter optimization
+ Minor optimizations
+ Sample for calcOpticalFlowSF improved
2012-08-31 14:39:59 +04:00
Yury Zemlyanskiy c77d099018 "SimpleFlow" optical flow estimation algorithm (GSoC project) declaration in includes, implementation, usage example, test 2012-08-31 14:39:58 +04:00
OpenCV Buildbot 1a2bbfafba update FFMPEG wrapper binaries 2012-08-31 14:36:22 +04:00
Vadim Pisarevsky 2367a195c5 probably fixed compile error on MacOSX 10.6 2012-08-31 14:35:11 +04:00
Yury Zemlyanskiy 7ad4c25452 Small fixes for SimpleFlow algorithm
+ Fixed warnings
+ Add new function calcOpticalFlow with smaller number of arguments
+ Add asserts to algorithm and remove 'exit(1)'
2012-08-31 13:34:24 +04:00
Alexandre Benoit 2907eec670 Merge branch 'master' of git://code.opencv.org/opencv 2012-08-31 11:20:13 +02:00
Alexandre Benoit ffb3842ef1 updated retina documentation 2012-08-31 11:19:46 +02:00
niko 6f6e990988 use mutex provided by opencv itself
add getoclcontext and getoclcommandqueue so that other opencl program can interactive with opencv ocl module
correct haar test cases
add face detection sample
2012-08-31 14:08:52 +08:00
Andrey Kamaev 11e16a7204 Merge pull request #27 from sergiud/master 2012-08-30 23:16:49 +04:00
Andrey Kamaev ecd96c8b18 Fix libjasper build on 32-bit MinGW 2012-08-30 23:14:09 +04:00
Andrey Kamaev f02c1ad688 Fix MinGW warning on implicit 'exit' declaration 2012-08-30 22:51:03 +04:00
Alexandre Benoit 9f1c10e1c5 Merge branch 'master' of git://code.opencv.org/opencv 2012-08-30 16:02:48 +02:00
Alexandre Benoit 52b4b5b052 added retina module documentation 2012-08-30 16:02:04 +02:00
Vadim Pisarevsky 014106783d fixed building BRISK on Windows 2012-08-30 17:32:47 +04:00
Sergiu Dotenco 85eae7b30d win32: always link to vfw32 2012-08-30 14:52:39 +02:00
Vincent Rabaud 3ca0cc2253 add a scale invariance test for the detector 2012-08-30 16:28:39 +04:00
Vincent Rabaud 84c4797030 revert orientation computation in jeypoint detection for efficiency (like done originally) 2012-08-30 16:28:39 +04:00
Vincent Rabaud da1921b2fc add const correctness, replace __inline__ and remote a useless release() 2012-08-30 16:28:39 +04:00
Vincent Rabaud 92da6d381b add rotation tests for the descriptors 2012-08-30 16:28:39 +04:00
Vincent Rabaud b325b2f9a4 add more test to BRISK 2012-08-30 16:28:39 +04:00
Vincent Rabaud 13ded36ecb initial addition of BRISK with some tests 2012-08-30 16:28:39 +04:00
Vincent Rabaud 228070a74c split FAST in order to reuse it in BRISK 2012-08-30 16:28:38 +04:00
Vadim Pisarevsky a6e2acbfee added a few missing images for tutorials; integrated pull request #26 2012-08-30 16:23:18 +04:00
Vadim Pisarevsky 3d4ca2d709 added ios tutorials by Charu Hans and Eduard Feicho 2012-08-30 15:49:53 +04:00
Andrey Kamaev b2acf50c81 Fix build warning introduced in commit:424bc609b6f352a2b10f2a01ffcd037483e3591f 2012-08-30 13:04:34 +04:00
niko b929012583 performance fix of convertC3C4
add OCL 1.2 feature for setTo
bug fix of integral
replace the error code -217 with suitable MACRO
simplify tests, no need apply a new context for each test case
add more control for tests in utility.hpp
2012-08-30 16:14:35 +08:00
Vladislav Vinogradov 44330afc7f fixed build without CUDA 2012-08-30 10:35:32 +04:00
Vladislav Vinogradov 29cdddd845 fixed bug in buildPointList 2012-08-30 10:03:19 +04:00
Andrey Kamaev 3ae2244bd9 3rdparty libs are updated to latest available versions 2012-08-30 00:58:00 +04:00
Andrey Kamaev a881f165ec Update readme for 3rdparty libs 2012-08-30 00:56:18 +04:00
Andrey Kamaev d8015fd6ed Fix libjasper build with MSVC 2012-08-30 00:40:40 +04:00
Andrey Kamaev 6e6cfdd024 Add changelog and copyright files from debian libjasper-dev (1.900.1-13) package 2012-08-30 00:40:32 +04:00
Andrey Kamaev 70fed019ae Apply 03-CVE-2011-4516-and-CVE-2011-4517 patch from debian libjasper-dev (1.900.1-13) package 2012-08-30 00:40:29 +04:00
Andrey Kamaev c7db1c1cc8 Apply 02-fix-filename-buffer-overflow patch from debian libjasper-dev (1.900.1-13) package 2012-08-30 00:40:26 +04:00
Andrey Kamaev 4157a640ba Apply 01-misc-fixes patch from debian libjasper-dev (1.900.1-13) package 2012-08-30 00:40:23 +04:00
Andrey Kamaev d28af08ef3 Update libjpeg to release 8d 2012-08-30 00:40:18 +04:00
Andrey Kamaev 35a869f6f0 Update libtiff to release v4.0.2 2012-08-30 00:23:45 +04:00
Andrey Kamaev e9392d1466 Fix Android build with cmake 2.6.3 2012-08-30 00:23:41 +04:00
Andrey Kamaev 90a3d227c9 Enable libpng NEON optimization in Android build for armeabi-v7a with NEON target 2012-08-30 00:23:38 +04:00
Andrey Kamaev c6d1421f9b Update libpng to release v1.5.12 2012-08-30 00:23:34 +04:00
Andrey Kamaev ae4718558d Update zlib to release v1.2.7 2012-08-29 23:28:13 +04:00
Anatoly Baksheev 3456238c16 minor 2012-08-29 21:26:00 +04:00
noob fba081992d Merge branch 'master' of git://code.opencv.org/opencv 2012-08-29 18:14:07 +02:00
noob 424bc609b6 Retina module is now parallelized thanks to the TBB library. Speed increase expected on multicore plateforms 2012-08-29 17:44:21 +02:00
Anatoly Baksheev 0ba01afd83 added GPU bilateral filter + tests
added GPU non local means brute force filter + tests
2012-08-29 19:20:32 +04:00
Anatoly Baksheev a09679044e renamed device::bilaterl_filter kernel to device::disp_bilaterl_filter for correct naming
fixed some warnings
2012-08-29 19:20:32 +04:00
Andrey Kamaev 3d9018f019 Fix run.py version control detection when used outide of OpenCV build 2012-08-29 19:17:18 +04:00
OpenCV Buildbot ee2bebf5f7 update FFMPEG wrapper binaries 2012-08-29 18:59:21 +04:00
Andrey Kamaev 429e5367c4 Merge pull request #25 from sergiud/master 2012-08-29 17:54:49 +04:00
Vladislav Vinogradov 14694343cb fixed gpu PyrLKSparse perf test 2012-08-29 10:51:40 +04:00
Andrey Kamaev 0adbead654 Android toolchain: fix CCache program search 2012-08-28 20:39:10 +04:00
Andrey Kamaev cd59cf3ab5 Fixed java camera release in Android tutorial-0 sample 2012-08-28 20:37:06 +04:00
Sergiu Dotenco 6c3e769f32 eliminated type conversion warnings 2012-08-28 17:21:06 +02:00
Vsevolod Glumov 4d6730dc68 Improved javadoc comments. Minor formatting fix. 2012-08-28 18:51:46 +04:00
Vadim Pisarevsky 633a8bfacc fixed many warnings (modified pull request 13) 2012-08-28 18:15:14 +04:00
Leonid Beynenson aa2524f41e Changed the file .gitignore
(added vim swap files and tag files)
2012-08-28 17:46:45 +04:00
Leonid Beynenson 8dcf52c90b Added possibility to make subfolders in modules' folders "src/". 2012-08-28 17:44:33 +04:00
Corentin Wallez 18fc11bc04 Fix fixed-point arithmetics in FREAK::meanIntensity 2012-08-28 16:57:20 +04:00
Vsevolod Glumov dc6fa94118 Improved javadoc comments. 2012-08-28 15:49:50 +04:00
Vincent Rabaud f56432559e add conversion from/to Matx 2012-08-28 15:13:41 +04:00
Andrey Kamaev 05630b336b Updated package version in Android samples
(cherry picked from commit 47b9640785)

Signed-off-by: Andrey Kamaev <andrey.kamaev@itseez.com>
2012-08-28 15:08:23 +04:00
Andrey Kamaev 47b9640785 Updated package version in Android samples 2012-08-28 15:07:42 +04:00
Andrey Kamaev 7744b1d600 Android camera: fix logging macro part 2 2012-08-28 15:07:42 +04:00
Vsevolod Glumov 396e4517ff Improved javadoc comments. Draft. 2012-08-28 15:01:46 +04:00
marina.kolpakova a07e33609b added test for caltech images 2012-08-28 14:45:45 +04:00
Vadim Pisarevsky e2c9e7c3fb applied patches from #2311 2012-08-28 14:19:34 +04:00
Vadim Pisarevsky 0bd68a70f1 fixed #2297, #2300; fixed several warnings 2012-08-28 13:45:35 +04:00
Andrey Kamaev 95d54196db Android camera: fix logging macro 2012-08-28 13:30:11 +04:00
Andrey Kamaev d421ec26e2 Android toolchain: fixed ccache search 2012-08-28 13:26:57 +04:00
Yury Zemlyanskiy 5ee632fe90 Updates for SimpleFlow algorithm
+ New format for flow data - CV_32C2
+ Memory optimization
+ Cross Bilateral Filter optimization
+ Minor optimizations
+ Sample for calcOpticalFlowSF improved
2012-08-28 04:16:40 +04:00
Yury Zemlyanskiy cc6f1eb824 "SimpleFlow" optical flow estimation algorithm (GSoC project)
declaration in includes, implementation, usage example, test
2012-08-28 04:16:40 +04:00
Andrey Kamaev bbbe77e05e Fix Android build for mips platform 2012-08-27 20:16:54 +04:00
Andrey Kamaev c0786e9d33 Support for the gold linker (NDK r8b is required) 2012-08-27 19:45:24 +04:00
Andrey Kamaev bcf8dd510f Added CCache support to Android build
To speed up rebuilds, define the NDK_CCACHE environment or CMake variable
to the path to your ccache binary. When declared, the android.cmake.toolchain
automatically uses CCache when compiling any C/C++ source file. For example:

export NDK_CCACHE=ccache
2012-08-27 18:22:00 +04:00
Andrey Kamaev 5c01d13f38 Pass list of modules to javadoc generator
Previously the generator always uses hardcoded list of modules.
This fix replaces hardcoded list with actual set of modules coming from cmake.
2012-08-27 16:48:09 +04:00
Vsevolod Glumov c78884c780 Improved 'Operations on Arrays" section of 'Core' module documentation. 2012-08-24 19:08:18 +04:00
Anatoly Baksheev 4449efb242 minor 2012-08-24 19:01:13 +04:00
Anatoly Baksheev d3f4c9b2dc Fixed bug in BP_GPU 2012-08-24 18:38:54 +04:00
Andrey Kamaev 0948f4f863 Merge branch 'android_camera_2.4' into 2.4 2012-08-24 16:55:44 +04:00
Andrey Kamaev 4aa03d4b2b Fix/workaround bogus error in Android samples running on Android 4.1.1 2012-08-24 16:55:12 +04:00
Andrey Kamaev eaf75dbc95 Fix crash on resume in face detection sample 2012-08-24 16:55:12 +04:00
Andrey Kamaev c9d078ab00 Fix formatting in detection based tracker 2012-08-24 16:55:12 +04:00
Andrey Kamaev a4235948a7 Fix Andoid samples: black screen after resume problem 2012-08-24 16:55:12 +04:00
Andrey Kamaev d849f51023 Android camera: commented logs in frame callback 2012-08-24 16:55:12 +04:00
Andrey Kamaev 4ac2c22776 Fix buffer allocation in Android camera 2012-08-24 16:55:12 +04:00
Andrey Kamaev a21df069e0 Cherry pick Android-related changes from master till 2012-08-23
* service
* tutorials
* samples
* gitignore
2012-08-24 16:52:30 +04:00
Andrey Kamaev 42a4ed6ebf Merge branch 'android_camera' 2012-08-24 16:44:52 +04:00
Andrey Kamaev ba862ffdff Fix/workaround bogus error in Android samples running on Android 4.1.1 2012-08-24 16:24:53 +04:00
Andrey Kamaev e9e0668549 Fix crash on resume in face detection sample 2012-08-24 16:24:53 +04:00
Andrey Kamaev ce11c0d1eb Fix formatting in detection based tracker 2012-08-24 16:22:18 +04:00
Andrey Kamaev 285af48040 Fix Andoid samples: black screen after resume problem 2012-08-24 16:17:42 +04:00
Andrey Kamaev 71df8906be Android camera: commented logs in frame callback 2012-08-24 16:10:17 +04:00
Andrey Kamaev ad35f317f6 Fix buffer allocation in Android camera 2012-08-24 16:10:17 +04:00
Andrey Kamaev dd3b09441f Fix formatting in Android tutorials 2012-08-24 15:59:46 +04:00
Andrey Kamaev 62f9c0e140 Fixed layout in third Android tutorial 2012-08-24 15:59:46 +04:00
Vsevolod Glumov 3c8e151c73 Reviewed 'android_dev_intro' 2012-08-24 15:59:46 +04:00
Andrey Pavlenko 69538c3596 improving android tutorial v2 2012-08-24 15:59:45 +04:00
Andrey Pavlenko 1e25e736f0 improving android tutorial v2 2012-08-24 15:59:45 +04:00
Andrey Pavlenko efc87105a3 improving android tutorial v2, removing v1 2012-08-24 15:59:45 +04:00
Vsevolod Glumov 526efe6724 Reviewed 'android_dev_intro' and 'O4A_SDK' 2012-08-24 15:59:45 +04:00
Andrey Kamaev 8facfd4fc8 Fixed tutorial link to NVIDIA Tegra platform 2012-08-24 15:59:45 +04:00
Andrey Pavlenko 6946213ecf improving android tutorial v2 2012-08-24 15:59:45 +04:00
Oleg Sklyarov a053f611a4 ubuntu screenshot png 2012-08-24 15:59:45 +04:00
Oleg Sklyarov c24549742b Android device recognition in Ubuntu Linux manual 2012-08-24 15:59:45 +04:00
Vsevolod Glumov 5577485755 some minor fixes to the 'android_dev_intro' 2012-08-24 15:59:45 +04:00
Vsevolod Glumov 2eb1a6d9d6 added a short preface to the 'android_dev_intro' doc. 2012-08-24 15:59:44 +04:00
Andrey Pavlenko 2315d5988f android tutorial, part 1 - adding 'device connection via usb' section, sections reordering 2012-08-24 15:59:44 +04:00
Oleg Sklyarov 71f032699d android tutorial minor layout fix (also my first test commit) 2012-08-24 15:59:44 +04:00
Andrey Kamaev b29a639608 Fixed links in formatting in Android intro tutorial 2012-08-24 15:59:44 +04:00
Andrey Kamaev 5c788df83a Fix several documentation build warnings
Conflicts:
	modules/gpu/doc/video.rst
	modules/ocl/doc/ocl.rst
2012-08-24 15:59:44 +04:00
Andrey Pavlenko 9e171c9e26 android tutorial v2, initial draft commit 2012-08-24 15:59:44 +04:00
Andrey Kamaev 639bbec44a svn repository web references are replaced with links to git 2012-08-24 15:59:43 +04:00
marina.kolpakova b061d4847f minor in license file 2012-08-24 15:59:43 +04:00
Andrey Pavlenko afe8fbb018 minor update (pictures resize removed, emulator screen-shot downscaled) 2012-08-24 15:59:43 +04:00
Andrey Pavlenko 7b68271e31 minor updates to android tutorials 2012-08-24 15:59:43 +04:00
Alexander Kapustin 1b5903a719 Laplacian tegra optimized was added 2012-08-24 14:36:16 +04:00
Anatoly Baksheev 70204a8e68 Removed PtrElemStep, Marked DevMem1D as deprecated, now should use PtrStepSz now 2012-08-24 02:02:42 +04:00
Andrey Kamaev 9be63c50dd Merge branch 'norm_Matx' of git://github.com/vrabaud/opencv 2012-08-24 00:38:10 +04:00
Vladislav Vinogradov 56b7ddad09 fixed type for threshold parameter 2012-08-23 17:12:44 +04:00
Vladislav Vinogradov 8c1f9bafdc fixed gpu::integral for Kepler 2012-08-23 17:12:43 +04:00
Vladislav Vinogradov c3f277b7bc gpu version of HoughCircles 2012-08-23 17:12:43 +04:00
Anatoly Baksheev e60a50c43c removed /EHa flag for cuda compilation 2012-08-23 16:53:53 +04:00
Anatoly Baksheev 290030d030 possibility to enable /mp compiler flag from cmake
fixed MCVC warnings
2012-08-23 16:53:53 +04:00
Vincent Rabaud 1baf5209c4 fix the compile bug 2012-08-23 14:20:31 +02:00
Vsevolod Glumov 5648e49d59 Merge remote-tracking branch 'origin/master' 2012-08-23 14:58:41 +04:00
Vsevolod Glumov fc307c87dc Improved the public 'non-optimized' duplicates of 'Tegra-optimized' functions. 2012-08-23 14:56:02 +04:00
marina.kolpakova c8a54f67d4 minor warning fix 2012-08-23 13:43:42 +04:00
Anatoly Baksheev d395bf1522 minor fix in FindTBB
added texture_binder
2012-08-23 13:37:27 +04:00
Alexey Spizhevoy c8b7a8c80c added median-based version of global motion estimation (videostab) 2012-08-23 10:48:24 +04:00
Leonid Beynenson 6a5d996ca8 Removed the header opencv2/photo/denoising.hpp
All the functions from it are moved to the header
opencv2/photo/photo.hpp
2012-08-22 17:51:52 +04:00
Alexander Mordvintesv 4fb15ae1f0 Merge branch 'master' of code.opencv.org:opencv 2012-08-22 16:43:48 +03:00
Alexander Mordvintesv d9185ec21b added _doc.py -- doc-string ckecking utility
added some sample description
2012-08-22 16:42:19 +03:00
Vadim Pisarevsky bbf679267a modified facedetect to properly display very oblong objects and optionally flip image horizontally (for profile face detection). Added LBP cascades by Attila Novak for profile face detection and silverware detection (those are results of GSoC 2012) 2012-08-22 15:48:57 +04:00
Vadim Pisarevsky e95bc7d502 fixed ios camera timing (patch by Eduard Feicho) 2012-08-22 13:33:13 +04:00
Vladislav Vinogradov da5aaab277 optimized gpu::integral for Kepler 2012-08-22 12:13:34 +04:00
Ilya Lavrenov 92795ba476 parallel version of remap, resize, warpaffine, warpPerspective. Some optimization for 2x decimation in resize algorithm 2012-08-22 11:49:21 +04:00
Andrey Kamaev f2a02feffa Fix Windows build issues
* No /arch:SSE3 in MSVC
* Warnings fixed or suppressed
2012-08-22 11:21:09 +04:00
Vadim Pisarevsky 793e8b546d fixed build on Ubuntu 2012-08-21 23:11:49 +04:00
Vadim Pisarevsky 64661ea9cd added SSE2-optimized resizeAreaFast for 8-bit images by Grigoriy Frolov 2012-08-21 23:00:50 +04:00
Andrey Kamaev a840d929ac #2170 fix warning of undefined GTEST_HAS_DEATH_TEST 2012-08-21 18:59:51 +04:00
Andrey Kamaev 10dcf9ea39 Fix Java API build 2012-08-21 18:34:02 +04:00
Vadim Pisarevsky 2f1cc018c9 enabled SSE3 by default; integrated SSE3-optimized bilateral filter (by Grigoriy Frolov); modified API of non-local means (use Input/OutputArrays) 2012-08-21 17:39:40 +04:00
Leonid Beynenson 9f016da484 Merge branch 'master' of git://github.com/vpas/opencv into nonlocal_means 2012-08-21 16:07:18 +04:00
Victor Passichenko 18de45f7bc Add CV_Asserts for channels count 2012-08-21 16:05:18 +04:00
Victor Passichenko 92edd4fc6e Fix building for MS VS C++: remove allocation of arrays of dynamic size in stack 2012-08-21 15:41:51 +04:00
Vadim Pisarevsky 0d2b8f4ba1 fixed the channel ordering of rgba images (by Eduard) 2012-08-21 15:41:05 +04:00
Victor Passichenko 017ab51bf4 Fix wrong memory deallocation 2012-08-21 15:38:38 +04:00
Alexander Smorkalov 5acb80a9b1 ColorBlobDetection Sample, ImageManpulations Sample and Tutorial2 updated. Issues with native camera on Nexus 7 (Android 4.1) fixed. 2012-08-21 15:33:23 +04:00
Alexander Smorkalov 9314e3266c Debug build for Android added. Stripping of debug build turned off. 2012-08-21 15:33:19 +04:00
Alexander Smorkalov 7eb9fa14d3 Warning fix. ifdefs for 4.1.1 added. 2012-08-21 15:32:21 +04:00
Alexander Smorkalov 6bb509b44a Android 4.1.1 native camera fix. BufferQueue class is used instaed of Surface texture. Includes in cmake updated. 2012-08-21 15:31:50 +04:00
Alexander Smorkalov ca6e85f526 Tegra3 package support enabled;
Version code incremented;
2012-08-21 15:31:07 +04:00
Alexander Smorkalov 48aeaf6239 Tegra detector fixed;
Some aditional logs added;
AndroidManifest version incremented.
2012-08-21 15:30:30 +04:00
Alexander Smorkalov b1811a8bf6 HW compatibility tests added;
Arm-v7a neon package support enabled.
2012-08-21 15:29:57 +04:00
Alexander Smorkalov 44aeff04ae Package name logic improved;
Aditional tests added;
Some bug fixes with different __SUPPORT_XXX defines.
2012-08-21 15:29:11 +04:00
Alexander Smorkalov a82fc0a046 Unit tests updated. Version and HW compatiblity tests added;
Tegra3, neon, sseX, x64 support uncomment and guarded by ifdefs
2012-08-21 15:15:40 +04:00
Daniil Osokin cd062b7cc0 Add ignore for *.user files 2012-08-21 15:05:07 +04:00
Andrey Kamaev 6007bbc82d Added ignore for tbb source tarballs 2012-08-21 15:04:00 +04:00
Vadim Pisarevsky 2c7c9d0915 added gitignore to filter out certain temporary files 2012-08-21 15:03:54 +04:00
Vladislav Vinogradov 81d6400f45 fixed compilation under windows 2012-08-21 14:28:40 +04:00
Andrey Kamaev 94f7c3c592 Fixed FAST algorithm initializer 2012-08-21 01:03:52 +04:00
Andrey Kamaev 35754c0c03 Merge branch 'master' of git://github.com/vpas/opencv into nonlocal_means 2012-08-21 00:23:48 +04:00
marina.kolpakova ee0dd4d496 disabled -Wunused-but-set-variable because of multiple warnings during building nvcc auto generated files (GCC 4.6) 2012-08-20 23:35:59 +04:00
Andrey Kamaev 682dede87e #2215 Fix dependencies escaping in generated OpenCVConfig.cmake 2012-08-20 19:53:03 +04:00
Andrey Kamaev 4a1ef53deb Fixed gcc build warning 2012-08-20 19:53:03 +04:00
Vadim Pisarevsky d8b69d750d some tweaks in optimization flags for opencv2.framework 2012-08-20 19:46:52 +04:00
Vadim Pisarevsky 8efb84b5a4 added ios camera support in highgui. turned on optimization in opencv2.framework (ticket #2232) 2012-08-20 19:36:36 +04:00
Vladislav Vinogradov c26d543e1e gpu::HoughLines : minor code improvements 2012-08-20 16:03:01 +04:00
marina.kolpakova 1e4012079d removed logging from test 2012-08-20 13:26:51 +04:00
Vladislav Vinogradov 3956e42507 Merge branch 'gpu-tests' 2012-08-20 11:29:40 +04:00
Vladislav Vinogradov ec7f9566e0 minor gpu tests fix 2012-08-20 10:15:36 +04:00
Vladislav Vinogradov a0aef244d6 removed perf_gpu_cpu from CMake scripts 2012-08-20 09:58:37 +04:00
niko e7f4dd1a2e temp build fix because the new core.hpp impact on this project 2012-08-20 10:06:41 +08:00
marina.kolpakova f17f4bda60 more warning fixes for GCC 2012-08-20 03:26:53 +04:00
marina.kolpakova 1521340152 updated CascadeClassifier_GPU documentation 2012-08-20 03:25:52 +04:00
marina.kolpakova ede3781e3e fixed -Wstrict_alliasing warning for GCC 2012-08-20 02:27:54 +04:00
marina.kolpakova aeaf1a6f6d refactoring in Emulation 2012-08-20 02:26:23 +04:00
marina.kolpakova 9c13b84e35 fixed unused warnings 2012-08-20 00:06:12 +04:00
marina.kolpakova 66eb96d719 minor warning fix 2012-08-19 22:43:27 +04:00
Alexander Mordvintesv 122f59560c Merge branch 'master' of code.opencv.org:opencv 2012-08-19 20:37:10 +03:00
Alexander Mordvintesv c9f2ff4487 added texture_flow.py sample 2012-08-19 20:36:50 +03:00
Andrey Kamaev 1a621c2916 Fix build warnings 2012-08-19 19:36:43 +04:00
Andrey Kamaev 7d2b7b801a Merge branch 'sergiud_vs2012rtm_support' 2012-08-19 17:49:54 +04:00
Sergiu Dotenco ddc7bd7659 fixed compilation errors caused by std::tuple 2012-08-19 15:30:41 +02:00
Sergiu Dotenco 4993748c91 added missing includes 2012-08-19 15:25:07 +02:00
Victor Passichenko 1f42de39a3 Add non-local means denoising algorithm implementatation into photo module 2012-08-19 13:13:58 +04:00
Andrey Kamaev 8e2258c494 Fix Windows build after commit:41b6d25 2012-08-19 00:20:08 +04:00
Alexander Mordvintesv 4c15465fbb Merge branch 'master' of code.opencv.org:opencv 2012-08-18 19:43:46 +03:00
Alexander Mordvintesv a4bffd96c4 added deconvolution.py sample and example images 2012-08-18 19:43:32 +03:00
Andrey Kamaev bf4c1df0d0 Fix formatting in Android tutorials 2012-08-17 19:23:45 +04:00
Andrey Kamaev ff3aa6cbe1 Fix Android build after commit:41b6d25 2012-08-17 18:28:50 +04:00
Andrey Kamaev 9d6ccecfdd Fixed layout in third Android tutorial 2012-08-17 18:15:15 +04:00
Andrey Kamaev 915169e8b7 Fix documentation build warnings in gpu module reference 2012-08-17 18:15:15 +04:00
Vladislav Vinogradov a507d564a4 merged gpu_perf_cpu into gpu_perf 2012-08-17 17:34:58 +04:00
Vadim Pisarevsky ec8f926686 small correction for the previous patch in parallel.cpp 2012-08-17 17:34:51 +04:00
Vadim Pisarevsky 38ea339990 Merge remote-tracking branch 'origin/master' 2012-08-17 17:32:20 +04:00
Vadim Pisarevsky 41b6d25bdd added cross-platform Mutex implementation; enable platform-native (GDC/Concurrency) parallel_for_ implementation when TBB is not installed. 2012-08-17 17:32:06 +04:00
Andrey Kamaev 6da9b9f137 Android toolchain: libstdc++ and libsupc are removed from explicit link libraries
# Please enter the commit message for your changes. Lines starting
# with '#' will be kept; you may remove them yourself if you want to.
# An empty message aborts the commit.
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Changes to be committed:
#   (use "git reset HEAD^1 <file>..." to unstage)
#
#	modified:   android/android.toolchain.cmake
#
2012-08-17 16:23:57 +04:00
Vladislav Vinogradov 93172bab87 added --cpu flag (run tests on CPU) 2012-08-17 16:12:32 +04:00
Vladislav Vinogradov 00546f24e0 updated mark_nvidia.py script 2012-08-17 15:50:35 +04:00
Vladislav Vinogradov 2634dc6cce removed license comments 2012-08-17 15:22:29 +04:00
Vladislav Vinogradov 362df96cb9 renamed perf_main.cpp to main.cpp 2012-08-17 15:16:45 +04:00
Vladislav Vinogradov 6e4eb722a6 updated gpu performance tests
now it executes only on one device
added posibility to specify device on which tests will be executed
2012-08-17 15:14:14 +04:00
niko 2e685dcf0a performance & bug fix for resize erode dilate sobel remap 2012-08-17 15:47:02 +08:00
Alexander Smorkalov a1d8091e10 ColorBlobDetection Sample, ImageManpulations Sample and Tutorial2 updated. Issues with native camera on Nexus 7 (Android 4.1) fixed. 2012-08-16 16:52:53 +04:00
bitwangyaoyao a091f9e4e2 bug fix of "squares" sample for ocl module 2012-08-16 20:34:24 +08:00
Vladislav Vinogradov ddca47040b updated gpu accuracy tests
added posibility to specify device on which tests will be executed
2012-08-16 16:23:27 +04:00
Vladislav Vinogradov cfdeb50335 updated mark_nvidia.py script 2012-08-16 12:54:00 +04:00
yao d363d5589c add an "squares" sample for ocl module 2012-08-16 16:01:40 +08:00
Vladislav Vinogradov 19462c871d Forbid incorrect patchSize values in gpu::ORB 2012-08-15 17:24:53 +04:00
Vladislav Vinogradov 528ddb5647 fixed block size for old CC 2012-08-15 17:24:53 +04:00
Andrey Kamaev 65f8585630 #2229 Fix FREAK build on CentOS 2012-08-15 17:23:07 +04:00
Andrey Kamaev 859ee6087c #2216 Forbid incorrect patchSize values in ORB 2012-08-15 16:54:40 +04:00
Andrey Kamaev b0927397e9 #2225 Rename getConvertData to getConvertElem to match the headers and documentation 2012-08-15 15:34:33 +04:00
Vsevolod Glumov e578259a34 Merge remote-tracking branch 'origin/master' 2012-08-15 15:12:48 +04:00
Vsevolod Glumov 8899835886 Reviewed 'android_dev_intro' 2012-08-15 15:10:58 +04:00
Vladislav Vinogradov a9fba14898 added docs for gpu::HoughLines 2012-08-15 15:07:30 +04:00
Vladislav Vinogradov 97731c152d fixed typo 2012-08-15 15:07:29 +04:00
Vladislav Vinogradov db79022b85 fixed shared memory size for linesAccumShared 2012-08-15 15:07:29 +04:00
Andrey Kamaev 36fe62d7a5 #2245 Fix BFMatcher::radiusMatchImpl witch Hamming distance (thanks to Jukka Holappa) 2012-08-15 15:02:20 +04:00
Vladislav Vinogradov 456890e9e4 fixed warning C4512 2012-08-15 13:48:28 +04:00
Vladislav Vinogradov 647d4ae1f1 Merge branch 'hough-lines-gpu' 2012-08-15 13:24:46 +04:00
Vladislav Vinogradov 7928cec670 added linesAccumGlobal kernel 2012-08-15 13:18:35 +04:00
Andrey Pavlenko 3b07e977a9 improving android tutorial v2 2012-08-15 12:21:58 +04:00
Andrey Pavlenko 6e07a1346c improving android tutorial v2 2012-08-15 11:47:48 +04:00
Vsevolod Glumov a4392e4906 Merge remote-tracking branch 'origin/master' 2012-08-15 11:39:54 +04:00
Vsevolod Glumov 5825c60491 Reviewed 'android_dev_intro' and 'O4A_SDK' 2012-08-15 11:39:02 +04:00
Andrey Pavlenko c004df234f improving android tutorial v2, removing v1 2012-08-15 10:56:50 +04:00
Vladislav Vinogradov 7ae94c571c fixed build without cuda 2012-08-14 17:54:42 +04:00
Vladislav Vinogradov 34b9bd61a2 fixed failure 2012-08-14 17:42:15 +04:00
Andrey Kamaev d861063159 Fixed tutorial link to NVIDIA Tegra platform 2012-08-14 17:26:00 +04:00
Andrey Pavlenko 37740fa30e improving android tutorial v2 2012-08-14 17:18:24 +04:00
Maria Dimashova d973d571a4 changed the value that replace NaNs in bilateralFilter_32f 2012-08-14 17:15:03 +04:00
Vladislav Vinogradov c3fa7974e6 new optimized version 2012-08-14 17:00:57 +04:00
Daniil Osokin f1d41d8b94 disabled whole perf test for distance transform 2012-08-14 13:01:52 +04:00
Vladislav Vinogradov 9201db32eb fixed overflow bugs, updated perf tests 2012-08-14 12:33:47 +04:00
Daniil Osokin 2b53d2e6a4 Merge branch 'master' of code.opencv.org:opencv 2012-08-14 12:17:44 +04:00
Daniil Osokin f4d4b0d742 disabled perf test on distance transform 2012-08-14 12:13:42 +04:00
Daniil Osokin f66ac31d62 Merge branch 'branch1' 2012-08-14 12:10:45 +04:00
Alexander Smorkalov 14fa645026 Debug build for Android added. Stripping of debug build turned off. 2012-08-14 12:03:05 +04:00
Vladislav Vinogradov 1eefc69927 added accuracy and performance tests 2012-08-14 11:36:32 +04:00
Vadim Pisarevsky 70bb857c7e Merge remote-tracking branch 'origin/master' 2012-08-13 21:22:17 +04:00
Vadim Pisarevsky ff90c3eba6 possibly fixes #2242 and #2257 2012-08-13 21:22:06 +04:00
Andrey Kamaev d525362cd5 Fixed 2 new Android build warnings 2012-08-13 19:24:31 +04:00
Vladislav Vinogradov 3703722a72 first naive version 2012-08-13 17:44:46 +04:00
Vladislav Vinogradov 941897aa3d fixed build errors in bgfg_gmg 2012-08-13 17:00:21 +04:00
Vsevolod Glumov 2a1e8e3efd Merge remote-tracking branch 'origin/master' 2012-08-13 16:29:08 +04:00
Vsevolod Glumov 27212fdafe some minor fixes to the 'android_dev_intro' 2012-08-13 16:29:00 +04:00
Oleg Sklyarov 85351389f4 ubuntu screenshot png 2012-08-13 16:03:01 +04:00
Oleg Sklyarov 3b70fc6d32 Android device recognition in Ubuntu Linux manual 2012-08-13 16:00:58 +04:00
Alexey Spizhevoy 7992203598 Fixed CMakeLists.txt 2012-08-13 14:44:41 +04:00
Alexey Spizhevoy 27eb5d07cf Added getScale/setScale for image warpers (stitching module) 2012-08-13 14:39:47 +04:00
Vsevolod Glumov 87737c20c1 added a short preface to the 'android_dev_intro' doc. 2012-08-13 13:13:07 +04:00
Vladislav Vinogradov 4dbc7600e7 added support of all types to BackgroundSubtractorGMG 2012-08-13 10:28:42 +04:00
Philipp Wagner 9c75ff43ba Bug #2257: Adding a quick workaround for truncated labels on 64bit machines in the Python FaceRecognizer wrapper code. This is only a temporary bugfix, that will be fixed at a better point as soon as possible. 2012-08-11 22:36:35 +02:00
bitwangyaoyao fa78459c56 fix ocl/match_template compiling error on Linux 2012-08-11 13:10:43 +08:00
Daniil Osokin 6bc060fddb Add ignore for *.user files 2012-08-10 17:37:52 +04:00
Daniil Osokin 45c49a9088 Added perf test 2012-08-10 17:37:48 +04:00
Daniil Osokin 0609f4e9b4 Added blur16x16 perf test 2012-08-10 17:36:45 +04:00
Daniil Osokin b97b48ecb6 Added perf tests for histogram 2012-08-10 17:36:45 +04:00
Daniil Osokin 0b54739822 Added perf test for distanceTransform 2012-08-10 17:36:45 +04:00
Daniil Osokin 7a2eb514fa Added color YUV422 perf test 2012-08-10 17:36:39 +04:00
Daniil Osokin e37b9469da Added perf tests 2012-08-10 17:17:09 +04:00
Daniil Osokin cfd80152bb test 2012-08-10 17:08:27 +04:00
Daniil Osokin 39d6adea17 Added perf test 2012-08-10 16:39:36 +04:00
Daniil Osokin 4fdff6347f Added blur16x16 perf test 2012-08-10 15:45:18 +04:00
Daniil Osokin 136dff5fe4 Added perf tests for histogram 2012-08-10 15:43:03 +04:00
marina.kolpakova c3ae08a13d fixed typo in enum 2012-08-10 15:39:45 +04:00
Daniil Osokin 9a408c744d Added perf test for distanceTransform 2012-08-10 15:33:19 +04:00
Daniil Osokin bbc8605530 Added color YUV422 perf test 2012-08-10 15:32:15 +04:00
Daniil Osokin 8f6a2438a7 Added perf test for remap 2012-08-10 15:04:04 +04:00
marina.kolpakova 575078502f fixed perfomance test for CCL 2012-08-10 15:01:16 +04:00
Evgeny Talanin 19313923cc Use github pat to get data for in python tests (files from code.opencv.org are received truncated sometimes) 2012-08-10 14:09:58 +04:00
Vladislav Vinogradov 7ff04a65f1 fixed build for old compute capabilities 2012-08-10 10:03:35 +04:00
yao fa5113f303 add Canny to ocl module 2012-08-10 11:59:47 +08:00
Philipp Wagner 6161a3335c Removed writing the test.png, wasn't meant to be commited. 2012-08-09 23:52:09 +02:00
Philipp Wagner 45e44442ad Merge branch 'master' of git://code.opencv.org/opencv 2012-08-09 23:05:07 +02:00
Andrey Pavlenko a682ee40ad android tutorial, part 1 - adding 'device connection via usb' section, sections reordering 2012-08-09 22:57:06 +04:00
marina.kolpakova 40c76b9de2 1.x related fixes 2012-08-09 18:48:25 +04:00
Oleg Sklyarov 3f68e5bb0e android tutorial minor layout fix (also my first test commit) 2012-08-09 18:21:56 +04:00
Vladislav Vinogradov 79ef454c5f Merge branch 'bgfg-gmg-optimized' into bgfg-gmg-merged 2012-08-09 14:55:36 +04:00
Vladislav Vinogradov 827fa850f6 Merge branch 'bgfg-gmg-gpu' into bgfg-gmg-merged 2012-08-09 14:48:26 +04:00
Vladislav Vinogradov 1ecf491373 added updateBackgroundModel parameter 2012-08-09 14:46:27 +04:00
Vladislav Vinogradov bfd9e6102a added updateBackgroundModel parameter and release method 2012-08-09 14:37:08 +04:00
Vladislav Vinogradov 7f3296566c added performance tests 2012-08-09 14:14:13 +04:00
Vladislav Vinogradov 77cae11a74 added docs for GMG_GPU 2012-08-09 13:28:28 +04:00
Vladislav Vinogradov ace7e9d842 added release method to GMG_GPU 2012-08-09 13:13:04 +04:00
Vladislav Vinogradov beb3e6ff18 added GMG_GPU to bgfg_segm sample 2012-08-09 12:59:18 +04:00
marina.kolpakova 634c9dae46 added performance test fot CCL 2012-08-09 12:42:27 +04:00
Vladislav Vinogradov 55f8310cac fixed number of training mode operation 2012-08-09 12:37:35 +04:00
Vladislav Vinogradov f7f1fb2bd7 added tests for VIBE_GPU and GMG_GPU 2012-08-09 12:30:55 +04:00
Vladislav Vinogradov da38a95de6 fixed number of update operation 2012-08-09 12:28:30 +04:00
Vladislav Vinogradov 9ec96597cd gpu version of GMG Background Subtractor 2012-08-09 11:31:08 +04:00
Vladislav Vinogradov 9b16563f44 fixed build warnings 2012-08-09 11:05:27 +04:00
Vladislav Vinogradov fb5f366459 made BackgroundSubtractorGMG's parameters public 2012-08-09 10:23:24 +04:00
Andrey Kamaev 0ceb9b6a00 Fixed division by zero case in SphericalProjector::mapForward 2012-08-08 20:57:12 +04:00
Vladislav Vinogradov 42c1d4f4b1 new optimized version of BackgroundSubtractorGMG 2012-08-08 18:15:06 +04:00
Andrey Kamaev 017abbd963 Lowered acceptance threshold in Features2d_RotationInvariance_Detector_ORB.regression test 2012-08-08 17:15:46 +04:00
Andrey Pavlenko c42c3ebc9c duplicating cv::error() message to Android logcat 2012-08-08 16:45:29 +04:00
Andrey Pavlenko 1995b1a06c duplicating cv::error() message to Android logcat 2012-08-08 16:39:24 +04:00
Andrey Kamaev 73f720d470 Fixed links in formatting in Android intro tutorial 2012-08-08 16:28:12 +04:00
marina.kolpakova 5084511fff reserved flags parameter for future usage 2012-08-08 15:51:56 +04:00
marina.kolpakova 3e8c35a347 added perf. test for GFF 2012-08-08 15:17:26 +04:00
marina.kolpakova cbfee83b06 test: GFF same as cpu greedy implementation 2012-08-08 14:48:06 +04:00
marina.kolpakova 490622231a refactored test code 2012-08-08 14:48:06 +04:00
Vladislav Vinogradov c5e92c31ba fixed Bug #2252
error in the tutorial Similarity check (PNSR and SSIM) on the GPU
2012-08-08 14:38:14 +04:00
yao 0f4bdcd708 Merge branch 'master' of git://code.opencv.org/opencv 2012-08-08 17:13:30 +08:00
yao 2fed1fcbff add an ocl sample 2012-08-08 17:12:53 +08:00
niko 37ca6d378b add performance test code for ocl module 2012-08-08 17:09:29 +08:00
yao 64e9cf5d75 add SURF and HOG to ocl module 2012-08-08 15:55:39 +08:00
Alexander Mordvintesv a2df490914 added CV_IN_OUT to img argument of drawing functions 2012-08-08 11:18:52 +03:00
Alexey Spizhevoy 8c3984c5ff Refactored the DP based seam finder 2012-08-07 23:55:06 +04:00
Alexander Mordvintesv 7db1f711f6 Merge branch 'master' of code.opencv.org:opencv
Conflicts:
	samples/python2/common.py
	samples/python2/feature_homography.py
	samples/python2/plane_ar.py
	samples/python2/plane_tracker.py
2012-08-07 23:21:56 +03:00
Alexander Mordvintesv 647b1dd96c comment fixed 2012-08-07 23:19:13 +03:00
Alexander Mordvintesv a29be81d77 typo fix in features_homography.py 2012-08-07 21:37:46 +03:00
Alexander Mordvintesv 0998669d26 Revert "fixed LshIndex types in its constructor"
This reverts commit 54d68da8e7.
2012-08-07 21:37:19 +03:00
Alexander Mordvintesv 0adf68ae62 work on #2100: pyopencv_to functions now can receive argument information through ArgInfo structure. Non-contiguous input numpy arrays are copied. In case of non-contiguous output array the TypeError is thrown. 2012-08-07 21:03:17 +03:00
Vadim Pisarevsky e2eb81bcb2 Merge remote-tracking branch 'origin/master' 2012-08-07 18:17:49 +04:00
marina.kolpakova fc8c65ff15 HAVE_CUDA macro 2012-08-07 18:23:18 +04:00
marina.kolpakova 8e274c886c Greedy Labeling implementation in correctness test 2012-08-07 18:23:18 +04:00
marina.kolpakova e8e7b94443 test fix 2012-08-07 18:23:18 +04:00
Vadim Pisarevsky 36d3bbff8b added description of FAST 5/8 and FAST 7/12 (by Vincent) 2012-08-07 18:17:30 +04:00
Vadim Pisarevsky bcb499328d Merge remote-tracking branch 'origin/master' 2012-08-07 18:00:10 +04:00
Andrey Kamaev 8aa2d6cddc Fix several documentation build warnings 2012-08-07 18:00:09 +04:00
Vadim Pisarevsky 4b5f948307 added SSE2-optimized 3x3 invert by Grigoriy Frolov 2012-08-07 17:59:52 +04:00
Andrey Pavlenko c1571e21ff android tutorial v2, initial draft commit 2012-08-07 17:27:48 +04:00
alexey.spizhevoy 43d46c0e8b Minor fix in the DP based seam estimator 2012-08-07 16:24:21 +04:00
alexey.spizhevoy 7222f2724f Fixed bug 2012-08-07 16:24:21 +04:00
alexey.spizhevoy 85d1c463b9 Minor changes 2012-08-07 16:24:21 +04:00
alexey.spizhevoy 897c2bbd14 Added support of 8UC3 2012-08-07 16:24:21 +04:00
alexey.spizhevoy a39bce204d implemented DP-based seam estimation method 2012-08-07 16:24:21 +04:00
Vladislav Vinogradov cd58b7e154 Merge branch 'master' of code.opencv.org:opencv 2012-08-07 16:09:04 +04:00
Vladislav Vinogradov 76d46e20de fixed build with CUDA 4.2 2012-08-07 16:08:22 +04:00
Andrey Kamaev ce9b97c78c Fixed number of svn->git migration issues 2012-08-07 14:32:57 +04:00
Andrey Kamaev 5100ca7508 svn repository web references are replaced with links to git 2012-08-07 14:30:36 +04:00
Andrey Kamaev a3527fc4d8 Add git support to run.py 2012-08-07 14:30:36 +04:00
Andrey Kamaev bd33e166d0 Use git hash instead of svn version in cmake status report 2012-08-07 14:30:36 +04:00
Andrey Kamaev 1852cb7eab Fix tegra build warnings 2012-08-07 14:29:51 +04:00
Vladislav Vinogradov 8624d18ca5 new implementation of gpu debayer
* without border extrapolation
* with aligned write
* process 4 pixels per thread in 8u case
2012-08-07 13:34:11 +04:00
Vladislav Vinogradov 5ce896d9ee added perf tests for new gpu::cvtColor functions 2012-08-07 13:34:11 +04:00
Vladislav Vinogradov b0461db43f added missed device synchronization 2012-08-07 13:34:11 +04:00
Vladislav Vinogradov 7b025474e2 added debayer to gpu::cvtColor 2012-08-07 13:34:11 +04:00
marina.kolpakova c0d3adef25 intervales for vector type support 2012-08-07 13:22:41 +04:00
marina.kolpakova 0bf10c9a47 added connectivityMask calculation function 2012-08-07 13:22:41 +04:00
marina.kolpakova a9764dd910 fixed not defined macro warningds 2012-08-07 13:22:41 +04:00
marina.kolpakova 51433a9331 C.C. Labeling: added stream support 2012-08-07 13:22:41 +04:00
marina.kolpakova 350621057f connected components labeling 2012-08-07 13:22:41 +04:00
marina.kolpakova 2c8d11071c minor in license file 2012-08-07 13:22:41 +04:00
Vadim Pisarevsky 0d5c694ec4 Merge remote-tracking branch 'origin/master' 2012-08-07 12:54:22 +04:00
yao c03ac12fcd Add dft and gemm to ocl module, using AMD's clAmdFft and clAmdBlas libraries 2012-08-07 16:33:46 +08:00
yao 7741d585f5 Merge branch 'master' of git://code.opencv.org/opencv 2012-08-07 08:37:38 +08:00
Andrey Kamaev 50d13ba5c4 Fixed xml name generation in run.py 2012-08-06 19:10:55 +04:00
Andrey Kamaev 9981b283a6 Fixed build warnings (including error in FAST) 2012-08-06 19:10:55 +04:00
Andrey Kamaev fdc48abd18 Added ignore for tbb source tarballs 2012-08-06 19:10:55 +04:00
Andrey Kamaev bc227ab075 Intermediate files generated by Android toolchain are moved into CMakeFiles subfolder 2012-08-06 19:10:55 +04:00
Alexander Mordvintesv a717b7cbed Merge branch 'master' of code.opencv.org:opencv 2012-08-06 17:17:13 +03:00
Vadim Pisarevsky 2013118971 new/improved Python samples by Alexander Mordvintsev 2012-08-06 16:35:35 +04:00
yao 7d97e8112a fix bugs in tests, set device for each test case
Signed-off-by: yao <bitwangyaoyao@gmail.com>
2012-08-06 15:51:27 +08:00
yao 505cda43d1 Merge branch 'master' of git://code.opencv.org/opencv 2012-08-06 15:01:21 +08:00
yao 0db69fbe19 Add blend, columnsum, pyrUp/down, matchTemplate for ocl module 2012-08-06 15:00:27 +08:00
Philipp Wagner 9db42aca04 Issue #2232: Bugfixes for 64bit Python-compability. 2012-08-06 01:37:43 +02:00
Philipp Wagner 2c2d6fa5fd Issue #2231: Attempt to fix segfault, when copying labels. LDA needed to be updated to generate the Wrapper correctly. 2012-08-06 01:14:51 +02:00
Alexander Mordvintesv d9dc02541a Added descriptions to PlaneTracker samples 2012-08-05 10:20:42 +03:00
Alexander Mordvintesv 353c69e017 created PlaneTracker (int plane_tracker.py), which implements multitarget planar tracking
rewritten feature_homography.py using it
added plane_ar.py - simple augmented reality sample
2012-08-03 22:17:11 +03:00
Alexander Mordvintesv 2ea3dd391a Merge branch 'master' of code.opencv.org:opencv 2012-08-03 19:21:10 +03:00
Evgeny Talanin 064d022a4b Set correct path to repo in python tests (changed after migration to git) 2012-08-03 17:50:55 +04:00
Vadim Pisarevsky 9c0f556d88 fixed a few compile warnings and errors with VS2010. 2012-08-03 17:12:45 +04:00
andrey.kamaev 5b4297cccf Android CMake toolchain is updated for NDK r8b 2012-08-03 17:00:46 +04:00
Vadim Pisarevsky 310b1ad7b9 moved parallel_for_ and ParallelLoopBody to core.hpp 2012-08-03 16:41:00 +04:00
Vadim Pisarevsky fd9069422a Merge remote-tracking branch 'origin/master' 2012-08-03 16:14:38 +04:00
yao 687d7639a8 Merge branch 'master' of git://code.opencv.org/opencv 2012-08-03 15:44:15 +08:00
niko 3180bbe3a8 Merge branch 'master' of git://code.opencv.org/opencv 2012-08-03 14:09:04 +08:00
niko 8eeacc8cc8 performance and bug fix for addWeighted cartToPolar div exp log resize setTo
add channel 3 support
add fast way Between CPU and GPU for the data which is aligned
2012-08-03 14:08:36 +08:00
Ilya Lavrenov 27c2aa3a4e parallel version of bilateral filter was implemented using parallel_for_ 2012-08-02 16:25:30 +04:00
marina.kolpakova 8d73bbb8b7 fixed 2228 2012-08-02 13:18:55 +04:00
yao 1eedcea58d for test
Signed-off-by: yao <bitwangyaoyao@gmail.com>
2012-08-02 11:34:11 +08:00
Alexander Mordvintesv ffa8c32348 work on feature_homography.py: multiple targets 2012-08-01 21:41:03 +03:00
Philipp Wagner 989631c5cc facerec.cpp: Removed Original LBP wrapper, because it is not in use and therefore generates a warning. 2012-07-31 21:54:48 +02:00
Philipp Wagner 4a4f90c406 facerec.cpp: Added an exception to the LBP extraction, so now a meaningful exception is thrown if the wrong image type was given. Thanks to Eric Christiansen for reporting. 2012-07-31 21:50:46 +02:00
Vadim Pisarevsky fac3d9994c integrated another portion of SSE optimizations from Grigory Frolov 2012-07-31 19:07:55 +04:00
Vadim Pisarevsky 5f2ce22fbf Merge remote-tracking branch 'origin/master' 2012-07-31 17:18:35 +04:00
Vadim Pisarevsky 640408ebe7 added FAST<5/8> & FAST<7/12> (by Vincent Rabaud) 2012-07-31 17:17:58 +04:00
Andrey Pavlenko 73f95e59f3 Tegra3 package support enabled; Service version code incremented.
Android 4.1.1 native camera fix (shared libraries for native Android camera updated).
2012-07-31 15:22:58 +04:00
Alexander Smorkalov d0608c2cd4 Shared libraries for native Android camera updated. 2012-07-31 13:20:36 +04:00
Alexander Smorkalov f1e3bc850b Warning fix. ifdefs for 4.1.1 added. 2012-07-31 13:20:36 +04:00
Alexander Smorkalov 7d63f9f680 Android 4.1.1 native camera fix. BufferQueue class is used instaed of Surface texture. Includes in cmake updated. 2012-07-31 13:20:36 +04:00
Vladislav Vinogradov b43cec3301 added gpu::graphcut for float sources (CUDA 5.0) 2012-07-31 12:46:04 +04:00
Vladislav Vinogradov 4f99f69a29 added gpu alpha premultiplication 2012-07-31 12:46:04 +04:00
Vladislav Vinogradov 79d0dc25f4 added gpu RGB<->Lab and BGR<->Luv conversions 2012-07-31 12:46:04 +04:00
Vladislav Vinogradov 051adcb786 added gpu BGR<->Lab and RGB<->Luv color conversion and gammaCorrection 2012-07-31 12:46:04 +04:00
Andrey Pavlenko 484e83a9b6 minor update (pictures resize removed, emulator screen-shot downscaled) 2012-07-31 12:31:23 +04:00
Philipp Wagner 40e65b9603 facerec_demo.py: Updated contact mail address. 2012-07-30 19:31:49 +02:00
Philipp Wagner 62a8f6783e FaceRecognizer supports updating a model now. Documentation has been updated to reflect latest changes. 2012-07-30 19:31:10 +02:00
Vadim Pisarevsky b9d7c712f5 made countNonZero SSE code SSE2-compliant and portable 2012-07-30 16:02:49 +04:00
Alexander Mordvintsev 72a4f1924d feature_homography.py:
building descriptor index on target capture
simple AR experiment (work in progress)
2012-07-30 12:39:41 +04:00
Andrey Pavlenko dea7f92c86 updating URL to Android info start page 2012-07-30 10:39:59 +04:00
Andrey Pavlenko e2b9c65b35 updating README content 2012-07-30 10:36:23 +04:00
niko cf04fed369 fix the compilation bugs 2012-07-30 14:34:36 +08:00
Philipp Wagner c0a4105467 facerec_demo.py: Shortened code. Final version. 2012-07-30 02:24:39 +02:00
Philipp Wagner 4a7e29b3f4 facerec_demo.py: Reworked demo to remove all matplotlib dependencies. 2012-07-30 02:18:27 +02:00
Philipp Wagner 508a029dae Moved the facerec_demo.py to the wrong directory. Now moved to the python2 folder. 2012-07-30 01:18:58 +02:00
Philipp Wagner 1454f3d391 Added the facerec_demo.py to show how to perform Face Recognition with the Python module. 2012-07-30 01:16:38 +02:00
Philipp Wagner f29d73fe86 Updated the train method to be an InputArrayOfArrays, so the Python wrapper now generates the correct code (and it works). 2012-07-29 23:51:12 +02:00
Philipp Wagner b2deab2175 Updated the documentation to (1) reflect the latest changes and (2) answer some questions I were asked. 2012-07-29 23:16:51 +02:00
Philipp Wagner 5983f8008f Fixed facerec_eigenfaces.cpp demo sample: it contained hardcoded values, which made wrong element access possible. Fixed unsigned integer/signed integer warnings in facerec.cpp. 2012-07-29 22:41:40 +02:00
Philipp Wagner f160c49473 Merge branch 'master' of git://code.opencv.org/opencv 2012-07-29 22:20:48 +02:00
Philipp Wagner 79b45b1392 Bug #2214: Fixed bug, when calling the train method multiple times. The Eigenfaces and Fisherfaces method now re-estimate the model, the LBPH method appends the new data to the existing model. 2012-07-29 22:20:07 +02:00
Josh Doe f1690557bf core/stat: fix build with 32-bit
Optimization introduced in b782d8bb only works for 64-bit builds, but
ifdef failed to check for this.
2012-07-29 14:48:21 -04:00
Alexander Mordvintesv f8facadc67 print description in mosse.py 2012-07-29 17:24:47 +03:00
Alexander Mordvintesv f6191cc5bb added MOSSE sample 2012-07-29 17:21:49 +03:00
Alexander Mordvintesv 0f9bbf85e5 spelling corrections, added aero images as a more impressive example for
ASIFT
2012-07-29 16:26:22 +03:00
Alexander Mordvintesv 88a9f8f919 spelling corrections, added aero images as a more impressive example for
ASIFT
2012-07-29 16:15:44 +03:00
marina.kolpakova 22673c161a fixed 2212 2012-07-28 13:05:40 +04:00
marina.kolpakova 4869e846f3 partly merged with sbromle/opencv fixes branch 2012-07-27 13:09:53 +04:00
Eric Christiansen f08996bd37 asserted in LBPH code that images must have a single channel 2012-07-26 16:55:54 -07:00
Sam Bromley 8506ce06c1 Fix missing remainder of line. 2012-07-26 12:46:51 -02:30
Sam Bromley fd98520d78 Protect check of CV_SSE4_2 with #if defined. 2012-07-26 12:43:56 -02:30
OpenCV Buildbot 8f41f592d7 update FFMPEG wrapper binaries 2012-07-26 19:11:14 +04:00
Sam Bromley 966a652142 Fix crash when polling for non-existent Kinects.
If no Kinects are present, crash can result from
stepping beyond end of device list. Now we check
to ensure this does not happen.
2012-07-26 12:36:21 -02:30
Sam Bromley 49b55a7245 Protect check for _MSC_VER with #if defined. 2012-07-26 12:35:21 -02:30
Vadim Pisarevsky 318151d75b added gitignore to filter out certain temporary files 2012-07-26 17:11:00 +04:00
Anatoly Baksheev acd19fe36c test7 2012-07-25 22:20:41 +04:00
Andrey Pavlenko de90033e93 test 2012-07-25 18:26:07 +04:00
Anatoly Baksheev 29fee9cab3 test2 2012-07-25 18:11:07 +04:00
Anatoly Baksheev 2b0c0e71bb test 2012-07-25 18:05:39 +04:00
Maria Dimashova a39cf2dd28 updated doc on triangulatePoints (#2167) 2012-07-25 17:51:37 +04:00
marina.kolpakova e1e0c46639 integrated patch: HOG confidence calculation. Thanks, Wongun. 2012-07-25 15:26:26 +04:00
marina.kolpakova 4fa282e1a9 fixed SURf according to clockwise descriptor convention 2012-07-25 13:08:05 +04:00
marina.kolpakova afc0cf8c4e fixed surf for upright case 2012-07-25 12:21:35 +04:00
marina.kolpakova fdfa402428 fixed surf for upright case 2012-07-25 12:19:08 +04:00
marina.kolpakova cf92e4b4e0 Merge branch 'master' of git://5.9.49.245/opencv 2012-07-25 08:33:51 +04:00
marina.kolpakova 51f7a3ca81 fixed #2190 2012-07-25 08:32:14 +04:00
Andrey Pavlenko 794b07ba11 removing unused files 2012-07-24 23:58:52 +04:00
Andrey Pavlenko e16ae33a17 removing unused file 2012-07-24 23:55:14 +04:00
Andrey Pavlenko e1c7bcab3a minor updates to android tutorials 2012-07-24 19:04:38 +04:00
Maria Dimashova 6b7470f683 fixed gcc compilation 2012-07-24 18:25:46 +04:00
Andrey Pavlenko 39554ead21 updating README content 2012-07-24 17:59:55 +04:00
Maria Dimashova c5dbc06158 fixed bilateralFilter on uniform CV_32F image 2012-07-24 17:51:20 +04:00
Vadim Pisarevsky b782d8bb53 integrated patch with some SSE2/SSE4.2 optimizations from Grigory Frolov 2012-07-24 17:24:31 +04:00
Maria Dimashova 54d68da8e7 fixed LshIndex types in its constructor 2012-07-24 17:09:24 +04:00
Anatoly Baksheev 1efb3c8235 test 2012-07-24 14:13:43 +04:00
marina.kolpakova 1b7ad93dc9 LBP features integrated in CascadeClassifier_GPU 2012-07-24 13:51:35 +04:00
marina.kolpakova 2dc93574e1 LBP: switched to PImpl pattern 2012-07-24 13:41:19 +04:00
marina.kolpakova 6c3eeb7d7c removed division 2012-07-24 13:35:04 +04:00
marina.kolpakova 8fb1f4093b removed unused code 2012-07-24 13:26:53 +04:00
Maria Dimashova 29f86df585 merged with r9002 (fix for SURF descriptor) 2012-07-17 14:24:54 +00:00
Marina Kolpakova e63ab8dec5 LBP: multiscale approach; refactored atomics usage 2012-07-17 08:27:34 +00:00
Niko Li 5dc7752d54 fix a bug of detect opencl 2012-07-17 06:49:32 +00:00
Vadim Pisarevsky 9f4efab40a merged ocl module from ocl branch (it's not quite usable yet; at least on Mac) 2012-07-16 17:08:14 +00:00
Maria Dimashova cfeb28f2ba fixed tests for scale invariance (uncommented sift test, it's ok now) 2012-07-16 16:21:40 +00:00
Alexander Mordvintsev ea96047f78 small doc fix 2012-07-16 14:17:39 +00:00
Alexander Mordvintsev 200357fdf4 window name changed 2012-07-16 14:16:36 +00:00
Maria Dimashova 2556bb04f0 changed tests for rotation/scale invariance of descriptors 2012-07-16 13:01:55 +00:00
Alexander Mordvintsev ad7a6ec41f correct unknown feature report in find_obj.py 2012-07-16 12:31:56 +00:00
Alexander Mordvintsev 3ce5b01543 added asift.py sample 2012-07-16 12:29:49 +00:00
Alexander Mordvintsev 99e404fe86 moving data used by sample into a separate folder
small fix in find_obj.py
2012-07-16 11:46:05 +00:00
Alexander Mordvintsev 8610ff1b4d find_obj.py allows to select detector and matcher and explore matching pairs 2012-07-16 11:31:43 +00:00
Maria Dimashova 63d8eedc51 changed the way of HARRIS creation 2012-07-16 09:26:02 +00:00
Maria Dimashova 839761fa3d fixed #2167 2012-07-16 09:00:25 +00:00
Maria Dimashova 5112d74cad revert my incorrect fix of #2167 2012-07-16 08:02:50 +00:00
Alexander Smorkalov ddcc839519 Tegra3 package support enabled;
Version code incremented;
2012-07-16 07:56:12 +00:00
Maria Dimashova d65920d2f7 fixed #2167 2012-07-15 19:10:52 +00:00
Maria Dimashova ec23d9bb5e added tests on scale invariance of detectors and descriptors 2012-07-15 17:42:41 +00:00
Andrey Pavlenko 9f4c5afbbb merging r9039-9040,9044 from trunk (warnings and message in Java) 2012-07-15 13:20:38 +00:00
Andrey Pavlenko dc68a56bab fixing wording 2012-07-15 05:51:29 +00:00
Marina Kolpakova 336dcbcff7 fixed brocken tests by classifier loger from r9027 2012-07-15 04:11:46 +00:00
Maria Dimashova e4e00498a8 fixed typo in test class names 2012-07-14 20:32:31 +00:00
Maria Dimashova 0c6480d89b added tests to check rotation invariance of descriptors (features2d and nonfree) 2012-07-14 20:03:07 +00:00
Andrey Pavlenko 92e6aa5f17 customizing the 'Google Market error' message in samples 2012-07-14 19:49:00 +00:00
Andrey Pavlenko 4e4db94b6b removing warnings on deprecated api when targeting to android-15+ 2012-07-14 19:07:27 +00:00
Anatoly Baksheev a2430afcac minor LBP for GPU 2012-07-14 16:23:56 +00:00
Maria Dimashova 5120d690f0 fixed nonfree rotation invariance tests for detectors 2012-07-14 16:07:48 +00:00
Maria Dimashova 2c0455da17 changed sift angles according to KeyPoint::angle specification in r9034 2012-07-14 16:02:45 +00:00
Marina Kolpakova b9e53ec8ea fixed build after r9027 2012-07-14 15:50:49 +00:00
Maria Dimashova 6dc5cd15ed specified KeyPoint::angle in rst doc and code comment 2012-07-14 15:36:35 +00:00
Anatoly Baksheev bfe6e2c4b1 minor in LBP for GPU 2012-07-14 15:36:25 +00:00
Maria Dimashova eb119959e8 fixed features2d rotation invariance tests 2012-07-14 15:05:41 +00:00
Maria Dimashova c94974ccb3 fixed mser (angle is -1 now) 2012-07-14 15:03:39 +00:00
Maria Dimashova 2bd86e2541 fixed compile errors under win 2012-07-14 13:25:41 +00:00
Alexander Mordvintsev 7bbc42127e refactored find_obj.py sample:
- handle bad matching case
- use BFMatcher and FlannBasedMatcher (and thus fixing a bug: L2^2 metric was used for flann)
2012-07-13 20:27:54 +00:00
Maria Dimashova 30c611f1d5 added tests to check rotation invariance of detectors 2012-07-13 18:03:20 +00:00
Anatoly Baksheev 9706079ace a bit refactoring in LBP face detection on GPU 2012-07-13 15:47:09 +00:00
Marina Kolpakova fb3d6ecb98 merged documentation and android service from trunk 2012-07-13 14:27:09 +00:00
Andrey Kamaev bb51626573 Build pdf for Android Manager documentation 2012-07-13 13:00:29 +00:00
Andrey Pavlenko be2457c249 removing 'module' directive to eliminate "PYTHON MODULE INDEX" page in PDF 2012-07-13 08:39:31 +00:00
Maria Dimashova 722df6a998 minor change in doc 2012-07-13 06:00:30 +00:00
Maria Dimashova 438c1444eb added test to check keypoints returned by FeatureDetector (center, size, angle) 2012-07-12 17:52:49 +00:00
Maria Dimashova 017895dd93 filtered MSER keypoints that have centers out of image 2012-07-12 17:51:12 +00:00
Vincent Rabaud fbf1973bac backport 9018 2012-07-12 16:04:51 +00:00
Vincent Rabaud 3df72fe669 fix gcc C++11 bug mentioned in http://answers.opencv.org/question/283 . Bug also fixed in FLANN upstream 2012-07-12 16:02:02 +00:00
Maria Dimashova 507f546158 split file of features2d tests 2012-07-12 13:57:17 +00:00
Alexander Smorkalov 76fdbeee8a Tegra detector fixed;
Some aditional logs added;
AndroidManifest version incremented.
2012-07-12 13:12:16 +00:00
Maria Dimashova 69296c3333 fixed #2165 2012-07-12 12:32:54 +00:00
Maria Dimashova d38f694275 fixed CvBoost in mll if no tree can be trained. 2012-07-12 12:29:50 +00:00
Alexander Mordvintsev 65e2350606 work on digits_video.py 2012-07-12 11:51:27 +00:00
Alexander Smorkalov 9f0a16c844 HW compatibility tests added;
Arm-v7a neon package support enabled.
2012-07-12 11:50:40 +00:00
Andrey Pavlenko 76cb051082 better wording 2012-07-12 09:21:39 +00:00
Andrey Pavlenko 06a4553a4f minor upd. (formatting and wording) 2012-07-12 09:21:36 +00:00
Andrey Pavlenko f6a4350ddd updating wording and initDebug() descr 2012-07-12 09:21:32 +00:00
Andrey Pavlenko cacf1d1ed3 adding java api ref. to top-level index 2012-07-12 09:21:29 +00:00
Marina Kolpakova 58c67ccfea improved LBP indexing 2012-07-12 08:50:41 +00:00
Marina Kolpakova 965109228d added delobal memory version 2012-07-12 08:50:36 +00:00
Alexander Smorkalov 422f650b20 Package name logic improved;
Aditional tests added;
Some bug fixes with different __SUPPORT_XXX defines.
2012-07-12 08:02:41 +00:00
Marina Kolpakova 2aacff4c39 swithed to the fixed size thread block 2012-07-12 07:11:26 +00:00
Alexander Mordvintsev c5669448a3 work on features2d python interface 2012-07-11 17:13:43 +00:00
Alexander Mordvintsev ffd283b7d5 fixed SURF orientations, broken in r8892
(see also r8895, r8887 and #2043)
2012-07-11 16:26:52 +00:00
Maria Dimashova 0b4e96d89c updated thresholds in EM test after cv::EM fixing 2012-07-11 13:52:19 +00:00
Maria Dimashova 75e0eeab17 fixed #2160 2012-07-11 13:51:36 +00:00
Alexander Smorkalov ed0a158cc1 Unit tests updated. Version and HW compatiblity tests added;
Tegra3, neon, sseX, x64 support uncomment and guarded by ifdefs.
2012-07-11 13:30:41 +00:00
Maria Dimashova 994f8710f3 fixed #2159 2012-07-11 13:26:58 +00:00
Maria Dimashova 7c211796e7 more doc details for #2152 2012-07-11 13:23:18 +00:00
Andrey Pavlenko 5ec9909b71 updating include dirs to make CDT project in Eclipse happy 2012-07-11 13:12:37 +00:00
Marina Kolpakova 3c2691ef96 LBP: minor changes 2012-07-11 12:22:28 +00:00
Marina Kolpakova ed1b293d34 refactored GPU LBP cascade. Added support for big images. Fixed bug in connected components function 2012-07-11 12:22:22 +00:00
Maria Dimashova 469ec7c522 fixed vfw (#2156) 2012-07-11 09:04:25 +00:00
Maria Dimashova bc3fb347a3 fixed #2155 2012-07-11 08:41:09 +00:00
Maria Dimashova e68b26e71f fixed doc #2152 2012-07-11 08:05:06 +00:00
Alexander Mordvintsev 84281d284e mdot function in common.py 2012-07-11 05:07:00 +00:00
Vincent Rabaud 185673e9e2 backoprt 8987 2012-07-10 19:09:25 +00:00
Vincent Rabaud c52d620817 update the docs for cvExtractSURF and initModule_nonfree() 2012-07-10 19:09:00 +00:00
Marina Kolpakova 86d785622b LBP: switched to texture implementation 2012-07-10 11:58:15 +00:00
Marina Kolpakova b0606b0557 LBP classifer moved to ptr from DevMem2D 2012-07-10 11:58:10 +00:00
Marina Kolpakova 436d2ff1fc LBP classifer moved to ptr from DevMem2D 2012-07-10 11:58:06 +00:00
Andrey Kamaev c474e27c1d One more fix for zlib search #1902 2012-07-09 19:16:38 +00:00
Leonid Beynenson 6d3db49932 Changed DetectionBasedTracker a bit to make its method addObject to return an integer value -- the id of the new added object. 2012-07-09 14:37:12 +00:00
Alexander Mordvintsev d9478252e9 show detected keypoints in feature_homography.py 2012-07-09 12:19:59 +00:00
Andrey Kamaev a5b60fa532 Fixed typo in Java wrapper for FetauresDetector class 2012-07-09 10:52:28 +00:00
Andrey Kamaev 3869d38671 fixed typo in SURF detector #2149 2012-07-09 10:47:09 +00:00
Marina Kolpakova d88bbb3d9d fixed undefined behaviour in image codecs initialization 2012-07-08 18:26:28 +00:00
Marina Kolpakova 8c9a9f1c94 fixed documentation missmatch for ORB 2012-07-08 18:26:23 +00:00
Marina Kolpakova 33d95642d3 fixed documentation missmatch for polylines function 2012-07-08 18:26:18 +00:00
Marina Kolpakova f094983d49 reduced the number of registers used in the LBP responce operator 2012-07-08 18:26:13 +00:00
Marina Kolpakova 09269b4cd8 fixed backward compatibility with less than 1.2 CUDA capability 2012-07-07 21:48:53 +00:00
Philipp Wagner 3ac6272c3b Grammar and Formatting fixes. Added link to the Yale Facedatabase A. Added download directive links for linking to the sample source code samples. 2012-07-06 20:42:02 +00:00
Alexander Mordvintsev a2c3c1800a new feature_homography.py sample 2012-07-06 15:42:42 +00:00
Alexander Mordvintsev c6705fbe20 exposed ORB features to python 2012-07-06 15:41:57 +00:00
Marina Kolpakova 66aff45e96 fixed #2130 2012-07-05 20:55:55 +00:00
Andrey Kamaev e900952b87 quiet most of the OSX build warnings 2012-07-05 12:56:31 +00:00
Andrey Kamaev b712bbe9a5 Android: updated default TBB version to 4.0 update 5 2012-07-05 09:22:52 +00:00
Andrey Kamaev 620d122fc2 Contrib module is added to java wrappers; fixed algorithm initialisation for python bindings 2012-07-05 07:58:40 +00:00
Andrey Kamaev b1eba01afb Fixed several mistakes in documentation 2012-07-05 07:30:45 +00:00
Andrey Kamaev 5f8715c8b4 Fixed file globbing in documentation parsers 2012-07-05 05:11:15 +00:00
Vadim Pisarevsky acf356b080 added contrib module support in Python wrappers (thanks to Eric Christiansen) 2012-07-04 17:59:14 +00:00
Marina Kolpakova bc83011736 removed unnecessary memory allocation in LBP classifier 2012-07-04 16:03:48 +00:00
Marina Kolpakova eb599f6832 added checking destination matrix size for resize and integral functions 2012-07-04 16:03:43 +00:00
Marina Kolpakova 6c0af66fd8 removed unused class filds 2012-07-04 16:03:40 +00:00
Marina Kolpakova e496345d33 added lbp cascade test, fixed race conditions problems 2012-07-04 12:11:16 +00:00
Marina Kolpakova 248f39e13e added performance test for LBP classifier. 2012-07-04 12:11:07 +00:00
Alexander Smorkalov a9718cc79f Messages updated. Samples rebuild is needed. 2012-07-04 09:55:00 +00:00
Andrey Kamaev 51f6127e0a Merged the recent fixes from 2.4 branch 2012-07-04 08:04:31 +00:00
Marina Kolpakova 4128d5782f added hipotesis filtration 2012-07-04 04:51:09 +00:00
Marina Kolpakova a53f0f397e LBP classifier: tracking of count of detected objects was moved in cascadeclassifier.cpp 2012-07-04 04:51:00 +00:00
Marina Kolpakova cdbda45125 merged GPU resize became same as CPU implementation 2012-07-03 16:16:24 +00:00
Alexander Shishkov 13735decf3 updated pdfs to 2.4.2 2012-07-03 15:55:39 +00:00
Alexander Shishkov 0ee2662da6 updated docs theme 2012-07-03 15:37:49 +00:00
Alexander Shishkov 7c2270bb3b updated docs theme 2012-07-03 15:31:13 +00:00
Kirill Kornyakov f0bff1b64f minor fixes for the second Android tutorial 2012-07-03 15:10:40 +00:00
Andrey Pavlenko 4ac3eb04c4 updating pictures; removing redundant 'fix prj prop-s' step 2012-07-03 15:07:20 +00:00
Kirill Kornyakov 892a0e28ad minor fixes for the first Android tutorial 2012-07-03 14:13:05 +00:00
Alexander Smorkalov 01d08208f6 Library name updated. 2012-07-03 13:40:30 +00:00
Alexander Smorkalov d943c35ef7 Touchscreen requirement turned off. 2012-07-03 13:31:15 +00:00
Alexander Smorkalov a5c3c1a7de Package name pattern changed. 2012-07-03 13:18:22 +00:00
Kirill Kornyakov 960a03ca65 renamed google group to the OpenCV4Android instead of android-opencv 2012-07-03 13:16:22 +00:00
Andrey Pavlenko 4b8863c933 install bin.apk 2012-07-03 13:15:41 +00:00
Alexander Smorkalov 73a798e718 About message updated.
Version updated.
2012-07-03 13:04:40 +00:00
Alexander Smorkalov 1ba250b69c Message box text updated. 2012-07-03 13:03:38 +00:00
Alexander Smorkalov 50c49f73f8 Icon for binary package updated. 2012-07-03 12:56:53 +00:00
Andrey Pavlenko 94f05241c5 removing windows-specific path from includes 2012-07-03 12:50:36 +00:00
Andrey Kamaev efdc055fb1 Fixed Java API tests 2012-07-03 12:44:32 +00:00
Andrey Kamaev 5615ec7c97 Fixed code block in android tutorial 2012-07-03 12:02:58 +00:00
Andrey Kamaev d386667478 Merged the trunk r8927, r8929 2012-07-03 11:52:54 +00:00
Andrey Kamaev bd394012e8 Eliminated discrepancy between SSE and non-SSE versions of bilinear resize 2012-07-03 11:30:17 +00:00
Andrey Kamaev aa4cad80a0 Fixed opponent space color conversion 2012-07-03 11:01:56 +00:00
Alexander Smorkalov a0ce328f98 Internal docs about service were moved to opencv_extra. 2012-07-03 09:19:04 +00:00
Alexander Smorkalov 7294ccba3c Icon for OpenCV Manager updated. 2012-07-03 09:14:54 +00:00
Andrey Pavlenko 9c60412480 starting 2.4.2 O4A packages will be packed with ZIP instead of TAR.BZ2 2012-07-03 08:38:34 +00:00
Alexander Smorkalov e5067bff41 Typo fix. 2012-07-03 08:12:27 +00:00
Alexander Smorkalov 65b53f96d0 OpenCV 2.4.0 constant version removed. All docs and samples updated for 2.4.2. 2012-07-03 07:58:48 +00:00
Andrey Kamaev a78bd92b8e Documentation: fixed duplicated appendix reference 2012-07-02 21:39:17 +00:00
Andrey Kamaev c68eb408c0 Merged the trunk r8917:8919 2012-07-02 21:12:45 +00:00
Andrey Kamaev cfc593eb0d Fixed run.py bugs 2012-07-02 21:07:32 +00:00
Maria Dimashova b528348f39 fixed #2118 2012-07-02 20:21:34 +00:00
Philipp Wagner 927523bc3d Bug 2129: Fix for missing citations in FaceRecognizer documentation. 2012-07-02 18:43:20 +00:00
Andrey Kamaev a4ec89fb2c Merged version references fix 2012-07-02 15:41:14 +00:00
Andrey Kamaev de153f0154 Fixed several opencv version references 2012-07-02 15:40:18 +00:00
Andrey Kamaev 81a5415417 Merged the trunk r8913 2012-07-02 15:15:40 +00:00
Maria Dimashova 249bf008ab fixed #1834 2012-07-02 14:50:28 +00:00
Andrey Kamaev d2b36d74cd Merged the trunk r8911 2012-07-02 14:21:51 +00:00
Andrey Kamaev df262b340c Fixed #2125 2012-07-02 14:20:59 +00:00
Alexander Smorkalov 139cc61001 Application start without service fixed. 2012-07-02 14:19:14 +00:00
Andrey Kamaev aa911275c3 Merged the trunk r8907, r8908 2012-07-02 14:12:34 +00:00
Andrey Pavlenko eaddfb32de updating tutorial 2012-07-02 14:10:06 +00:00
Alexander Mordvintsev 1543b46383 HoG and Hellinger-metric preprocess for digit recognition
line breaks in fitline.py description
2012-07-02 13:49:36 +00:00
Andrey Kamaev af912f4843 Merged the trunk r8901:8904 2012-07-02 13:46:47 +00:00
Alexander Smorkalov 721c24bc1f Typo fix. Name of native library was inconsists with java loadLibrary 2012-07-02 13:39:55 +00:00
Andrey Kamaev efe139667b Fixed Android package dependencies 2012-07-02 13:26:51 +00:00
Andrey Kamaev 08890118db Fixed Android package dependencies 2012-07-02 13:19:46 +00:00
Andrey Kamaev 4216f3b24c Fixed Android package dependencies 2012-07-02 13:17:12 +00:00
Andrey Pavlenko e2e6838da3 adding CDT Builder (via ndk-build.cmd) for JNI part 2012-07-02 13:15:16 +00:00
Andrey Kamaev a66cd5698a Merged the trunk 8892,8894,8898 2012-07-02 13:06:28 +00:00
Vadim Pisarevsky a1bc11c429 fixed typo in minMaxIdx description (ticket #2081) 2012-07-02 12:59:02 +00:00
Alexander Shishkov cf97209f95 update FFMPEG wrapper binaries 2012-07-02 12:57:52 +00:00
Alexander Shishkov 76a644372f update FFMPEG wrapper binaries 2012-07-02 12:49:18 +00:00
Maria Dimashova 52ba2e45c4 removed obsolete parameter 'time' in regression test for descriptors 2012-07-02 12:44:41 +00:00
Andrey Kamaev d4df1e0b5c Merged the trunk r8887, r8891, r8314 2012-07-02 12:33:37 +00:00
Maria Dimashova 9cd0c9033f fixed angles of SURF detector 2012-07-02 12:32:14 +00:00
Andrey Kamaev 565a8dc30d Fixed automatic temporary files cleaning with run.py on Windows 2012-07-02 12:23:57 +00:00
Andrey Kamaev 5a7804d958 Version number is adjusted to 2.4.2 2012-07-02 12:10:13 +00:00
Andrey Kamaev 088a6597bc Merged the trunk 8855,8885,8886 2012-07-02 12:05:06 +00:00
Maria Dimashova ad6929b6a4 removed y-axis inversion in drawKeypoints (FeatureDetector has to do this) 2012-07-02 12:04:00 +00:00
Maria Dimashova 0f21890d7d added test for opponent descriptor extractor 2012-07-02 11:58:17 +00:00
Andrey Pavlenko 600ad799c7 restoring binary compatibility with 2.4.1 2012-07-02 11:54:24 +00:00
Andrey Kamaev 3a40f27655 Merged facerec from the trunk 2012-07-02 11:48:16 +00:00
Andrey Kamaev 5d6c90e166 Fixed bugs in facerec documentation 2012-07-02 11:46:17 +00:00
Andrey Kamaev b368f99d03 Merged the trunk r8852:8880 2012-07-02 11:04:43 +00:00
Marina Kolpakova 76354287aa fixed build without CUDA 2012-07-02 10:54:05 +00:00
Alexander Smorkalov c80d205ecf OpenCV Library renamed. 2012-07-02 10:07:24 +00:00
Alexander Smorkalov 3a88fc5aa9 Android samples renaming was done. Icon updated. 2012-07-02 10:06:08 +00:00
Maria Dimashova b3f68d29e7 fixed bow sample 2012-07-02 09:21:55 +00:00
Marina Kolpakova 319c20c797 result storing: atomic based 2012-07-02 08:08:17 +00:00
Marina Kolpakova a9f2f522e7 LBP classifier was refactored, added parameter for max size of detected object 2012-07-02 08:08:11 +00:00
Marina Kolpakova e6f7e4d83e GPU resize became same as CPU implementation 2012-07-02 08:08:02 +00:00
Marina Kolpakova 60b73e7471 gpu classifier default values became same as to cpu implementation 2012-07-02 08:07:55 +00:00
Marina Kolpakova e7f5978768 classifier loading has been improved 2012-07-02 08:07:46 +00:00
Alexander Mordvintsev 83ccdbd0ce refactored digits_adjust.py (dataset preprocess in cloud) 2012-07-02 07:49:46 +00:00
Alexander Mordvintsev 6977a89525 descriptions for watershed.py and video.py 2012-07-02 04:44:31 +00:00
Alexander Mordvintsev d015bf6f5e fitline.py sample added 2012-07-02 03:51:47 +00:00
Maria Dimashova 6042c59495 fixed #1764 2012-07-01 22:40:25 +00:00
Vadim Pisarevsky 31395b0759 added check for false bug report #2081 2012-07-01 21:29:50 +00:00
Vadim Pisarevsky 562838e0b5 partial fix for repeated algorithm registration (patch #2101 by Stephan Reuter) 2012-07-01 21:14:16 +00:00
Maria Dimashova d56b771963 fixed #2082 2012-07-01 20:59:29 +00:00
Maria Dimashova 8f5b15b1c3 fixed compilation in msvc 2012-07-01 20:58:08 +00:00
Vadim Pisarevsky e918877bcf fixed bug with uninitialized variable in cvGetOptimalNewCameraMatrix (patch #1731 by floemker) 2012-07-01 20:56:27 +00:00
Vadim Pisarevsky 7ef2114107 added fullscreen mode on Mac (patch #2040 by Takahiro Horikawa) 2012-07-01 20:25:24 +00:00
Vadim Pisarevsky b5eb318ae3 added support of homogeneous points to calcCorrespondEpilines (ticket #2055) 2012-07-01 20:13:49 +00:00
Andrey Kamaev dec38e5949 Background subtractor GMG: removed flexitype, fixed build errors. 2012-06-30 20:47:09 +00:00
Andrey Kamaev afe11f69fb Fixed Windows build warnings and configuration problem. 2012-06-30 20:45:01 +00:00
Andrey Kamaev 27c23b557c Merged few small fixes from 2.4 branch 2012-06-30 13:36:27 +00:00
Marina Kolpakova 304dac7f00 fixed #2113 2012-06-30 09:37:40 +00:00
Marina Kolpakova cdad4ac7c9 Merge branch 'home' 2012-06-30 09:29:33 +00:00
Leonid Beynenson 6d3fecd490 Fixed small bug in cv::Ptr<_Tp> conversion to cv::Ptr<_Tp2>. Now this conversion is made in a more accurate way. 2012-06-29 16:38:03 +00:00
Andrey Pavlenko a72f4474b4 fixing bug #1987(android keeps RGBA in alpha pre-multiplied form, Mat <-> Bitmap should handle this correctly) 2012-06-29 15:38:10 +00:00
Andrey Kamaev 2b6b6f12e2 Debug message is turned off 2012-06-29 08:47:38 +00:00
Andrey Kamaev 0584ac525b Quiet MSER tests 2012-06-29 08:34:07 +00:00
Andrey Kamaev 71729a5967 opencv_ts is removed for java API 2012-06-29 08:11:20 +00:00
Andrey Kamaev 17fd1c7c61 Merged recent changes from trunk - 8833,8848,8850 2012-06-29 07:52:34 +00:00
Andrey Kamaev 4d09d62f85 Added Ptr<T> support to AlgorithmInfo; fixed some warnings 2012-06-29 07:46:53 +00:00
Andrey Kamaev a25c27ca05 Fixed windows build problems of BackgroundSubtractorGMG but code still need more work. 2012-06-28 20:42:26 +00:00
Vadim Pisarevsky 82cb2ab556 fixed bug in SVD, ticket #2027; fixed building highgui with ffmpeg support on MacOSX 2012-06-28 19:45:13 +00:00
Andrey Kamaev 57fb5f0981 Merged Android build fix 2012-06-28 19:32:32 +00:00
Andrey Kamaev 5a2ba94dd6 Fixing parallel build for Android 2012-06-28 19:30:39 +00:00
Andrey Kamaev 35a31e1c35 Fixed few warnings 2012-06-28 18:11:54 +00:00
Andrey Kamaev 2a2092092f Fixed Android build warnings in backgroundsubtractor_gbh 2012-06-28 18:11:10 +00:00
Marina Kolpakova 37a63523e7 fixed merge problem 2012-06-28 17:54:08 +00:00
Andrey Kamaev a71797c0c4 Reverted some changes in videostab module 2012-06-28 17:48:53 +00:00
Andrey Kamaev 5715d9ef42 Removed incorrectly merged test 2012-06-28 17:41:03 +00:00
Marina Kolpakova ab69f5e091 merged python samles 2012-06-28 17:33:11 +00:00
Marina Kolpakova 54ee92e3b0 merged trunk r8815:8827 2012-06-28 17:28:27 +00:00
Marina Kolpakova b28b2428f6 changing package layout after 'make install' for Android build 2012-06-28 17:23:50 +00:00
Marina Kolpakova 2dcb091d94 merged Android samples 2012-06-28 17:14:29 +00:00
Marina Kolpakova 162f9fd7ea merged the trunk r8735:8766, r8769, r8777:8780, r8790 and r8800:8811 2012-06-28 17:07:17 +00:00
Marina Kolpakova b156e2f7ed added FREAK (by Kirell Benzi, Raphael Ortiz, Alexandre Alahi and Pierre Vandergheynst) 2012-06-28 16:46:29 +00:00
Marina Kolpakova 3def843652 merged the trunk r8719:8731 and 8807 2012-06-28 16:39:53 +00:00
Vadim Pisarevsky 7c778fc043 fixed possible video distortion problem when cap_avfoundation.mm is used to capture video (ticket #1980) 2012-06-28 16:34:53 +00:00
Vadim Pisarevsky e4b58ebff5 added GMG background segmentation algorithm by Andrew Godbehere, ticket #2065 2012-06-28 16:24:48 +00:00
Marina Kolpakova 01570fa800 merged Android Manager and new java layout 2012-06-28 16:23:19 +00:00
Marina Kolpakova 680a44189c merged the trunk r8704:8716 2012-06-28 16:13:29 +00:00
Leonid Beynenson 35344569bf Added possibility in the class DetectionBasedTracker to work as a tracker only -- without the mainDetector.
In this case new objects will be added into it by the method addObject(const cv::Rect& location).
2012-06-28 16:07:10 +00:00
Marina Kolpakova 2777ebb8a0 merged GPU scan 2012-06-28 16:00:38 +00:00
Vadim Pisarevsky fd901d8323 fixed #2108 (thanks to Vincent for the report and proposed solution) 2012-06-28 15:52:34 +00:00
Marina Kolpakova 6cca6a4548 merged the trunk r8669:8702 2012-06-28 15:41:27 +00:00
Marina Kolpakova 150aeee58f merged iOS framework from the trunk 2012-06-28 15:13:57 +00:00
Andrey Kamaev 6a13c9efc0 Added cmake for building Android package 2012-06-28 13:42:08 +00:00
Leonid Beynenson d822989c8b Added template method cv::Algorithm::set(const char* _name, const Ptr<_Tp>& value),
which allows to pass as the second parameter of the method set any cv::Ptr<_Tp> object.
2012-06-28 12:17:11 +00:00
Leonid Beynenson 00b02f9f6d Small addition change in the FileStorage sample. 2012-06-28 11:17:32 +00:00
Andrey Kamaev e4965b143f Fixed discrepancy between SSE and regular baranches in FREAK 2012-06-28 11:08:11 +00:00
Andrey Kamaev 739da31add Fixed Android build with SDK tools revision 20 2012-06-28 11:06:31 +00:00
Leonid Beynenson 7fc18fe146 Added to the sample, demonstrating FileStorage, how to read/write data from/to std::string. 2012-06-28 10:32:34 +00:00
Andrey Pavlenko 42d830ec23 switching to dynamic linking 2012-06-28 07:51:19 +00:00
Andrey Kamaev e8b0d27942 Fixed cvExtractSURF in case of no keypoints found #2076 2012-06-28 05:59:30 +00:00
Vadim Pisarevsky d60b1f2f82 fixed bug #2106; added test 2012-06-27 20:51:48 +00:00
Vadim Pisarevsky 73ce3ef8c1 fixed ios framework build (ticket #2092) 2012-06-27 19:52:59 +00:00
Philipp Wagner ea0b57cc23 API Link corrected. 2012-06-27 18:37:03 +00:00
Philipp Wagner d636c677f4 API Link corrected. 2012-06-27 18:35:52 +00:00
Andrey Kamaev 6c3137a8b5 Fixed divide by zero problem in cvStereoRectify (thanks to Philip Van Valkenberg) #2099 2012-06-27 15:15:32 +00:00
Andrey Kamaev f09ae32796 Fixed Mat::isContinuous for big matrix (thanks to Boris Mansencal) #2103 2012-06-27 14:19:35 +00:00
Andrey Kamaev 15e50420bc Fixed linux and android install 2012-06-27 13:52:29 +00:00
Alexander Mordvintsev c6685bc9a7 improved recognition accuracy by better region normalization 2012-06-27 13:22:06 +00:00
Alexander Mordvintsev 60dd599aea discard digit's internal contours in digits_video.py 2012-06-27 12:42:21 +00:00
Andrey Pavlenko 8b67adea98 workarounding missing native part in Java tests 2012-06-27 12:38:57 +00:00
Andrey Kamaev a323da6fd5 Fixed some warnings and install problems on linux 2012-06-27 12:02:31 +00:00
Vladislav Vinogradov 59ce0a9f81 Merged revision(s) 8679 from trunk:
new implementation of gpu::PyrLKOpticalFlow::sparse (1.5 - 2x faster)
........
2012-06-27 10:53:35 +00:00
Alexander Mordvintsev 981564ffe9 work on digits_video.py 2012-06-27 10:09:45 +00:00
Vladislav Vinogradov 5c19c6cb67 Merged revision(s) 8664 from trunk:
new implementation of gpu::PyrLKOpticalFlow::dense (1.5 - 2x faster)
........
2012-06-27 09:58:33 +00:00
Alexander Mordvintsev c71c82a8f1 work on digits_video.py 2012-06-27 09:46:04 +00:00
Andrey Kamaev abde1377f3 Fixed mistake in documentation 2012-06-27 09:20:02 +00:00
Alexander Mordvintsev b987154ebc digits_video.py prints warning if trained classifier (should be created by digits.py) not found 2012-06-27 08:29:22 +00:00
Andrey Pavlenko 3804ca3e20 changing package layout after 'make install' for Android build 2012-06-27 06:22:26 +00:00
Alexander Mordvintsev 6dffc5332d digits_video.py (VERY IMMATURE)
digits.py now saves the resulting SVM classifier for use in digits_video.py
2012-06-27 05:59:16 +00:00
Alexander Mordvintsev 13b30d7428 digits_adjust.py sample added 2012-06-27 05:51:24 +00:00
Alexander Mordvintsev d636e1128b removed ANN digits recognition
added deskew for SVN and KNearest recognition sample
2012-06-27 04:29:15 +00:00
Philipp Wagner f2e78eed8c Fixed wrong restructured text directive, when referencing to other documents. 2012-06-26 21:24:19 +00:00
Andrey Kamaev 69b5972e03 Fixed MSVC build with Qt enabled #2096 2012-06-26 21:05:15 +00:00
Philipp Wagner a15d97b716 Added the cv::FaceRecognizer documentation (API, Face Recognition Guide, Tutorials). 2012-06-26 20:13:11 +00:00
Andrey Pavlenko 9efc1a689b fixing project properties 2012-06-26 15:25:00 +00:00
Andrey Pavlenko ac6061ee8a hiding extra build-time messages 2012-06-26 13:42:10 +00:00
Alexander Smorkalov b962bf75cf Sample3-native build fix. Dependency from OpenCV library project added. Scripts updated. 2012-06-26 13:24:12 +00:00
Alexander Smorkalov 369f2c4903 Color blob detection example updated for OpenCV Manager model. 2012-06-26 12:58:46 +00:00
Alexander Smorkalov 109e308763 Sample4-mixed was updated for OpenCV Manager model. 2012-06-26 12:57:43 +00:00
Alexander Smorkalov 0693073b98 Example3-native updated for OpenCV Manager model 2012-06-26 12:44:57 +00:00
Marina Kolpakova bd500ff0f7 fixed LBP loader test 2012-06-26 12:44:27 +00:00
Alexander Smorkalov 521b89e69d Sample 2 was updated for OpenCV Manager model. 2012-06-26 12:31:04 +00:00
Alexander Smorkalov 207f4fc53c Sample 1 updated for OpenCV Manager model. 2012-06-26 12:26:42 +00:00
Vladislav Vinogradov e7c35b1852 fixed bug in cv::gpu::HOGDescriptor::detectMultiScale 2012-06-26 12:24:48 +00:00
Alexander Smorkalov 7a858885e6 Image manipulations sample updated for OpenCV Manager model. 2012-06-26 12:20:35 +00:00
Marina Kolpakova a743eca076 LBP features: GPU representation 2012-06-26 12:15:19 +00:00
Andrey Kamaev 55567582a6 added XIMEA support for linux (by Igor Kuzmin) #2085 2012-06-26 11:48:58 +00:00
Andrey Kamaev f9418853a0 Applied XIMEA path (by Marian Zajko) with multiple changes #2054 2012-06-26 11:47:49 +00:00
Vladislav Vinogradov e9e66e5796 added VIBE_GPU (background subtraction) to gpu module 2012-06-26 10:38:15 +00:00
Andrey Kamaev 0f8e271509 Fixing iOS detection in core persistence 2012-06-26 09:21:22 +00:00
Andrey Kamaev dd7eeea118 Fixing cv::tempfile on Windows #2093 2012-06-26 09:07:37 +00:00
Andrey Kamaev a142a3b78a Fixed Android Manager build 2012-06-26 08:48:45 +00:00
Andrey Kamaev ecf6b5a87c Making all dependencies from highgui module optional 2012-06-26 07:29:36 +00:00
Alexander Smorkalov 700b685575 Revision 8725 restored. Android sample FaceDetection updated according DetectionBasedTracker interface. 2012-06-25 17:12:19 +00:00
Alexander Smorkalov 80febef237 revision 8721 vas merged to head. Detection based tracker interface changed. cpp and android samples updated. 2012-06-25 17:01:55 +00:00
Marina Kolpakova 915c81febf fixed build without CUDA 2012-06-25 16:52:54 +00:00
Marina Kolpakova 6801f475ad LBP: implemented first version of device side part 2012-06-25 16:39:50 +00:00
Marina Kolpakova 71f94e12fb LBP: implemented image data preparing 2012-06-25 16:39:45 +00:00
Marina Kolpakova 91ba48c5f9 added lbp related CUDA files 2012-06-25 16:39:40 +00:00
Marina Kolpakova e637168e44 completed test: load LBP classifier 2012-06-25 16:39:34 +00:00
Marina Kolpakova 143c57064b LBP classifier represintation in GPU memory 2012-06-25 16:39:29 +00:00
Andrey Kamaev 4a0249f865 Minor update for zlib search 2012-06-25 16:03:45 +00:00
Vladislav Vinogradov 4ee236b1b6 added docs for MOG_GPU and MOG2_GPU 2012-06-25 13:19:55 +00:00
Andrey Kamaev 7b806f6008 fixed several documentation errors 2012-06-25 12:56:46 +00:00
Vladislav Vinogradov d85ef03a42 added background subtraction sample for gpu module 2012-06-25 12:48:54 +00:00
Vladislav Vinogradov 3a4353f04d added FGDStatModel, MOG and MOG2 to gpu performance sample 2012-06-25 11:46:45 +00:00
Vladislav Vinogradov ed8b6c798b copy 768x576.avi video to sample directory 2012-06-25 11:26:07 +00:00
Andrey Kamaev d9c74f63e1 All tests writing temporary files are updated to use cv::tempfile() function 2012-06-25 11:24:06 +00:00
Andrey Kamaev ec3a7665b0 Fixed FREAK on Android 2012-06-25 11:19:11 +00:00
Vladislav Vinogradov acc031aaba added MOG_GPU and MOG2_GPU (Gaussian Mixture background subtraction) 2012-06-25 11:13:50 +00:00
Alexander Mordvintsev d49c697fda added comments to contours.py and edge.py samples 2012-06-25 10:58:34 +00:00
Alexander Mordvintsev a3220a446f added comment to letter_recog.py sample (adopted from c++ version) 2012-06-25 10:52:45 +00:00
Marina Kolpakova 5f6bbcc89a added test for GPU LBP cascade: load cascade 2012-06-25 08:46:34 +00:00
Andrey Pavlenko 715b0d181c adding missing images 2012-06-25 06:44:08 +00:00
Andrey Kamaev 1ee5c95ee9 Updated gtest to upstream rev616 2012-06-24 18:25:58 +00:00
Andrey Kamaev cfa9aa9206 Search python libs exactly matching to python executable on cmake 2.8.9 and newer 2012-06-24 18:25:01 +00:00
Andrey Kamaev 84d62b69dc Fixed windows build of FREAK 2012-06-24 14:33:30 +00:00
Andrey Kamaev bd901eb52d Reverted r8721 and r8725 (issue #2080) 2012-06-24 08:50:03 +00:00
Vadim Pisarevsky 74707ec7ae added FREAK (by Kirell Benzi, Raphael Ortiz, Alexandre Alahi and Pierre Vandergheynst) 2012-06-24 01:37:55 +00:00
Andrey Kamaev a381b95e91 Fixed buggy NEON check inside flann 2012-06-22 16:10:43 +00:00
Andrey Pavlenko cc54226e12 updating version 2012-06-22 15:19:03 +00:00
Andrey Pavlenko cf88b9d00c workarounding service-related changes 2012-06-22 15:18:06 +00:00
Vadim Pisarevsky 87d1731714 added synonym CV_COMP_HELLIGNER for CV_COMP_BHATTACHARYAA to reflect the real formula used (bug report #2073) 2012-06-22 15:12:19 +00:00
Marina Kolpakova 1365e28a54 initial support of GPU LBP classifier: added new style xml format loading 2012-06-22 15:00:36 +00:00
Alexander Smorkalov 02170a0a58 Sample updated due to new DetectionBasedTracker interface. 2012-06-22 14:07:54 +00:00
Vadim Pisarevsky 0c65ea976a added the optional output maxima value to phaseCorrelate (patch #2071 by Robert Huitl) 2012-06-22 13:34:03 +00:00
Andrey Kamaev 511d09f587 Fixed tests broken by r8708 2012-06-22 08:36:29 +00:00
Andrey Pavlenko 2984fa751e adding OpenCV Manager 2012-06-21 14:50:05 +00:00
Alexander Smorkalov a3be73b5cc revisions 8681 and 8688 restored. Warning fixed.
Warning: changes beak binary compatibility
2012-06-21 14:37:28 +00:00
Andrey Pavlenko 0a58d8f139 moving to OpenCVLoader API 2012-06-21 14:06:23 +00:00
Andrey Kamaev 5e0160d711 Fixed few warnings on Linux 2012-06-21 12:44:48 +00:00
Andrey Pavlenko 952b25f86f changing 'java' module layout 2012-06-21 11:44:31 +00:00
Andrey Kamaev 25f70e691a Fixed warnigs from zlib defines 2012-06-21 10:28:57 +00:00
Andrey Pavlenko 3af92a9d92 fixing warnings 2012-06-21 09:14:14 +00:00
Marina Kolpakova b065c7a296 fixes for the newly added gcc warning keys 2012-06-21 03:48:36 +00:00
Andrey Kamaev f6ef504ef0 Fixed few more warnings/bugs. 2012-06-20 21:09:27 +00:00
Andrey Kamaev e94e5866a1 Fixed mingw build warnings 2012-06-20 17:57:26 +00:00
Andrey Kamaev 988c405f79 Fixed build with MSVC 2012-06-20 16:03:03 +00:00
Andrey Kamaev d48d7b2b46 Updated warning options for GCC; fixed new warnings. 2012-06-20 12:27:02 +00:00
Andrey Pavlenko 779f4e39de adding JNI func-s declarations to eliminate build warnings inside Android tree 2012-06-20 08:58:30 +00:00
Andrey Pavlenko 2c786a47d0 fix for #2048 (artificial 'delete' method had wrong JNI signature) 2012-06-20 08:28:43 +00:00
Andrey Pavlenko dc93c21962 fix for #2063 ( Mat(Mat m, Rect roi) returns wrong sub-mat) 2012-06-20 07:43:01 +00:00
Marina Kolpakova 43f2682e15 fixed build without CUDA 2012-06-20 07:30:19 +00:00
Marina Kolpakova e7f6c4b7ef scan operations are moved in separate header 2012-06-20 05:41:16 +00:00
Andrey Kamaev 8748cbc232 Fixed optional dependencies tracking in CMake. Fixed TBB compiler definitions for Android. 2012-06-19 20:08:15 +00:00
Marina Kolpakova 6620c5c92d Merge branch 'work' 2012-06-19 13:41:15 +00:00
Marina Kolpakova 18918a5e44 fix for 1.x compute capabilities 2012-06-19 13:41:08 +00:00
Evgeny Talanin 528da9184c added OpenCVConfig.cmake 2012-06-19 11:28:07 +00:00
Andrey Kamaev e8d158a5c8 Reverted changes breaking Android build 2012-06-19 08:10:05 +00:00
Andrey Pavlenko a497e1b37e minor tutorial update 2012-06-18 14:50:49 +00:00
Alexander Mordvintsev e0df3e27ac added digits2.py sample (work in progress) 2012-06-18 14:42:43 +00:00
Maria Dimashova 9152d3fee2 minor fixing 2012-06-18 14:25:00 +00:00
Maria Dimashova 39f865faf9 set sample param to its default value in function 2012-06-18 14:14:15 +00:00
Andrey Kamaev 7dcbf32532 Fixed WString related build problem in Android build 2012-06-18 13:08:59 +00:00
Alexander Mordvintsev 3b55e0d4e9 added kmeans.py sample 2012-06-18 11:48:04 +00:00
Alexander Mordvintsev b4dafa6b58 fixed SVM train_auto docs: "train set" <-> "test set" 2012-06-18 11:38:47 +00:00
Alexander Smorkalov 1736cc9739 Code style fix. dbt face detection example turned off for Windows. 2012-06-18 10:59:28 +00:00
Marina Kolpakova db08656a38 resize area are fixed for scales that aren't divide 128 2012-06-18 10:31:36 +00:00
Andrey Kamaev 0f01d8df1c Fixed Visual Studio precompiled headers 2012-06-18 09:19:57 +00:00
Marina Kolpakova f7c1d16b38 resize area with block scan 2012-06-18 09:00:36 +00:00
Marina Kolpakova 81c6adb959 resize area with block scan 2012-06-18 09:00:32 +00:00
Marina Kolpakova 9a9f212db0 resize function signature refactoring 2012-06-18 09:00:28 +00:00
Marina Kolpakova e69c6fdef4 minor formating changes 2012-06-18 09:00:22 +00:00
Alexander Smorkalov 7c160cdc30 Detection based tracker was refactored. Detector interface added. 2012-06-18 08:55:05 +00:00
Andrey Kamaev a20837fb7c Fixed precompiled headers support detection 2012-06-18 06:53:13 +00:00
Vladislav Vinogradov f392ab0e08 new implementation of gpu::PyrLKOpticalFlow::sparse (1.5 - 2x faster) 2012-06-18 06:49:10 +00:00
Andrey Kamaev 33d9e2354a Fixed Android build with Eigen. 2012-06-16 14:52:46 +00:00
Philipp Wagner 000bf4af48 Two colormaps removed from the list of colormaps, as they are no visually improved enhancement to a Jet colormap. 2012-06-16 08:33:48 +00:00
Philipp Wagner 2c9e81a3ec The COLORMAP_PINK colormap was missing in applyColorMap. 2012-06-16 08:30:22 +00:00
Marina Kolpakova 5b0d7a65e6 minor formating fixes 2012-06-15 15:57:12 +00:00
Andrey Pavlenko 0942244d6f 'call' added to android.bat call 2012-06-15 15:37:11 +00:00
Marina Kolpakova 5d06788305 fixed more "shadow" warnings 2012-06-15 13:21:27 +00:00
Andrey Kamaev f666bd221f Merged the trunk r8595:8668 (except iOS and new gpu functionality) 2012-06-15 13:21:26 +00:00
Marina Kolpakova cd81a13d8b added check for CUDA BLUS support in GEMM tests 2012-06-15 13:19:36 +00:00
Marina Kolpakova c17bd8c11b fixed "shadow" warnings in nvidia folder 2012-06-15 13:16:43 +00:00
Marina Kolpakova f33d90220d fixed "shadow" warnings in NVIDIA tests 2012-06-15 13:13:36 +00:00
Andrey Kamaev bd0e0b5800 Merged the trunk r8589:8653 - all changes related to build warnings 2012-06-15 13:04:17 +00:00
Vladislav Vinogradov 2e2bd55729 new implementation of gpu::PyrLKOpticalFlow::dense (1.5 - 2x faster) 2012-06-15 11:02:33 +00:00
Andrey Pavlenko af6b2e4e96 minor tutorial update 2012-06-15 10:59:09 +00:00
Andrey Pavlenko 8bc9e52dcc fixing typo that breaks the build 2012-06-15 10:42:32 +00:00
Maria Dimashova 5df3c44d30 added check to weight in rgbd 2012-06-15 09:17:10 +00:00
Andrey Pavlenko fed67b3719 tutorial updated 2012-06-15 09:08:49 +00:00
Andrey Kamaev 73c152abc4 Merged the trunk r8575:8583 (INTER_AREA interpolation for GPU resize) 2012-06-15 08:52:08 +00:00
Andrey Kamaev ab20da0f53 Merged the trunk r8547:8574, r8587 2012-06-15 08:36:35 +00:00
Andrey Kamaev c5df95d5a9 Shortened cmake script for opencv_world 2012-06-15 07:52:20 +00:00
Kirill Kornyakov 58aac7ea98 fixes #2044 2012-06-15 07:07:29 +00:00
Andrey Kamaev 16c94d643f Fixed #2053 2012-06-15 06:40:20 +00:00
Andrey Pavlenko 6e1ea0af71 tutorial updated 2012-06-14 20:03:47 +00:00
Andrey Kamaev 542563c444 Fixed Android build warnings for old NDK 2012-06-14 14:52:00 +00:00
Andrey Kamaev cddac5d221 Android toolchain: fixed try_compile problem with old cmake versions 2012-06-14 14:38:04 +00:00
Andrey Pavlenko a82ec18425 tutorial updated 2012-06-14 14:37:41 +00:00
Maria Dimashova 1774e73324 added weighting to rgbd odometry 2012-06-14 14:34:15 +00:00
Andrey Kamaev 913d4541a5 Reduced some tegra stubs 2012-06-14 14:09:04 +00:00
Alexander Mordvintsev a98d6b6217 exposed parallelized SVM prediction to python (predict_all) 2012-06-14 10:02:49 +00:00
Alexander Shishkov e4d9d5294e fixed #2047 2012-06-14 00:09:47 +00:00
Marina Kolpakova f273e54be3 fixed part of shadow warnings 2012-06-13 13:21:51 +00:00
Marina Kolpakova 8c6dc17a9f scan based area interpolation for naive cases 2012-06-13 13:21:08 +00:00
Andrey Kamaev 7cccc93bdf Fixed Android build warnings and few warnings in specific cnfigurations 2012-06-13 13:19:43 +00:00
Marina Kolpakova 9dac223039 fixed part of shadow warnings 2012-06-13 13:12:21 +00:00
Marina Kolpakova 7dd0067792 suppress warning no previous declaration for gpu module 2012-06-13 13:10:11 +00:00
Andrey Kamaev 827d7ba2e9 fixed highgui configuration with QT enabled 2012-06-13 11:49:27 +00:00
Andrey Kamaev cd19de45d3 Fixed problem with incorrect detection of some compiler flags 2012-06-13 11:40:05 +00:00
Andrey Kamaev 694f0e954f Added linking against AppKit framework when OpenCV is configured with WITH_QUICKTIME=OFF 2012-06-13 10:43:03 +00:00
Maria Dimashova f363c835ab fixed compilation error and some warnings if with_openni is true 2012-06-13 08:38:30 +00:00
Philipp Wagner 7b544d2a6d Documentation for FaceRecognizer started (not added to toc of contrib/doc/contrib.rst yet). CSV file for the samples/cpp/facerec_demo.cpp added. Added some more exceptions to warn the user, when passing bad aligned data. 2012-06-12 22:49:14 +00:00
Andrey Kamaev 5349fa0302 Fixed target_link_libraries for python bindings 2012-06-12 16:18:14 +00:00
Andrey Kamaev 16b50fcec7 restored -Wno-unnamed-type-template-args 2012-06-12 16:15:14 +00:00
Andrey Kamaev 4ddcf06404 Added own CMake macro for compiler flag checks (to not depend on CMake version) 2012-06-12 16:11:30 +00:00
Andrey Kamaev 37212f5e00 Fixing compiler flags checks. 2012-06-12 15:14:28 +00:00
Andrey Kamaev c5aba337e9 Fixed number of warnings. Fixed mingw64 build. 2012-06-12 14:46:12 +00:00
Alexander Mordvintsev 02e3afae3a fixed find_obj.py (use detectAndCompute) 2012-06-12 06:31:51 +00:00
Vadim Pisarevsky dcf2a6b857 updated iOS installation instructions 2012-06-11 10:33:45 +00:00
Alexander Mordvintsev 08b2bd9174 fixed #1974 2012-06-11 07:20:34 +00:00
Philipp Wagner b3c61ee0fe Minor grammatical correction in comments. 2012-06-10 22:42:20 +00:00
Philipp Wagner cd7d93f362 Exceptions now go into CV_Error. Added thresholding to the FaceRecognizer and updated the demo accordingly. 2012-06-10 22:23:18 +00:00
Philipp Wagner ee1b671279 Several exceptions added to the available FaceRecognizer classes and helper methods, so wrong input data is reported to the user. facerec_demo.cpp updated to latest cv::Algorithm changes and commented. 2012-06-10 11:57:33 +00:00
Marina Kolpakova 6727e4cb6d fixed build under android 2012-06-10 09:44:47 +00:00
Alexander Mordvintsev 889df76ea7 added lappyr.py sample 2012-06-10 08:38:25 +00:00
Vadim Pisarevsky 139e790fbf always remove libopencv_world.a before building framework to always include the up-to-date code into the framework binary. 2012-06-10 08:27:48 +00:00
Marina Kolpakova 183e13b359 fixed build without CUDA 2012-06-09 17:03:40 +00:00
Vadim Pisarevsky 76f49f3078 added script to build the universal opencv2.framework for iOS device and simulator. fixed opencv_world cmake script to create static libopencv_world.a for iOS. temporarily disable compressed file storages in the case of iOS (to avoid dependency of zlib) 2012-06-09 16:18:39 +00:00
Marina Kolpakova 09d4d69100 minor warning fixes 2012-06-09 15:24:36 +00:00
Marina Kolpakova f2c30cd90d resize area for big downscaling integration 2012-06-09 15:24:01 +00:00
Andrey Kamaev f2d3b9b4a1 Warning fixes continued 2012-06-09 15:00:04 +00:00
Marina Kolpakova f6b451c607 fixed another piece of warnings 2012-06-09 10:58:32 +00:00
Marina Kolpakova de23734776 Declaration of color conversion functions are moved in header file to avoid warnings 2012-06-09 09:04:17 +00:00
Marina Kolpakova 324a642a20 Fixed all anomimous warnings 2012-06-09 08:33:25 +00:00
Marina Kolpakova 8eadc49a7b Fixed another one thousand warnings about uninitialized anomimnomous 2012-06-09 08:07:10 +00:00
Vadim Pisarevsky 1e14d84008 possibly fixed crash boost caused by the recent modification; slightly improved mlp params in letter_recog sample 2012-06-09 07:05:24 +00:00
Marina Kolpakova e86f0aaea1 fixed hundreds of "anonymous" warnings for gpu module. 2012-06-08 17:09:38 +00:00
Andrey Kamaev ffa44fb114 Fixed precompiled headers build on Linux 2012-06-08 16:04:14 +00:00
Andrey Kamaev 47a4e87784 Ignored warnings from gtest with precompiled headers enabled 2012-06-08 14:54:17 +00:00
Andrey Kamaev 8720b27d87 Fixed build with TBB for Android 2012-06-08 10:32:51 +00:00
Alexander Kapustin 018d85dddb New Tegra Optimized thresh_16s and thresh_32f functions were added 2012-06-08 08:49:59 +00:00
Andrey Kamaev 2f40905548 Fixed Android build 2012-06-08 08:11:17 +00:00
Kirill Kornyakov ec0ec69307 slightly updated windows_install.rst tutorial 2012-06-08 06:26:16 +00:00
Andrey Kamaev 89e3c461ec Fixed build with TBB 2012-06-08 06:23:28 +00:00
Andrey Kamaev 79df8db76f Fixed recently introduced build problems on some platforms 2012-06-08 06:19:17 +00:00
Andrey Kamaev f62028dc16 Fixed mingw build. 2012-06-08 03:15:08 +00:00
Alexander Shishkov bee982b492 update FFMPEG wrapper binaries 2012-06-07 17:25:39 +00:00
Andrey Kamaev 49a1ba6038 Set stricter warning rules for gcc 2012-06-07 17:21:29 +00:00
Anatoly Baksheev 0395f7c63f fixed relative path for stitching/details headers 2012-06-07 13:42:59 +00:00
Marina Kolpakova 16ef01efda set to linear interpolation type for upscaling with area interplation flag 2012-06-06 16:05:31 +00:00
Marina Kolpakova 75eedf8b03 call not NPP version in case of INTER_AREA resize 2012-06-06 15:38:08 +00:00
Marina Kolpakova 9aa3f754b7 fixed accuracy test 2012-06-06 15:29:24 +00:00
Marina Kolpakova 83390ea4e1 performance test for INTER_AREA resize has been added. 2012-06-06 14:45:33 +00:00
Marina Kolpakova aa8fbc26da fix for down rounded output sizes 2012-06-06 13:25:36 +00:00
Andrey Kamaev 5a41c6509e Fixed build of opencv_world with QT on linux #2012 2012-06-06 13:24:41 +00:00
Marina Kolpakova 8231d0d11d fixed for resize with INTER AREA. Since now we divide by convolved area 2012-06-06 12:12:21 +00:00
Marina Kolpakova eabd757def fixed build 2012-06-06 10:59:10 +00:00
Marina Kolpakova d192117e86 GPU resize with INTER_AREA 2012-06-06 10:39:42 +00:00
Vadim Pisarevsky bc54195199 decreased size of the buffer used in CvBoost::update_weights (ticket #1803) 2012-06-06 10:10:48 +00:00
Vadim Pisarevsky 517fc5e2d2 fixed typo in the tutorial code (thanks to Abid Rahman; ticket #2016) 2012-06-06 10:04:09 +00:00
Andrey Pavlenko da7920ff85 auto-copy java.so to package 2012-06-06 09:22:53 +00:00
Alexander Shishkov 74786075e3 test commit 2012-06-06 09:21:09 +00:00
Andrey Kamaev a91745558f Updated link in android readme 2012-06-06 09:15:14 +00:00
Alexander Shishkov 80a4157f11 test commit 2012-06-06 09:12:11 +00:00
Alexander Mordvintsev 455349a0eb comments for digits.py sample 2012-06-06 05:52:28 +00:00
Vladislav Vinogradov 03a14bb525 fixed build under windows, updated 768x576.avi video (other codec) 2012-06-05 14:16:57 +00:00
Alexander Shishkov f5c7a73143 update FFMPEG wrapper binaries 2012-06-05 14:00:47 +00:00
Vladislav Vinogradov bfb390e82a added gpu::FGDStatModel (Background/foreground segmentation) 2012-06-05 13:32:04 +00:00
Marina Kolpakova 3c16c9c92d fixed #2019 2012-06-05 10:58:53 +00:00
Vladislav Vinogradov df1ca974ca made GPU Feature Extractor download/convertKeypoints() methods static (Feature #2007) 2012-06-05 08:37:16 +00:00
Andrey Kamaev 40c779fcf5 phaseCorrelate documentation patch by Will Lucas #2017 2012-06-05 06:02:50 +00:00
Andrey Kamaev 5b2db8e75b Dragonfly BSD build fix #2010 (thanks to Thomas Klausner) 2012-06-04 06:19:56 +00:00
Marina Kolpakova 74ec5d7cbb fix for ORB tests 2012-06-01 15:15:58 +00:00
Marina Kolpakova 4b1724aeb9 fix for ORB tests 2012-06-01 15:12:10 +00:00
Alexander Shishkov a3c4d1b679 updated pdf's to 2.4.1 2012-06-01 13:44:23 +00:00
Alexander Mordvintsev 3cfa6949d7 work on added digits.py sample (neural network for handwritten digit recognition) 2012-06-01 13:27:56 +00:00
Alexander Shishkov e0b1697cc9 update FFMPEG wrapper binaries 2012-06-01 11:00:59 +00:00
Andrey Kamaev 059b79f7c2 Merged the trunk r8542:8544 2012-06-01 10:59:27 +00:00
Vadim Pisarevsky 2990f23e0c grid-adapted feature detector made a proper Algorithm (ticket #1874) 2012-06-01 09:10:53 +00:00
Vadim Pisarevsky 6206908868 added nmixtures parameter to BackgroundSubtractorMOG2 (ticket #1914) 2012-06-01 09:00:42 +00:00
Vadim Pisarevsky 677680d82d reverted the original VideoCapture::read() code; moved frame index check to where it should belong: ffmpeg wrapper; applied patch by Rob Reilink (ticket #1971) 2012-06-01 08:55:16 +00:00
Andrey Kamaev 586d5a6024 Merged lda fix from 2.4 branch (Fixed reconstruction, so that the mean is correctly added to the reconstructed image.) 2012-06-01 08:48:38 +00:00
Andrey Kamaev 8159ea3386 Merged the trunk r8537 (fixed pdf documentation build) 2012-06-01 08:46:54 +00:00
Andrey Kamaev 50c2443691 Merged Android samples from trunk r8423 r8533 2012-06-01 08:45:45 +00:00
Andrey Kamaev b1c2cba07c Fixed pdf documentation build 2012-06-01 08:30:52 +00:00
Philipp Wagner 0bd287a8f2 Fixed reconstruction, so that the mean is correctly added to the reconstructed image. 2012-05-31 20:27:46 +00:00
Alexander Smorkalov 3780685fe6 CodeReview #1512 notes fixed. 2012-05-31 12:26:29 +00:00
Andrey Kamaev 834a0b518c Trunk OpenCV version is set to 2.4.9 2012-05-31 11:59:43 +00:00
Andrey Kamaev 2ee917c646 Version of 2.4 branch is adjusted to 2.4.1 2012-05-31 11:26:23 +00:00
Andrey Kamaev ca0962c738 Megred fix for pyrhon API generator regression r8528 2012-05-31 11:12:12 +00:00
Andrey Kamaev dde8455db2 removed debug print 2012-05-31 11:06:06 +00:00
Andrey Kamaev 0809ae562e Fixed regression in python wrappers generator 2012-05-31 11:04:11 +00:00
Alexander Smorkalov 5c528defb8 CodeReview #1511 notes upplied. 2012-05-31 10:54:37 +00:00
Andrey Kamaev daad7900e2 Merged the trunk r8517:8524 2012-05-31 10:53:28 +00:00
Andrey Kamaev 9ad470ba5c backported API for storing OpenCV data structures to text string and reading them back (r8481, r8516, r8518, r8522) 2012-05-31 10:25:29 +00:00
Andrey Kamaev 314813e51c Added C++ and python signatures for moveWindow, resizeWindow and setMouseCallback 2012-05-31 08:11:47 +00:00
Andrey Kamaev 9399394e6c Fixed #1996 2012-05-31 08:02:52 +00:00
Andrey Kamaev 1a572c8e89 Added test for #1997; fixed build warnings 2012-05-31 06:59:06 +00:00
Vladislav Vinogradov 4e4b96e3d9 Merged revision(s) 8484 from trunk:
fixed some bugs in gpu module under Windows:
* convertTo alignment error
........
2012-05-30 17:06:39 +00:00
Marina Kolpakova 6d498495d3 tegra integration 2012-05-30 15:56:53 +00:00
Andrey Kamaev bf27889f04 Made reference manual table of contents autogenerated 2012-05-30 14:06:47 +00:00
Vadim Pisarevsky 17d9509e31 changed "void FileStorage::release(string&)" to "string FileStorage::releaseAndGetString()" 2012-05-30 13:02:45 +00:00
Alexander Kapustin 29b9070698 tegra::cvtRGB2HSV function was added 2012-05-30 11:52:53 +00:00
Vadim Pisarevsky 74882fe188 replaced "string FileStorage::release()" with 2 methods to preserve backward compatibility. 2012-05-30 11:29:22 +00:00
Andrey Kamaev 4ddcc31edc Fixed few errors in documentation backporting 2012-05-30 11:20:55 +00:00
Andrey Kamaev 81a5988015 Merged the trunk r8467:8507 (inclusive) (big bunch of documentation fixes) 2012-05-30 11:13:07 +00:00
Andrey Kamaev 052d2dc23a Merged the trunk r8459:8466 (inclusive) 2012-05-30 09:00:32 +00:00
Andrey Kamaev 949c4edf41 Merged the trunk r8408:8457 (inclusive) 2012-05-30 08:47:34 +00:00
Andrey Kamaev 7b5a45eac4 Merged the trunk r8384:8407 (inclusive) 2012-05-30 08:04:37 +00:00
Vladislav Vinogradov 48c3cfdfd0 fixed mark_nvidia.py script (warpAffine and warpPerspective) 2012-05-30 05:44:34 +00:00
Andrey Kamaev ae3c754bb3 Fixed Java API build 2012-05-29 17:13:24 +00:00
Andrey Kamaev a20248977c Documentation: fixed class/struc members documentation; added warning on incorrectly documented member 2012-05-29 16:55:46 +00:00
Andrey Kamaev aaf043e7ba Documentation: fixed operators regex; added varargs support 2012-05-29 15:42:38 +00:00
Andrey Kamaev cf25f572a6 Documentation: improved correctness checking for superclasses 2012-05-29 14:51:59 +00:00
Andrey Kamaev dad75658f2 Documentation: added support for multiple superclasses 2012-05-29 14:18:43 +00:00
Andrey Kamaev bb69e03f12 Documentation: added support for virtual methods 2012-05-29 13:59:49 +00:00
Andrey Kamaev b69e08cf51 Documentation: added support for superclasses in class definition #1308 2012-05-29 13:42:50 +00:00
Alexander Smorkalov 8c50f3e8ae Native camera libs rebuilt for bug #1989 fix. 2012-05-29 13:11:08 +00:00
Alexander Smorkalov 6903e8f0fd Bug #1989 fixed. NULL pointer check added. 2012-05-29 12:13:51 +00:00
Evgeny Talanin d3c73071ea Temporarily disable test on Mac 2012-05-29 11:41:24 +00:00
Andrey Kamaev 4800d85011 Fixed documentation generation for function arguments having array type i.e. 'type arg[]' 2012-05-29 11:41:23 +00:00
Vladislav Vinogradov 72d2311edf Merged revision(s) 8495 from trunk:
Bug #1991 : fixed gpu interpolation (remap, resize, warp...)
........
2012-05-29 11:35:30 +00:00
Vladislav Vinogradov 6f32fb025d Bug #1991 : fixed gpu interpolation (remap, resize, warp...) 2012-05-29 11:30:44 +00:00
Andrey Pavlenko eb4ce67dac fixing Java test and sample after moving drawContours() from Imgproc to Core 2012-05-29 11:04:04 +00:00
Andrey Kamaev 40e8d08e8d Added check for trailing semicolon to rst parser; fixed few documentation build warnings 2012-05-29 10:57:25 +00:00
Andrey Kamaev 05de6302fd Fixed documentation: corrected parameter names 2012-05-29 10:36:19 +00:00
Vladislav Vinogradov 67b718f1cb fixed some bugs in gpu module under Windows:
* convertTo alignment error
* compare with scalars error
2012-05-29 08:03:36 +00:00
Andrey Kamaev c492dc6a83 Fixed property names in cap_dshow #1993 2012-05-29 05:41:46 +00:00
Andrey Kamaev 6ca618277c More fixes for documentation. 2012-05-28 20:11:38 +00:00
Vadim Pisarevsky bc929a7d46 added API for storing OpenCV data structures to text string and reading them back 2012-05-28 15:38:58 +00:00
Andrey Kamaev 18a8721f49 Small fixes for documentation checking script 2012-05-28 15:29:21 +00:00
Andrey Kamaev ddd9a99c66 Added check for documented but missing functions 2012-05-28 14:45:14 +00:00
Andrey Kamaev 78329b0dfe New bunch of documentation fixes 2012-05-28 14:36:15 +00:00
Vladislav Vinogradov d382fa56c7 Merged revision(s) 8474 from trunk:
fixed several problems with CUDA 5.0
* gpu::LUT, uses device memory instead of host memory
* gpu::multiply, round mod for CV_8U depth
........
2012-05-28 14:04:39 +00:00
Andrey Kamaev 4aaaef5967 remaining C-style planar subdivisions data structures are moved to legacy 2012-05-28 13:57:45 +00:00
Kirill Kornyakov 5c13b8706f added fix_properties scripts for Android samples 2012-05-28 13:31:44 +00:00
Vladislav Vinogradov 2582464e51 fixed several problems with CUDA 5.0
* gpu::LUT, uses device memory instead of host memory
* gpu::multiply, round mod for CV_8U depth
2012-05-28 12:09:40 +00:00
Andrey Kamaev 71625ad458 Fixed more documentation & source discrepancies 2012-05-28 11:22:43 +00:00
Alexander Mordvintsev a61b730238 compatibility corrections 2012-05-28 09:25:08 +00:00
Marina Kolpakova 00117d2a6e warp Affine tegra integration 2012-05-28 08:53:03 +00:00
Alexander Mordvintsev e0c1fb5f76 updated video_threaded.py sample:
- switch btw threaded and non-threaded mode
- performance counters
- description
2012-05-28 08:51:50 +00:00
Vladislav Vinogradov addcd16d8f minor fix of gpu perf tests 2012-05-28 08:08:14 +00:00
Andrey Kamaev eb2f1f81ed Fixed hundreds of documentation problems 2012-05-28 07:36:14 +00:00
Andrey Kamaev 7e698726e4 Added new script for checking correctness of documentation 2012-05-28 07:34:49 +00:00
Andrey Kamaev 9d73b5f510 Added test for #914 2012-05-25 17:56:28 +00:00
Alexander Mordvintsev 6116049225 video_threaded.py sample now uses multiprocessing module's ThreadPool 2012-05-25 14:38:39 +00:00
Alexander Shishkov a71e690b5e temp commit 2012-05-25 13:35:14 +00:00
Alexander Shishkov 3165b22a97 temp commit 2012-05-25 13:16:16 +00:00
Andrey Kamaev eb90882b2d Fixed some build warnings 2012-05-25 13:13:51 +00:00
Andrey Kamaev ca6d2fe76b Moved 3rd-party libraries detection to separate cmake files 2012-05-25 13:12:02 +00:00
Alexander Shishkov 2ac9338f87 temp commit 2012-05-25 13:11:34 +00:00
Andrey Kamaev 0e9e0a01db Added new perf tests for boxFilter 2012-05-25 11:26:43 +00:00
Anatoly Baksheev 4ce8de5174 Merged revision(s) 8455 from trunk/opencv/modules/gpu/src:
compilation with CUDA5.0 (#1982, thanks to Rodrigo)
........
2012-05-25 09:45:42 +00:00
Anatoly Baksheev 543825f2f5 compilation with CUDA5.0 (#1982, thanks to Rodrigo) 2012-05-25 09:44:00 +00:00
Andrey Kamaev 6c86cce21f Fixed groupRectangles documentation #1817 2012-05-25 09:04:26 +00:00
Andrey Kamaev ab6f0c4e0b Added tegra stub for cornerEigenValsVecs 2012-05-25 08:20:13 +00:00
Andrey Kamaev e161f428a0 Fixed PvAPI search on Windows #1927 2012-05-24 20:10:13 +00:00
Anatoly Baksheev 6455488ff4 perf_framework: added TEST_CYCLE_MULTIRUN macros ( invokes function tested several times at each iteration ) 2012-05-24 17:12:14 +00:00
Maria Dimashova 276a3fe01b fixed #1981 2012-05-24 16:52:14 +00:00
Andrey Kamaev a33d67f48a Updated sanity checks for some imgproc perf tests 2012-05-24 15:42:07 +00:00
Alexander Mordvintsev eb28bef2db added video_threaded.py sample 2012-05-24 15:40:55 +00:00
Vadim Pisarevsky 513080ea12 some more fixes in Algorithm methods declarations 2012-05-24 11:50:54 +00:00
Andrey Kamaev 0fe0a88108 Minor cmake change 2012-05-23 19:28:41 +00:00
Vladislav Vinogradov 3fe100a093 added mark_nvidia script 2012-05-23 13:55:10 +00:00
Vladislav Vinogradov 77f22fe366 minor fix of gpu perf tests 2012-05-23 13:20:53 +00:00
Vadim Pisarevsky 159cc29bb5 fixed undistortPoints description (ticket #1964) 2012-05-23 13:01:40 +00:00
Vladislav Vinogradov f07250acf3 updated gpu performance tests 2012-05-23 12:58:01 +00:00
Vadim Pisarevsky 5cc4d23d1e fixed description of cv::invert() (ticket #1972) 2012-05-23 12:52:46 +00:00
Vadim Pisarevsky 01169ec826 fixed description of Algorithm::getList(); added sample, thanks to Shervin Emami (ticket #1972) 2012-05-23 12:35:51 +00:00
Andrey Kamaev 3108423a37 Fixed assert placement in cv::invert 2012-05-23 09:28:26 +00:00
Andrey Kamaev 88c934ea8c Added documentation for buildOpticalFlowPyramid 2012-05-23 08:50:43 +00:00
Vladislav Vinogradov 6d08d04293 compilation 2012-05-22 18:59:26 +00:00
Anatoly Baksheev 671233cd46 gpu: added Cascade and mulAndScaleSpectrums perf tests 2012-05-22 18:58:01 +00:00
Alexander Mordvintsev e703e8f5a6 exposed MSER to python again 2012-05-22 15:53:39 +00:00
Alexander Smorkalov fc71745caf cv::Exception handling added. Multithreading bug fixed. 2012-05-22 14:47:40 +00:00
Vladislav Vinogradov 3c7240024e updated filters performance tests in gpu module 2012-05-22 13:59:40 +00:00
Leonid Beynenson 32878f8577 Added a check of the DetectionBasedTracker's inner state in the main thread function of this class.
This change should fix a multithread bug in the class.
2012-05-22 13:24:37 +00:00
Anatoly Baksheev 32c7eeca78 arithm test gpu tests for cpu :) 2012-05-22 13:15:22 +00:00
Alexander Smorkalov b422d078f8 Face detection example updated. Dtetection base tracker mode added. 2012-05-22 12:21:26 +00:00
Vladislav Vinogradov 9bddac1099 fixed gpu-vs-cpu performance tests 2012-05-22 11:27:45 +00:00
Alexander Mordvintsev 61fd5ed0e1 fixed #1969 2012-05-22 11:21:25 +00:00
Vladislav Vinogradov 1d57911646 updated gpu-vs-cpu performance tests 2012-05-22 10:29:58 +00:00
Alexander Mordvintsev ddf7fde3b2 fixed gaussian_mix.py sample 2012-05-22 09:11:09 +00:00
Anatoly Baksheev 4793ca8fbb fixed precom for opencv_perf_gpu_cpu 2012-05-22 08:54:48 +00:00
Alexander Mordvintsev cef18937a2 made video_dmtx.py description visible in demo.py 2012-05-22 08:45:10 +00:00
Alexander Mordvintsev f4f41df756 removed derivLambda param for LK-tracker
linetype -> lineType
2012-05-22 08:43:42 +00:00
Vladislav Vinogradov d78aa7c937 added cpu performance test for gpu module 2012-05-22 08:29:08 +00:00
Alexander Mordvintsev 8429c109be FIX: VideoCapture::read() was returning empty image for camera captures 2012-05-22 07:58:31 +00:00
Andrey Kamaev 37d9c3f835 Fixed some corner cases of opencv_world configuration 2012-05-21 20:15:17 +00:00
Andrey Kamaev 13a79c753f Updated to TBB4.0 update 4 for Android build 2012-05-21 19:25:03 +00:00
Vadim Pisarevsky 41c932f306 FaceRecognizer class is now derived from Algorithm, therefore it's possible to set and retrieve the parameters using conventional Algorithm::set and Algorithm::get methods 2012-05-21 15:27:40 +00:00
Vadim Pisarevsky fd68cc768a fixed 2 build problems on MacOSX (highgui with ffmpeg, opencv_world); added macro CV_INIT_ALGORITHM for simpler algorithm registration (ticket #1876) 2012-05-21 14:56:07 +00:00
Andrey Kamaev 9bc5afd278 Updated tegra optical flow stub 2012-05-21 13:57:36 +00:00
Leonid Beynenson daec4d88fa Now the DetectionBasedTracker will throw exception if it cannot load cascade detector from a file. 2012-05-21 13:54:42 +00:00
Andrey Kamaev 47f72b538f Added new performance tests for calcOpticalFlowPyrLK and buildOpticalFlowPyramid; extracted private header from lkpyramid.cpp 2012-05-21 13:07:53 +00:00
Andrey Kamaev ac8f61ee91 Fixed Linux build 2012-05-21 08:53:38 +00:00
Maria Dimashova 608855a322 include nonfree for a couple of f2d samples 2012-05-21 08:47:57 +00:00
Andrey Kamaev decd6c0fab Restored QuartzCore framework for OS X 2012-05-20 19:05:36 +00:00
Andrey Kamaev 0716ebb7a6 Refactored highgui libraries search (tested on Windows only) 2012-05-20 18:49:57 +00:00
Andrey Kamaev c9027fecc0 Fixed few MinGW build problems 2012-05-20 18:45:19 +00:00
Andrey Kamaev 5a3cbadfe3 Fixing Android SDK search on OS X. 2012-05-20 08:26:20 +00:00
Maria Dimashova 4d36be8794 skip of table header in MLData (#1962) 2012-05-19 14:34:36 +00:00
Andrey Kamaev 094c32ced7 Refactored CMake status report for video IO libs 2012-05-19 13:48:36 +00:00
Andrey Kamaev 9961658eab Fixing compile on some MinGW platforms 2012-05-19 10:44:43 +00:00
Andrey Kamaev d069c062a6 Added Windows paths support to Eigen search. 2012-05-19 10:14:10 +00:00
Andrey Kamaev f8368ba6da MinGW: try -mpreferred-stack-boundary instead of mstackrealign 2012-05-19 08:50:24 +00:00
Andrey Kamaev 18c52c309b Restored -O2 for MinGW 2012-05-18 17:32:55 +00:00
Maria Dimashova 28297c0224 fixed Mat::diag (#1939) 2012-05-18 14:38:54 +00:00
Andrey Kamaev 80f1b1478d Fixed parameter name and copy condition 2012-05-18 13:29:49 +00:00
Andrey Kamaev e1c4fd9e1f Merged the trunk r8345:8376 2012-05-18 13:18:37 +00:00
Andrey Kamaev 70166820ea Merged the trunk r8324:8345 2012-05-18 12:59:40 +00:00
Andrey Kamaev aebed446b1 Partly merged the trunk r8322 2012-05-18 12:46:44 +00:00
Andrey Kamaev c3577a288b Merged the trunk r8291:8321 2012-05-18 12:34:01 +00:00
Andrey Kamaev 50ad690993 Merged the trunk till r8291 2012-05-18 12:18:17 +00:00
Andrey Kamaev e309c51430 Fixed phaseCorrelate result for not power of 2 size images #1812 (thanks to Jeff Mast) 2012-05-18 08:33:19 +00:00
Andrey Kamaev b8804ccc17 Fixed problem with manually set PYTHON_PACKAGES_PATH #1891 2012-05-18 07:43:12 +00:00
Andrey Kamaev 639bf3ee8f Fixed accumulateWeighted with mask for multichannel matrices #1959 2012-05-18 06:08:14 +00:00
Andrey Kamaev 4a3141accf #1932 Fixed SSE instability on mingw32 2012-05-17 20:25:12 +00:00
Andrey Kamaev def87eae19 Fixed MinGW build after r8358 2012-05-17 20:19:48 +00:00
Andrey Pavlenko e3fc405393 fix for #1954 (typos) 2012-05-17 19:36:38 +00:00
Anatoly Baksheev caddd398e6 Merged revision(s) 8368 from trunk/opencv/modules/gpu/src/imgproc.cpp:
fixed possible compilation error for macos
........
2012-05-17 15:00:36 +00:00
Anatoly Baksheev b82b4a640d fixed possible compilation error for macos 2012-05-17 14:55:29 +00:00
Andrey Pavlenko 5855c4905e Android samples are updated: onPause()/onResume() release/open camera, a message is shown on camera open error, minor fixes in code and resources 2012-05-17 14:51:04 +00:00
Andrey Kamaev 0ba3236ce0 Fixed Algorithm usage example #1904 2012-05-17 10:52:07 +00:00
Andrey Kamaev 8f3273bf07 Refactored per-computed pyramid handling in calcOpticalFlowPyrLK #1321 2012-05-17 10:29:53 +00:00
Vadim Pisarevsky 00c30681bc Added Snap-to-Screen Edge feature in the case of multiple monitors (patch by Adi Shavit) 2012-05-16 16:13:24 +00:00
Andrey Kamaev 5f9e295adf Added test and workaround for #1942 2012-05-16 15:11:17 +00:00
Andrey Kamaev a877ecdcf0 Added option to pass pre-computed pyramid to piramidal LK optical flow #1321 2012-05-16 14:52:46 +00:00
Vadim Pisarevsky f620f1ce57 fixed building avfoundation on MacOSX with iOS targets 2012-05-15 15:34:53 +00:00
Vadim Pisarevsky 8a5b6ced1a fixed background update in GMM2 algorithm (ticket #1931) 2012-05-15 14:25:07 +00:00
Andrey Kamaev d2da219ec0 Fixed incorrect CMake variable name 2012-05-15 07:43:00 +00:00
Andrey Kamaev 9275adff81 Applied patch for IPP linking under MinGW (thanks to Philippe FOUBERT) #1906 2012-05-14 14:56:17 +00:00
Andrey Kamaev 26fb7603c0 Fixed typo #1896 2012-05-14 14:51:13 +00:00
Andrey Kamaev 07658aeb74 Fixed replacement of -O3 with -O2 for mingw compiler #1896 2012-05-14 14:19:28 +00:00
Andrey Kamaev 78915e016c Fixed python version issue #1903 2012-05-14 14:05:25 +00:00
Andrey Kamaev 8d135e8ea1 Shortened CMake script for opencv_world. Fixed opencv_world link with non-Visual Studio generators on Windows. 2012-05-13 09:34:33 +00:00
Vadim Pisarevsky 6dde56faf4 fixed building opencv_world with VS2010 2012-05-12 16:27:40 +00:00
Andrey Kamaev 3ec3c59197 Updated sanity threshold for convertTo perf test 2012-05-12 15:12:21 +00:00
Vadim Pisarevsky 9bbcebd6b0 added opencv_world module that combines all the other [selected by user] OpenCV modules, except for opencv_python and opencv_gpu. 2012-05-12 13:54:26 +00:00
Andrey Kamaev 8408499c94 Updated dot profuct function table 2012-05-12 11:44:54 +00:00
Vladislav Vinogradov 9df6e51a5b added gpu::compare with scalars (Feature #1754) 2012-05-12 09:45:21 +00:00
Alexander Smorkalov abe16352d6 ColorBlobDetection example. Bug fix. Refactoring. 2012-05-12 07:38:31 +00:00
Vladislav Vinogradov ef478840af added message that timings doesn't include data transfer to gpu performance sample (Issue #1846) 2012-05-12 06:28:51 +00:00
Alexander Smorkalov e62f147edc ColorBlobDetection example. Bug fix. Refactring. 2012-05-12 06:15:32 +00:00
Alexander Smorkalov b7c1fd34b9 ColorBlobDetection example. Pyrdown added. Contour area filtering added. 2012-05-12 05:19:17 +00:00
Vadim Pisarevsky 52797a55e2 added support for vector<Mat_<>> in InputArray, OutputArray, split & merge 2012-05-11 13:36:48 +00:00
Vadim Pisarevsky 7a7dae3627 fixed problem with Mat::copyTo() with Mat_<> arguments (ticket #1918) 2012-05-11 12:40:20 +00:00
Vadim Pisarevsky e794622776 propagated 2 fixed from 2.4 to trunk 2012-05-11 11:48:26 +00:00
Vladislav Vinogradov 2dafc9a853 fixed build under MacOS (disabled video decoding, it's not supported) 2012-05-11 11:48:15 +00:00
Vladislav Vinogradov 91e312958b disabled WITH_OPENGL flag under MacOS 2012-05-10 09:53:57 +00:00
Andrey Kamaev ba238562c6 Fix for #1902 is merged from trunk 2012-05-07 14:05:06 +00:00
Andrey Kamaev 31723effe7 #1902 added workaround for CMake 2.8.2 bug 2012-05-07 14:01:36 +00:00
Alexander Reshetnikov 57e26bde9f Accelerating the completion of video bypass (bug #1893) 2012-05-05 17:28:05 +00:00
Alexander Reshetnikov 3ec43a11ed Fixed read error in VideoCapture for images (bug #1892); minor fix of ffmpeg wrapper warning 2012-05-05 14:43:03 +00:00
Anatoly Baksheev 1313d8a570 added check for CMake 2.8.3 for CUDA support 2012-05-05 09:43:18 +00:00
Anatoly Baksheev 01e93d57f0 Merged from trunk. 2012-05-05 09:25:37 +00:00
Philipp Wagner 86524b0e4a Fixed facerec_demo.cpp. 2012-05-05 09:16:21 +00:00
Alexander Smorkalov bae8a88c53 Base version implemented. 2012-05-04 13:46:00 +00:00
Anatoly Baksheev fe91d1ca57 compilation for Macos 2012-05-04 12:11:01 +00:00
Anatoly Baksheev 70f74b70b7 fixed GPU compilation 2012-05-04 11:07:36 +00:00
Anatoly Baksheev 10459a886b Added check for CUDA toolkit version ( older can't compile Kepler ) 2012-05-04 10:34:57 +00:00
Anatoly Baksheev 962754141a Added check for CUDA toolkit version ( older can't compile Kepler ) 2012-05-04 10:31:40 +00:00
Anatoly Baksheev 215dd2a41b Merged revision(s) 8304 from trunk/opencv/cmake/OpenCVDetectCUDA.cmake:
Added check for CUDA toolkit version ( older can't compile Kepler )
........
2012-05-04 10:24:23 +00:00
Anatoly Baksheev 03f122ca88 Added check for CUDA toolkit version ( older can't compile Kepler ) 2012-05-04 10:20:20 +00:00
Marina Kolpakova 025f6674db update for kepler arch support 2012-05-04 10:09:17 +00:00
Anatoly Baksheev c05ebdffd8 Added default compilation for Kepler 2012-05-04 09:54:48 +00:00
Vadim Pisarevsky 3f5d722f34 fixed typo in mulSpectrums description (ticket #1868) 2012-05-03 15:14:53 +00:00
Andrey Kamaev 0fecbdde6e Added Android NDK r8 support including new mips ABI 2012-05-03 10:40:29 +00:00
Anatoly Baksheev ab4025f8de fixed for Kepler 2012-05-03 10:23:23 +00:00
Vladislav Vinogradov c65b7a9980 removed #include "cap_ffmpeg_impl_v2.hpp" 2012-05-03 08:34:14 +00:00
Andrey Kamaev 860172c626 run.py - fixed java tests launch on Windows 2012-05-03 07:50:24 +00:00
Anatoly Baksheev a79c52a28f updated printCudaDeviceInfo to support Kepler 2012-05-02 21:55:38 +00:00
Marina Kolpakova 6e6271d995 Debug/Release folders fix for QTCreator build 2012-05-02 20:26:19 +00:00
Andrey Kamaev 3a1f85d4e8 Remerged the 2.4.0 branch 2012-05-02 20:20:14 +00:00
Vladislav Vinogradov 77717e1abc fixed opencv_ffmpeg.dll name in gpu video encoding/decoding 2012-05-02 13:23:11 +00:00
Vladislav Vinogradov ca57239618 fixed some problems after r8280 (lost code) 2012-05-02 13:07:30 +00:00
Vadim Pisarevsky d5a0088bbe merged 2.4 into trunk 2012-04-30 14:33:52 +00:00
Vladislav Vinogradov 3f1c6d7357 fixed PyrLKOpticalFlow.dense (final result size) 2012-04-28 13:12:14 +00:00
Vladislav Vinogradov 917063b7f7 reverted r8003 (CascadeClassifier_GPU) 2012-04-28 08:41:10 +00:00
Vladislav Vinogradov 76dc827648 added BruteForceMatcher_GPU (for legacy) 2012-04-28 07:41:21 +00:00
Alexey Spizhevoy 30431b94d9 Replaced CV_RANSAC in findHomography with CV_LMEDS (videostab) 2012-04-27 12:38:33 +00:00
Gary Bradski 54f92013b0 fix to Detector::write so that it doesn't abort on read 2012-04-27 04:05:33 +00:00
Alexey Spizhevoy 2799f51bf9 Minor changes in videostab module 2012-04-26 11:56:30 +00:00
Alexey Spizhevoy 02d34bdac2 Refactored videostab module 2012-04-26 09:01:15 +00:00
Alexander Kapustin 79e2070606 5 functions from addWeighted_func family were Neon Optimized 2012-04-26 08:18:01 +00:00
Alexander Kapustin 3e899f6fd7 File perf_addWeited.cpp added 2012-04-26 07:20:13 +00:00
Alexey Spizhevoy 2270c2f5bd Refactored videostab module 2012-04-26 07:11:01 +00:00
Alexandre Benoit 9dfb1f77a0 fixed a dicide by zero potential problem 2012-04-25 13:56:09 +00:00
Alexandre Benoit 18fdc6bf1c user can now use the default retia config auatogenerated file to test their own setup 2012-04-25 13:55:14 +00:00
Alexey Spizhevoy 71391eb76f Added LP based global motion estimation (videostab) 2012-04-25 13:21:38 +00:00
Vladislav Vinogradov 11eacb9d14 Bug #1823 : fixed patch size calculation in PyrLKOpticalFlow 2012-04-25 07:03:32 +00:00
Vladislav Vinogradov 092c1f98f6 fixed build of gpu demos pack 2012-04-25 06:27:55 +00:00
Vladislav Vinogradov 4ddde66b48 fixed build without ffmpeg (gpu module) 2012-04-24 14:15:38 +00:00
Vladislav Vinogradov 1fba38d01c updated gpu docs (BFMatcher_GPU) 2012-04-24 13:35:58 +00:00
Vladislav Vinogradov 5bafb372af fixed bug in ORB_GPU, behavior in the absence of keypoints found (Bug #1831) 2012-04-24 13:18:34 +00:00
Vladislav Vinogradov 70f8b8b5ec fixed GPU_NVidia/NCV.Visualization test 2012-04-24 12:36:15 +00:00
Alexey Spizhevoy 95efec7539 Added local outlier rejector. Added rigid motion estimator. Refactored videostab module. 2012-04-24 12:23:23 +00:00
Vladislav Vinogradov 6e830cf8f8 added additional tests to gpu::BFMatcher 2012-04-24 11:21:23 +00:00
Vladislav Vinogradov 44eaeee865 refactored gpu BruteForceMather (made it similar to BFMatcher) 2012-04-24 07:56:33 +00:00
Vladislav Vinogradov c2935a6532 fixed build of gpu module without CUDA (video encoding/decoding) 2012-04-24 07:49:55 +00:00
Vladislav Vinogradov f65d841d6f fixed several warnings (VS2010, Win64)
added getParams method to VideoWriter_GPU
2012-04-23 14:22:02 +00:00
Alexey Spizhevoy 24be840c44 Added GPU version of wobble suppressor (videostab) 2012-04-23 10:37:07 +00:00
Alexander Kapustin 3675ef516a 6 functions from Inrange_func family were Neon Optimized 2012-04-23 09:31:08 +00:00
Alexander Kapustin 0094b468e6 Fail perf_inRange.cpp added 2012-04-23 09:09:30 +00:00
Vladislav Vinogradov 1eebb4506a removed unnecessary CV_EXPORTS 2012-04-23 08:31:14 +00:00
Alexey Spizhevoy 36ef599840 Fixed trim ratio estimation for the case of homographies motion model (videostab) 2012-04-23 06:42:55 +00:00
Alexey Spizhevoy ae8d377561 Replaced DECOMP_SVD with DECOMP_NORMAL|DECOMP_LU for speed (videostab) 2012-04-20 09:02:39 +00:00
Alexey Spizhevoy e49ea39a1f Fixed parsing cmd args bug (videostab) 2012-04-19 12:16:45 +00:00
Alexey Spizhevoy f355f798a4 Minor changes in videostab module and sample 2012-04-19 10:27:17 +00:00
Alexey Spizhevoy f42eea1029 Added timing for main steps (videostab) 2012-04-19 09:29:13 +00:00
Alexey Spizhevoy ada63d1800 Updated videostab sample 2012-04-19 08:38:42 +00:00
Alexey Spizhevoy 536d36b05a Refactoring (videostab) 2012-04-18 17:00:07 +00:00
Alexey Spizhevoy 1569c1ed52 Added GPU version of PyrLK based global motion estimator (videostab) 2012-04-18 13:23:41 +00:00
Vladislav Vinogradov 1351f4c8ef added docs for VideoReader_GPU 2012-04-18 12:46:56 +00:00
Vladislav Vinogradov e29d41c885 minor fix in gpu video_writer sample 2012-04-18 11:49:17 +00:00
Vladislav Vinogradov dd6b11b87d fixed build without CUDA 2012-04-18 11:25:56 +00:00
Vladislav Vinogradov f4b4665940 added VideoReader_GPU 2012-04-18 11:18:25 +00:00
Andrey Pavlenko b0dd192d52 fixing #1800 2012-04-17 15:33:18 +00:00
Vladislav Vinogradov ffbee1fe97 added docs for VideoWriter_GPU 2012-04-17 11:36:37 +00:00
Vladislav Vinogradov 70909738f4 added support of different surface formats to VideoWriter_GPU
added key frame handling to ffmpeg wrappers
2012-04-17 11:08:08 +00:00
Alexey Spizhevoy 4c44ccc3c9 Removed unnecessary code (videostab) 2012-04-17 09:30:16 +00:00
Alexey Spizhevoy dfedaff99b Removed unnecessary code (videostab) 2012-04-17 09:21:09 +00:00
Alexey Spizhevoy 19c30eaa11 Refactored videostab module 2012-04-17 09:12:14 +00:00
Vladislav Vinogradov 2bfaf540a1 added VideoWriter_GPU 2012-04-17 07:12:16 +00:00
Alexey Spizhevoy 0824cf5059 Added info about papers (videostab) 2012-04-16 11:45:08 +00:00
Alexander Kapustin 9bb6e899f3 12 functions from Norm_func family were Neon Optimized 2012-04-16 11:39:38 +00:00
Alexey Spizhevoy 8c4ffc8bb2 Fixed typo (videostab) 2012-04-16 11:14:30 +00:00
Alexey Spizhevoy 306248e444 Added support of Clp for Windows 2012-04-16 11:10:41 +00:00
Alexey Spizhevoy 601d2843f4 Fixed LP based stabilizer 2012-04-16 07:08:28 +00:00
Alexey Spizhevoy 40e7990b6b Added linear programming based stabilizer (videostab) 2012-04-16 06:41:06 +00:00
Andrey Kamaev c4af85043a merged few missed changes from 2.4 to trunk 2012-04-15 23:19:57 +00:00
Vadim Pisarevsky 2fd1e2ea57 merged all the latest changes from 2.4 to trunk 2012-04-13 21:50:59 +00:00
Alexey Spizhevoy 020f9a6047 Updated Clp library related code in CMakeLists.txt 2012-04-13 11:55:12 +00:00
Alexey Spizhevoy cc0ecf9123 Removed unnecessary line (videostab) 2012-04-12 13:58:25 +00:00
Alexey Spizhevoy df410ce246 Removed unnecessary line (videostab) 2012-04-12 13:57:28 +00:00
Ilya Lysenkov 04ac6db04a Added support of CV_16S depth in morphology operations 2012-04-12 10:55:47 +00:00
Alexey Spizhevoy 9d871abd32 Refactored videostab module. Added normalization into motion estimators. 2012-04-11 14:02:10 +00:00
Ilya Lysenkov 258afe7cc2 Added OPTFLOW_LK_GET_MIN_EIGENVALS flag as alias for CV_LKFLOW_GET_MIN_EIGENVALS. 2012-04-11 12:36:16 +00:00
Alexey Spizhevoy ae839df55d Added WITH_CLP flag support into cmake scripts. 2012-04-11 12:34:30 +00:00
Alexey Spizhevoy b5a1bad7a4 Added more flags for motion estimation in videostab sample 2012-04-11 10:17:35 +00:00
Alexey Spizhevoy b549900fe1 Minor fixes and updates in videostab module and sample 2012-04-10 10:33:19 +00:00
Alexey Spizhevoy 673f879ccd Fixed bug in videostab sample. Fixed model size in global estimators. 2012-04-10 09:07:30 +00:00
Alexander Shishkov bf00eba093 update FFMPEG wrapper binaries 2012-04-09 20:17:58 +00:00
Alexander Shishkov bf250b6fed update FFMPEG wrapper binaries 2012-04-09 15:39:02 +00:00
Alexander Shishkov 63a3211314 update FFMPEG wrapper binaries 2012-04-09 15:18:07 +00:00
Alexander Shishkov 302ececf6b update FFMPEG wrapper binaries 2012-04-09 13:37:13 +00:00
Alexey Spizhevoy 39cd13583f Fixed bug in motion stabilization pipeline and updated wobble stabilizer (videostab) 2012-04-09 11:58:56 +00:00
Alexey Spizhevoy 30b461a506 Added support of homography motion model into vidostab sample 2012-04-06 10:51:46 +00:00
Alexey Spizhevoy d9d4755387 Updated wobble suppression code in videostab module 2012-04-06 08:52:31 +00:00
Alexey Spizhevoy fa09f3d121 Refactored videostab module. Added MoreAccurateMotionWobbleSuppressor class 2012-04-05 13:23:42 +00:00
Alexey Spizhevoy f32b645b96 Refactored videostab module, added base class for woobble suppression 2012-04-05 09:15:13 +00:00
Marius Muja fd9a8c609f Bug fix in LSH index 2012-04-05 06:46:42 +00:00
Andrey Pavlenko dc8c281fa1 fixing compilation 2012-04-05 05:02:24 +00:00
Alexey Spizhevoy a7da9681c3 Added motion stabilization pipeline (videostab module) 2012-04-04 13:58:38 +00:00
Alexander Mordvintsev 5ee7596cbc fixed EM sample 2012-04-04 12:06:36 +00:00
Alexey Spizhevoy 9c44715f50 Added asserts into global motion estimation functions (videostab module) 2012-04-04 11:49:48 +00:00
Alexey Spizhevoy efa0717d01 Added support of homography estimation into videostab module 2012-04-04 11:45:16 +00:00
Alexey Spizhevoy ecb1f0e288 Fixed some bugs in videostab module and refactored it 2012-04-04 09:28:47 +00:00
Vladislav Vinogradov 2659453694 merged revisions r7808 from 2.4 branch 2012-04-03 06:49:13 +00:00
Alexander Kapustin 42e0214de5 36 functions of cvtScaleTIPES_func were Neon Optimized 2012-04-03 05:53:26 +00:00
Alexander Shishkov 9bfd50e6ae merged revisions r7802,r7804,r7805 from 2.4 branch 2012-04-03 00:33:33 +00:00
Alexey Spizhevoy 56b5e6d8a8 Updated videostab module 2012-04-02 12:26:05 +00:00
Alexander Smorkalov abbfa848ba Issue 1119 Build for x86. Build script added. Tests are ok. 2012-04-02 09:44:36 +00:00
Alexey Spizhevoy 3e23bb6df6 Refactored videostab module and sample 2012-04-02 09:25:27 +00:00
Vladislav Vinogradov 5fe493474c minor fix of gpu performance sample 2012-04-02 08:55:04 +00:00
Vladislav Vinogradov c02c676865 fixed gpu performance sample (SURF usage)
added tests for filter2D
2012-04-02 08:53:06 +00:00
Vladislav Vinogradov 489a1da0ed fixeg gpu::Laplacian 2012-04-02 08:20:23 +00:00
Andrey Kamaev b880bbcc18 Fixed Java API build 2012-04-01 10:19:54 +00:00
2625 arquivos alterados com 643278 adições e 298030 exclusões
+55
Ver Arquivo
@@ -0,0 +1,55 @@
.git* export-ignore
* text=auto
* whitespace=!indent,trail,space
*.py text whitespace=tab-in-indent,trail,space,fix
*.cpp text whitespace=tab-in-indent,trail,space,fix
*.hpp text whitespace=tab-in-indent,trail,space,fix
*.cxx text whitespace=tab-in-indent,trail,space,fix
*.hxx text whitespace=tab-in-indent,trail,space,fix
*.mm text whitespace=tab-in-indent,trail,space,fix
*.c text whitespace=tab-in-indent,trail,space,fix
*.h text whitespace=tab-in-indent,trail,space,fix
*.i text whitespace=tab-in-indent,trail,space,fix
*.java text whitespace=tab-in-indent,trail,space,fix
*.cu text whitespace=tab-in-indent,trail,space,fix
*.cl text whitespace=tab-in-indent,trail,space,fix
*.cmake text whitespace=tab-in-indent,trail,space,fix
*.cmakein text whitespace=tab-in-indent,trail,space,fix
*.in text whitespace=tab-in-indent,trail,space,fix
CMakeLists.txt text whitespace=tab-in-indent,trail,space,fix
*.rst text whitespace=tab-in-indent,trail,space,fix
*.png binary
*.jepg binary
*.jpg binary
*.exr binary
*.ico binary
*.a binary
*.so binary
*.dll binary
*.pdf binary
*.pbxproj binary
*.vec binary
*.doc binary
*.css_t text
*.qrc text
*.qss text
*.S text
*.xml -text
*.yml -text
*.vcproj text eol=crlf merge=union
*.cproject text eol=crlf merge=union
*.bat text eol=crlf
*.cmd text eol=crlf
*.cmd.tmpl text eol=crlf
*.sh text eol=lf
+8
Ver Arquivo
@@ -0,0 +1,8 @@
*.pyc
.DS_Store
refman.rst
OpenCV4Tegra/
*.user
.sw[a-z]
.*.swp
tags
+10 -10
Ver Arquivo
@@ -1,11 +1,11 @@
set(NEW_FFMPEG 1)
set(HAVE_FFMPEG_CODEC 1)
set(HAVE_FFMPEG_FORMAT 1)
set(HAVE_FFMPEG_UTIL 1)
set(HAVE_FFMPEG_SWSCALE 1)
set(HAVE_GENTOO_FFMPEG 1)
set(ALIASOF_libavcodec_VERSION 53.61.100)
set(ALIASOF_libavformat_VERSION 53.32.100)
set(ALIASOF_libavutil_VERSION 51.35.100)
set(NEW_FFMPEG 1)
set(HAVE_FFMPEG_CODEC 1)
set(HAVE_FFMPEG_FORMAT 1)
set(HAVE_FFMPEG_UTIL 1)
set(HAVE_FFMPEG_SWSCALE 1)
set(HAVE_GENTOO_FFMPEG 1)
set(ALIASOF_libavcodec_VERSION 53.61.100)
set(ALIASOF_libavformat_VERSION 53.32.100)
set(ALIASOF_libavutil_VERSION 51.35.100)
set(ALIASOF_libswscale_VERSION 2.1.100)
Arquivo binário não exibido.
Arquivo binário não exibido.
-123
Ver Arquivo
@@ -1,123 +0,0 @@
ABOUT THE OPENEXR LIBRARIES
----------------------------
Half is a class that encapsulates our 16-bit floating-point format.
IlmThread is a thread abstraction library for use with IlmImf. It
currently supports pthreads and Windows threads.
IlmImf is our "EXR" file format for storing 16-bit FP images.
Imath is a math library. IlmImf only uses a subset of it,
but we're releasing the full library because it's easier for us to
maintain, and we think it'll be useful to others.
Iex is an exception-handling library.
See the IlmImfExamples directory for some code that demonstrates how
to use the IlmImf library to read and write OpenEXR files. The doc
directory contains some high-level documentation and history about the
OpenEXR format.
If you have questions about using the OpenEXR libraries, you may want
to join our developer mailing list. See http://www.openexr.com for
details.
LICENSE
-------
The OpenEXR source code distribution is free software. See the file
named COPYING (included in this distribution) for details.
WHAT'S INCLUDED
---------------
Besides the core OpenEXR libraries, the release includes several
utilities for reading, writing, viewing, and manipulating OpenEXR
images. These include:
* exrdisplay, an image viewer.
* exrheader, a utility for dumping header information.
* exrstdattr, a utility for modifying OpenEXR standard attributes.
* exrmaketiled, for generating tiled and rip/mipmapped images.
* exrenvmap, for creating OpenEXR environment maps.
* exrmakepreview, for creating preview images for OpenEXR files.
exrdisplay requires FLTK 1.1 or greater and OpenGL. exrdisplay
supports fragment shaders if you have the Nvidia Cg SDK and a graphics
card capable of running fp30 profile fragment shaders. See
exrdisplay/README for details.
We have also released an OpenEXR display driver for Renderman, a file
I/O plugin for Shake, and a file I/O plugin for Adobe Photoshop (on
both Windows and MacOS). These are packaged separately. Go to
http://www.openexr.com to download them. NOTE: the most recent
versions of these applications now have native support for OpenEXR, so
you should only use our open-source versions of the plugins if you
have an older version of the application.
BUILDING OPENEXR
----------------
Building OpenEXR requires the zlib library. If you want to build the
'exrdisplay' image viewer, you'll also need FLTK 1.1, but this program
is not required to use OpenEXR's libraries in your application.
exrdisplay can also accelerate the display of OpenEXR images if you
have the NVIDIA Cg SDK.
Your OS distribution may already include these libraries, or supply
packages for them. That is the preferred way to obtain them for use
with OpenEXR. If not, you can obtain the source code for zlib and
FLTK from:
http://www.zlib.net
http://www.fltk.org
and you can download the NVIDIA Cg SDK from
http://developer.nvidia.com.
If you're building OpenEXR on a Windows platform, see README.win32 for
instructions on how to build OpenEXR. The remainder of this file
applies only to GNU/Linux or other UNIX-like systems.
After installing the required libraries, to build OpenEXR on
GNU/Linux or other UNIX-like systems, do this:
./configure
make
make install
unless you obtained OpenEXR directly from CVS, in which case you
should first read README.CVS.
If you have the Nvidia Cg SDK and you want to build support for
fragment shaders into exrdisplay, specify the path to the SDK using
the "--with-cg-prefix" flag. There are some additional compile-time
configuration options available; type `./configure --help` for more
information.
See README.OSX for details on building OpenEXR in MacOS X.
Do `make check` to run the OpenEXR confidence tests. They should all
pass; if you find a test that does not pass on your system, please let
us know.
Other UNIX variants haven't been tested, but should be easy to build.
Let us know if you're having problems porting OpenEXR to a particular
platform.
All include files needed to use the OpenEXR libraries are installed in the
OpenEXR subdirectory of the install prefix, e.g. /usr/local/include/OpenEXR.
USING OPENEXR IN YOUR APPLICATIONS
----------------------------------
On systems with support for pkg-config, use `pkg-config --cflags
OpenEXR` for the C++ flags required to compile against OpenEXR
headers; and `pkg-config --libs OpenEXR` for the linker flags required
to link against OpenEXR libraries.
+502
Ver Arquivo
@@ -0,0 +1,502 @@
//=============================================================================
//
// multimon.h -- Stub module that fakes multiple monitor apis on Win32 OSes
// without them.
//
// By using this header your code will get back default values from
// GetSystemMetrics() for new metrics, and the new multimonitor APIs
// will act like only one display is present on a Win32 OS without
// multimonitor APIs.
//
// Exactly one source must include this with COMPILE_MULTIMON_STUBS defined.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//=============================================================================
#ifdef __cplusplus
extern "C" { // Assume C declarations for C++
#endif // __cplusplus
//
// If we are building with Win95/NT4 headers, we need to declare
// the multimonitor-related metrics and APIs ourselves.
//
#ifndef SM_CMONITORS
#define SM_XVIRTUALSCREEN 76
#define SM_YVIRTUALSCREEN 77
#define SM_CXVIRTUALSCREEN 78
#define SM_CYVIRTUALSCREEN 79
#define SM_CMONITORS 80
#define SM_SAMEDISPLAYFORMAT 81
// HMONITOR is already declared if WINVER >= 0x0500 in windef.h
// This is for components built with an older version number.
//
#if !defined(HMONITOR_DECLARED) && (WINVER < 0x0500)
DECLARE_HANDLE(HMONITOR);
#define HMONITOR_DECLARED
#endif
#define MONITOR_DEFAULTTONULL 0x00000000
#define MONITOR_DEFAULTTOPRIMARY 0x00000001
#define MONITOR_DEFAULTTONEAREST 0x00000002
#define MONITORINFOF_PRIMARY 0x00000001
typedef struct tagMONITORINFO
{
DWORD cbSize;
RECT rcMonitor;
RECT rcWork;
DWORD dwFlags;
} MONITORINFO, *LPMONITORINFO;
#ifndef CCHDEVICENAME
#define CCHDEVICENAME 32
#endif
#ifdef __cplusplus
typedef struct tagMONITORINFOEXA : public tagMONITORINFO
{
CHAR szDevice[CCHDEVICENAME];
} MONITORINFOEXA, *LPMONITORINFOEXA;
typedef struct tagMONITORINFOEXW : public tagMONITORINFO
{
WCHAR szDevice[CCHDEVICENAME];
} MONITORINFOEXW, *LPMONITORINFOEXW;
#ifdef UNICODE
typedef MONITORINFOEXW MONITORINFOEX;
typedef LPMONITORINFOEXW LPMONITORINFOEX;
#else
typedef MONITORINFOEXA MONITORINFOEX;
typedef LPMONITORINFOEXA LPMONITORINFOEX;
#endif // UNICODE
#else // ndef __cplusplus
typedef struct tagMONITORINFOEXA
{
MONITORINFO;
CHAR szDevice[CCHDEVICENAME];
} MONITORINFOEXA, *LPMONITORINFOEXA;
typedef struct tagMONITORINFOEXW
{
MONITORINFO;
WCHAR szDevice[CCHDEVICENAME];
} MONITORINFOEXW, *LPMONITORINFOEXW;
#ifdef UNICODE
typedef MONITORINFOEXW MONITORINFOEX;
typedef LPMONITORINFOEXW LPMONITORINFOEX;
#else
typedef MONITORINFOEXA MONITORINFOEX;
typedef LPMONITORINFOEXA LPMONITORINFOEX;
#endif // UNICODE
#endif
typedef BOOL (CALLBACK* MONITORENUMPROC)(HMONITOR, HDC, LPRECT, LPARAM);
#ifndef DISPLAY_DEVICE_ATTACHED_TO_DESKTOP
typedef struct _DISPLAY_DEVICEA {
DWORD cb;
CHAR DeviceName[32];
CHAR DeviceString[128];
DWORD StateFlags;
CHAR DeviceID[128];
CHAR DeviceKey[128];
} DISPLAY_DEVICEA, *PDISPLAY_DEVICEA, *LPDISPLAY_DEVICEA;
typedef struct _DISPLAY_DEVICEW {
DWORD cb;
WCHAR DeviceName[32];
WCHAR DeviceString[128];
DWORD StateFlags;
WCHAR DeviceID[128];
WCHAR DeviceKey[128];
} DISPLAY_DEVICEW, *PDISPLAY_DEVICEW, *LPDISPLAY_DEVICEW;
#ifdef UNICODE
typedef DISPLAY_DEVICEW DISPLAY_DEVICE;
typedef PDISPLAY_DEVICEW PDISPLAY_DEVICE;
typedef LPDISPLAY_DEVICEW LPDISPLAY_DEVICE;
#else
typedef DISPLAY_DEVICEA DISPLAY_DEVICE;
typedef PDISPLAY_DEVICEA PDISPLAY_DEVICE;
typedef LPDISPLAY_DEVICEA LPDISPLAY_DEVICE;
#endif // UNICODE
#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001
#define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002
#define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
#define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008
#define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010
#endif
#endif // SM_CMONITORS
#undef GetMonitorInfo
#undef GetSystemMetrics
#undef MonitorFromWindow
#undef MonitorFromRect
#undef MonitorFromPoint
#undef EnumDisplayMonitors
#undef EnumDisplayDevices
//
// Define COMPILE_MULTIMON_STUBS to compile the stubs;
// otherwise, you get the declarations.
//
#ifdef COMPILE_MULTIMON_STUBS
//-----------------------------------------------------------------------------
//
// Implement the API stubs.
//
//-----------------------------------------------------------------------------
#ifndef _MULTIMON_USE_SECURE_CRT
#if defined(__GOT_SECURE_LIB__) && __GOT_SECURE_LIB__ >= 200402L
#define _MULTIMON_USE_SECURE_CRT 1
#else
#define _MULTIMON_USE_SECURE_CRT 0
#endif
#endif
#ifndef MULTIMON_FNS_DEFINED
int (WINAPI* g_pfnGetSystemMetrics)(int) = NULL;
HMONITOR (WINAPI* g_pfnMonitorFromWindow)(HWND, DWORD) = NULL;
HMONITOR (WINAPI* g_pfnMonitorFromRect)(LPCRECT, DWORD) = NULL;
HMONITOR (WINAPI* g_pfnMonitorFromPoint)(POINT, DWORD) = NULL;
BOOL (WINAPI* g_pfnGetMonitorInfo)(HMONITOR, LPMONITORINFO) = NULL;
BOOL (WINAPI* g_pfnEnumDisplayMonitors)(HDC, LPCRECT, MONITORENUMPROC, LPARAM) = NULL;
BOOL (WINAPI* g_pfnEnumDisplayDevices)(PVOID, DWORD, PDISPLAY_DEVICE,DWORD) = NULL;
BOOL g_fMultiMonInitDone = FALSE;
BOOL g_fMultimonPlatformNT = FALSE;
#endif
BOOL IsPlatformNT()
{
OSVERSIONINFOA osvi = {0};
osvi.dwOSVersionInfoSize = sizeof(osvi);
GetVersionExA((OSVERSIONINFOA*)&osvi);
return (VER_PLATFORM_WIN32_NT == osvi.dwPlatformId);
}
BOOL InitMultipleMonitorStubs(void)
{
HMODULE hUser32;
if (g_fMultiMonInitDone)
{
return g_pfnGetMonitorInfo != NULL;
}
g_fMultimonPlatformNT = IsPlatformNT();
hUser32 = GetModuleHandle(TEXT("USER32"));
if (hUser32 &&
(*(FARPROC*)&g_pfnGetSystemMetrics = GetProcAddress(hUser32,"GetSystemMetrics")) != NULL &&
(*(FARPROC*)&g_pfnMonitorFromWindow = GetProcAddress(hUser32,"MonitorFromWindow")) != NULL &&
(*(FARPROC*)&g_pfnMonitorFromRect = GetProcAddress(hUser32,"MonitorFromRect")) != NULL &&
(*(FARPROC*)&g_pfnMonitorFromPoint = GetProcAddress(hUser32,"MonitorFromPoint")) != NULL &&
(*(FARPROC*)&g_pfnEnumDisplayMonitors = GetProcAddress(hUser32,"EnumDisplayMonitors")) != NULL &&
#ifdef UNICODE
(*(FARPROC*)&g_pfnEnumDisplayDevices = GetProcAddress(hUser32,"EnumDisplayDevicesW")) != NULL &&
(*(FARPROC*)&g_pfnGetMonitorInfo = g_fMultimonPlatformNT ? GetProcAddress(hUser32,"GetMonitorInfoW") :
GetProcAddress(hUser32,"GetMonitorInfoA")) != NULL
#else
(*(FARPROC*)&g_pfnGetMonitorInfo = GetProcAddress(hUser32,"GetMonitorInfoA")) != NULL &&
(*(FARPROC*)&g_pfnEnumDisplayDevices = GetProcAddress(hUser32,"EnumDisplayDevicesA")) != NULL
#endif
) {
g_fMultiMonInitDone = TRUE;
return TRUE;
}
else
{
g_pfnGetSystemMetrics = NULL;
g_pfnMonitorFromWindow = NULL;
g_pfnMonitorFromRect = NULL;
g_pfnMonitorFromPoint = NULL;
g_pfnGetMonitorInfo = NULL;
g_pfnEnumDisplayMonitors = NULL;
g_pfnEnumDisplayDevices = NULL;
g_fMultiMonInitDone = TRUE;
return FALSE;
}
}
//-----------------------------------------------------------------------------
//
// fake implementations of Monitor APIs that work with the primary display
// no special parameter validation is made since these run in client code
//
//-----------------------------------------------------------------------------
int WINAPI
xGetSystemMetrics(int nIndex)
{
if (InitMultipleMonitorStubs())
return g_pfnGetSystemMetrics(nIndex);
switch (nIndex)
{
case SM_CMONITORS:
case SM_SAMEDISPLAYFORMAT:
return 1;
case SM_XVIRTUALSCREEN:
case SM_YVIRTUALSCREEN:
return 0;
case SM_CXVIRTUALSCREEN:
nIndex = SM_CXSCREEN;
break;
case SM_CYVIRTUALSCREEN:
nIndex = SM_CYSCREEN;
break;
}
return GetSystemMetrics(nIndex);
}
#define xPRIMARY_MONITOR ((HMONITOR)0x12340042)
HMONITOR WINAPI
xMonitorFromPoint(POINT ptScreenCoords, DWORD dwFlags)
{
if (InitMultipleMonitorStubs())
return g_pfnMonitorFromPoint(ptScreenCoords, dwFlags);
if ((dwFlags & (MONITOR_DEFAULTTOPRIMARY | MONITOR_DEFAULTTONEAREST)) ||
((ptScreenCoords.x >= 0) &&
(ptScreenCoords.x < GetSystemMetrics(SM_CXSCREEN)) &&
(ptScreenCoords.y >= 0) &&
(ptScreenCoords.y < GetSystemMetrics(SM_CYSCREEN))))
{
return xPRIMARY_MONITOR;
}
return NULL;
}
HMONITOR WINAPI
xMonitorFromRect(LPCRECT lprcScreenCoords, DWORD dwFlags)
{
if (InitMultipleMonitorStubs())
return g_pfnMonitorFromRect(lprcScreenCoords, dwFlags);
if ((dwFlags & (MONITOR_DEFAULTTOPRIMARY | MONITOR_DEFAULTTONEAREST)) ||
((lprcScreenCoords->right > 0) &&
(lprcScreenCoords->bottom > 0) &&
(lprcScreenCoords->left < GetSystemMetrics(SM_CXSCREEN)) &&
(lprcScreenCoords->top < GetSystemMetrics(SM_CYSCREEN))))
{
return xPRIMARY_MONITOR;
}
return NULL;
}
HMONITOR WINAPI
xMonitorFromWindow(HWND hWnd, DWORD dwFlags)
{
WINDOWPLACEMENT wp;
if (InitMultipleMonitorStubs())
return g_pfnMonitorFromWindow(hWnd, dwFlags);
if (dwFlags & (MONITOR_DEFAULTTOPRIMARY | MONITOR_DEFAULTTONEAREST))
return xPRIMARY_MONITOR;
if (IsIconic(hWnd) ?
GetWindowPlacement(hWnd, &wp) :
GetWindowRect(hWnd, &wp.rcNormalPosition)) {
return xMonitorFromRect(&wp.rcNormalPosition, dwFlags);
}
return NULL;
}
BOOL WINAPI
xGetMonitorInfo(HMONITOR hMonitor, __inout LPMONITORINFO lpMonitorInfo)
{
RECT rcWork;
if (InitMultipleMonitorStubs())
{
BOOL f = g_pfnGetMonitorInfo(hMonitor, lpMonitorInfo);
#ifdef UNICODE
if (f && !g_fMultimonPlatformNT && (lpMonitorInfo->cbSize >= sizeof(MONITORINFOEX)))
{
MultiByteToWideChar(CP_ACP, 0,
(LPSTR)((MONITORINFOEX*)lpMonitorInfo)->szDevice, -1,
((MONITORINFOEX*)lpMonitorInfo)->szDevice, (sizeof(((MONITORINFOEX*)lpMonitorInfo)->szDevice)/sizeof(TCHAR)));
}
#endif
return f;
}
if ((hMonitor == xPRIMARY_MONITOR) &&
lpMonitorInfo &&
(lpMonitorInfo->cbSize >= sizeof(MONITORINFO)) &&
SystemParametersInfoA(SPI_GETWORKAREA, 0, &rcWork, 0))
{
lpMonitorInfo->rcMonitor.left = 0;
lpMonitorInfo->rcMonitor.top = 0;
lpMonitorInfo->rcMonitor.right = GetSystemMetrics(SM_CXSCREEN);
lpMonitorInfo->rcMonitor.bottom = GetSystemMetrics(SM_CYSCREEN);
lpMonitorInfo->rcWork = rcWork;
lpMonitorInfo->dwFlags = MONITORINFOF_PRIMARY;
if (lpMonitorInfo->cbSize >= sizeof(MONITORINFOEX))
{
#ifdef UNICODE
MultiByteToWideChar(CP_ACP, 0, "DISPLAY", -1, ((MONITORINFOEX*)lpMonitorInfo)->szDevice, (sizeof(((MONITORINFOEX*)lpMonitorInfo)->szDevice)/sizeof(TCHAR)));
#else // UNICODE
#if _MULTIMON_USE_SECURE_CRT
strncpy_s(((MONITORINFOEX*)lpMonitorInfo)->szDevice, (sizeof(((MONITORINFOEX*)lpMonitorInfo)->szDevice)/sizeof(TCHAR)), TEXT("DISPLAY"), (sizeof(((MONITORINFOEX*)lpMonitorInfo)->szDevice)/sizeof(TCHAR)) - 1);
#else
lstrcpyn(((MONITORINFOEX*)lpMonitorInfo)->szDevice, TEXT("DISPLAY"), (sizeof(((MONITORINFOEX*)lpMonitorInfo)->szDevice)/sizeof(TCHAR)));
#endif // _MULTIMON_USE_SECURE_CRT
#endif // UNICODE
}
return TRUE;
}
return FALSE;
}
BOOL WINAPI
xEnumDisplayMonitors(
HDC hdcOptionalForPainting,
LPCRECT lprcEnumMonitorsThatIntersect,
MONITORENUMPROC lpfnEnumProc,
LPARAM dwData)
{
RECT rcLimit;
if (InitMultipleMonitorStubs()) {
return g_pfnEnumDisplayMonitors(
hdcOptionalForPainting,
lprcEnumMonitorsThatIntersect,
lpfnEnumProc,
dwData);
}
if (!lpfnEnumProc)
return FALSE;
rcLimit.left = 0;
rcLimit.top = 0;
rcLimit.right = GetSystemMetrics(SM_CXSCREEN);
rcLimit.bottom = GetSystemMetrics(SM_CYSCREEN);
if (hdcOptionalForPainting)
{
RECT rcClip;
POINT ptOrg;
switch (GetClipBox(hdcOptionalForPainting, &rcClip))
{
default:
if (!GetDCOrgEx(hdcOptionalForPainting, &ptOrg))
return FALSE;
OffsetRect(&rcLimit, -ptOrg.x, -ptOrg.y);
if (IntersectRect(&rcLimit, &rcLimit, &rcClip) &&
(!lprcEnumMonitorsThatIntersect ||
IntersectRect(&rcLimit, &rcLimit, lprcEnumMonitorsThatIntersect))) {
break;
}
//fall thru
case NULLREGION:
return TRUE;
case ERROR:
return FALSE;
}
} else {
if ( lprcEnumMonitorsThatIntersect &&
!IntersectRect(&rcLimit, &rcLimit, lprcEnumMonitorsThatIntersect)) {
return TRUE;
}
}
return lpfnEnumProc(
xPRIMARY_MONITOR,
hdcOptionalForPainting,
&rcLimit,
dwData);
}
BOOL WINAPI
xEnumDisplayDevices(
PVOID Unused,
DWORD iDevNum,
__inout PDISPLAY_DEVICE lpDisplayDevice,
DWORD dwFlags)
{
if (InitMultipleMonitorStubs())
return g_pfnEnumDisplayDevices(Unused, iDevNum, lpDisplayDevice, dwFlags);
if (Unused != NULL)
return FALSE;
if (iDevNum != 0)
return FALSE;
if (lpDisplayDevice == NULL || lpDisplayDevice->cb < sizeof(DISPLAY_DEVICE))
return FALSE;
#ifdef UNICODE
MultiByteToWideChar(CP_ACP, 0, "DISPLAY", -1, lpDisplayDevice->DeviceName, (sizeof(lpDisplayDevice->DeviceName)/sizeof(TCHAR)));
MultiByteToWideChar(CP_ACP, 0, "DISPLAY", -1, lpDisplayDevice->DeviceString, (sizeof(lpDisplayDevice->DeviceString)/sizeof(TCHAR)));
#else // UNICODE
#if _MULTIMON_USE_SECURE_CRT
strncpy_s((LPTSTR)lpDisplayDevice->DeviceName, (sizeof(lpDisplayDevice->DeviceName)/sizeof(TCHAR)), TEXT("DISPLAY"), (sizeof(lpDisplayDevice->DeviceName)/sizeof(TCHAR)) - 1);
strncpy_s((LPTSTR)lpDisplayDevice->DeviceString, (sizeof(lpDisplayDevice->DeviceString)/sizeof(TCHAR)), TEXT("DISPLAY"), (sizeof(lpDisplayDevice->DeviceName)/sizeof(TCHAR)) - 1);
#else
lstrcpyn((LPTSTR)lpDisplayDevice->DeviceName, TEXT("DISPLAY"), (sizeof(lpDisplayDevice->DeviceName)/sizeof(TCHAR)));
lstrcpyn((LPTSTR)lpDisplayDevice->DeviceString, TEXT("DISPLAY"), (sizeof(lpDisplayDevice->DeviceString)/sizeof(TCHAR)));
#endif // _MULTIMON_USE_SECURE_CRT
#endif // UNICODE
lpDisplayDevice->StateFlags = DISPLAY_DEVICE_ATTACHED_TO_DESKTOP | DISPLAY_DEVICE_PRIMARY_DEVICE;
return TRUE;
}
#undef xPRIMARY_MONITOR
#undef COMPILE_MULTIMON_STUBS
#else // COMPILE_MULTIMON_STUBS
extern int WINAPI xGetSystemMetrics(int);
extern HMONITOR WINAPI xMonitorFromWindow(HWND, DWORD);
extern HMONITOR WINAPI xMonitorFromRect(LPCRECT, DWORD);
extern HMONITOR WINAPI xMonitorFromPoint(POINT, DWORD);
extern BOOL WINAPI xGetMonitorInfo(HMONITOR, LPMONITORINFO);
extern BOOL WINAPI xEnumDisplayMonitors(HDC, LPCRECT, MONITORENUMPROC, LPARAM);
extern BOOL WINAPI xEnumDisplayDevices(PVOID, DWORD, PDISPLAY_DEVICE, DWORD);
#endif // COMPILE_MULTIMON_STUBS
//
// build defines that replace the regular APIs with our versions
//
#define GetSystemMetrics xGetSystemMetrics
#define MonitorFromWindow xMonitorFromWindow
#define MonitorFromRect xMonitorFromRect
#define MonitorFromPoint xMonitorFromPoint
#define GetMonitorInfo xGetMonitorInfo
#define EnumDisplayMonitors xEnumDisplayMonitors
#define EnumDisplayDevices xEnumDisplayDevices
#ifdef __cplusplus
}
#endif // __cplusplus
+14 -14
Ver Arquivo
@@ -9,20 +9,20 @@ extern "C" {
#endif
typedef enum _tagSND_DEVICE_ERROR {
SNDDEV_ERROR_Open = 1,
SNDDEV_ERROR_Close = 2,
SNDDEV_ERROR_GetCaps = 3,
SNDDEV_ERROR_PrepareHeader = 4,
SNDDEV_ERROR_UnprepareHeader = 5,
SNDDEV_ERROR_Reset = 6,
SNDDEV_ERROR_Restart = 7,
SNDDEV_ERROR_GetPosition = 8,
SNDDEV_ERROR_Write = 9,
SNDDEV_ERROR_Pause = 10,
SNDDEV_ERROR_Stop = 11,
SNDDEV_ERROR_Start = 12,
SNDDEV_ERROR_AddBuffer = 13,
SNDDEV_ERROR_Query = 14
SNDDEV_ERROR_Open = 1,
SNDDEV_ERROR_Close = 2,
SNDDEV_ERROR_GetCaps = 3,
SNDDEV_ERROR_PrepareHeader = 4,
SNDDEV_ERROR_UnprepareHeader = 5,
SNDDEV_ERROR_Reset = 6,
SNDDEV_ERROR_Restart = 7,
SNDDEV_ERROR_GetPosition = 8,
SNDDEV_ERROR_Write = 9,
SNDDEV_ERROR_Pause = 10,
SNDDEV_ERROR_Stop = 11,
SNDDEV_ERROR_Start = 12,
SNDDEV_ERROR_AddBuffer = 13,
SNDDEV_ERROR_Query = 14
} SNDDEV_ERR;
#ifdef __cplusplus
externo Arquivo executável → Arquivo normal
+9 -9
Ver Arquivo
@@ -10,20 +10,20 @@ extern "C" {
/*--- DirectShow Reference - DirectShow Enumerated Types */
typedef enum {
MEDIA_TRANSPORT_PACKET,
MEDIA_ELEMENTARY_STREAM,
MEDIA_MPEG2_PSI,
MEDIA_TRANSPORT_PAYLOAD
MEDIA_TRANSPORT_PACKET,
MEDIA_ELEMENTARY_STREAM,
MEDIA_MPEG2_PSI,
MEDIA_TRANSPORT_PAYLOAD
} MEDIA_SAMPLE_CONTENT;
/*--- DirectShow Reference - DirectShow Structures */
typedef struct {
DWORD dwOffset;
DWORD dwPacketLength;
DWORD dwStride;
DWORD dwOffset;
DWORD dwPacketLength;
DWORD dwStride;
} MPEG2_TRANSPORT_STRIDE;
typedef struct {
ULONG ulPID;
MEDIA_SAMPLE_CONTENT MediaSampleContent ;
ULONG ulPID;
MEDIA_SAMPLE_CONTENT MediaSampleContent ;
} PID_MAP;
#ifdef __cplusplus
+114 -114
Ver Arquivo
@@ -322,7 +322,7 @@ typedef struct IDirectDrawGammaControl *LPDIRECTDRAWGAMMACONTROL;
#define DDSCAPS_OPTIMIZED 0x80000000
typedef struct _DDSCAPS {
DWORD dwCaps; /* capabilities of surface wanted */
DWORD dwCaps; /* capabilities of surface wanted */
} DDSCAPS,*LPDDSCAPS;
/* DDSCAPS2.dwCaps2 */
@@ -368,21 +368,21 @@ typedef struct _DDSCAPS {
#define DDSCAPS2_STEREOSURFACELEFT 0x00080000
typedef struct _DDSCAPS2 {
DWORD dwCaps; /* capabilities of surface wanted */
DWORD dwCaps2; /* additional capabilities */
DWORD dwCaps3; /* reserved capabilities */
__extension__ union {
DWORD dwCaps4; /* low word is the depth for a volume texture */
DWORD dwVolumeDepth;
} DUMMYUNIONNAME1;
DWORD dwCaps; /* capabilities of surface wanted */
DWORD dwCaps2; /* additional capabilities */
DWORD dwCaps3; /* reserved capabilities */
__extension__ union {
DWORD dwCaps4; /* low word is the depth for a volume texture */
DWORD dwVolumeDepth;
} DUMMYUNIONNAME1;
} DDSCAPS2,*LPDDSCAPS2;
typedef struct _DDSCAPSEX {
DWORD dwCaps2;
DWORD dwCaps3;
__extension__ union {
DWORD dwCaps4;
DWORD dwVolumeDepth;
DWORD dwCaps4;
DWORD dwVolumeDepth;
} DUMMYUNIONNAME1;
} DDSCAPSEX,*LPDDSCAPSEX;
@@ -712,12 +712,12 @@ typedef DDCAPS *LPDDCAPS;
typedef struct _DDCOLORKEY
{
DWORD dwColorSpaceLowValue;/* low boundary of color space that is to
DWORD dwColorSpaceLowValue;/* low boundary of color space that is to
* be treated as Color Key, inclusive
*/
DWORD dwColorSpaceHighValue;/* high boundary of color space that is
*/
DWORD dwColorSpaceHighValue;/* high boundary of color space that is
* to be treated as Color Key, inclusive
*/
*/
} DDCOLORKEY,*LPDDCOLORKEY;
/* ddCKEYCAPS bits */
@@ -746,40 +746,40 @@ typedef struct _DDPIXELFORMAT {
DWORD dwFlags; /* 4: pixel format flags */
DWORD dwFourCC; /* 8: (FOURCC code) */
__extension__ union {
DWORD dwRGBBitCount; /* C: how many bits per pixel */
DWORD dwYUVBitCount; /* C: how many bits per pixel */
DWORD dwZBufferBitDepth; /* C: how many bits for z buffers */
DWORD dwAlphaBitDepth; /* C: how many bits for alpha channels*/
DWORD dwLuminanceBitCount;
DWORD dwBumpBitCount;
DWORD dwRGBBitCount; /* C: how many bits per pixel */
DWORD dwYUVBitCount; /* C: how many bits per pixel */
DWORD dwZBufferBitDepth; /* C: how many bits for z buffers */
DWORD dwAlphaBitDepth; /* C: how many bits for alpha channels*/
DWORD dwLuminanceBitCount;
DWORD dwBumpBitCount;
} DUMMYUNIONNAME1;
__extension__ union {
DWORD dwRBitMask; /* 10: mask for red bit*/
DWORD dwYBitMask; /* 10: mask for Y bits*/
DWORD dwStencilBitDepth;
DWORD dwLuminanceBitMask;
DWORD dwBumpDuBitMask;
DWORD dwRBitMask; /* 10: mask for red bit*/
DWORD dwYBitMask; /* 10: mask for Y bits*/
DWORD dwStencilBitDepth;
DWORD dwLuminanceBitMask;
DWORD dwBumpDuBitMask;
} DUMMYUNIONNAME2;
__extension__ union {
DWORD dwGBitMask; /* 14: mask for green bits*/
DWORD dwUBitMask; /* 14: mask for U bits*/
DWORD dwZBitMask;
DWORD dwBumpDvBitMask;
DWORD dwGBitMask; /* 14: mask for green bits*/
DWORD dwUBitMask; /* 14: mask for U bits*/
DWORD dwZBitMask;
DWORD dwBumpDvBitMask;
} DUMMYUNIONNAME3;
__extension__ union {
DWORD dwBBitMask; /* 18: mask for blue bits*/
DWORD dwVBitMask; /* 18: mask for V bits*/
DWORD dwStencilBitMask;
DWORD dwBumpLuminanceBitMask;
DWORD dwBBitMask; /* 18: mask for blue bits*/
DWORD dwVBitMask; /* 18: mask for V bits*/
DWORD dwStencilBitMask;
DWORD dwBumpLuminanceBitMask;
} DUMMYUNIONNAME4;
__extension__ union {
DWORD dwRGBAlphaBitMask; /* 1C: mask for alpha channel */
DWORD dwYUVAlphaBitMask; /* 1C: mask for alpha channel */
DWORD dwLuminanceAlphaBitMask;
DWORD dwRGBZBitMask; /* 1C: mask for Z channel */
DWORD dwYUVZBitMask; /* 1C: mask for Z channel */
DWORD dwRGBAlphaBitMask; /* 1C: mask for alpha channel */
DWORD dwYUVAlphaBitMask; /* 1C: mask for alpha channel */
DWORD dwLuminanceAlphaBitMask;
DWORD dwRGBZBitMask; /* 1C: mask for Z channel */
DWORD dwYUVZBitMask; /* 1C: mask for Z channel */
} DUMMYUNIONNAME5;
/* 20: next structure */
/* 20: next structure */
} DDPIXELFORMAT,*LPDDPIXELFORMAT;
#ifndef MAKEFOURCC
@@ -980,79 +980,79 @@ typedef struct _DDPIXELFORMAT {
typedef struct _DDSURFACEDESC
{
DWORD dwSize; /* 0: size of the DDSURFACEDESC structure*/
DWORD dwFlags; /* 4: determines what fields are valid*/
DWORD dwHeight; /* 8: height of surface to be created*/
DWORD dwWidth; /* C: width of input surface*/
__extension__ union {
LONG lPitch; /* 10: distance to start of next line (return value only)*/
DWORD dwLinearSize;
} DUMMYUNIONNAME1;
DWORD dwBackBufferCount;/* 14: number of back buffers requested*/
__extension__ union {
DWORD dwMipMapCount;/* 18:number of mip-map levels requested*/
DWORD dwZBufferBitDepth;/*18: depth of Z buffer requested*/
DWORD dwRefreshRate;/* 18:refresh rate (used when display mode is described)*/
} DUMMYUNIONNAME2;
DWORD dwAlphaBitDepth;/* 1C:depth of alpha buffer requested*/
DWORD dwReserved; /* 20:reserved*/
LPVOID lpSurface; /* 24:pointer to the associated surface memory*/
DDCOLORKEY ddckCKDestOverlay;/* 28: CK for dest overlay use*/
DDCOLORKEY ddckCKDestBlt; /* 30: CK for destination blt use*/
DDCOLORKEY ddckCKSrcOverlay;/* 38: CK for source overlay use*/
DDCOLORKEY ddckCKSrcBlt; /* 40: CK for source blt use*/
DDPIXELFORMAT ddpfPixelFormat;/* 48: pixel format description of the surface*/
DDSCAPS ddsCaps; /* 68: direct draw surface caps */
DWORD dwSize; /* 0: size of the DDSURFACEDESC structure*/
DWORD dwFlags; /* 4: determines what fields are valid*/
DWORD dwHeight; /* 8: height of surface to be created*/
DWORD dwWidth; /* C: width of input surface*/
__extension__ union {
LONG lPitch; /* 10: distance to start of next line (return value only)*/
DWORD dwLinearSize;
} DUMMYUNIONNAME1;
DWORD dwBackBufferCount;/* 14: number of back buffers requested*/
__extension__ union {
DWORD dwMipMapCount;/* 18:number of mip-map levels requested*/
DWORD dwZBufferBitDepth;/*18: depth of Z buffer requested*/
DWORD dwRefreshRate;/* 18:refresh rate (used when display mode is described)*/
} DUMMYUNIONNAME2;
DWORD dwAlphaBitDepth;/* 1C:depth of alpha buffer requested*/
DWORD dwReserved; /* 20:reserved*/
LPVOID lpSurface; /* 24:pointer to the associated surface memory*/
DDCOLORKEY ddckCKDestOverlay;/* 28: CK for dest overlay use*/
DDCOLORKEY ddckCKDestBlt; /* 30: CK for destination blt use*/
DDCOLORKEY ddckCKSrcOverlay;/* 38: CK for source overlay use*/
DDCOLORKEY ddckCKSrcBlt; /* 40: CK for source blt use*/
DDPIXELFORMAT ddpfPixelFormat;/* 48: pixel format description of the surface*/
DDSCAPS ddsCaps; /* 68: direct draw surface caps */
} DDSURFACEDESC,*LPDDSURFACEDESC;
typedef struct _DDSURFACEDESC2
{
DWORD dwSize; /* 0: size of the DDSURFACEDESC2 structure*/
DWORD dwFlags; /* 4: determines what fields are valid*/
DWORD dwHeight; /* 8: height of surface to be created*/
DWORD dwWidth; /* C: width of input surface*/
__extension__ union {
LONG lPitch; /*10: distance to start of next line (return value only)*/
DWORD dwLinearSize; /*10: formless late-allocated optimized surface size */
} DUMMYUNIONNAME1;
DWORD dwBackBufferCount;/* 14: number of back buffers requested*/
__extension__ union {
DWORD dwMipMapCount;/* 18:number of mip-map levels requested*/
DWORD dwRefreshRate;/* 18:refresh rate (used when display mode is described)*/
DWORD dwSrcVBHandle;/* 18:source used in VB::Optimize */
} DUMMYUNIONNAME2;
DWORD dwAlphaBitDepth;/* 1C:depth of alpha buffer requested*/
DWORD dwReserved; /* 20:reserved*/
LPVOID lpSurface; /* 24:pointer to the associated surface memory*/
__extension__ union {
DDCOLORKEY ddckCKDestOverlay; /* 28: CK for dest overlay use*/
DWORD dwEmptyFaceColor; /* 28: color for empty cubemap faces */
} DUMMYUNIONNAME3;
DDCOLORKEY ddckCKDestBlt; /* 30: CK for destination blt use*/
DDCOLORKEY ddckCKSrcOverlay;/* 38: CK for source overlay use*/
DDCOLORKEY ddckCKSrcBlt; /* 40: CK for source blt use*/
DWORD dwSize; /* 0: size of the DDSURFACEDESC2 structure*/
DWORD dwFlags; /* 4: determines what fields are valid*/
DWORD dwHeight; /* 8: height of surface to be created*/
DWORD dwWidth; /* C: width of input surface*/
__extension__ union {
LONG lPitch; /*10: distance to start of next line (return value only)*/
DWORD dwLinearSize; /*10: formless late-allocated optimized surface size */
} DUMMYUNIONNAME1;
DWORD dwBackBufferCount;/* 14: number of back buffers requested*/
__extension__ union {
DWORD dwMipMapCount;/* 18:number of mip-map levels requested*/
DWORD dwRefreshRate;/* 18:refresh rate (used when display mode is described)*/
DWORD dwSrcVBHandle;/* 18:source used in VB::Optimize */
} DUMMYUNIONNAME2;
DWORD dwAlphaBitDepth;/* 1C:depth of alpha buffer requested*/
DWORD dwReserved; /* 20:reserved*/
LPVOID lpSurface; /* 24:pointer to the associated surface memory*/
__extension__ union {
DDCOLORKEY ddckCKDestOverlay; /* 28: CK for dest overlay use*/
DWORD dwEmptyFaceColor; /* 28: color for empty cubemap faces */
} DUMMYUNIONNAME3;
DDCOLORKEY ddckCKDestBlt; /* 30: CK for destination blt use*/
DDCOLORKEY ddckCKSrcOverlay;/* 38: CK for source overlay use*/
DDCOLORKEY ddckCKSrcBlt; /* 40: CK for source blt use*/
__extension__ union {
DDPIXELFORMAT ddpfPixelFormat;/* 48: pixel format description of the surface*/
DWORD dwFVF; /* 48: vertex format description of vertex buffers */
} DUMMYUNIONNAME4;
DDSCAPS2 ddsCaps; /* 68: DDraw surface caps */
DWORD dwTextureStage; /* 78: stage in multitexture cascade */
__extension__ union {
DDPIXELFORMAT ddpfPixelFormat;/* 48: pixel format description of the surface*/
DWORD dwFVF; /* 48: vertex format description of vertex buffers */
} DUMMYUNIONNAME4;
DDSCAPS2 ddsCaps; /* 68: DDraw surface caps */
DWORD dwTextureStage; /* 78: stage in multitexture cascade */
} DDSURFACEDESC2,*LPDDSURFACEDESC2;
typedef struct _DDARGB {
BYTE blue;
BYTE green;
BYTE red;
BYTE alpha;
BYTE blue;
BYTE green;
BYTE red;
BYTE alpha;
} DDARGB, *LPDDARGB;
typedef struct _DDRGBA {
BYTE red;
BYTE green;
BYTE blue;
BYTE alpha;
BYTE red;
BYTE green;
BYTE blue;
BYTE alpha;
} DDRGBA, *LPDDRGBA;
@@ -1066,22 +1066,22 @@ typedef struct _DDRGBA {
#define DDCOLOR_COLORENABLE 0x00000040
typedef struct {
DWORD dwSize;
DWORD dwFlags;
LONG lBrightness;
LONG lContrast;
LONG lHue;
LONG lSaturation;
LONG lSharpness;
LONG lGamma;
LONG lColorEnable;
DWORD dwReserved1;
DWORD dwSize;
DWORD dwFlags;
LONG lBrightness;
LONG lContrast;
LONG lHue;
LONG lSaturation;
LONG lSharpness;
LONG lGamma;
LONG lColorEnable;
DWORD dwReserved1;
} DDCOLORCONTROL,*LPDDCOLORCONTROL;
typedef struct {
WORD red[256];
WORD green[256];
WORD blue[256];
WORD red[256];
WORD green[256];
WORD blue[256];
} DDGAMMARAMP,*LPDDGAMMARAMP;
typedef BOOL (CALLBACK *LPDDENUMCALLBACKA)(GUID *, LPSTR, LPSTR, LPVOID);
@@ -1161,7 +1161,7 @@ typedef struct _DDBLTFX
{
DWORD dwFillColor; /* color in RGB or Palettized */
DWORD dwFillDepth; /* depth value for z-buffer */
DWORD dwFillPixel; /* pixel val for RGBA or RGBZ */
DWORD dwFillPixel; /* pixel val for RGBA or RGBZ */
LPDIRECTDRAWSURFACE lpDDSPattern; /* Surface to use as pattern */
} DUMMYUNIONNAME5;
DDCOLORKEY ddckDestColorkey; /* DestColorkey override */
+18 -18
Ver Arquivo
@@ -932,14 +932,14 @@ DECLARE_INTERFACE_(IDirectSoundNotify,IUnknown)
#define DS3D_DEFAULTCONEOUTSIDEVOLUME DSBVOLUME_MAX
typedef struct _DS3DLISTENER {
DWORD dwSize;
D3DVECTOR vPosition;
D3DVECTOR vVelocity;
D3DVECTOR vOrientFront;
D3DVECTOR vOrientTop;
D3DVALUE flDistanceFactor;
D3DVALUE flRolloffFactor;
D3DVALUE flDopplerFactor;
DWORD dwSize;
D3DVECTOR vPosition;
D3DVECTOR vVelocity;
D3DVECTOR vOrientFront;
D3DVECTOR vOrientTop;
D3DVALUE flDistanceFactor;
D3DVALUE flRolloffFactor;
D3DVALUE flDopplerFactor;
} DS3DLISTENER, *LPDS3DLISTENER;
typedef const DS3DLISTENER *LPCDS3DLISTENER;
@@ -1019,16 +1019,16 @@ DECLARE_INTERFACE_(IDirectSound3DListener,IUnknown)
* IDirectSound3DBuffer interface
*/
typedef struct _DS3DBUFFER {
DWORD dwSize;
D3DVECTOR vPosition;
D3DVECTOR vVelocity;
DWORD dwInsideConeAngle;
DWORD dwOutsideConeAngle;
D3DVECTOR vConeOrientation;
LONG lConeOutsideVolume;
D3DVALUE flMinDistance;
D3DVALUE flMaxDistance;
DWORD dwMode;
DWORD dwSize;
D3DVECTOR vPosition;
D3DVECTOR vVelocity;
DWORD dwInsideConeAngle;
DWORD dwOutsideConeAngle;
D3DVECTOR vConeOrientation;
LONG lConeOutsideVolume;
D3DVALUE flMinDistance;
D3DVALUE flMaxDistance;
DWORD dwMode;
} DS3DBUFFER, *LPDS3DBUFFER;
typedef const DS3DBUFFER *LPCDS3DBUFFER;
+14 -14
Ver Arquivo
@@ -24,24 +24,24 @@
#define AMCONTROL_PAD_TO_16x9 0x00000004
enum AM_MPEG2Level {
AM_MPEG2Level_Low = 1,
AM_MPEG2Level_Main,
AM_MPEG2Level_High1440,
AM_MPEG2Level_High
AM_MPEG2Level_Low = 1,
AM_MPEG2Level_Main,
AM_MPEG2Level_High1440,
AM_MPEG2Level_High
};
enum AM_MPEG2Profile {
AM_MPEG2Profile_Simple = 1,
AM_MPEG2Profile_Main,
AM_MPEG2Profile_SNRScalable,
AM_MPEG2Profile_SpatiallyScalable,
AM_MPEG2Profile_High
AM_MPEG2Profile_Simple = 1,
AM_MPEG2Profile_Main,
AM_MPEG2Profile_SNRScalable,
AM_MPEG2Profile_SpatiallyScalable,
AM_MPEG2Profile_High
};
typedef enum {
AM_RATE_ChangeRate = 1,
AM_RATE_FullDataRateMax = 2,
AM_RATE_ReverseDecode = 3,
AM_RATE_DecoderPosition = 4,
AM_RATE_DecoderVersion = 5
AM_RATE_ChangeRate = 1,
AM_RATE_FullDataRateMax = 2,
AM_RATE_ReverseDecode = 3,
AM_RATE_DecoderPosition = 4,
AM_RATE_DecoderVersion = 5
} AM_PROPERTY_DVD_RATE_CHANGE;
typedef struct tagVIDEOINFOHEADER2 {
+2 -2
Ver Arquivo
@@ -58,8 +58,8 @@ extern "C" {
#define EC_USER 0x8000
/*--- DirectShow Reference - DirectShow Structures */
typedef struct {
HRESULT hrStatus;
void *pData;
HRESULT hrStatus;
void *pData;
} AM_WMT_EVENT_DATA;
#ifdef __cplusplus
+60 -60
Ver Arquivo
@@ -5,187 +5,187 @@
*/
OUR_GUID_ENTRY(MEDIATYPE_MPEG2_PACK,
0x36523B13,0x8EE5,0x11d1,0x8C,0xA3,0x00,0x60,0xB0,0x57,0x66,0x4A)
0x36523B13,0x8EE5,0x11d1,0x8C,0xA3,0x00,0x60,0xB0,0x57,0x66,0x4A)
OUR_GUID_ENTRY(MEDIATYPE_MPEG2_PES,
0xe06d8020,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea)
0xe06d8020,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_WMDRM_TRANSPORT,
0x18BEC4EA,0x4676,0x450e,0xB4,0x78,0x0C,0xD8,0x4C,0x54,0xB3,0x27)
0x18BEC4EA,0x4676,0x450e,0xB4,0x78,0x0C,0xD8,0x4C,0x54,0xB3,0x27)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_VIDEO,
0xe06d8026,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea)
0xe06d8026,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(FORMAT_MPEG2_VIDEO,
0xe06d80e3,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea)
0xe06d80e3,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(FORMAT_VIDEOINFO2,
0xf72a76A0L,0xeb0a,0x11d0,0xac,0xe4,0x0,0x0,0xc0,0xcc,0x16,0xba)
0xf72a76A0L,0xeb0a,0x11d0,0xac,0xe4,0x0,0x0,0xc0,0xcc,0x16,0xba)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_PROGRAM,
0xe06d8022,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
0xe06d8022,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_TRANSPORT,
0xe06d8023,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
0xe06d8023,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_AUDIO,
0xe06d802b,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
0xe06d802b,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(MEDIASUBTYPE_DOLBY_AC3,
0xe06d802c,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
0xe06d802c,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_SUBPICTURE,
0xe06d802d,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
0xe06d802d,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_LPCM_AUDIO,
0xe06d8032,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
0xe06d8032,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(MEDIATYPE_DVD_ENCRYPTED_PACK,
0xed0b916a,0x044d,0x11d1,0xaa,0x78,0x00,0xc0,0x04f,0xc3,0x1d,0x60)
0xed0b916a,0x044d,0x11d1,0xaa,0x78,0x00,0xc0,0x04f,0xc3,0x1d,0x60)
OUR_GUID_ENTRY(MEDIATYPE_DVD_NAVIGATION,
0xe06d802e,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
0xe06d802e,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_NAVIGATION_PCI,
0xe06d802f,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
0xe06d802f,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_NAVIGATION_DSI,
0xe06d8030,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
0xe06d8030,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_NAVIGATION_PROVIDER,
0xe06d8031,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
0xe06d8031,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(FORMAT_MPEG2Video,
0xe06d80e3,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
0xe06d80e3,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(FORMAT_DolbyAC3,
0xe06d80e4,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
0xe06d80e4,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(FORMAT_MPEG2Audio,
0xe06d80e5,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
0xe06d80e5,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(FORMAT_DVD_LPCMAudio,
0xe06d80e6,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
0xe06d80e6,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(AM_KSPROPSETID_AC3,
0xBFABE720,0x6E1F,0x11D0,0xBC,0xF2,0x44,0x45,0x53,0x54,0x00,0x00)
0xBFABE720,0x6E1F,0x11D0,0xBC,0xF2,0x44,0x45,0x53,0x54,0x00,0x00)
OUR_GUID_ENTRY(AM_KSPROPSETID_DvdSubPic,
0xac390460,0x43af,0x11d0,0xbd,0x6a,0x00,0x35,0x05,0xc1,0x03,0xa9)
0xac390460,0x43af,0x11d0,0xbd,0x6a,0x00,0x35,0x05,0xc1,0x03,0xa9)
OUR_GUID_ENTRY(AM_KSPROPSETID_CopyProt,
0x0E8A0A40,0x6AEF,0x11D0,0x9E,0xD0,0x00,0xA0,0x24,0xCA,0x19,0xB3)
0x0E8A0A40,0x6AEF,0x11D0,0x9E,0xD0,0x00,0xA0,0x24,0xCA,0x19,0xB3)
OUR_GUID_ENTRY(AM_KSPROPSETID_TSRateChange,
0xa503c5c0,0x1d1d,0x11d1,0xad,0x80,0x44,0x45,0x53,0x54,0x0,0x0)
0xa503c5c0,0x1d1d,0x11d1,0xad,0x80,0x44,0x45,0x53,0x54,0x0,0x0)
OUR_GUID_ENTRY(AM_KSPROPSETID_MPEG4_MediaType_Attributes,
0xff6c4bfa,0x7a9,0x4c7b,0xa2,0x37,0x67,0x2f,0x9d,0x68,0x6,0x5f)
0xff6c4bfa,0x7a9,0x4c7b,0xa2,0x37,0x67,0x2f,0x9d,0x68,0x6,0x5f)
OUR_GUID_ENTRY(AM_KSCATEGORY_CAPTURE,
0x65E8773DL,0x8F56,0x11D0,0xA3,0xB9,0x00,0xA0,0xC9,0x22,0x31,0x96)
0x65E8773DL,0x8F56,0x11D0,0xA3,0xB9,0x00,0xA0,0xC9,0x22,0x31,0x96)
OUR_GUID_ENTRY(AM_KSCATEGORY_RENDER,
0x65E8773EL,0x8F56,0x11D0,0xA3,0xB9,0x00,0xA0,0xC9,0x22,0x31,0x96)
0x65E8773EL,0x8F56,0x11D0,0xA3,0xB9,0x00,0xA0,0xC9,0x22,0x31,0x96)
OUR_GUID_ENTRY(AM_KSCATEGORY_DATACOMPRESSOR,
0x1E84C900L,0x7E70,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00)
0x1E84C900L,0x7E70,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00)
OUR_GUID_ENTRY(AM_KSCATEGORY_AUDIO,
0x6994AD04L,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96)
0x6994AD04L,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96)
OUR_GUID_ENTRY(AM_KSCATEGORY_VIDEO,
0x6994AD05L,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96)
0x6994AD05L,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96)
OUR_GUID_ENTRY(AM_KSCATEGORY_TVTUNER,
0xa799a800L,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4)
0xa799a800L,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4)
OUR_GUID_ENTRY(AM_KSCATEGORY_CROSSBAR,
0xa799a801L,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4)
0xa799a801L,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4)
OUR_GUID_ENTRY(AM_KSCATEGORY_TVAUDIO,
0xa799a802L,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4)
0xa799a802L,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4)
OUR_GUID_ENTRY(AM_KSCATEGORY_VBICODEC,
0x07dad660L,0x22f1,0x11d1,0xa9,0xf4,0x00,0xc0,0x4f,0xbb,0xde,0x8f)
0x07dad660L,0x22f1,0x11d1,0xa9,0xf4,0x00,0xc0,0x4f,0xbb,0xde,0x8f)
OUR_GUID_ENTRY(AM_KSCATEGORY_SPLITTER,
0x0A4252A0L,0x7E70,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00)
0x0A4252A0L,0x7E70,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00)
OUR_GUID_ENTRY(IID_IKsInterfaceHandler,
0xD3ABC7E0L,0x9A61,0x11D0,0xA4,0x0D,0x00,0xA0,0xC9,0x22,0x31,0x96)
0xD3ABC7E0L,0x9A61,0x11D0,0xA4,0x0D,0x00,0xA0,0xC9,0x22,0x31,0x96)
OUR_GUID_ENTRY(IID_IKsDataTypeHandler,
0x5FFBAA02L,0x49A3,0x11D0,0x9F,0x36,0x00,0xAA,0x00,0xA2,0x16,0xA1)
0x5FFBAA02L,0x49A3,0x11D0,0x9F,0x36,0x00,0xAA,0x00,0xA2,0x16,0xA1)
OUR_GUID_ENTRY(IID_IKsPin,
0xb61178d1L,0xa2d9,0x11cf,0x9e,0x53,0x00,0xaa,0x00,0xa2,0x16,0xa1)
0xb61178d1L,0xa2d9,0x11cf,0x9e,0x53,0x00,0xaa,0x00,0xa2,0x16,0xa1)
OUR_GUID_ENTRY(IID_IKsControl,
0x28F54685L,0x06FD,0x11D2,0xB2,0x7A,0x00,0xA0,0xC9,0x22,0x31,0x96)
0x28F54685L,0x06FD,0x11D2,0xB2,0x7A,0x00,0xA0,0xC9,0x22,0x31,0x96)
OUR_GUID_ENTRY(IID_IKsPinFactory,
0xCD5EBE6BL,0x8B6E,0x11D1,0x8A,0xE0,0x00,0xA0,0xC9,0x22,0x31,0x96)
0xCD5EBE6BL,0x8B6E,0x11D1,0x8A,0xE0,0x00,0xA0,0xC9,0x22,0x31,0x96)
OUR_GUID_ENTRY(AM_INTERFACESETID_Standard,
0x1A8766A0L,0x62CE,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00)
0x1A8766A0L,0x62CE,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00)
#if ( (NTDDI_VERSION >= NTDDI_WINXPSP2) && (NTDDI_VERSION < NTDDI_WS03) ) || (NTDDI_VERSION >= NTDDI_WS03SP1)
OUR_GUID_ENTRY(MEDIATYPE_MPEG2_SECTIONS,
0x455f176c,0x4b06,0x47ce,0x9a,0xef,0x8c,0xae,0xf7,0x3d,0xf7,0xb5)
0x455f176c,0x4b06,0x47ce,0x9a,0xef,0x8c,0xae,0xf7,0x3d,0xf7,0xb5)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_VERSIONED_TABLES,
0x1ed988b0,0x3ffc,0x4523,0x87,0x25,0x34,0x7b,0xee,0xc1,0xa8,0xa0)
0x1ed988b0,0x3ffc,0x4523,0x87,0x25,0x34,0x7b,0xee,0xc1,0xa8,0xa0)
OUR_GUID_ENTRY(MEDIASUBTYPE_ATSC_SI,
0xb3c7397c,0xd303,0x414d,0xb3,0x3c,0x4e,0xd2,0xc9,0xd2,0x97,0x33)
0xb3c7397c,0xd303,0x414d,0xb3,0x3c,0x4e,0xd2,0xc9,0xd2,0x97,0x33)
OUR_GUID_ENTRY(MEDIASUBTYPE_DVB_SI,
0xe9dd31a3,0x221d,0x4adb,0x85,0x32,0x9a,0xf3,0x9,0xc1,0xa4,0x8)
0xe9dd31a3,0x221d,0x4adb,0x85,0x32,0x9a,0xf3,0x9,0xc1,0xa4,0x8)
OUR_GUID_ENTRY(MEDIASUBTYPE_ISDB_SI,
0xe89ad298,0x3601,0x4b06,0xaa,0xec,0x9d,0xde,0xed,0xcc,0x5b,0xd0)
0xe89ad298,0x3601,0x4b06,0xaa,0xec,0x9d,0xde,0xed,0xcc,0x5b,0xd0)
OUR_GUID_ENTRY(MEDIASUBTYPE_TIF_SI,
0xec232eb2,0xcb96,0x4191,0xb2,0x26,0xe,0xa1,0x29,0xf3,0x82,0x50)
0xec232eb2,0xcb96,0x4191,0xb2,0x26,0xe,0xa1,0x29,0xf3,0x82,0x50)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2DATA,
0xc892e55b,0x252d,0x42b5,0xa3,0x16,0xd9,0x97,0xe7,0xa5,0xd9,0x95)
0xc892e55b,0x252d,0x42b5,0xa3,0x16,0xd9,0x97,0xe7,0xa5,0xd9,0x95)
#endif
/* ( (NTDDI_VERSION >= NTDDI_WINXPSP2) && (NTDDI_VERSION < NTDDI_WS03) ) ||
(NTDDI_VERSION >= NTDDI_WS03SP1) */
(NTDDI_VERSION >= NTDDI_WS03SP1) */
#if (NTDDI_VERSION >= NTDDI_WINXP)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_TRANSPORT_STRIDE,
0x138aa9a4,0x1ee2,0x4c5b,0x98,0x8e,0x19,0xab,0xfd,0xbc,0x8a,0x11)
0x138aa9a4,0x1ee2,0x4c5b,0x98,0x8e,0x19,0xab,0xfd,0xbc,0x8a,0x11)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_UDCR_TRANSPORT,
0x18BEC4EA,0x4676,0x450e,0xB4,0x78,0x0C,0xD8,0x4C,0x54,0xB3,0x27)
0x18BEC4EA,0x4676,0x450e,0xB4,0x78,0x0C,0xD8,0x4C,0x54,0xB3,0x27)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_PBDA_TRANSPORT_RAW,
0x0d7aed42,0xcb9a,0x11db,0x97,0x5,0x0,0x50,0x56,0xc0,0x0,0x8)
0x0d7aed42,0xcb9a,0x11db,0x97,0x5,0x0,0x50,0x56,0xc0,0x0,0x8)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_PBDA_TRANSPORT_PROCESSED,
0xaf748dd4,0xd80,0x11db,0x97,0x5,0x0,0x50,0x56,0xc0,0x0,0x8)
0xaf748dd4,0xd80,0x11db,0x97,0x5,0x0,0x50,0x56,0xc0,0x0,0x8)
OUR_GUID_ENTRY(MEDIASUBTYPE_DTS,
0xe06d8033,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
0xe06d8033,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(MEDIASUBTYPE_SDDS,
0xe06d8034,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
0xe06d8034,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x05f,0x6c,0xbb,0xea)
OUR_GUID_ENTRY(AM_KSPROPSETID_DVD_RateChange,
0x3577eb09,0x9582,0x477f,0xb2,0x9c,0xb0,0xc4,0x52,0xa4,0xff,0x9a)
0x3577eb09,0x9582,0x477f,0xb2,0x9c,0xb0,0xc4,0x52,0xa4,0xff,0x9a)
OUR_GUID_ENTRY(AM_KSPROPSETID_DvdKaraoke,
0xae4720ae,0xaa71,0x42d8,0xb8,0x2a,0xff,0xfd,0xf5,0x8b,0x76,0xfd)
0xae4720ae,0xaa71,0x42d8,0xb8,0x2a,0xff,0xfd,0xf5,0x8b,0x76,0xfd)
OUR_GUID_ENTRY(AM_KSPROPSETID_FrameStep,
0xc830acbd,0xab07,0x492f,0x88,0x52,0x45,0xb6,0x98,0x7c,0x29,0x79)
0xc830acbd,0xab07,0x492f,0x88,0x52,0x45,0xb6,0x98,0x7c,0x29,0x79)
#endif /* NTDDI_VERSION >= NTDDI_WINXP */
#if (NTDDI_VERSION >= NTDDI_WS03SP1)
OUR_GUID_ENTRY(AM_KSCATEGORY_VBICODEC_MI,
0x9c24a977,0x951,0x451a,0x80,0x6,0xe,0x49,0xbd,0x28,0xcd,0x5f)
0x9c24a977,0x951,0x451a,0x80,0x6,0xe,0x49,0xbd,0x28,0xcd,0x5f)
#endif /* NTDDI_VERSION >= NTDDI_WS03SP1 */
+4 -4
Ver Arquivo
@@ -2097,12 +2097,12 @@ typedef LONGLONG REFERENCE_TIME;
DWORD dwMerit;
union {
struct {
ULONG cPins;
const REGFILTERPINS *rgPins;
ULONG cPins;
const REGFILTERPINS *rgPins;
};
struct {
ULONG cPins2;
const REGFILTERPINS2 *rgPins2;
ULONG cPins2;
const REGFILTERPINS2 *rgPins2;
};
};
} REGFILTER2;
+9 -9
Ver Arquivo
@@ -1,32 +1,32 @@
// ISO C9x compliant inttypes.h for Microsoft Visual Studio
// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
//
// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
//
// Copyright (c) 2006 Alexander Chemeris
//
//
// 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. The name of the author may be used to endorse or promote products
// derived from this software without specific prior written permission.
//
//
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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,
// 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.
//
//
///////////////////////////////////////////////////////////////////////////////
#ifndef _MSC_VER // [
+10 -10
Ver Arquivo
@@ -1,32 +1,32 @@
// ISO C9x compliant stdint.h for Microsoft Visual Studio
// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
//
// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
//
// Copyright (c) 2006 Alexander Chemeris
//
//
// 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. The name of the author may be used to endorse or promote products
// derived from this software without specific prior written permission.
//
//
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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,
// 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.
//
//
///////////////////////////////////////////////////////////////////////////////
#ifndef _MSC_STDINT_H_ // [
@@ -39,7 +39,7 @@
// error C2733: second C linkage of overloaded function 'wmemchr' not allowed
#if (_MSC_VER < 1300) && defined(__cplusplus)
extern "C++" {
#endif
#endif
# include <wchar.h>
#if (_MSC_VER < 1300) && defined(__cplusplus)
}
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
+15 -26
Ver Arquivo
@@ -7,31 +7,24 @@ project(${JASPER_LIBRARY})
add_definitions(-DEXCLUDE_MIF_SUPPORT -DEXCLUDE_PNM_SUPPORT -DEXCLUDE_BMP_SUPPORT -DEXCLUDE_RAS_SUPPORT -DEXCLUDE_JPG_SUPPORT -DEXCLUDE_PGX_SUPPORT)
# List of C++ files:
ocv_include_directories(${CMAKE_CURRENT_SOURCE_DIR})
# The .cpp files:
file(GLOB lib_srcs *.c)
file(GLOB lib_hdrs *.h)
file(GLOB lib_ext_hdrs jasper/*.h)
# ----------------------------------------------------------------------------------
# Define the library target:
# Define the library target:
# ----------------------------------------------------------------------------------
add_library(${JASPER_LIBRARY} STATIC ${lib_srcs} ${lib_hdrs} ${lib_ext_hdrs})
if(MSVC)
if(NOT ENABLE_NOISY_WARNINGS)
string(REPLACE "/W3" "/W0" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
string(REPLACE "/W4" "/W0" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
endif()
if(WIN32 AND NOT MINGW)
add_definitions(-DJAS_WIN_MSVC_BUILD)
endif()
endif(WIN32 AND NOT MINGW)
if(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-uninitialized")
endif()
ocv_warnings_disable(CMAKE_C_FLAGS -Wno-implicit-function-declaration -Wno-uninitialized -Wmissing-prototypes -Wmissing-declarations -Wunused -Wshadow -Wsign-compare)
ocv_warnings_disable(CMAKE_C_FLAGS /wd4013 /wd4018 /wd4101 /wd4244 /wd4267 /wd4715) # vs2005
if(UNIX)
if(CMAKE_COMPILER_IS_GNUCXX OR CV_ICC)
@@ -39,22 +32,18 @@ if(UNIX)
endif()
endif()
if(CMAKE_COMPILER_IS_GNUCXX AND NOT ENABLE_NOISY_WARNINGS)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-implicit-function-declaration -Wno-unused")
endif()
set_target_properties(${JASPER_LIBRARY}
PROPERTIES
OUTPUT_NAME ${JASPER_LIBRARY}
DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/3rdparty/${OPENCV_LIB_INSTALL_PATH}"
)
PROPERTIES
OUTPUT_NAME ${JASPER_LIBRARY}
DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
ARCHIVE_OUTPUT_DIRECTORY ${3P_LIBRARY_OUTPUT_PATH}
)
if(ENABLE_SOLUTION_FOLDERS)
set_target_properties(${JASPER_LIBRARY} PROPERTIES FOLDER "3rdparty")
endif()
if(NOT BUILD_SHARED_LIBS)
install(TARGETS ${JASPER_LIBRARY} ARCHIVE DESTINATION share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH} COMPONENT main)
endif()
if(NOT BUILD_SHARED_LIBS)
install(TARGETS ${JASPER_LIBRARY} ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT main)
endif()
+162
Ver Arquivo
@@ -0,0 +1,162 @@
jasper (1.900.1-13) unstable; urgency=high
* Fix CVE-2011-4516 and CVE-2011-4517: Two buffer overflow issues possibly
exploitable via specially crafted input files (Closes: #652649)
Thanks to Red Hat and Michael Gilbert
-- Roland Stigge <stigge@antcom.de> Wed, 04 Jan 2012 19:14:40 +0100
jasper (1.900.1-12) unstable; urgency=low
* Added patch to fix filename buffer overflow, thanks to Jonas Smedegard
and Alex Cherepanov from ghostscript (Closes: #649833)
-- Roland Stigge <stigge@antcom.de> Sun, 27 Nov 2011 19:56:01 +0100
jasper (1.900.1-11) unstable; urgency=low
* Added Multiarch support, thanks to Colin Watson (Closes: #645118)
-- Roland Stigge <stigge@antcom.de> Wed, 02 Nov 2011 17:16:10 +0100
jasper (1.900.1-10) unstable; urgency=low
* Added debian/watch
* debian/patches/01-misc-fixes.patch:
- Separated out config.{guess,sub}
-- Roland Stigge <stigge@antcom.de> Mon, 15 Aug 2011 19:09:29 +0200
jasper (1.900.1-9) unstable; urgency=low
* Switch to dpkg-source 3.0 (quilt) format
* Using new dh 7 build system
-- Roland Stigge <stigge@antcom.de> Tue, 12 Jul 2011 20:21:21 +0200
jasper (1.900.1-8) unstable; urgency=low
* Removed unneeded .la file (Closes: #633162)
* debian/control:
- Standards-Version: 3.9.2
- use libjpeg8-dev instead of libjpeg62-dev
-- Roland Stigge <stigge@antcom.de> Mon, 11 Jul 2011 21:27:24 +0200
jasper (1.900.1-7) unstable; urgency=low
* Acknowledge NMU
* Added patch to fix Debian patch for CVE-2008-3521 (Closes: #506739)
* debian/control: Standards-Version: 3.8.4
-- Roland Stigge <stigge@antcom.de> Sun, 21 Feb 2010 16:09:45 +0100
jasper (1.900.1-6.1) unstable; urgency=low
* Non-maintainer upload.
* This is a fix for the GeoJP2 patch introduced in 1.900.1-5 which caused
GDAL faulting. Thanks Even Rouault. (Closes: #553429)
-- Francesco Paolo Lovergine <frankie@debian.org> Wed, 28 Oct 2009 09:39:28 +0100
jasper (1.900.1-6) unstable; urgency=low
* Reverted to jasper 1.900.1-6 because 1.900.1-5.1 messed up (see #528543)
but 1.900.1-5 wasn't available anymore. (Closes: #514296, #528543)
* Re-applied patch from #275619 as in 1.900.1-5
* debian/control: Standards-Version: 3.8.2
* Applied patch by Nico Golde (Closes: #501021)
- CVE-2008-3522[0]: Buffer overflow.
- CVE-2008-3521[1]: unsecure temporary files handling.
- CVE-2008-3520[2]: Multiple integer overflows.
-- Roland Stigge <stigge@antcom.de> Sat, 20 Jun 2009 15:21:16 +0200
jasper (1.900.1-5.1) unstable; urgency=low
* Non-maintainer upload.
* add patches/02_security.dpatch to fix various CVEs (Closes: #501021):
+ CVE-2008-3522[0]: Buffer overflow.
+ CVE-2008-3521[1]: unsecure temporary files handling.
+ CVE-2008-3520[2]: Multiple integer overflows.
-- Pierre Habouzit <madcoder@debian.org> Sun, 12 Oct 2008 21:40:59 +0200
jasper (1.900.1-5) unstable; urgency=low
* Added GeoJP2 patch by Sven Geggus <sven.geggus@iitb.fraunhofer.de>
(Closes: #275619)
* debian/control: Standards-Version: 3.8.0
-- Roland Stigge <stigge@antcom.de> Sun, 08 Jun 2008 13:14:24 +0200
jasper (1.900.1-4) unstable; urgency=low
* src/libjasper/jpc/jpc_dec.c: Extended assert() to accept 4 color
components (Closes: #469786)
* debian/rules: improve "make distclean", thanks to lintian
* debian/control:
- Standards-Version: 3.7.3
- ${Source-Version} -> ${binary:Version}
- Removed self-dependencies of libjasper-dev
-- Roland Stigge <stigge@antcom.de> Sun, 09 Mar 2008 11:53:44 +0100
jasper (1.900.1-3) unstable; urgency=low
* Fixed segfaults on broken images (Closes: #413041)
-- Roland Stigge <stigge@antcom.de> Tue, 10 Apr 2007 10:05:10 +0200
jasper (1.900.1-2) experimental; urgency=low
* Added jas_tmr.h to -dev package (Closes: #414705)
-- Roland Stigge <stigge@antcom.de> Tue, 13 Mar 2007 14:23:58 +0100
jasper (1.900.1-1) experimental; urgency=low
* New upstream release
* debian/control:
- Standards-Version: 3.7.2
- Build-Depends: freeglut3-dev instead of libglut3-dev (Closes: #394496)
* Renamed packages to libjasper1, libjasper-dev, libjasper-runtime according
to upstream shared library naming change
-- Roland Stigge <stigge@antcom.de> Fri, 26 Jan 2007 14:22:18 +0100
jasper (1.701.0-2) unstable; urgency=low
* Prevent compression of pdf documents in binary packages
* Added man pages for the executables (Closes: #250077)
* Again renamed binary packages to reflect Policy:
- libjasper-1.701-1
- libjasper-1.701-dev (Provides, Replaces and Conflicts: libjasper-dev)
- libjasper-runtime
-- Roland Stigge <stigge@antcom.de> Sun, 20 Jun 2004 13:54:10 +0200
jasper (1.701.0-1) unstable; urgency=low
* New maintainer (Closes: #217099)
* New upstream release (Closes: #217570)
- new DFSG-compliant license (Closes: #218999, #245075)
- includes newer libtool related files (Closes: #210383)
* debian/control:
- Standards-Version: 3.6.1
- Changed binary package names, fixed interdependencies (Closes: #211592)
libjasper-1.700-2 => libjasper1
libjasper-1.700-2-dev => libjasper-dev
libjasper-progs => libjasper-runtime
(new packages conflicting and replacing the old ones)
- Added libxi-dev, libxmu-dev, libxt-dev to Build-Depends
(Closes: #250481)
-- Roland Stigge <stigge@antcom.de> Sat, 19 Jun 2004 23:19:32 +0200
jasper (1.700.2-1) unstable; urgency=low
* Initial Release.
-- Christopher L Cheney <ccheney@debian.org> Fri, 22 Aug 2003 01:30:00 -0500
+62
Ver Arquivo
@@ -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.
+903 -904
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+36 -36
Ver Arquivo
@@ -4,15 +4,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -20,15 +20,15 @@
* 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
@@ -55,7 +55,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -83,22 +83,22 @@ static int jas_dbglevel = 0;
/* Set the library debug level. */
int jas_setdbglevel(int dbglevel)
{
int olddbglevel;
int olddbglevel;
/* Save the old debug level. */
olddbglevel = jas_dbglevel;
/* Save the old debug level. */
olddbglevel = jas_dbglevel;
/* Change the debug level. */
jas_dbglevel = dbglevel;
/* Change the debug level. */
jas_dbglevel = dbglevel;
/* Return the old debug level. */
return olddbglevel;
/* Return the old debug level. */
return olddbglevel;
}
/* Get the library debug level. */
int jas_getdbglevel()
{
return jas_dbglevel;
return jas_dbglevel;
}
/******************************************************************************\
@@ -108,30 +108,30 @@ int jas_getdbglevel()
/* Perform formatted output to standard error. */
int jas_eprintf(const char *fmt, ...)
{
int ret;
va_list ap;
int ret;
va_list ap;
va_start(ap, fmt);
ret = vfprintf(stderr, fmt, ap);
va_end(ap);
return ret;
va_start(ap, fmt);
ret = vfprintf(stderr, fmt, ap);
va_end(ap);
return ret;
}
/* Dump memory to a stream. */
int jas_memdump(FILE *out, void *data, size_t len)
{
size_t i;
size_t j;
uchar *dp;
dp = data;
for (i = 0; i < len; i += 16) {
fprintf(out, "%04x:", (int)i);
for (j = 0; j < 16; ++j) {
if (i + j < len) {
fprintf(out, " %02x", dp[i + j]);
}
}
fprintf(out, "\n");
}
return 0;
size_t i;
size_t j;
uchar *dp;
dp = data;
for (i = 0; i < len; i += 16) {
fprintf(out, "%04x:", (int)i);
for (j = 0; j < 16; ++j) {
if (i + j < len) {
fprintf(out, " %02x", dp[i + j]);
}
}
fprintf(out, "\n");
}
return 0;
}
+77 -77
Ver Arquivo
@@ -2,19 +2,19 @@
* Copyright (c) 1999-2000, Image Power, Inc. and the University of
* British Columbia.
* Copyright (c) 2001-2002 Michael David Adams.
* All rights reserved.
* All rights reserved.
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -91,78 +91,78 @@ char *jas_optarg = 0;
static jas_opt_t *jas_optlookup(jas_opt_t *opts, char *name)
{
jas_opt_t *opt;
jas_opt_t *opt;
for (opt = opts; opt->id >= 0 && opt->name; ++opt) {
if (!strcmp(opt->name, name)) {
return opt;
}
}
return 0;
for (opt = opts; opt->id >= 0 && opt->name; ++opt) {
if (!strcmp(opt->name, name)) {
return opt;
}
}
return 0;
}
int jas_getopt(int argc, char **argv, jas_opt_t *opts)
{
char *cp;
int id;
int hasarg;
jas_opt_t *opt;
char *s;
char *cp;
int id;
int hasarg;
jas_opt_t *opt;
char *s;
if (!jas_optind) {
jas_optind = JAS_MIN(1, argc);
}
while (jas_optind < argc) {
s = cp = argv[jas_optind];
if (*cp == '-') {
/* We are processing an option. */
++jas_optind;
if (*++cp == '-') {
/* We are processing a long option. */
++cp;
if (*cp == '\0') {
/* This is the end of the options. */
return JAS_GETOPT_EOF;
}
if (!(opt = jas_optlookup(opts, cp))) {
if (jas_opterr) {
jas_eprintf("unknown long option %s\n", s);
}
return JAS_GETOPT_ERR;
}
hasarg = (opt->flags & JAS_OPT_HASARG) != 0;
id = opt->id;
} else {
/* We are processing a short option. */
if (strlen(cp) != 1 ||
!(opt = jas_optlookup(opts, cp))) {
if (jas_opterr) {
jas_eprintf("unknown short option %s\n", s);
}
return JAS_GETOPT_ERR;
}
hasarg = (opt->flags & JAS_OPT_HASARG) != 0;
id = opt->id;
}
if (hasarg) {
/* The option has an argument. */
if (jas_optind >= argc) {
if (jas_opterr) {
jas_eprintf("missing argument for option %s\n", s);
}
return JAS_GETOPT_ERR;
}
jas_optarg = argv[jas_optind];
++jas_optind;
} else {
/* The option does not have an argument. */
jas_optarg = 0;
}
return id;
} else {
/* We are not processing an option. */
return JAS_GETOPT_EOF;
}
}
return JAS_GETOPT_EOF;
if (!jas_optind) {
jas_optind = JAS_MIN(1, argc);
}
while (jas_optind < argc) {
s = cp = argv[jas_optind];
if (*cp == '-') {
/* We are processing an option. */
++jas_optind;
if (*++cp == '-') {
/* We are processing a long option. */
++cp;
if (*cp == '\0') {
/* This is the end of the options. */
return JAS_GETOPT_EOF;
}
if (!(opt = jas_optlookup(opts, cp))) {
if (jas_opterr) {
jas_eprintf("unknown long option %s\n", s);
}
return JAS_GETOPT_ERR;
}
hasarg = (opt->flags & JAS_OPT_HASARG) != 0;
id = opt->id;
} else {
/* We are processing a short option. */
if (strlen(cp) != 1 ||
!(opt = jas_optlookup(opts, cp))) {
if (jas_opterr) {
jas_eprintf("unknown short option %s\n", s);
}
return JAS_GETOPT_ERR;
}
hasarg = (opt->flags & JAS_OPT_HASARG) != 0;
id = opt->id;
}
if (hasarg) {
/* The option has an argument. */
if (jas_optind >= argc) {
if (jas_opterr) {
jas_eprintf("missing argument for option %s\n", s);
}
return JAS_GETOPT_ERR;
}
jas_optarg = argv[jas_optind];
++jas_optind;
} else {
/* The option does not have an argument. */
jas_optarg = 0;
}
return id;
} else {
/* We are not processing an option. */
return JAS_GETOPT_EOF;
}
}
return JAS_GETOPT_EOF;
}
+1096 -1097
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+451 -451
Ver Arquivo
@@ -4,15 +4,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -20,15 +20,15 @@
* 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
@@ -55,7 +55,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -64,454 +64,454 @@
uchar jas_iccprofdata_srgb[] =
{
0x00, 0x00, 0x0c, 0x48, 0x4c, 0x69, 0x6e, 0x6f,
0x02, 0x10, 0x00, 0x00, 0x6d, 0x6e, 0x74, 0x72,
0x52, 0x47, 0x42, 0x20, 0x58, 0x59, 0x5a, 0x20,
0x07, 0xce, 0x00, 0x02, 0x00, 0x09, 0x00, 0x06,
0x00, 0x31, 0x00, 0x00, 0x61, 0x63, 0x73, 0x70,
0x4d, 0x53, 0x46, 0x54, 0x00, 0x00, 0x00, 0x00,
0x49, 0x45, 0x43, 0x20, 0x73, 0x52, 0x47, 0x42,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xd6,
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x2d,
0x48, 0x50, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x11, 0x63, 0x70, 0x72, 0x74,
0x00, 0x00, 0x01, 0x50, 0x00, 0x00, 0x00, 0x33,
0x64, 0x65, 0x73, 0x63, 0x00, 0x00, 0x01, 0x84,
0x00, 0x00, 0x00, 0x6c, 0x77, 0x74, 0x70, 0x74,
0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x14,
0x62, 0x6b, 0x70, 0x74, 0x00, 0x00, 0x02, 0x04,
0x00, 0x00, 0x00, 0x14, 0x72, 0x58, 0x59, 0x5a,
0x00, 0x00, 0x02, 0x18, 0x00, 0x00, 0x00, 0x14,
0x67, 0x58, 0x59, 0x5a, 0x00, 0x00, 0x02, 0x2c,
0x00, 0x00, 0x00, 0x14, 0x62, 0x58, 0x59, 0x5a,
0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x14,
0x64, 0x6d, 0x6e, 0x64, 0x00, 0x00, 0x02, 0x54,
0x00, 0x00, 0x00, 0x70, 0x64, 0x6d, 0x64, 0x64,
0x00, 0x00, 0x02, 0xc4, 0x00, 0x00, 0x00, 0x88,
0x76, 0x75, 0x65, 0x64, 0x00, 0x00, 0x03, 0x4c,
0x00, 0x00, 0x00, 0x86, 0x76, 0x69, 0x65, 0x77,
0x00, 0x00, 0x03, 0xd4, 0x00, 0x00, 0x00, 0x24,
0x6c, 0x75, 0x6d, 0x69, 0x00, 0x00, 0x03, 0xf8,
0x00, 0x00, 0x00, 0x14, 0x6d, 0x65, 0x61, 0x73,
0x00, 0x00, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x24,
0x74, 0x65, 0x63, 0x68, 0x00, 0x00, 0x04, 0x30,
0x00, 0x00, 0x00, 0x0c, 0x72, 0x54, 0x52, 0x43,
0x00, 0x00, 0x04, 0x3c, 0x00, 0x00, 0x08, 0x0c,
0x67, 0x54, 0x52, 0x43, 0x00, 0x00, 0x04, 0x3c,
0x00, 0x00, 0x08, 0x0c, 0x62, 0x54, 0x52, 0x43,
0x00, 0x00, 0x04, 0x3c, 0x00, 0x00, 0x08, 0x0c,
0x74, 0x65, 0x78, 0x74, 0x00, 0x00, 0x00, 0x00,
0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x31, 0x39,
0x39, 0x38, 0x20, 0x48, 0x65, 0x77, 0x6c, 0x65,
0x74, 0x74, 0x2d, 0x50, 0x61, 0x63, 0x6b, 0x61,
0x72, 0x64, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x61,
0x6e, 0x79, 0x00, 0x00, 0x64, 0x65, 0x73, 0x63,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12,
0x73, 0x52, 0x47, 0x42, 0x20, 0x49, 0x45, 0x43,
0x36, 0x31, 0x39, 0x36, 0x36, 0x2d, 0x32, 0x2e,
0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x12, 0x73, 0x52, 0x47,
0x42, 0x20, 0x49, 0x45, 0x43, 0x36, 0x31, 0x39,
0x36, 0x36, 0x2d, 0x32, 0x2e, 0x31, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xf3, 0x51, 0x00, 0x01, 0x00, 0x00,
0x00, 0x01, 0x16, 0xcc, 0x58, 0x59, 0x5a, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x6f, 0xa2, 0x00, 0x00, 0x38, 0xf5,
0x00, 0x00, 0x03, 0x90, 0x58, 0x59, 0x5a, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x99,
0x00, 0x00, 0xb7, 0x85, 0x00, 0x00, 0x18, 0xda,
0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x24, 0xa0, 0x00, 0x00, 0x0f, 0x84,
0x00, 0x00, 0xb6, 0xcf, 0x64, 0x65, 0x73, 0x63,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16,
0x49, 0x45, 0x43, 0x20, 0x68, 0x74, 0x74, 0x70,
0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x69,
0x65, 0x63, 0x2e, 0x63, 0x68, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x16, 0x49, 0x45, 0x43, 0x20, 0x68, 0x74, 0x74,
0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
0x69, 0x65, 0x63, 0x2e, 0x63, 0x68, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x64, 0x65, 0x73, 0x63,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e,
0x49, 0x45, 0x43, 0x20, 0x36, 0x31, 0x39, 0x36,
0x36, 0x2d, 0x32, 0x2e, 0x31, 0x20, 0x44, 0x65,
0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x52, 0x47,
0x42, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x75, 0x72,
0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x2d,
0x20, 0x73, 0x52, 0x47, 0x42, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x2e, 0x49, 0x45, 0x43, 0x20, 0x36, 0x31, 0x39,
0x36, 0x36, 0x2d, 0x32, 0x2e, 0x31, 0x20, 0x44,
0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x52,
0x47, 0x42, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x75,
0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20,
0x2d, 0x20, 0x73, 0x52, 0x47, 0x42, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x64, 0x65, 0x73, 0x63,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c,
0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
0x65, 0x20, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e,
0x67, 0x20, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74,
0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x49,
0x45, 0x43, 0x36, 0x31, 0x39, 0x36, 0x36, 0x2d,
0x32, 0x2e, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x52,
0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
0x20, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67,
0x20, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69,
0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x49, 0x45,
0x43, 0x36, 0x31, 0x39, 0x36, 0x36, 0x2d, 0x32,
0x2e, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x76, 0x69, 0x65, 0x77,
0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0xa4, 0xfe,
0x00, 0x14, 0x5f, 0x2e, 0x00, 0x10, 0xcf, 0x14,
0x00, 0x03, 0xed, 0xcc, 0x00, 0x04, 0x13, 0x0b,
0x00, 0x03, 0x5c, 0x9e, 0x00, 0x00, 0x00, 0x01,
0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00,
0x00, 0x4c, 0x09, 0x56, 0x00, 0x50, 0x00, 0x00,
0x00, 0x57, 0x1f, 0xe7, 0x6d, 0x65, 0x61, 0x73,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x8f, 0x00, 0x00, 0x00, 0x02,
0x73, 0x69, 0x67, 0x20, 0x00, 0x00, 0x00, 0x00,
0x43, 0x52, 0x54, 0x20, 0x63, 0x75, 0x72, 0x76,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
0x00, 0x00, 0x00, 0x05, 0x00, 0x0a, 0x00, 0x0f,
0x00, 0x14, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x23,
0x00, 0x28, 0x00, 0x2d, 0x00, 0x32, 0x00, 0x37,
0x00, 0x3b, 0x00, 0x40, 0x00, 0x45, 0x00, 0x4a,
0x00, 0x4f, 0x00, 0x54, 0x00, 0x59, 0x00, 0x5e,
0x00, 0x63, 0x00, 0x68, 0x00, 0x6d, 0x00, 0x72,
0x00, 0x77, 0x00, 0x7c, 0x00, 0x81, 0x00, 0x86,
0x00, 0x8b, 0x00, 0x90, 0x00, 0x95, 0x00, 0x9a,
0x00, 0x9f, 0x00, 0xa4, 0x00, 0xa9, 0x00, 0xae,
0x00, 0xb2, 0x00, 0xb7, 0x00, 0xbc, 0x00, 0xc1,
0x00, 0xc6, 0x00, 0xcb, 0x00, 0xd0, 0x00, 0xd5,
0x00, 0xdb, 0x00, 0xe0, 0x00, 0xe5, 0x00, 0xeb,
0x00, 0xf0, 0x00, 0xf6, 0x00, 0xfb, 0x01, 0x01,
0x01, 0x07, 0x01, 0x0d, 0x01, 0x13, 0x01, 0x19,
0x01, 0x1f, 0x01, 0x25, 0x01, 0x2b, 0x01, 0x32,
0x01, 0x38, 0x01, 0x3e, 0x01, 0x45, 0x01, 0x4c,
0x01, 0x52, 0x01, 0x59, 0x01, 0x60, 0x01, 0x67,
0x01, 0x6e, 0x01, 0x75, 0x01, 0x7c, 0x01, 0x83,
0x01, 0x8b, 0x01, 0x92, 0x01, 0x9a, 0x01, 0xa1,
0x01, 0xa9, 0x01, 0xb1, 0x01, 0xb9, 0x01, 0xc1,
0x01, 0xc9, 0x01, 0xd1, 0x01, 0xd9, 0x01, 0xe1,
0x01, 0xe9, 0x01, 0xf2, 0x01, 0xfa, 0x02, 0x03,
0x02, 0x0c, 0x02, 0x14, 0x02, 0x1d, 0x02, 0x26,
0x02, 0x2f, 0x02, 0x38, 0x02, 0x41, 0x02, 0x4b,
0x02, 0x54, 0x02, 0x5d, 0x02, 0x67, 0x02, 0x71,
0x02, 0x7a, 0x02, 0x84, 0x02, 0x8e, 0x02, 0x98,
0x02, 0xa2, 0x02, 0xac, 0x02, 0xb6, 0x02, 0xc1,
0x02, 0xcb, 0x02, 0xd5, 0x02, 0xe0, 0x02, 0xeb,
0x02, 0xf5, 0x03, 0x00, 0x03, 0x0b, 0x03, 0x16,
0x03, 0x21, 0x03, 0x2d, 0x03, 0x38, 0x03, 0x43,
0x03, 0x4f, 0x03, 0x5a, 0x03, 0x66, 0x03, 0x72,
0x03, 0x7e, 0x03, 0x8a, 0x03, 0x96, 0x03, 0xa2,
0x03, 0xae, 0x03, 0xba, 0x03, 0xc7, 0x03, 0xd3,
0x03, 0xe0, 0x03, 0xec, 0x03, 0xf9, 0x04, 0x06,
0x04, 0x13, 0x04, 0x20, 0x04, 0x2d, 0x04, 0x3b,
0x04, 0x48, 0x04, 0x55, 0x04, 0x63, 0x04, 0x71,
0x04, 0x7e, 0x04, 0x8c, 0x04, 0x9a, 0x04, 0xa8,
0x04, 0xb6, 0x04, 0xc4, 0x04, 0xd3, 0x04, 0xe1,
0x04, 0xf0, 0x04, 0xfe, 0x05, 0x0d, 0x05, 0x1c,
0x05, 0x2b, 0x05, 0x3a, 0x05, 0x49, 0x05, 0x58,
0x05, 0x67, 0x05, 0x77, 0x05, 0x86, 0x05, 0x96,
0x05, 0xa6, 0x05, 0xb5, 0x05, 0xc5, 0x05, 0xd5,
0x05, 0xe5, 0x05, 0xf6, 0x06, 0x06, 0x06, 0x16,
0x06, 0x27, 0x06, 0x37, 0x06, 0x48, 0x06, 0x59,
0x06, 0x6a, 0x06, 0x7b, 0x06, 0x8c, 0x06, 0x9d,
0x06, 0xaf, 0x06, 0xc0, 0x06, 0xd1, 0x06, 0xe3,
0x06, 0xf5, 0x07, 0x07, 0x07, 0x19, 0x07, 0x2b,
0x07, 0x3d, 0x07, 0x4f, 0x07, 0x61, 0x07, 0x74,
0x07, 0x86, 0x07, 0x99, 0x07, 0xac, 0x07, 0xbf,
0x07, 0xd2, 0x07, 0xe5, 0x07, 0xf8, 0x08, 0x0b,
0x08, 0x1f, 0x08, 0x32, 0x08, 0x46, 0x08, 0x5a,
0x08, 0x6e, 0x08, 0x82, 0x08, 0x96, 0x08, 0xaa,
0x08, 0xbe, 0x08, 0xd2, 0x08, 0xe7, 0x08, 0xfb,
0x09, 0x10, 0x09, 0x25, 0x09, 0x3a, 0x09, 0x4f,
0x09, 0x64, 0x09, 0x79, 0x09, 0x8f, 0x09, 0xa4,
0x09, 0xba, 0x09, 0xcf, 0x09, 0xe5, 0x09, 0xfb,
0x0a, 0x11, 0x0a, 0x27, 0x0a, 0x3d, 0x0a, 0x54,
0x0a, 0x6a, 0x0a, 0x81, 0x0a, 0x98, 0x0a, 0xae,
0x0a, 0xc5, 0x0a, 0xdc, 0x0a, 0xf3, 0x0b, 0x0b,
0x0b, 0x22, 0x0b, 0x39, 0x0b, 0x51, 0x0b, 0x69,
0x0b, 0x80, 0x0b, 0x98, 0x0b, 0xb0, 0x0b, 0xc8,
0x0b, 0xe1, 0x0b, 0xf9, 0x0c, 0x12, 0x0c, 0x2a,
0x0c, 0x43, 0x0c, 0x5c, 0x0c, 0x75, 0x0c, 0x8e,
0x0c, 0xa7, 0x0c, 0xc0, 0x0c, 0xd9, 0x0c, 0xf3,
0x0d, 0x0d, 0x0d, 0x26, 0x0d, 0x40, 0x0d, 0x5a,
0x0d, 0x74, 0x0d, 0x8e, 0x0d, 0xa9, 0x0d, 0xc3,
0x0d, 0xde, 0x0d, 0xf8, 0x0e, 0x13, 0x0e, 0x2e,
0x0e, 0x49, 0x0e, 0x64, 0x0e, 0x7f, 0x0e, 0x9b,
0x0e, 0xb6, 0x0e, 0xd2, 0x0e, 0xee, 0x0f, 0x09,
0x0f, 0x25, 0x0f, 0x41, 0x0f, 0x5e, 0x0f, 0x7a,
0x0f, 0x96, 0x0f, 0xb3, 0x0f, 0xcf, 0x0f, 0xec,
0x10, 0x09, 0x10, 0x26, 0x10, 0x43, 0x10, 0x61,
0x10, 0x7e, 0x10, 0x9b, 0x10, 0xb9, 0x10, 0xd7,
0x10, 0xf5, 0x11, 0x13, 0x11, 0x31, 0x11, 0x4f,
0x11, 0x6d, 0x11, 0x8c, 0x11, 0xaa, 0x11, 0xc9,
0x11, 0xe8, 0x12, 0x07, 0x12, 0x26, 0x12, 0x45,
0x12, 0x64, 0x12, 0x84, 0x12, 0xa3, 0x12, 0xc3,
0x12, 0xe3, 0x13, 0x03, 0x13, 0x23, 0x13, 0x43,
0x13, 0x63, 0x13, 0x83, 0x13, 0xa4, 0x13, 0xc5,
0x13, 0xe5, 0x14, 0x06, 0x14, 0x27, 0x14, 0x49,
0x14, 0x6a, 0x14, 0x8b, 0x14, 0xad, 0x14, 0xce,
0x14, 0xf0, 0x15, 0x12, 0x15, 0x34, 0x15, 0x56,
0x15, 0x78, 0x15, 0x9b, 0x15, 0xbd, 0x15, 0xe0,
0x16, 0x03, 0x16, 0x26, 0x16, 0x49, 0x16, 0x6c,
0x16, 0x8f, 0x16, 0xb2, 0x16, 0xd6, 0x16, 0xfa,
0x17, 0x1d, 0x17, 0x41, 0x17, 0x65, 0x17, 0x89,
0x17, 0xae, 0x17, 0xd2, 0x17, 0xf7, 0x18, 0x1b,
0x18, 0x40, 0x18, 0x65, 0x18, 0x8a, 0x18, 0xaf,
0x18, 0xd5, 0x18, 0xfa, 0x19, 0x20, 0x19, 0x45,
0x19, 0x6b, 0x19, 0x91, 0x19, 0xb7, 0x19, 0xdd,
0x1a, 0x04, 0x1a, 0x2a, 0x1a, 0x51, 0x1a, 0x77,
0x1a, 0x9e, 0x1a, 0xc5, 0x1a, 0xec, 0x1b, 0x14,
0x1b, 0x3b, 0x1b, 0x63, 0x1b, 0x8a, 0x1b, 0xb2,
0x1b, 0xda, 0x1c, 0x02, 0x1c, 0x2a, 0x1c, 0x52,
0x1c, 0x7b, 0x1c, 0xa3, 0x1c, 0xcc, 0x1c, 0xf5,
0x1d, 0x1e, 0x1d, 0x47, 0x1d, 0x70, 0x1d, 0x99,
0x1d, 0xc3, 0x1d, 0xec, 0x1e, 0x16, 0x1e, 0x40,
0x1e, 0x6a, 0x1e, 0x94, 0x1e, 0xbe, 0x1e, 0xe9,
0x1f, 0x13, 0x1f, 0x3e, 0x1f, 0x69, 0x1f, 0x94,
0x1f, 0xbf, 0x1f, 0xea, 0x20, 0x15, 0x20, 0x41,
0x20, 0x6c, 0x20, 0x98, 0x20, 0xc4, 0x20, 0xf0,
0x21, 0x1c, 0x21, 0x48, 0x21, 0x75, 0x21, 0xa1,
0x21, 0xce, 0x21, 0xfb, 0x22, 0x27, 0x22, 0x55,
0x22, 0x82, 0x22, 0xaf, 0x22, 0xdd, 0x23, 0x0a,
0x23, 0x38, 0x23, 0x66, 0x23, 0x94, 0x23, 0xc2,
0x23, 0xf0, 0x24, 0x1f, 0x24, 0x4d, 0x24, 0x7c,
0x24, 0xab, 0x24, 0xda, 0x25, 0x09, 0x25, 0x38,
0x25, 0x68, 0x25, 0x97, 0x25, 0xc7, 0x25, 0xf7,
0x26, 0x27, 0x26, 0x57, 0x26, 0x87, 0x26, 0xb7,
0x26, 0xe8, 0x27, 0x18, 0x27, 0x49, 0x27, 0x7a,
0x27, 0xab, 0x27, 0xdc, 0x28, 0x0d, 0x28, 0x3f,
0x28, 0x71, 0x28, 0xa2, 0x28, 0xd4, 0x29, 0x06,
0x29, 0x38, 0x29, 0x6b, 0x29, 0x9d, 0x29, 0xd0,
0x2a, 0x02, 0x2a, 0x35, 0x2a, 0x68, 0x2a, 0x9b,
0x2a, 0xcf, 0x2b, 0x02, 0x2b, 0x36, 0x2b, 0x69,
0x2b, 0x9d, 0x2b, 0xd1, 0x2c, 0x05, 0x2c, 0x39,
0x2c, 0x6e, 0x2c, 0xa2, 0x2c, 0xd7, 0x2d, 0x0c,
0x2d, 0x41, 0x2d, 0x76, 0x2d, 0xab, 0x2d, 0xe1,
0x2e, 0x16, 0x2e, 0x4c, 0x2e, 0x82, 0x2e, 0xb7,
0x2e, 0xee, 0x2f, 0x24, 0x2f, 0x5a, 0x2f, 0x91,
0x2f, 0xc7, 0x2f, 0xfe, 0x30, 0x35, 0x30, 0x6c,
0x30, 0xa4, 0x30, 0xdb, 0x31, 0x12, 0x31, 0x4a,
0x31, 0x82, 0x31, 0xba, 0x31, 0xf2, 0x32, 0x2a,
0x32, 0x63, 0x32, 0x9b, 0x32, 0xd4, 0x33, 0x0d,
0x33, 0x46, 0x33, 0x7f, 0x33, 0xb8, 0x33, 0xf1,
0x34, 0x2b, 0x34, 0x65, 0x34, 0x9e, 0x34, 0xd8,
0x35, 0x13, 0x35, 0x4d, 0x35, 0x87, 0x35, 0xc2,
0x35, 0xfd, 0x36, 0x37, 0x36, 0x72, 0x36, 0xae,
0x36, 0xe9, 0x37, 0x24, 0x37, 0x60, 0x37, 0x9c,
0x37, 0xd7, 0x38, 0x14, 0x38, 0x50, 0x38, 0x8c,
0x38, 0xc8, 0x39, 0x05, 0x39, 0x42, 0x39, 0x7f,
0x39, 0xbc, 0x39, 0xf9, 0x3a, 0x36, 0x3a, 0x74,
0x3a, 0xb2, 0x3a, 0xef, 0x3b, 0x2d, 0x3b, 0x6b,
0x3b, 0xaa, 0x3b, 0xe8, 0x3c, 0x27, 0x3c, 0x65,
0x3c, 0xa4, 0x3c, 0xe3, 0x3d, 0x22, 0x3d, 0x61,
0x3d, 0xa1, 0x3d, 0xe0, 0x3e, 0x20, 0x3e, 0x60,
0x3e, 0xa0, 0x3e, 0xe0, 0x3f, 0x21, 0x3f, 0x61,
0x3f, 0xa2, 0x3f, 0xe2, 0x40, 0x23, 0x40, 0x64,
0x40, 0xa6, 0x40, 0xe7, 0x41, 0x29, 0x41, 0x6a,
0x41, 0xac, 0x41, 0xee, 0x42, 0x30, 0x42, 0x72,
0x42, 0xb5, 0x42, 0xf7, 0x43, 0x3a, 0x43, 0x7d,
0x43, 0xc0, 0x44, 0x03, 0x44, 0x47, 0x44, 0x8a,
0x44, 0xce, 0x45, 0x12, 0x45, 0x55, 0x45, 0x9a,
0x45, 0xde, 0x46, 0x22, 0x46, 0x67, 0x46, 0xab,
0x46, 0xf0, 0x47, 0x35, 0x47, 0x7b, 0x47, 0xc0,
0x48, 0x05, 0x48, 0x4b, 0x48, 0x91, 0x48, 0xd7,
0x49, 0x1d, 0x49, 0x63, 0x49, 0xa9, 0x49, 0xf0,
0x4a, 0x37, 0x4a, 0x7d, 0x4a, 0xc4, 0x4b, 0x0c,
0x4b, 0x53, 0x4b, 0x9a, 0x4b, 0xe2, 0x4c, 0x2a,
0x4c, 0x72, 0x4c, 0xba, 0x4d, 0x02, 0x4d, 0x4a,
0x4d, 0x93, 0x4d, 0xdc, 0x4e, 0x25, 0x4e, 0x6e,
0x4e, 0xb7, 0x4f, 0x00, 0x4f, 0x49, 0x4f, 0x93,
0x4f, 0xdd, 0x50, 0x27, 0x50, 0x71, 0x50, 0xbb,
0x51, 0x06, 0x51, 0x50, 0x51, 0x9b, 0x51, 0xe6,
0x52, 0x31, 0x52, 0x7c, 0x52, 0xc7, 0x53, 0x13,
0x53, 0x5f, 0x53, 0xaa, 0x53, 0xf6, 0x54, 0x42,
0x54, 0x8f, 0x54, 0xdb, 0x55, 0x28, 0x55, 0x75,
0x55, 0xc2, 0x56, 0x0f, 0x56, 0x5c, 0x56, 0xa9,
0x56, 0xf7, 0x57, 0x44, 0x57, 0x92, 0x57, 0xe0,
0x58, 0x2f, 0x58, 0x7d, 0x58, 0xcb, 0x59, 0x1a,
0x59, 0x69, 0x59, 0xb8, 0x5a, 0x07, 0x5a, 0x56,
0x5a, 0xa6, 0x5a, 0xf5, 0x5b, 0x45, 0x5b, 0x95,
0x5b, 0xe5, 0x5c, 0x35, 0x5c, 0x86, 0x5c, 0xd6,
0x5d, 0x27, 0x5d, 0x78, 0x5d, 0xc9, 0x5e, 0x1a,
0x5e, 0x6c, 0x5e, 0xbd, 0x5f, 0x0f, 0x5f, 0x61,
0x5f, 0xb3, 0x60, 0x05, 0x60, 0x57, 0x60, 0xaa,
0x60, 0xfc, 0x61, 0x4f, 0x61, 0xa2, 0x61, 0xf5,
0x62, 0x49, 0x62, 0x9c, 0x62, 0xf0, 0x63, 0x43,
0x63, 0x97, 0x63, 0xeb, 0x64, 0x40, 0x64, 0x94,
0x64, 0xe9, 0x65, 0x3d, 0x65, 0x92, 0x65, 0xe7,
0x66, 0x3d, 0x66, 0x92, 0x66, 0xe8, 0x67, 0x3d,
0x67, 0x93, 0x67, 0xe9, 0x68, 0x3f, 0x68, 0x96,
0x68, 0xec, 0x69, 0x43, 0x69, 0x9a, 0x69, 0xf1,
0x6a, 0x48, 0x6a, 0x9f, 0x6a, 0xf7, 0x6b, 0x4f,
0x6b, 0xa7, 0x6b, 0xff, 0x6c, 0x57, 0x6c, 0xaf,
0x6d, 0x08, 0x6d, 0x60, 0x6d, 0xb9, 0x6e, 0x12,
0x6e, 0x6b, 0x6e, 0xc4, 0x6f, 0x1e, 0x6f, 0x78,
0x6f, 0xd1, 0x70, 0x2b, 0x70, 0x86, 0x70, 0xe0,
0x71, 0x3a, 0x71, 0x95, 0x71, 0xf0, 0x72, 0x4b,
0x72, 0xa6, 0x73, 0x01, 0x73, 0x5d, 0x73, 0xb8,
0x74, 0x14, 0x74, 0x70, 0x74, 0xcc, 0x75, 0x28,
0x75, 0x85, 0x75, 0xe1, 0x76, 0x3e, 0x76, 0x9b,
0x76, 0xf8, 0x77, 0x56, 0x77, 0xb3, 0x78, 0x11,
0x78, 0x6e, 0x78, 0xcc, 0x79, 0x2a, 0x79, 0x89,
0x79, 0xe7, 0x7a, 0x46, 0x7a, 0xa5, 0x7b, 0x04,
0x7b, 0x63, 0x7b, 0xc2, 0x7c, 0x21, 0x7c, 0x81,
0x7c, 0xe1, 0x7d, 0x41, 0x7d, 0xa1, 0x7e, 0x01,
0x7e, 0x62, 0x7e, 0xc2, 0x7f, 0x23, 0x7f, 0x84,
0x7f, 0xe5, 0x80, 0x47, 0x80, 0xa8, 0x81, 0x0a,
0x81, 0x6b, 0x81, 0xcd, 0x82, 0x30, 0x82, 0x92,
0x82, 0xf4, 0x83, 0x57, 0x83, 0xba, 0x84, 0x1d,
0x84, 0x80, 0x84, 0xe3, 0x85, 0x47, 0x85, 0xab,
0x86, 0x0e, 0x86, 0x72, 0x86, 0xd7, 0x87, 0x3b,
0x87, 0x9f, 0x88, 0x04, 0x88, 0x69, 0x88, 0xce,
0x89, 0x33, 0x89, 0x99, 0x89, 0xfe, 0x8a, 0x64,
0x8a, 0xca, 0x8b, 0x30, 0x8b, 0x96, 0x8b, 0xfc,
0x8c, 0x63, 0x8c, 0xca, 0x8d, 0x31, 0x8d, 0x98,
0x8d, 0xff, 0x8e, 0x66, 0x8e, 0xce, 0x8f, 0x36,
0x8f, 0x9e, 0x90, 0x06, 0x90, 0x6e, 0x90, 0xd6,
0x91, 0x3f, 0x91, 0xa8, 0x92, 0x11, 0x92, 0x7a,
0x92, 0xe3, 0x93, 0x4d, 0x93, 0xb6, 0x94, 0x20,
0x94, 0x8a, 0x94, 0xf4, 0x95, 0x5f, 0x95, 0xc9,
0x96, 0x34, 0x96, 0x9f, 0x97, 0x0a, 0x97, 0x75,
0x97, 0xe0, 0x98, 0x4c, 0x98, 0xb8, 0x99, 0x24,
0x99, 0x90, 0x99, 0xfc, 0x9a, 0x68, 0x9a, 0xd5,
0x9b, 0x42, 0x9b, 0xaf, 0x9c, 0x1c, 0x9c, 0x89,
0x9c, 0xf7, 0x9d, 0x64, 0x9d, 0xd2, 0x9e, 0x40,
0x9e, 0xae, 0x9f, 0x1d, 0x9f, 0x8b, 0x9f, 0xfa,
0xa0, 0x69, 0xa0, 0xd8, 0xa1, 0x47, 0xa1, 0xb6,
0xa2, 0x26, 0xa2, 0x96, 0xa3, 0x06, 0xa3, 0x76,
0xa3, 0xe6, 0xa4, 0x56, 0xa4, 0xc7, 0xa5, 0x38,
0xa5, 0xa9, 0xa6, 0x1a, 0xa6, 0x8b, 0xa6, 0xfd,
0xa7, 0x6e, 0xa7, 0xe0, 0xa8, 0x52, 0xa8, 0xc4,
0xa9, 0x37, 0xa9, 0xa9, 0xaa, 0x1c, 0xaa, 0x8f,
0xab, 0x02, 0xab, 0x75, 0xab, 0xe9, 0xac, 0x5c,
0xac, 0xd0, 0xad, 0x44, 0xad, 0xb8, 0xae, 0x2d,
0xae, 0xa1, 0xaf, 0x16, 0xaf, 0x8b, 0xb0, 0x00,
0xb0, 0x75, 0xb0, 0xea, 0xb1, 0x60, 0xb1, 0xd6,
0xb2, 0x4b, 0xb2, 0xc2, 0xb3, 0x38, 0xb3, 0xae,
0xb4, 0x25, 0xb4, 0x9c, 0xb5, 0x13, 0xb5, 0x8a,
0xb6, 0x01, 0xb6, 0x79, 0xb6, 0xf0, 0xb7, 0x68,
0xb7, 0xe0, 0xb8, 0x59, 0xb8, 0xd1, 0xb9, 0x4a,
0xb9, 0xc2, 0xba, 0x3b, 0xba, 0xb5, 0xbb, 0x2e,
0xbb, 0xa7, 0xbc, 0x21, 0xbc, 0x9b, 0xbd, 0x15,
0xbd, 0x8f, 0xbe, 0x0a, 0xbe, 0x84, 0xbe, 0xff,
0xbf, 0x7a, 0xbf, 0xf5, 0xc0, 0x70, 0xc0, 0xec,
0xc1, 0x67, 0xc1, 0xe3, 0xc2, 0x5f, 0xc2, 0xdb,
0xc3, 0x58, 0xc3, 0xd4, 0xc4, 0x51, 0xc4, 0xce,
0xc5, 0x4b, 0xc5, 0xc8, 0xc6, 0x46, 0xc6, 0xc3,
0xc7, 0x41, 0xc7, 0xbf, 0xc8, 0x3d, 0xc8, 0xbc,
0xc9, 0x3a, 0xc9, 0xb9, 0xca, 0x38, 0xca, 0xb7,
0xcb, 0x36, 0xcb, 0xb6, 0xcc, 0x35, 0xcc, 0xb5,
0xcd, 0x35, 0xcd, 0xb5, 0xce, 0x36, 0xce, 0xb6,
0xcf, 0x37, 0xcf, 0xb8, 0xd0, 0x39, 0xd0, 0xba,
0xd1, 0x3c, 0xd1, 0xbe, 0xd2, 0x3f, 0xd2, 0xc1,
0xd3, 0x44, 0xd3, 0xc6, 0xd4, 0x49, 0xd4, 0xcb,
0xd5, 0x4e, 0xd5, 0xd1, 0xd6, 0x55, 0xd6, 0xd8,
0xd7, 0x5c, 0xd7, 0xe0, 0xd8, 0x64, 0xd8, 0xe8,
0xd9, 0x6c, 0xd9, 0xf1, 0xda, 0x76, 0xda, 0xfb,
0xdb, 0x80, 0xdc, 0x05, 0xdc, 0x8a, 0xdd, 0x10,
0xdd, 0x96, 0xde, 0x1c, 0xde, 0xa2, 0xdf, 0x29,
0xdf, 0xaf, 0xe0, 0x36, 0xe0, 0xbd, 0xe1, 0x44,
0xe1, 0xcc, 0xe2, 0x53, 0xe2, 0xdb, 0xe3, 0x63,
0xe3, 0xeb, 0xe4, 0x73, 0xe4, 0xfc, 0xe5, 0x84,
0xe6, 0x0d, 0xe6, 0x96, 0xe7, 0x1f, 0xe7, 0xa9,
0xe8, 0x32, 0xe8, 0xbc, 0xe9, 0x46, 0xe9, 0xd0,
0xea, 0x5b, 0xea, 0xe5, 0xeb, 0x70, 0xeb, 0xfb,
0xec, 0x86, 0xed, 0x11, 0xed, 0x9c, 0xee, 0x28,
0xee, 0xb4, 0xef, 0x40, 0xef, 0xcc, 0xf0, 0x58,
0xf0, 0xe5, 0xf1, 0x72, 0xf1, 0xff, 0xf2, 0x8c,
0xf3, 0x19, 0xf3, 0xa7, 0xf4, 0x34, 0xf4, 0xc2,
0xf5, 0x50, 0xf5, 0xde, 0xf6, 0x6d, 0xf6, 0xfb,
0xf7, 0x8a, 0xf8, 0x19, 0xf8, 0xa8, 0xf9, 0x38,
0xf9, 0xc7, 0xfa, 0x57, 0xfa, 0xe7, 0xfb, 0x77,
0xfc, 0x07, 0xfc, 0x98, 0xfd, 0x29, 0xfd, 0xba,
0xfe, 0x4b, 0xfe, 0xdc, 0xff, 0x6d, 0xff, 0xff
0x00, 0x00, 0x0c, 0x48, 0x4c, 0x69, 0x6e, 0x6f,
0x02, 0x10, 0x00, 0x00, 0x6d, 0x6e, 0x74, 0x72,
0x52, 0x47, 0x42, 0x20, 0x58, 0x59, 0x5a, 0x20,
0x07, 0xce, 0x00, 0x02, 0x00, 0x09, 0x00, 0x06,
0x00, 0x31, 0x00, 0x00, 0x61, 0x63, 0x73, 0x70,
0x4d, 0x53, 0x46, 0x54, 0x00, 0x00, 0x00, 0x00,
0x49, 0x45, 0x43, 0x20, 0x73, 0x52, 0x47, 0x42,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xd6,
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x2d,
0x48, 0x50, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x11, 0x63, 0x70, 0x72, 0x74,
0x00, 0x00, 0x01, 0x50, 0x00, 0x00, 0x00, 0x33,
0x64, 0x65, 0x73, 0x63, 0x00, 0x00, 0x01, 0x84,
0x00, 0x00, 0x00, 0x6c, 0x77, 0x74, 0x70, 0x74,
0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x14,
0x62, 0x6b, 0x70, 0x74, 0x00, 0x00, 0x02, 0x04,
0x00, 0x00, 0x00, 0x14, 0x72, 0x58, 0x59, 0x5a,
0x00, 0x00, 0x02, 0x18, 0x00, 0x00, 0x00, 0x14,
0x67, 0x58, 0x59, 0x5a, 0x00, 0x00, 0x02, 0x2c,
0x00, 0x00, 0x00, 0x14, 0x62, 0x58, 0x59, 0x5a,
0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x14,
0x64, 0x6d, 0x6e, 0x64, 0x00, 0x00, 0x02, 0x54,
0x00, 0x00, 0x00, 0x70, 0x64, 0x6d, 0x64, 0x64,
0x00, 0x00, 0x02, 0xc4, 0x00, 0x00, 0x00, 0x88,
0x76, 0x75, 0x65, 0x64, 0x00, 0x00, 0x03, 0x4c,
0x00, 0x00, 0x00, 0x86, 0x76, 0x69, 0x65, 0x77,
0x00, 0x00, 0x03, 0xd4, 0x00, 0x00, 0x00, 0x24,
0x6c, 0x75, 0x6d, 0x69, 0x00, 0x00, 0x03, 0xf8,
0x00, 0x00, 0x00, 0x14, 0x6d, 0x65, 0x61, 0x73,
0x00, 0x00, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x24,
0x74, 0x65, 0x63, 0x68, 0x00, 0x00, 0x04, 0x30,
0x00, 0x00, 0x00, 0x0c, 0x72, 0x54, 0x52, 0x43,
0x00, 0x00, 0x04, 0x3c, 0x00, 0x00, 0x08, 0x0c,
0x67, 0x54, 0x52, 0x43, 0x00, 0x00, 0x04, 0x3c,
0x00, 0x00, 0x08, 0x0c, 0x62, 0x54, 0x52, 0x43,
0x00, 0x00, 0x04, 0x3c, 0x00, 0x00, 0x08, 0x0c,
0x74, 0x65, 0x78, 0x74, 0x00, 0x00, 0x00, 0x00,
0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x31, 0x39,
0x39, 0x38, 0x20, 0x48, 0x65, 0x77, 0x6c, 0x65,
0x74, 0x74, 0x2d, 0x50, 0x61, 0x63, 0x6b, 0x61,
0x72, 0x64, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x61,
0x6e, 0x79, 0x00, 0x00, 0x64, 0x65, 0x73, 0x63,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12,
0x73, 0x52, 0x47, 0x42, 0x20, 0x49, 0x45, 0x43,
0x36, 0x31, 0x39, 0x36, 0x36, 0x2d, 0x32, 0x2e,
0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x12, 0x73, 0x52, 0x47,
0x42, 0x20, 0x49, 0x45, 0x43, 0x36, 0x31, 0x39,
0x36, 0x36, 0x2d, 0x32, 0x2e, 0x31, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xf3, 0x51, 0x00, 0x01, 0x00, 0x00,
0x00, 0x01, 0x16, 0xcc, 0x58, 0x59, 0x5a, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x6f, 0xa2, 0x00, 0x00, 0x38, 0xf5,
0x00, 0x00, 0x03, 0x90, 0x58, 0x59, 0x5a, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x99,
0x00, 0x00, 0xb7, 0x85, 0x00, 0x00, 0x18, 0xda,
0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x24, 0xa0, 0x00, 0x00, 0x0f, 0x84,
0x00, 0x00, 0xb6, 0xcf, 0x64, 0x65, 0x73, 0x63,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16,
0x49, 0x45, 0x43, 0x20, 0x68, 0x74, 0x74, 0x70,
0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x69,
0x65, 0x63, 0x2e, 0x63, 0x68, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x16, 0x49, 0x45, 0x43, 0x20, 0x68, 0x74, 0x74,
0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
0x69, 0x65, 0x63, 0x2e, 0x63, 0x68, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x64, 0x65, 0x73, 0x63,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e,
0x49, 0x45, 0x43, 0x20, 0x36, 0x31, 0x39, 0x36,
0x36, 0x2d, 0x32, 0x2e, 0x31, 0x20, 0x44, 0x65,
0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x52, 0x47,
0x42, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x75, 0x72,
0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x2d,
0x20, 0x73, 0x52, 0x47, 0x42, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x2e, 0x49, 0x45, 0x43, 0x20, 0x36, 0x31, 0x39,
0x36, 0x36, 0x2d, 0x32, 0x2e, 0x31, 0x20, 0x44,
0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x52,
0x47, 0x42, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x75,
0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20,
0x2d, 0x20, 0x73, 0x52, 0x47, 0x42, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x64, 0x65, 0x73, 0x63,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c,
0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
0x65, 0x20, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e,
0x67, 0x20, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74,
0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x49,
0x45, 0x43, 0x36, 0x31, 0x39, 0x36, 0x36, 0x2d,
0x32, 0x2e, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x52,
0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
0x20, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67,
0x20, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69,
0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x49, 0x45,
0x43, 0x36, 0x31, 0x39, 0x36, 0x36, 0x2d, 0x32,
0x2e, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x76, 0x69, 0x65, 0x77,
0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0xa4, 0xfe,
0x00, 0x14, 0x5f, 0x2e, 0x00, 0x10, 0xcf, 0x14,
0x00, 0x03, 0xed, 0xcc, 0x00, 0x04, 0x13, 0x0b,
0x00, 0x03, 0x5c, 0x9e, 0x00, 0x00, 0x00, 0x01,
0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00,
0x00, 0x4c, 0x09, 0x56, 0x00, 0x50, 0x00, 0x00,
0x00, 0x57, 0x1f, 0xe7, 0x6d, 0x65, 0x61, 0x73,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x8f, 0x00, 0x00, 0x00, 0x02,
0x73, 0x69, 0x67, 0x20, 0x00, 0x00, 0x00, 0x00,
0x43, 0x52, 0x54, 0x20, 0x63, 0x75, 0x72, 0x76,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
0x00, 0x00, 0x00, 0x05, 0x00, 0x0a, 0x00, 0x0f,
0x00, 0x14, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x23,
0x00, 0x28, 0x00, 0x2d, 0x00, 0x32, 0x00, 0x37,
0x00, 0x3b, 0x00, 0x40, 0x00, 0x45, 0x00, 0x4a,
0x00, 0x4f, 0x00, 0x54, 0x00, 0x59, 0x00, 0x5e,
0x00, 0x63, 0x00, 0x68, 0x00, 0x6d, 0x00, 0x72,
0x00, 0x77, 0x00, 0x7c, 0x00, 0x81, 0x00, 0x86,
0x00, 0x8b, 0x00, 0x90, 0x00, 0x95, 0x00, 0x9a,
0x00, 0x9f, 0x00, 0xa4, 0x00, 0xa9, 0x00, 0xae,
0x00, 0xb2, 0x00, 0xb7, 0x00, 0xbc, 0x00, 0xc1,
0x00, 0xc6, 0x00, 0xcb, 0x00, 0xd0, 0x00, 0xd5,
0x00, 0xdb, 0x00, 0xe0, 0x00, 0xe5, 0x00, 0xeb,
0x00, 0xf0, 0x00, 0xf6, 0x00, 0xfb, 0x01, 0x01,
0x01, 0x07, 0x01, 0x0d, 0x01, 0x13, 0x01, 0x19,
0x01, 0x1f, 0x01, 0x25, 0x01, 0x2b, 0x01, 0x32,
0x01, 0x38, 0x01, 0x3e, 0x01, 0x45, 0x01, 0x4c,
0x01, 0x52, 0x01, 0x59, 0x01, 0x60, 0x01, 0x67,
0x01, 0x6e, 0x01, 0x75, 0x01, 0x7c, 0x01, 0x83,
0x01, 0x8b, 0x01, 0x92, 0x01, 0x9a, 0x01, 0xa1,
0x01, 0xa9, 0x01, 0xb1, 0x01, 0xb9, 0x01, 0xc1,
0x01, 0xc9, 0x01, 0xd1, 0x01, 0xd9, 0x01, 0xe1,
0x01, 0xe9, 0x01, 0xf2, 0x01, 0xfa, 0x02, 0x03,
0x02, 0x0c, 0x02, 0x14, 0x02, 0x1d, 0x02, 0x26,
0x02, 0x2f, 0x02, 0x38, 0x02, 0x41, 0x02, 0x4b,
0x02, 0x54, 0x02, 0x5d, 0x02, 0x67, 0x02, 0x71,
0x02, 0x7a, 0x02, 0x84, 0x02, 0x8e, 0x02, 0x98,
0x02, 0xa2, 0x02, 0xac, 0x02, 0xb6, 0x02, 0xc1,
0x02, 0xcb, 0x02, 0xd5, 0x02, 0xe0, 0x02, 0xeb,
0x02, 0xf5, 0x03, 0x00, 0x03, 0x0b, 0x03, 0x16,
0x03, 0x21, 0x03, 0x2d, 0x03, 0x38, 0x03, 0x43,
0x03, 0x4f, 0x03, 0x5a, 0x03, 0x66, 0x03, 0x72,
0x03, 0x7e, 0x03, 0x8a, 0x03, 0x96, 0x03, 0xa2,
0x03, 0xae, 0x03, 0xba, 0x03, 0xc7, 0x03, 0xd3,
0x03, 0xe0, 0x03, 0xec, 0x03, 0xf9, 0x04, 0x06,
0x04, 0x13, 0x04, 0x20, 0x04, 0x2d, 0x04, 0x3b,
0x04, 0x48, 0x04, 0x55, 0x04, 0x63, 0x04, 0x71,
0x04, 0x7e, 0x04, 0x8c, 0x04, 0x9a, 0x04, 0xa8,
0x04, 0xb6, 0x04, 0xc4, 0x04, 0xd3, 0x04, 0xe1,
0x04, 0xf0, 0x04, 0xfe, 0x05, 0x0d, 0x05, 0x1c,
0x05, 0x2b, 0x05, 0x3a, 0x05, 0x49, 0x05, 0x58,
0x05, 0x67, 0x05, 0x77, 0x05, 0x86, 0x05, 0x96,
0x05, 0xa6, 0x05, 0xb5, 0x05, 0xc5, 0x05, 0xd5,
0x05, 0xe5, 0x05, 0xf6, 0x06, 0x06, 0x06, 0x16,
0x06, 0x27, 0x06, 0x37, 0x06, 0x48, 0x06, 0x59,
0x06, 0x6a, 0x06, 0x7b, 0x06, 0x8c, 0x06, 0x9d,
0x06, 0xaf, 0x06, 0xc0, 0x06, 0xd1, 0x06, 0xe3,
0x06, 0xf5, 0x07, 0x07, 0x07, 0x19, 0x07, 0x2b,
0x07, 0x3d, 0x07, 0x4f, 0x07, 0x61, 0x07, 0x74,
0x07, 0x86, 0x07, 0x99, 0x07, 0xac, 0x07, 0xbf,
0x07, 0xd2, 0x07, 0xe5, 0x07, 0xf8, 0x08, 0x0b,
0x08, 0x1f, 0x08, 0x32, 0x08, 0x46, 0x08, 0x5a,
0x08, 0x6e, 0x08, 0x82, 0x08, 0x96, 0x08, 0xaa,
0x08, 0xbe, 0x08, 0xd2, 0x08, 0xe7, 0x08, 0xfb,
0x09, 0x10, 0x09, 0x25, 0x09, 0x3a, 0x09, 0x4f,
0x09, 0x64, 0x09, 0x79, 0x09, 0x8f, 0x09, 0xa4,
0x09, 0xba, 0x09, 0xcf, 0x09, 0xe5, 0x09, 0xfb,
0x0a, 0x11, 0x0a, 0x27, 0x0a, 0x3d, 0x0a, 0x54,
0x0a, 0x6a, 0x0a, 0x81, 0x0a, 0x98, 0x0a, 0xae,
0x0a, 0xc5, 0x0a, 0xdc, 0x0a, 0xf3, 0x0b, 0x0b,
0x0b, 0x22, 0x0b, 0x39, 0x0b, 0x51, 0x0b, 0x69,
0x0b, 0x80, 0x0b, 0x98, 0x0b, 0xb0, 0x0b, 0xc8,
0x0b, 0xe1, 0x0b, 0xf9, 0x0c, 0x12, 0x0c, 0x2a,
0x0c, 0x43, 0x0c, 0x5c, 0x0c, 0x75, 0x0c, 0x8e,
0x0c, 0xa7, 0x0c, 0xc0, 0x0c, 0xd9, 0x0c, 0xf3,
0x0d, 0x0d, 0x0d, 0x26, 0x0d, 0x40, 0x0d, 0x5a,
0x0d, 0x74, 0x0d, 0x8e, 0x0d, 0xa9, 0x0d, 0xc3,
0x0d, 0xde, 0x0d, 0xf8, 0x0e, 0x13, 0x0e, 0x2e,
0x0e, 0x49, 0x0e, 0x64, 0x0e, 0x7f, 0x0e, 0x9b,
0x0e, 0xb6, 0x0e, 0xd2, 0x0e, 0xee, 0x0f, 0x09,
0x0f, 0x25, 0x0f, 0x41, 0x0f, 0x5e, 0x0f, 0x7a,
0x0f, 0x96, 0x0f, 0xb3, 0x0f, 0xcf, 0x0f, 0xec,
0x10, 0x09, 0x10, 0x26, 0x10, 0x43, 0x10, 0x61,
0x10, 0x7e, 0x10, 0x9b, 0x10, 0xb9, 0x10, 0xd7,
0x10, 0xf5, 0x11, 0x13, 0x11, 0x31, 0x11, 0x4f,
0x11, 0x6d, 0x11, 0x8c, 0x11, 0xaa, 0x11, 0xc9,
0x11, 0xe8, 0x12, 0x07, 0x12, 0x26, 0x12, 0x45,
0x12, 0x64, 0x12, 0x84, 0x12, 0xa3, 0x12, 0xc3,
0x12, 0xe3, 0x13, 0x03, 0x13, 0x23, 0x13, 0x43,
0x13, 0x63, 0x13, 0x83, 0x13, 0xa4, 0x13, 0xc5,
0x13, 0xe5, 0x14, 0x06, 0x14, 0x27, 0x14, 0x49,
0x14, 0x6a, 0x14, 0x8b, 0x14, 0xad, 0x14, 0xce,
0x14, 0xf0, 0x15, 0x12, 0x15, 0x34, 0x15, 0x56,
0x15, 0x78, 0x15, 0x9b, 0x15, 0xbd, 0x15, 0xe0,
0x16, 0x03, 0x16, 0x26, 0x16, 0x49, 0x16, 0x6c,
0x16, 0x8f, 0x16, 0xb2, 0x16, 0xd6, 0x16, 0xfa,
0x17, 0x1d, 0x17, 0x41, 0x17, 0x65, 0x17, 0x89,
0x17, 0xae, 0x17, 0xd2, 0x17, 0xf7, 0x18, 0x1b,
0x18, 0x40, 0x18, 0x65, 0x18, 0x8a, 0x18, 0xaf,
0x18, 0xd5, 0x18, 0xfa, 0x19, 0x20, 0x19, 0x45,
0x19, 0x6b, 0x19, 0x91, 0x19, 0xb7, 0x19, 0xdd,
0x1a, 0x04, 0x1a, 0x2a, 0x1a, 0x51, 0x1a, 0x77,
0x1a, 0x9e, 0x1a, 0xc5, 0x1a, 0xec, 0x1b, 0x14,
0x1b, 0x3b, 0x1b, 0x63, 0x1b, 0x8a, 0x1b, 0xb2,
0x1b, 0xda, 0x1c, 0x02, 0x1c, 0x2a, 0x1c, 0x52,
0x1c, 0x7b, 0x1c, 0xa3, 0x1c, 0xcc, 0x1c, 0xf5,
0x1d, 0x1e, 0x1d, 0x47, 0x1d, 0x70, 0x1d, 0x99,
0x1d, 0xc3, 0x1d, 0xec, 0x1e, 0x16, 0x1e, 0x40,
0x1e, 0x6a, 0x1e, 0x94, 0x1e, 0xbe, 0x1e, 0xe9,
0x1f, 0x13, 0x1f, 0x3e, 0x1f, 0x69, 0x1f, 0x94,
0x1f, 0xbf, 0x1f, 0xea, 0x20, 0x15, 0x20, 0x41,
0x20, 0x6c, 0x20, 0x98, 0x20, 0xc4, 0x20, 0xf0,
0x21, 0x1c, 0x21, 0x48, 0x21, 0x75, 0x21, 0xa1,
0x21, 0xce, 0x21, 0xfb, 0x22, 0x27, 0x22, 0x55,
0x22, 0x82, 0x22, 0xaf, 0x22, 0xdd, 0x23, 0x0a,
0x23, 0x38, 0x23, 0x66, 0x23, 0x94, 0x23, 0xc2,
0x23, 0xf0, 0x24, 0x1f, 0x24, 0x4d, 0x24, 0x7c,
0x24, 0xab, 0x24, 0xda, 0x25, 0x09, 0x25, 0x38,
0x25, 0x68, 0x25, 0x97, 0x25, 0xc7, 0x25, 0xf7,
0x26, 0x27, 0x26, 0x57, 0x26, 0x87, 0x26, 0xb7,
0x26, 0xe8, 0x27, 0x18, 0x27, 0x49, 0x27, 0x7a,
0x27, 0xab, 0x27, 0xdc, 0x28, 0x0d, 0x28, 0x3f,
0x28, 0x71, 0x28, 0xa2, 0x28, 0xd4, 0x29, 0x06,
0x29, 0x38, 0x29, 0x6b, 0x29, 0x9d, 0x29, 0xd0,
0x2a, 0x02, 0x2a, 0x35, 0x2a, 0x68, 0x2a, 0x9b,
0x2a, 0xcf, 0x2b, 0x02, 0x2b, 0x36, 0x2b, 0x69,
0x2b, 0x9d, 0x2b, 0xd1, 0x2c, 0x05, 0x2c, 0x39,
0x2c, 0x6e, 0x2c, 0xa2, 0x2c, 0xd7, 0x2d, 0x0c,
0x2d, 0x41, 0x2d, 0x76, 0x2d, 0xab, 0x2d, 0xe1,
0x2e, 0x16, 0x2e, 0x4c, 0x2e, 0x82, 0x2e, 0xb7,
0x2e, 0xee, 0x2f, 0x24, 0x2f, 0x5a, 0x2f, 0x91,
0x2f, 0xc7, 0x2f, 0xfe, 0x30, 0x35, 0x30, 0x6c,
0x30, 0xa4, 0x30, 0xdb, 0x31, 0x12, 0x31, 0x4a,
0x31, 0x82, 0x31, 0xba, 0x31, 0xf2, 0x32, 0x2a,
0x32, 0x63, 0x32, 0x9b, 0x32, 0xd4, 0x33, 0x0d,
0x33, 0x46, 0x33, 0x7f, 0x33, 0xb8, 0x33, 0xf1,
0x34, 0x2b, 0x34, 0x65, 0x34, 0x9e, 0x34, 0xd8,
0x35, 0x13, 0x35, 0x4d, 0x35, 0x87, 0x35, 0xc2,
0x35, 0xfd, 0x36, 0x37, 0x36, 0x72, 0x36, 0xae,
0x36, 0xe9, 0x37, 0x24, 0x37, 0x60, 0x37, 0x9c,
0x37, 0xd7, 0x38, 0x14, 0x38, 0x50, 0x38, 0x8c,
0x38, 0xc8, 0x39, 0x05, 0x39, 0x42, 0x39, 0x7f,
0x39, 0xbc, 0x39, 0xf9, 0x3a, 0x36, 0x3a, 0x74,
0x3a, 0xb2, 0x3a, 0xef, 0x3b, 0x2d, 0x3b, 0x6b,
0x3b, 0xaa, 0x3b, 0xe8, 0x3c, 0x27, 0x3c, 0x65,
0x3c, 0xa4, 0x3c, 0xe3, 0x3d, 0x22, 0x3d, 0x61,
0x3d, 0xa1, 0x3d, 0xe0, 0x3e, 0x20, 0x3e, 0x60,
0x3e, 0xa0, 0x3e, 0xe0, 0x3f, 0x21, 0x3f, 0x61,
0x3f, 0xa2, 0x3f, 0xe2, 0x40, 0x23, 0x40, 0x64,
0x40, 0xa6, 0x40, 0xe7, 0x41, 0x29, 0x41, 0x6a,
0x41, 0xac, 0x41, 0xee, 0x42, 0x30, 0x42, 0x72,
0x42, 0xb5, 0x42, 0xf7, 0x43, 0x3a, 0x43, 0x7d,
0x43, 0xc0, 0x44, 0x03, 0x44, 0x47, 0x44, 0x8a,
0x44, 0xce, 0x45, 0x12, 0x45, 0x55, 0x45, 0x9a,
0x45, 0xde, 0x46, 0x22, 0x46, 0x67, 0x46, 0xab,
0x46, 0xf0, 0x47, 0x35, 0x47, 0x7b, 0x47, 0xc0,
0x48, 0x05, 0x48, 0x4b, 0x48, 0x91, 0x48, 0xd7,
0x49, 0x1d, 0x49, 0x63, 0x49, 0xa9, 0x49, 0xf0,
0x4a, 0x37, 0x4a, 0x7d, 0x4a, 0xc4, 0x4b, 0x0c,
0x4b, 0x53, 0x4b, 0x9a, 0x4b, 0xe2, 0x4c, 0x2a,
0x4c, 0x72, 0x4c, 0xba, 0x4d, 0x02, 0x4d, 0x4a,
0x4d, 0x93, 0x4d, 0xdc, 0x4e, 0x25, 0x4e, 0x6e,
0x4e, 0xb7, 0x4f, 0x00, 0x4f, 0x49, 0x4f, 0x93,
0x4f, 0xdd, 0x50, 0x27, 0x50, 0x71, 0x50, 0xbb,
0x51, 0x06, 0x51, 0x50, 0x51, 0x9b, 0x51, 0xe6,
0x52, 0x31, 0x52, 0x7c, 0x52, 0xc7, 0x53, 0x13,
0x53, 0x5f, 0x53, 0xaa, 0x53, 0xf6, 0x54, 0x42,
0x54, 0x8f, 0x54, 0xdb, 0x55, 0x28, 0x55, 0x75,
0x55, 0xc2, 0x56, 0x0f, 0x56, 0x5c, 0x56, 0xa9,
0x56, 0xf7, 0x57, 0x44, 0x57, 0x92, 0x57, 0xe0,
0x58, 0x2f, 0x58, 0x7d, 0x58, 0xcb, 0x59, 0x1a,
0x59, 0x69, 0x59, 0xb8, 0x5a, 0x07, 0x5a, 0x56,
0x5a, 0xa6, 0x5a, 0xf5, 0x5b, 0x45, 0x5b, 0x95,
0x5b, 0xe5, 0x5c, 0x35, 0x5c, 0x86, 0x5c, 0xd6,
0x5d, 0x27, 0x5d, 0x78, 0x5d, 0xc9, 0x5e, 0x1a,
0x5e, 0x6c, 0x5e, 0xbd, 0x5f, 0x0f, 0x5f, 0x61,
0x5f, 0xb3, 0x60, 0x05, 0x60, 0x57, 0x60, 0xaa,
0x60, 0xfc, 0x61, 0x4f, 0x61, 0xa2, 0x61, 0xf5,
0x62, 0x49, 0x62, 0x9c, 0x62, 0xf0, 0x63, 0x43,
0x63, 0x97, 0x63, 0xeb, 0x64, 0x40, 0x64, 0x94,
0x64, 0xe9, 0x65, 0x3d, 0x65, 0x92, 0x65, 0xe7,
0x66, 0x3d, 0x66, 0x92, 0x66, 0xe8, 0x67, 0x3d,
0x67, 0x93, 0x67, 0xe9, 0x68, 0x3f, 0x68, 0x96,
0x68, 0xec, 0x69, 0x43, 0x69, 0x9a, 0x69, 0xf1,
0x6a, 0x48, 0x6a, 0x9f, 0x6a, 0xf7, 0x6b, 0x4f,
0x6b, 0xa7, 0x6b, 0xff, 0x6c, 0x57, 0x6c, 0xaf,
0x6d, 0x08, 0x6d, 0x60, 0x6d, 0xb9, 0x6e, 0x12,
0x6e, 0x6b, 0x6e, 0xc4, 0x6f, 0x1e, 0x6f, 0x78,
0x6f, 0xd1, 0x70, 0x2b, 0x70, 0x86, 0x70, 0xe0,
0x71, 0x3a, 0x71, 0x95, 0x71, 0xf0, 0x72, 0x4b,
0x72, 0xa6, 0x73, 0x01, 0x73, 0x5d, 0x73, 0xb8,
0x74, 0x14, 0x74, 0x70, 0x74, 0xcc, 0x75, 0x28,
0x75, 0x85, 0x75, 0xe1, 0x76, 0x3e, 0x76, 0x9b,
0x76, 0xf8, 0x77, 0x56, 0x77, 0xb3, 0x78, 0x11,
0x78, 0x6e, 0x78, 0xcc, 0x79, 0x2a, 0x79, 0x89,
0x79, 0xe7, 0x7a, 0x46, 0x7a, 0xa5, 0x7b, 0x04,
0x7b, 0x63, 0x7b, 0xc2, 0x7c, 0x21, 0x7c, 0x81,
0x7c, 0xe1, 0x7d, 0x41, 0x7d, 0xa1, 0x7e, 0x01,
0x7e, 0x62, 0x7e, 0xc2, 0x7f, 0x23, 0x7f, 0x84,
0x7f, 0xe5, 0x80, 0x47, 0x80, 0xa8, 0x81, 0x0a,
0x81, 0x6b, 0x81, 0xcd, 0x82, 0x30, 0x82, 0x92,
0x82, 0xf4, 0x83, 0x57, 0x83, 0xba, 0x84, 0x1d,
0x84, 0x80, 0x84, 0xe3, 0x85, 0x47, 0x85, 0xab,
0x86, 0x0e, 0x86, 0x72, 0x86, 0xd7, 0x87, 0x3b,
0x87, 0x9f, 0x88, 0x04, 0x88, 0x69, 0x88, 0xce,
0x89, 0x33, 0x89, 0x99, 0x89, 0xfe, 0x8a, 0x64,
0x8a, 0xca, 0x8b, 0x30, 0x8b, 0x96, 0x8b, 0xfc,
0x8c, 0x63, 0x8c, 0xca, 0x8d, 0x31, 0x8d, 0x98,
0x8d, 0xff, 0x8e, 0x66, 0x8e, 0xce, 0x8f, 0x36,
0x8f, 0x9e, 0x90, 0x06, 0x90, 0x6e, 0x90, 0xd6,
0x91, 0x3f, 0x91, 0xa8, 0x92, 0x11, 0x92, 0x7a,
0x92, 0xe3, 0x93, 0x4d, 0x93, 0xb6, 0x94, 0x20,
0x94, 0x8a, 0x94, 0xf4, 0x95, 0x5f, 0x95, 0xc9,
0x96, 0x34, 0x96, 0x9f, 0x97, 0x0a, 0x97, 0x75,
0x97, 0xe0, 0x98, 0x4c, 0x98, 0xb8, 0x99, 0x24,
0x99, 0x90, 0x99, 0xfc, 0x9a, 0x68, 0x9a, 0xd5,
0x9b, 0x42, 0x9b, 0xaf, 0x9c, 0x1c, 0x9c, 0x89,
0x9c, 0xf7, 0x9d, 0x64, 0x9d, 0xd2, 0x9e, 0x40,
0x9e, 0xae, 0x9f, 0x1d, 0x9f, 0x8b, 0x9f, 0xfa,
0xa0, 0x69, 0xa0, 0xd8, 0xa1, 0x47, 0xa1, 0xb6,
0xa2, 0x26, 0xa2, 0x96, 0xa3, 0x06, 0xa3, 0x76,
0xa3, 0xe6, 0xa4, 0x56, 0xa4, 0xc7, 0xa5, 0x38,
0xa5, 0xa9, 0xa6, 0x1a, 0xa6, 0x8b, 0xa6, 0xfd,
0xa7, 0x6e, 0xa7, 0xe0, 0xa8, 0x52, 0xa8, 0xc4,
0xa9, 0x37, 0xa9, 0xa9, 0xaa, 0x1c, 0xaa, 0x8f,
0xab, 0x02, 0xab, 0x75, 0xab, 0xe9, 0xac, 0x5c,
0xac, 0xd0, 0xad, 0x44, 0xad, 0xb8, 0xae, 0x2d,
0xae, 0xa1, 0xaf, 0x16, 0xaf, 0x8b, 0xb0, 0x00,
0xb0, 0x75, 0xb0, 0xea, 0xb1, 0x60, 0xb1, 0xd6,
0xb2, 0x4b, 0xb2, 0xc2, 0xb3, 0x38, 0xb3, 0xae,
0xb4, 0x25, 0xb4, 0x9c, 0xb5, 0x13, 0xb5, 0x8a,
0xb6, 0x01, 0xb6, 0x79, 0xb6, 0xf0, 0xb7, 0x68,
0xb7, 0xe0, 0xb8, 0x59, 0xb8, 0xd1, 0xb9, 0x4a,
0xb9, 0xc2, 0xba, 0x3b, 0xba, 0xb5, 0xbb, 0x2e,
0xbb, 0xa7, 0xbc, 0x21, 0xbc, 0x9b, 0xbd, 0x15,
0xbd, 0x8f, 0xbe, 0x0a, 0xbe, 0x84, 0xbe, 0xff,
0xbf, 0x7a, 0xbf, 0xf5, 0xc0, 0x70, 0xc0, 0xec,
0xc1, 0x67, 0xc1, 0xe3, 0xc2, 0x5f, 0xc2, 0xdb,
0xc3, 0x58, 0xc3, 0xd4, 0xc4, 0x51, 0xc4, 0xce,
0xc5, 0x4b, 0xc5, 0xc8, 0xc6, 0x46, 0xc6, 0xc3,
0xc7, 0x41, 0xc7, 0xbf, 0xc8, 0x3d, 0xc8, 0xbc,
0xc9, 0x3a, 0xc9, 0xb9, 0xca, 0x38, 0xca, 0xb7,
0xcb, 0x36, 0xcb, 0xb6, 0xcc, 0x35, 0xcc, 0xb5,
0xcd, 0x35, 0xcd, 0xb5, 0xce, 0x36, 0xce, 0xb6,
0xcf, 0x37, 0xcf, 0xb8, 0xd0, 0x39, 0xd0, 0xba,
0xd1, 0x3c, 0xd1, 0xbe, 0xd2, 0x3f, 0xd2, 0xc1,
0xd3, 0x44, 0xd3, 0xc6, 0xd4, 0x49, 0xd4, 0xcb,
0xd5, 0x4e, 0xd5, 0xd1, 0xd6, 0x55, 0xd6, 0xd8,
0xd7, 0x5c, 0xd7, 0xe0, 0xd8, 0x64, 0xd8, 0xe8,
0xd9, 0x6c, 0xd9, 0xf1, 0xda, 0x76, 0xda, 0xfb,
0xdb, 0x80, 0xdc, 0x05, 0xdc, 0x8a, 0xdd, 0x10,
0xdd, 0x96, 0xde, 0x1c, 0xde, 0xa2, 0xdf, 0x29,
0xdf, 0xaf, 0xe0, 0x36, 0xe0, 0xbd, 0xe1, 0x44,
0xe1, 0xcc, 0xe2, 0x53, 0xe2, 0xdb, 0xe3, 0x63,
0xe3, 0xeb, 0xe4, 0x73, 0xe4, 0xfc, 0xe5, 0x84,
0xe6, 0x0d, 0xe6, 0x96, 0xe7, 0x1f, 0xe7, 0xa9,
0xe8, 0x32, 0xe8, 0xbc, 0xe9, 0x46, 0xe9, 0xd0,
0xea, 0x5b, 0xea, 0xe5, 0xeb, 0x70, 0xeb, 0xfb,
0xec, 0x86, 0xed, 0x11, 0xed, 0x9c, 0xee, 0x28,
0xee, 0xb4, 0xef, 0x40, 0xef, 0xcc, 0xf0, 0x58,
0xf0, 0xe5, 0xf1, 0x72, 0xf1, 0xff, 0xf2, 0x8c,
0xf3, 0x19, 0xf3, 0xa7, 0xf4, 0x34, 0xf4, 0xc2,
0xf5, 0x50, 0xf5, 0xde, 0xf6, 0x6d, 0xf6, 0xfb,
0xf7, 0x8a, 0xf8, 0x19, 0xf8, 0xa8, 0xf9, 0x38,
0xf9, 0xc7, 0xfa, 0x57, 0xfa, 0xe7, 0xfb, 0x77,
0xfc, 0x07, 0xfc, 0x98, 0xfd, 0x29, 0xfd, 0xba,
0xfe, 0x4b, 0xfe, 0xdc, 0xff, 0x6d, 0xff, 0xff
};
int jas_iccprofdata_srgblen = sizeof(jas_iccprofdata_srgb);
uchar jas_iccprofdata_sgray[] = {
0x00, 0x00, 0x01, 0x8a, 0x00, 0x00, 0x00, 0x00,
0x02, 0x20, 0x00, 0x00, 0x73, 0x63, 0x6e, 0x72,
0x47, 0x52, 0x41, 0x59, 0x58, 0x59, 0x5a, 0x20,
0x07, 0xd3, 0x00, 0x01, 0x00, 0x1f, 0x00, 0x0d,
0x00, 0x35, 0x00, 0x21, 0x61, 0x63, 0x73, 0x70,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x4b, 0x4f, 0x44, 0x41, 0x73, 0x47, 0x72, 0x79,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xd6,
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x2d,
0x4a, 0x50, 0x45, 0x47, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x64, 0x65, 0x73, 0x63,
0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x86,
0x63, 0x70, 0x72, 0x74, 0x00, 0x00, 0x01, 0x3c,
0x00, 0x00, 0x00, 0x2b, 0x77, 0x74, 0x70, 0x74,
0x00, 0x00, 0x01, 0x68, 0x00, 0x00, 0x00, 0x14,
0x6b, 0x54, 0x52, 0x43, 0x00, 0x00, 0x01, 0x7c,
0x00, 0x00, 0x00, 0x0e, 0x64, 0x65, 0x73, 0x63,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c,
0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74,
0x65, 0x64, 0x20, 0x49, 0x43, 0x43, 0x20, 0x70,
0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x64,
0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x69, 0x6e,
0x67, 0x20, 0x73, 0x52, 0x47, 0x42, 0x2d, 0x67,
0x72, 0x65, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x74, 0x65, 0x78, 0x74,
0x00, 0x00, 0x00, 0x00, 0x43, 0x6f, 0x70, 0x79,
0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x32, 0x30,
0x30, 0x33, 0x20, 0x73, 0x52, 0x47, 0x42, 0x2d,
0x67, 0x72, 0x65, 0x79, 0x20, 0x52, 0x65, 0x66,
0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x00, 0x00,
0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xf3, 0x54, 0x00, 0x01, 0x00, 0x00,
0x00, 0x01, 0x16, 0xcf, 0x63, 0x75, 0x72, 0x76,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x01, 0xcd
0x00, 0x00, 0x01, 0x8a, 0x00, 0x00, 0x00, 0x00,
0x02, 0x20, 0x00, 0x00, 0x73, 0x63, 0x6e, 0x72,
0x47, 0x52, 0x41, 0x59, 0x58, 0x59, 0x5a, 0x20,
0x07, 0xd3, 0x00, 0x01, 0x00, 0x1f, 0x00, 0x0d,
0x00, 0x35, 0x00, 0x21, 0x61, 0x63, 0x73, 0x70,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x4b, 0x4f, 0x44, 0x41, 0x73, 0x47, 0x72, 0x79,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xd6,
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x2d,
0x4a, 0x50, 0x45, 0x47, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x64, 0x65, 0x73, 0x63,
0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x86,
0x63, 0x70, 0x72, 0x74, 0x00, 0x00, 0x01, 0x3c,
0x00, 0x00, 0x00, 0x2b, 0x77, 0x74, 0x70, 0x74,
0x00, 0x00, 0x01, 0x68, 0x00, 0x00, 0x00, 0x14,
0x6b, 0x54, 0x52, 0x43, 0x00, 0x00, 0x01, 0x7c,
0x00, 0x00, 0x00, 0x0e, 0x64, 0x65, 0x73, 0x63,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c,
0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74,
0x65, 0x64, 0x20, 0x49, 0x43, 0x43, 0x20, 0x70,
0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x64,
0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x69, 0x6e,
0x67, 0x20, 0x73, 0x52, 0x47, 0x42, 0x2d, 0x67,
0x72, 0x65, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x74, 0x65, 0x78, 0x74,
0x00, 0x00, 0x00, 0x00, 0x43, 0x6f, 0x70, 0x79,
0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x32, 0x30,
0x30, 0x33, 0x20, 0x73, 0x52, 0x47, 0x42, 0x2d,
0x67, 0x72, 0x65, 0x79, 0x20, 0x52, 0x65, 0x66,
0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x00, 0x00,
0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xf3, 0x54, 0x00, 0x01, 0x00, 0x00,
0x00, 0x01, 0x16, 0xcf, 0x63, 0x75, 0x72, 0x76,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x01, 0xcd
};
int jas_iccprofdata_sgraylen = sizeof(jas_iccprofdata_sgray);
+990 -991
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+65 -65
Ver Arquivo
@@ -4,15 +4,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -20,15 +20,15 @@
* 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
@@ -55,7 +55,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -74,89 +74,89 @@
/* Initialize the image format table. */
int jas_init()
{
jas_image_fmtops_t fmtops;
int fmtid;
jas_image_fmtops_t fmtops;
int fmtid;
fmtid = 0;
fmtid = 0;
#if !defined(EXCLUDE_MIF_SUPPORT)
fmtops.decode = mif_decode;
fmtops.encode = mif_encode;
fmtops.validate = mif_validate;
jas_image_addfmt(fmtid, "mif", "mif", "My Image Format (MIF)", &fmtops);
++fmtid;
fmtops.decode = mif_decode;
fmtops.encode = mif_encode;
fmtops.validate = mif_validate;
jas_image_addfmt(fmtid, "mif", "mif", "My Image Format (MIF)", &fmtops);
++fmtid;
#endif
#if !defined(EXCLUDE_PNM_SUPPORT)
fmtops.decode = pnm_decode;
fmtops.encode = pnm_encode;
fmtops.validate = pnm_validate;
jas_image_addfmt(fmtid, "pnm", "pnm", "Portable Graymap/Pixmap (PNM)",
&fmtops);
jas_image_addfmt(fmtid, "pnm", "pgm", "Portable Graymap/Pixmap (PNM)",
&fmtops);
jas_image_addfmt(fmtid, "pnm", "ppm", "Portable Graymap/Pixmap (PNM)",
&fmtops);
++fmtid;
fmtops.decode = pnm_decode;
fmtops.encode = pnm_encode;
fmtops.validate = pnm_validate;
jas_image_addfmt(fmtid, "pnm", "pnm", "Portable Graymap/Pixmap (PNM)",
&fmtops);
jas_image_addfmt(fmtid, "pnm", "pgm", "Portable Graymap/Pixmap (PNM)",
&fmtops);
jas_image_addfmt(fmtid, "pnm", "ppm", "Portable Graymap/Pixmap (PNM)",
&fmtops);
++fmtid;
#endif
#if !defined(EXCLUDE_BMP_SUPPORT)
fmtops.decode = bmp_decode;
fmtops.encode = bmp_encode;
fmtops.validate = bmp_validate;
jas_image_addfmt(fmtid, "bmp", "bmp", "Microsoft Bitmap (BMP)", &fmtops);
++fmtid;
fmtops.decode = bmp_decode;
fmtops.encode = bmp_encode;
fmtops.validate = bmp_validate;
jas_image_addfmt(fmtid, "bmp", "bmp", "Microsoft Bitmap (BMP)", &fmtops);
++fmtid;
#endif
#if !defined(EXCLUDE_RAS_SUPPORT)
fmtops.decode = ras_decode;
fmtops.encode = ras_encode;
fmtops.validate = ras_validate;
jas_image_addfmt(fmtid, "ras", "ras", "Sun Rasterfile (RAS)", &fmtops);
++fmtid;
fmtops.decode = ras_decode;
fmtops.encode = ras_encode;
fmtops.validate = ras_validate;
jas_image_addfmt(fmtid, "ras", "ras", "Sun Rasterfile (RAS)", &fmtops);
++fmtid;
#endif
#if !defined(EXCLUDE_JP2_SUPPORT)
fmtops.decode = jp2_decode;
fmtops.encode = jp2_encode;
fmtops.validate = jp2_validate;
jas_image_addfmt(fmtid, "jp2", "jp2",
"JPEG-2000 JP2 File Format Syntax (ISO/IEC 15444-1)", &fmtops);
++fmtid;
fmtops.decode = jpc_decode;
fmtops.encode = jpc_encode;
fmtops.validate = jpc_validate;
jas_image_addfmt(fmtid, "jpc", "jpc",
"JPEG-2000 Code Stream Syntax (ISO/IEC 15444-1)", &fmtops);
++fmtid;
fmtops.decode = jp2_decode;
fmtops.encode = jp2_encode;
fmtops.validate = jp2_validate;
jas_image_addfmt(fmtid, "jp2", "jp2",
"JPEG-2000 JP2 File Format Syntax (ISO/IEC 15444-1)", &fmtops);
++fmtid;
fmtops.decode = jpc_decode;
fmtops.encode = jpc_encode;
fmtops.validate = jpc_validate;
jas_image_addfmt(fmtid, "jpc", "jpc",
"JPEG-2000 Code Stream Syntax (ISO/IEC 15444-1)", &fmtops);
++fmtid;
#endif
#if !defined(EXCLUDE_JPG_SUPPORT)
fmtops.decode = jpg_decode;
fmtops.encode = jpg_encode;
fmtops.validate = jpg_validate;
jas_image_addfmt(fmtid, "jpg", "jpg", "JPEG (ISO/IEC 10918-1)", &fmtops);
++fmtid;
fmtops.decode = jpg_decode;
fmtops.encode = jpg_encode;
fmtops.validate = jpg_validate;
jas_image_addfmt(fmtid, "jpg", "jpg", "JPEG (ISO/IEC 10918-1)", &fmtops);
++fmtid;
#endif
#if !defined(EXCLUDE_PGX_SUPPORT)
fmtops.decode = pgx_decode;
fmtops.encode = pgx_encode;
fmtops.validate = pgx_validate;
jas_image_addfmt(fmtid, "pgx", "pgx", "JPEG-2000 VM Format (PGX)", &fmtops);
++fmtid;
fmtops.decode = pgx_decode;
fmtops.encode = pgx_encode;
fmtops.validate = pgx_validate;
jas_image_addfmt(fmtid, "pgx", "pgx", "JPEG-2000 VM Format (PGX)", &fmtops);
++fmtid;
#endif
/* We must not register the JasPer library exit handler until after
at least one memory allocation is performed. This is desirable
as it ensures that the JasPer exit handler is called before the
debug memory allocator exit handler. */
atexit(jas_cleanup);
/* We must not register the JasPer library exit handler until after
at least one memory allocation is performed. This is desirable
as it ensures that the JasPer exit handler is called before the
debug memory allocator exit handler. */
atexit(jas_cleanup);
return 0;
return 0;
}
void jas_cleanup()
{
jas_image_clearfmts();
jas_image_clearfmts();
}
+61 -24
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -76,6 +76,11 @@
/* We need the prototype for memset. */
#include <string.h>
#include <limits.h>
#include <errno.h>
#if !defined _WIN32 || defined __MINGW__ || defined __MINGW32__
#include <stdint.h>
#endif
#include "jasper/jas_malloc.h"
@@ -96,36 +101,68 @@
void *jas_malloc(size_t size)
{
#if defined(MEMALLOC_ALIGN2)
void *ptr;
void *ptr;
abort();
if (posix_memalign(&ptr, MEMALLOC_ALIGNMENT, size)) {
return 0;
}
return ptr;
if (posix_memalign(&ptr, MEMALLOC_ALIGNMENT, size)) {
return 0;
}
return ptr;
#endif
return malloc(size);
return malloc(size);
}
void jas_free(void *ptr)
{
free(ptr);
free(ptr);
}
void *jas_realloc(void *ptr, size_t size)
{
return realloc(ptr, size);
return ptr ? realloc(ptr, size) : malloc(size);
}
void *jas_realloc2(void *ptr, size_t nmemb, size_t size)
{
if (!ptr)
return jas_alloc2(nmemb, size);
if (nmemb && SIZE_MAX / nmemb < size) {
errno = ENOMEM;
return NULL;
}
return jas_realloc(ptr, nmemb * size);
}
void *jas_alloc2(size_t nmemb, size_t size)
{
if (nmemb && SIZE_MAX / nmemb < size) {
errno = ENOMEM;
return NULL;
}
return jas_malloc(nmemb * size);
}
void *jas_alloc3(size_t a, size_t b, size_t c)
{
size_t n;
if (a && SIZE_MAX / a < b) {
errno = ENOMEM;
return NULL;
}
return jas_alloc2(a*b, c);
}
void *jas_calloc(size_t nmemb, size_t size)
{
void *ptr;
size_t n;
n = nmemb * size;
if (!(ptr = jas_malloc(n * sizeof(char)))) {
return 0;
}
memset(ptr, 0, n);
return ptr;
void *ptr;
ptr = jas_alloc2(nmemb, size);
if (ptr)
memset(ptr, 0, nmemb*size);
return ptr;
}
#endif
+273 -273
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -85,108 +85,108 @@
jas_matrix_t *jas_seq2d_create(int xstart, int ystart, int xend, int yend)
{
jas_matrix_t *matrix;
assert(xstart <= xend && ystart <= yend);
if (!(matrix = jas_matrix_create(yend - ystart, xend - xstart))) {
return 0;
}
matrix->xstart_ = xstart;
matrix->ystart_ = ystart;
matrix->xend_ = xend;
matrix->yend_ = yend;
return matrix;
jas_matrix_t *matrix;
assert(xstart <= xend && ystart <= yend);
if (!(matrix = jas_matrix_create(yend - ystart, xend - xstart))) {
return 0;
}
matrix->xstart_ = xstart;
matrix->ystart_ = ystart;
matrix->xend_ = xend;
matrix->yend_ = yend;
return matrix;
}
jas_matrix_t *jas_matrix_create(int numrows, int numcols)
{
jas_matrix_t *matrix;
int i;
jas_matrix_t *matrix;
int i;
if (!(matrix = jas_malloc(sizeof(jas_matrix_t)))) {
return 0;
}
matrix->flags_ = 0;
matrix->numrows_ = numrows;
matrix->numcols_ = numcols;
matrix->rows_ = 0;
matrix->maxrows_ = numrows;
matrix->data_ = 0;
matrix->datasize_ = numrows * numcols;
if (!(matrix = jas_malloc(sizeof(jas_matrix_t)))) {
return 0;
}
matrix->flags_ = 0;
matrix->numrows_ = numrows;
matrix->numcols_ = numcols;
matrix->rows_ = 0;
matrix->maxrows_ = numrows;
matrix->data_ = 0;
matrix->datasize_ = numrows * numcols;
if (matrix->maxrows_ > 0) {
if (!(matrix->rows_ = jas_malloc(matrix->maxrows_ *
sizeof(jas_seqent_t *)))) {
jas_matrix_destroy(matrix);
return 0;
}
}
if (matrix->maxrows_ > 0) {
if (!(matrix->rows_ = jas_alloc2(matrix->maxrows_,
sizeof(jas_seqent_t *)))) {
jas_matrix_destroy(matrix);
return 0;
}
}
if (matrix->datasize_ > 0) {
if (!(matrix->data_ = jas_malloc(matrix->datasize_ *
sizeof(jas_seqent_t)))) {
jas_matrix_destroy(matrix);
return 0;
}
}
if (matrix->datasize_ > 0) {
if (!(matrix->data_ = jas_alloc2(matrix->datasize_,
sizeof(jas_seqent_t)))) {
jas_matrix_destroy(matrix);
return 0;
}
}
for (i = 0; i < numrows; ++i) {
matrix->rows_[i] = &matrix->data_[i * matrix->numcols_];
}
for (i = 0; i < numrows; ++i) {
matrix->rows_[i] = &matrix->data_[i * matrix->numcols_];
}
for (i = 0; i < matrix->datasize_; ++i) {
matrix->data_[i] = 0;
}
for (i = 0; i < matrix->datasize_; ++i) {
matrix->data_[i] = 0;
}
matrix->xstart_ = 0;
matrix->ystart_ = 0;
matrix->xend_ = matrix->numcols_;
matrix->yend_ = matrix->numrows_;
matrix->xstart_ = 0;
matrix->ystart_ = 0;
matrix->xend_ = matrix->numcols_;
matrix->yend_ = matrix->numrows_;
return matrix;
return matrix;
}
void jas_matrix_destroy(jas_matrix_t *matrix)
{
if (matrix->data_) {
assert(!(matrix->flags_ & JAS_MATRIX_REF));
jas_free(matrix->data_);
matrix->data_ = 0;
}
if (matrix->rows_) {
jas_free(matrix->rows_);
matrix->rows_ = 0;
}
jas_free(matrix);
if (matrix->data_) {
assert(!(matrix->flags_ & JAS_MATRIX_REF));
jas_free(matrix->data_);
matrix->data_ = 0;
}
if (matrix->rows_) {
jas_free(matrix->rows_);
matrix->rows_ = 0;
}
jas_free(matrix);
}
jas_seq2d_t *jas_seq2d_copy(jas_seq2d_t *x)
{
jas_matrix_t *y;
int i;
int j;
y = jas_seq2d_create(jas_seq2d_xstart(x), jas_seq2d_ystart(x), jas_seq2d_xend(x),
jas_seq2d_yend(x));
assert(y);
for (i = 0; i < x->numrows_; ++i) {
for (j = 0; j < x->numcols_; ++j) {
*jas_matrix_getref(y, i, j) = jas_matrix_get(x, i, j);
}
}
return y;
jas_matrix_t *y;
int i;
int j;
y = jas_seq2d_create(jas_seq2d_xstart(x), jas_seq2d_ystart(x), jas_seq2d_xend(x),
jas_seq2d_yend(x));
assert(y);
for (i = 0; i < x->numrows_; ++i) {
for (j = 0; j < x->numcols_; ++j) {
*jas_matrix_getref(y, i, j) = jas_matrix_get(x, i, j);
}
}
return y;
}
jas_matrix_t *jas_matrix_copy(jas_matrix_t *x)
{
jas_matrix_t *y;
int i;
int j;
y = jas_matrix_create(x->numrows_, x->numcols_);
for (i = 0; i < x->numrows_; ++i) {
for (j = 0; j < x->numcols_; ++j) {
*jas_matrix_getref(y, i, j) = jas_matrix_get(x, i, j);
}
}
return y;
jas_matrix_t *y;
int i;
int j;
y = jas_matrix_create(x->numrows_, x->numcols_);
for (i = 0; i < x->numrows_; ++i) {
for (j = 0; j < x->numcols_; ++j) {
*jas_matrix_getref(y, i, j) = jas_matrix_get(x, i, j);
}
}
return y;
}
/******************************************************************************\
@@ -196,39 +196,39 @@ jas_matrix_t *jas_matrix_copy(jas_matrix_t *x)
void jas_seq2d_bindsub(jas_matrix_t *s, jas_matrix_t *s1, int xstart, int ystart,
int xend, int yend)
{
jas_matrix_bindsub(s, s1, ystart - s1->ystart_, xstart - s1->xstart_,
yend - s1->ystart_ - 1, xend - s1->xstart_ - 1);
jas_matrix_bindsub(s, s1, ystart - s1->ystart_, xstart - s1->xstart_,
yend - s1->ystart_ - 1, xend - s1->xstart_ - 1);
}
void jas_matrix_bindsub(jas_matrix_t *mat0, jas_matrix_t *mat1, int r0, int c0,
int r1, int c1)
{
int i;
int i;
if (mat0->data_) {
if (!(mat0->flags_ & JAS_MATRIX_REF)) {
jas_free(mat0->data_);
}
mat0->data_ = 0;
mat0->datasize_ = 0;
}
if (mat0->rows_) {
jas_free(mat0->rows_);
mat0->rows_ = 0;
}
mat0->flags_ |= JAS_MATRIX_REF;
mat0->numrows_ = r1 - r0 + 1;
mat0->numcols_ = c1 - c0 + 1;
mat0->maxrows_ = mat0->numrows_;
mat0->rows_ = jas_malloc(mat0->maxrows_ * sizeof(jas_seqent_t *));
for (i = 0; i < mat0->numrows_; ++i) {
mat0->rows_[i] = mat1->rows_[r0 + i] + c0;
}
if (mat0->data_) {
if (!(mat0->flags_ & JAS_MATRIX_REF)) {
jas_free(mat0->data_);
}
mat0->data_ = 0;
mat0->datasize_ = 0;
}
if (mat0->rows_) {
jas_free(mat0->rows_);
mat0->rows_ = 0;
}
mat0->flags_ |= JAS_MATRIX_REF;
mat0->numrows_ = r1 - r0 + 1;
mat0->numcols_ = c1 - c0 + 1;
mat0->maxrows_ = mat0->numrows_;
mat0->rows_ = jas_alloc2(mat0->maxrows_, sizeof(jas_seqent_t *));
for (i = 0; i < mat0->numrows_; ++i) {
mat0->rows_[i] = mat1->rows_[r0 + i] + c0;
}
mat0->xstart_ = mat1->xstart_ + c0;
mat0->ystart_ = mat1->ystart_ + r0;
mat0->xend_ = mat0->xstart_ + mat0->numcols_;
mat0->yend_ = mat0->ystart_ + mat0->numrows_;
mat0->xstart_ = mat1->xstart_ + c0;
mat0->ystart_ = mat1->ystart_ + r0;
mat0->xend_ = mat0->xstart_ + mat0->numcols_;
mat0->yend_ = mat0->ystart_ + mat0->numrows_;
}
/******************************************************************************\
@@ -237,102 +237,102 @@ void jas_matrix_bindsub(jas_matrix_t *mat0, jas_matrix_t *mat1, int r0, int c0,
int jas_matrix_cmp(jas_matrix_t *mat0, jas_matrix_t *mat1)
{
int i;
int j;
int i;
int j;
if (mat0->numrows_ != mat1->numrows_ || mat0->numcols_ !=
mat1->numcols_) {
return 1;
}
for (i = 0; i < mat0->numrows_; i++) {
for (j = 0; j < mat0->numcols_; j++) {
if (jas_matrix_get(mat0, i, j) != jas_matrix_get(mat1, i, j)) {
return 1;
}
}
}
return 0;
if (mat0->numrows_ != mat1->numrows_ || mat0->numcols_ !=
mat1->numcols_) {
return 1;
}
for (i = 0; i < mat0->numrows_; i++) {
for (j = 0; j < mat0->numcols_; j++) {
if (jas_matrix_get(mat0, i, j) != jas_matrix_get(mat1, i, j)) {
return 1;
}
}
}
return 0;
}
void jas_matrix_divpow2(jas_matrix_t *matrix, int n)
{
int i;
int j;
jas_seqent_t *rowstart;
int rowstep;
jas_seqent_t *data;
int i;
int j;
jas_seqent_t *rowstart;
int rowstep;
jas_seqent_t *data;
rowstep = jas_matrix_rowstep(matrix);
for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i,
rowstart += rowstep) {
for (j = matrix->numcols_, data = rowstart; j > 0; --j,
++data) {
*data = (*data >= 0) ? ((*data) >> n) :
(-((-(*data)) >> n));
}
}
rowstep = jas_matrix_rowstep(matrix);
for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i,
rowstart += rowstep) {
for (j = matrix->numcols_, data = rowstart; j > 0; --j,
++data) {
*data = (*data >= 0) ? ((*data) >> n) :
(-((-(*data)) >> n));
}
}
}
void jas_matrix_clip(jas_matrix_t *matrix, jas_seqent_t minval, jas_seqent_t maxval)
{
int i;
int j;
jas_seqent_t v;
jas_seqent_t *rowstart;
jas_seqent_t *data;
int rowstep;
int i;
int j;
jas_seqent_t v;
jas_seqent_t *rowstart;
jas_seqent_t *data;
int rowstep;
rowstep = jas_matrix_rowstep(matrix);
for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i,
rowstart += rowstep) {
data = rowstart;
for (j = matrix->numcols_, data = rowstart; j > 0; --j,
++data) {
v = *data;
if (v < minval) {
*data = minval;
} else if (v > maxval) {
*data = maxval;
}
}
}
rowstep = jas_matrix_rowstep(matrix);
for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i,
rowstart += rowstep) {
data = rowstart;
for (j = matrix->numcols_, data = rowstart; j > 0; --j,
++data) {
v = *data;
if (v < minval) {
*data = minval;
} else if (v > maxval) {
*data = maxval;
}
}
}
}
void jas_matrix_asr(jas_matrix_t *matrix, int n)
{
int i;
int j;
jas_seqent_t *rowstart;
int rowstep;
jas_seqent_t *data;
int i;
int j;
jas_seqent_t *rowstart;
int rowstep;
jas_seqent_t *data;
assert(n >= 0);
rowstep = jas_matrix_rowstep(matrix);
for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i,
rowstart += rowstep) {
for (j = matrix->numcols_, data = rowstart; j > 0; --j,
++data) {
*data >>= n;
}
}
assert(n >= 0);
rowstep = jas_matrix_rowstep(matrix);
for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i,
rowstart += rowstep) {
for (j = matrix->numcols_, data = rowstart; j > 0; --j,
++data) {
*data >>= n;
}
}
}
void jas_matrix_asl(jas_matrix_t *matrix, int n)
{
int i;
int j;
jas_seqent_t *rowstart;
int rowstep;
jas_seqent_t *data;
int i;
int j;
jas_seqent_t *rowstart;
int rowstep;
jas_seqent_t *data;
rowstep = jas_matrix_rowstep(matrix);
for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i,
rowstart += rowstep) {
for (j = matrix->numcols_, data = rowstart; j > 0; --j,
++data) {
*data <<= n;
}
}
rowstep = jas_matrix_rowstep(matrix);
for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i,
rowstart += rowstep) {
for (j = matrix->numcols_, data = rowstart; j > 0; --j,
++data) {
*data <<= n;
}
}
}
/******************************************************************************\
@@ -341,114 +341,114 @@ void jas_matrix_asl(jas_matrix_t *matrix, int n)
int jas_matrix_resize(jas_matrix_t *matrix, int numrows, int numcols)
{
int size;
int i;
int size;
int i;
size = numrows * numcols;
if (size > matrix->datasize_ || numrows > matrix->maxrows_) {
return -1;
}
size = numrows * numcols;
if (size > matrix->datasize_ || numrows > matrix->maxrows_) {
return -1;
}
matrix->numrows_ = numrows;
matrix->numcols_ = numcols;
matrix->numrows_ = numrows;
matrix->numcols_ = numcols;
for (i = 0; i < numrows; ++i) {
matrix->rows_[i] = &matrix->data_[numcols * i];
}
for (i = 0; i < numrows; ++i) {
matrix->rows_[i] = &matrix->data_[numcols * i];
}
return 0;
return 0;
}
void jas_matrix_setall(jas_matrix_t *matrix, jas_seqent_t val)
{
int i;
int j;
jas_seqent_t *rowstart;
int rowstep;
jas_seqent_t *data;
int i;
int j;
jas_seqent_t *rowstart;
int rowstep;
jas_seqent_t *data;
rowstep = jas_matrix_rowstep(matrix);
for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i,
rowstart += rowstep) {
for (j = matrix->numcols_, data = rowstart; j > 0; --j,
++data) {
*data = val;
}
}
rowstep = jas_matrix_rowstep(matrix);
for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i,
rowstart += rowstep) {
for (j = matrix->numcols_, data = rowstart; j > 0; --j,
++data) {
*data = val;
}
}
}
jas_matrix_t *jas_seq2d_input(FILE *in)
{
jas_matrix_t *matrix;
int i;
int j;
long x;
int numrows;
int numcols;
int xoff;
int yoff;
jas_matrix_t *matrix;
int i;
int j;
long x;
int numrows;
int numcols;
int xoff;
int yoff;
if (fscanf(in, "%d %d", &xoff, &yoff) != 2)
return 0;
if (fscanf(in, "%d %d", &numcols, &numrows) != 2)
return 0;
if (!(matrix = jas_seq2d_create(xoff, yoff, xoff + numcols, yoff + numrows)))
return 0;
if (fscanf(in, "%d %d", &xoff, &yoff) != 2)
return 0;
if (fscanf(in, "%d %d", &numcols, &numrows) != 2)
return 0;
if (!(matrix = jas_seq2d_create(xoff, yoff, xoff + numcols, yoff + numrows)))
return 0;
if (jas_matrix_numrows(matrix) != numrows || jas_matrix_numcols(matrix) != numcols) {
abort();
}
if (jas_matrix_numrows(matrix) != numrows || jas_matrix_numcols(matrix) != numcols) {
abort();
}
/* Get matrix data. */
for (i = 0; i < jas_matrix_numrows(matrix); i++) {
for (j = 0; j < jas_matrix_numcols(matrix); j++) {
if (fscanf(in, "%ld", &x) != 1) {
jas_matrix_destroy(matrix);
return 0;
}
jas_matrix_set(matrix, i, j, JAS_CAST(jas_seqent_t, x));
}
}
/* Get matrix data. */
for (i = 0; i < jas_matrix_numrows(matrix); i++) {
for (j = 0; j < jas_matrix_numcols(matrix); j++) {
if (fscanf(in, "%ld", &x) != 1) {
jas_matrix_destroy(matrix);
return 0;
}
jas_matrix_set(matrix, i, j, JAS_CAST(jas_seqent_t, x));
}
}
return matrix;
return matrix;
}
int jas_seq2d_output(jas_matrix_t *matrix, FILE *out)
{
#define MAXLINELEN 80
int i;
int j;
jas_seqent_t x;
char buf[MAXLINELEN + 1];
char sbuf[MAXLINELEN + 1];
int n;
int i;
int j;
jas_seqent_t x;
char buf[MAXLINELEN + 1];
char sbuf[MAXLINELEN + 1];
int n;
fprintf(out, "%d %d\n", (int)jas_seq2d_xstart(matrix),
(int)jas_seq2d_ystart(matrix));
fprintf(out, "%d %d\n", (int)jas_matrix_numcols(matrix),
(int)jas_matrix_numrows(matrix));
fprintf(out, "%d %d\n", (int)jas_seq2d_xstart(matrix),
(int)jas_seq2d_ystart(matrix));
fprintf(out, "%d %d\n", (int)jas_matrix_numcols(matrix),
(int)jas_matrix_numrows(matrix));
buf[0] = '\0';
for (i = 0; i < jas_matrix_numrows(matrix); ++i) {
for (j = 0; j < jas_matrix_numcols(matrix); ++j) {
x = jas_matrix_get(matrix, i, j);
sprintf(sbuf, "%s%4ld", (strlen(buf) > 0) ? " " : "",
JAS_CAST(long, x));
n = strlen(buf);
if (n + strlen(sbuf) > MAXLINELEN) {
fputs(buf, out);
fputs("\n", out);
buf[0] = '\0';
}
strcat(buf, sbuf);
if (j == jas_matrix_numcols(matrix) - 1) {
fputs(buf, out);
fputs("\n", out);
buf[0] = '\0';
}
}
}
fputs(buf, out);
buf[0] = '\0';
for (i = 0; i < jas_matrix_numrows(matrix); ++i) {
for (j = 0; j < jas_matrix_numcols(matrix); ++j) {
x = jas_matrix_get(matrix, i, j);
sprintf(sbuf, "%s%4ld", (strlen(buf) > 0) ? " " : "",
JAS_CAST(long, x));
n = strlen(buf);
if (n + strlen(sbuf) > MAXLINELEN) {
fputs(buf, out);
fputs("\n", out);
buf[0] = '\0';
}
strcat(buf, sbuf);
if (j == jas_matrix_numcols(matrix) - 1) {
fputs(buf, out);
fputs("\n", out);
buf[0] = '\0';
}
}
}
fputs(buf, out);
return 0;
return 0;
}
+724 -718
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+16 -16
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -85,12 +85,12 @@
char *jas_strdup(const char *s)
{
int n;
char *p;
n = strlen(s) + 1;
if (!(p = jas_malloc(n * sizeof(char)))) {
return 0;
}
strcpy(p, s);
return p;
int n;
char *p;
n = strlen(s) + 1;
if (!(p = jas_malloc(n * sizeof(char)))) {
return 0;
}
strcpy(p, s);
return p;
}
+32 -32
Ver Arquivo
@@ -4,15 +4,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -20,15 +20,15 @@
* 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
@@ -55,7 +55,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -83,51 +83,51 @@
void jas_tmr_start(jas_tmr_t *tmr)
{
if (gettimeofday(&tmr->start, 0)) {
abort();
}
if (gettimeofday(&tmr->start, 0)) {
abort();
}
}
void jas_tmr_stop(jas_tmr_t *tmr)
{
if (gettimeofday(&tmr->stop, 0)) {
abort();
}
if (gettimeofday(&tmr->stop, 0)) {
abort();
}
}
double jas_tmr_get(jas_tmr_t *tmr)
{
double t0;
double t1;
t0 = ((double) tmr->start.tv_sec) + ((double) tmr->start.tv_usec) / 1e6;
t1 = ((double) tmr->stop.tv_sec) + ((double) tmr->stop.tv_usec) / 1e6;
return t1 - t0;
double t0;
double t1;
t0 = ((double) tmr->start.tv_sec) + ((double) tmr->start.tv_usec) / 1e6;
t1 = ((double) tmr->stop.tv_sec) + ((double) tmr->stop.tv_usec) / 1e6;
return t1 - t0;
}
#elif defined(HAVE_GETRUSAGE)
void jas_tmr_start(jas_tmr_t *tmr)
{
if (getrusage(RUSAGE_SELF, &tmr->start) < 0) {
abort();
}
if (getrusage(RUSAGE_SELF, &tmr->start) < 0) {
abort();
}
}
void jas_tmr_stop(jas_tmr_t *tmr)
{
if (getrusage(RUSAGE_SELF, &tmr->stop) < 0) {
abort();
}
if (getrusage(RUSAGE_SELF, &tmr->stop) < 0) {
abort();
}
}
double jas_tmr_get(jas_tmr_t *tmr)
{
double t;
t = ((tmr->stop.ru_utime.tv_sec * 1e6 + tmr->stop.ru_utime.tv_usec) -
(tmr->start.ru_utime.tv_sec * 1e6 + tmr->start.ru_utime.tv_usec)) / 1e6;
t += ((tmr->stop.ru_stime.tv_sec * 1e6 + tmr->stop.ru_stime.tv_usec) -
(tmr->start.ru_stime.tv_sec * 1e6 + tmr->start.ru_stime.tv_usec)) / 1e6;
return t;
double t;
t = ((tmr->stop.ru_utime.tv_sec * 1e6 + tmr->stop.ru_utime.tv_usec) -
(tmr->start.ru_utime.tv_sec * 1e6 + tmr->start.ru_utime.tv_usec)) / 1e6;
t += ((tmr->stop.ru_stime.tv_sec * 1e6 + tmr->stop.ru_stime.tv_usec) -
(tmr->start.ru_stime.tv_sec * 1e6 + tmr->start.ru_stime.tv_usec)) / 1e6;
return t;
}
#else
@@ -142,7 +142,7 @@ void jas_tmr_stop(jas_tmr_t *tmr)
double jas_tmr_get(jas_tmr_t *tmr)
{
return 0.0;
return 0.0;
}
#endif
+96 -96
Ver Arquivo
@@ -4,15 +4,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -20,15 +20,15 @@
* 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
@@ -55,7 +55,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -84,7 +84,7 @@
/* Is the specified character valid for a tag name? */
#define JAS_TVP_ISTAG(x) \
(isalpha(x) || (x) == '_' || isdigit(x))
(isalpha(x) || (x) == '_' || isdigit(x))
/******************************************************************************\
* Code for creating and destroying a tag-value parser.
@@ -92,26 +92,26 @@
jas_tvparser_t *jas_tvparser_create(const char *s)
{
jas_tvparser_t *tvp;
if (!(tvp = jas_malloc(sizeof(jas_tvparser_t)))) {
return 0;
}
if (!(tvp->buf = jas_strdup(s))) {
jas_tvparser_destroy(tvp);
return 0;
}
tvp->pos = tvp->buf;
tvp->tag = 0;
tvp->val = 0;
return tvp;
jas_tvparser_t *tvp;
if (!(tvp = jas_malloc(sizeof(jas_tvparser_t)))) {
return 0;
}
if (!(tvp->buf = jas_strdup(s))) {
jas_tvparser_destroy(tvp);
return 0;
}
tvp->pos = tvp->buf;
tvp->tag = 0;
tvp->val = 0;
return tvp;
}
void jas_tvparser_destroy(jas_tvparser_t *tvp)
{
if (tvp->buf) {
jas_free(tvp->buf);
}
jas_free(tvp);
if (tvp->buf) {
jas_free(tvp->buf);
}
jas_free(tvp);
}
/******************************************************************************\
@@ -121,73 +121,73 @@ void jas_tvparser_destroy(jas_tvparser_t *tvp)
/* Get the next tag-value pair. */
int jas_tvparser_next(jas_tvparser_t *tvp)
{
char *p;
char *tag;
char *val;
char *p;
char *tag;
char *val;
/* Skip any leading whitespace. */
p = tvp->pos;
while (*p != '\0' && isspace(*p)) {
++p;
}
/* Skip any leading whitespace. */
p = tvp->pos;
while (*p != '\0' && isspace(*p)) {
++p;
}
/* Has the end of the input data been reached? */
if (*p == '\0') {
/* No more tags are present. */
tvp->pos = p;
return 1;
}
/* Has the end of the input data been reached? */
if (*p == '\0') {
/* No more tags are present. */
tvp->pos = p;
return 1;
}
/* Does the tag name begin with a valid character? */
if (!JAS_TVP_ISTAG(*p)) {
return -1;
}
/* Does the tag name begin with a valid character? */
if (!JAS_TVP_ISTAG(*p)) {
return -1;
}
/* Remember where the tag name begins. */
tag = p;
/* Remember where the tag name begins. */
tag = p;
/* Find the end of the tag name. */
while (*p != '\0' && JAS_TVP_ISTAG(*p)) {
++p;
}
/* Find the end of the tag name. */
while (*p != '\0' && JAS_TVP_ISTAG(*p)) {
++p;
}
/* Has the end of the input data been reached? */
if (*p == '\0') {
/* The value field is empty. */
tvp->tag = tag;
tvp->val = "";
tvp->pos = p;
return 0;
}
/* Has the end of the input data been reached? */
if (*p == '\0') {
/* The value field is empty. */
tvp->tag = tag;
tvp->val = "";
tvp->pos = p;
return 0;
}
/* Is a value field not present? */
if (*p != '=') {
if (*p != '\0' && !isspace(*p)) {
return -1;
}
*p++ = '\0';
tvp->tag = tag;
tvp->val = "";
tvp->pos = p;
return 0;
}
/* Is a value field not present? */
if (*p != '=') {
if (*p != '\0' && !isspace(*p)) {
return -1;
}
*p++ = '\0';
tvp->tag = tag;
tvp->val = "";
tvp->pos = p;
return 0;
}
*p++ = '\0';
*p++ = '\0';
val = p;
while (*p != '\0' && !isspace(*p)) {
++p;
}
val = p;
while (*p != '\0' && !isspace(*p)) {
++p;
}
if (*p != '\0') {
*p++ = '\0';
}
if (*p != '\0') {
*p++ = '\0';
}
tvp->pos = p;
tvp->tag = tag;
tvp->val = val;
tvp->pos = p;
tvp->tag = tag;
tvp->val = val;
return 0;
return 0;
}
/******************************************************************************\
@@ -197,13 +197,13 @@ int jas_tvparser_next(jas_tvparser_t *tvp)
/* Get the current tag. */
char *jas_tvparser_gettag(jas_tvparser_t *tvp)
{
return tvp->tag;
return tvp->tag;
}
/* Get the current value. */
char *jas_tvparser_getval(jas_tvparser_t *tvp)
{
return tvp->val;
return tvp->val;
}
/******************************************************************************\
@@ -213,15 +213,15 @@ char *jas_tvparser_getval(jas_tvparser_t *tvp)
/* Lookup a tag by name. */
jas_taginfo_t *jas_taginfos_lookup(jas_taginfo_t *taginfos, const char *name)
{
jas_taginfo_t *taginfo;
taginfo = taginfos;
while (taginfo->id >= 0) {
if (!strcmp(taginfo->name, name)) {
return taginfo;
}
++taginfo;
}
return 0;
jas_taginfo_t *taginfo;
taginfo = taginfos;
while (taginfo->id >= 0) {
if (!strcmp(taginfo->name, name)) {
return taginfo;
}
++taginfo;
}
return 0;
}
/* This function is simply for convenience. */
@@ -229,9 +229,9 @@ jas_taginfo_t *jas_taginfos_lookup(jas_taginfo_t *taginfos, const char *name)
using this function. This function never returns a null pointer. */
jas_taginfo_t *jas_taginfo_nonull(jas_taginfo_t *taginfo)
{
static jas_taginfo_t invalidtaginfo = {
-1, 0
};
return taginfo ? taginfo : &invalidtaginfo;
static jas_taginfo_t invalidtaginfo = {
-1, 0
};
return taginfo ? taginfo : &invalidtaginfo;
}
+9 -9
Ver Arquivo
@@ -4,15 +4,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -20,15 +20,15 @@
* 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
@@ -55,7 +55,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -63,5 +63,5 @@
const char *jas_getversion()
{
return JAS_VERSION;
return JAS_VERSION;
}
+51 -51
Ver Arquivo
@@ -4,15 +4,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -20,15 +20,15 @@
* 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
@@ -55,7 +55,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -139,72 +139,72 @@ typedef double jas_cmreal_t;
struct jas_cmpxform_s;
typedef struct {
long *buf;
int prec;
int sgnd;
int width;
int height;
long *buf;
int prec;
int sgnd;
int width;
int height;
} jas_cmcmptfmt_t;
typedef struct {
int numcmpts;
jas_cmcmptfmt_t *cmptfmts;
int numcmpts;
jas_cmcmptfmt_t *cmptfmts;
} jas_cmpixmap_t;
typedef struct {
void (*destroy)(struct jas_cmpxform_s *pxform);
int (*apply)(struct jas_cmpxform_s *pxform, jas_cmreal_t *in, jas_cmreal_t *out, int cnt);
void (*dump)(struct jas_cmpxform_s *pxform);
void (*destroy)(struct jas_cmpxform_s *pxform);
int (*apply)(struct jas_cmpxform_s *pxform, jas_cmreal_t *in, jas_cmreal_t *out, int cnt);
void (*dump)(struct jas_cmpxform_s *pxform);
} jas_cmpxformops_t;
typedef struct {
jas_cmreal_t *data;
int size;
jas_cmreal_t *data;
int size;
} jas_cmshapmatlut_t;
typedef struct {
int mono;
int order;
int useluts;
int usemat;
jas_cmshapmatlut_t luts[3];
jas_cmreal_t mat[3][4];
int mono;
int order;
int useluts;
int usemat;
jas_cmshapmatlut_t luts[3];
jas_cmreal_t mat[3][4];
} jas_cmshapmat_t;
typedef struct {
int order;
int order;
} jas_cmshaplut_t;
typedef struct {
int inclrspc;
int outclrspc;
int inclrspc;
int outclrspc;
} jas_cmclrspcconv_t;
#define jas_align_t double
typedef struct jas_cmpxform_s {
int refcnt;
jas_cmpxformops_t *ops;
int numinchans;
int numoutchans;
union {
jas_align_t dummy;
jas_cmshapmat_t shapmat;
jas_cmshaplut_t shaplut;
jas_cmclrspcconv_t clrspcconv;
} data;
int refcnt;
jas_cmpxformops_t *ops;
int numinchans;
int numoutchans;
union {
jas_align_t dummy;
jas_cmshapmat_t shapmat;
jas_cmshaplut_t shaplut;
jas_cmclrspcconv_t clrspcconv;
} data;
} jas_cmpxform_t;
typedef struct {
int numpxforms;
int maxpxforms;
jas_cmpxform_t **pxforms;
int numpxforms;
int maxpxforms;
jas_cmpxform_t **pxforms;
} jas_cmpxformseq_t;
typedef struct {
int numinchans;
int numoutchans;
jas_cmpxformseq_t *pxformseq;
int numinchans;
int numoutchans;
jas_cmpxformseq_t *pxformseq;
} jas_cmxform_t;
#define JAS_CMPROF_TYPE_DEV 1
@@ -213,12 +213,12 @@ typedef struct {
#define JAS_CMPROF_NUMPXFORMSEQS 13
typedef struct {
int clrspc;
int numchans;
int refclrspc;
int numrefchans;
jas_iccprof_t *iccprof;
jas_cmpxformseq_t *pxformseqs[JAS_CMPROF_NUMPXFORMSEQS];
int clrspc;
int numchans;
int refclrspc;
int numrefchans;
jas_iccprof_t *iccprof;
jas_cmpxformseq_t *pxformseqs[JAS_CMPROF_NUMPXFORMSEQS];
} jas_cmprof_t;
/* Create a profile. */
+8 -8
Ver Arquivo
@@ -4,15 +4,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -20,15 +20,15 @@
* 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
@@ -55,7 +55,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
+9 -9
Ver Arquivo
@@ -4,15 +4,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -20,15 +20,15 @@
* 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
@@ -55,7 +55,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -90,7 +90,7 @@ extern "C" {
level is set sufficiently high. */
#if defined(DEBUG)
#define JAS_DBGLOG(n, x) \
((jas_getdbglevel() >= (n)) ? (jas_eprintf x) : 0)
((jas_getdbglevel() >= (n)) ? (jas_eprintf x) : 0)
#else
#define JAS_DBGLOG(n, x)
#endif
+58 -58
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -91,15 +91,15 @@ extern "C" {
/* The representation of the value zero. */
#define JAS_FIX_ZERO(fix_t, fracbits) \
JAS_CAST(fix_t, 0)
JAS_CAST(fix_t, 0)
/* The representation of the value one. */
#define JAS_FIX_ONE(fix_t, fracbits) \
(JAS_CAST(fix_t, 1) << (fracbits))
(JAS_CAST(fix_t, 1) << (fracbits))
/* The representation of the value one half. */
#define JAS_FIX_HALF(fix_t, fracbits) \
(JAS_CAST(fix_t, 1) << ((fracbits) - 1))
(JAS_CAST(fix_t, 1) << ((fracbits) - 1))
/******************************************************************************\
* Conversion operations.
@@ -107,19 +107,19 @@ extern "C" {
/* Convert an int to a fixed-point number. */
#define JAS_INTTOFIX(fix_t, fracbits, x) \
JAS_CAST(fix_t, (x) << (fracbits))
JAS_CAST(fix_t, (x) << (fracbits))
/* Convert a fixed-point number to an int. */
#define JAS_FIXTOINT(fix_t, fracbits, x) \
JAS_CAST(int, (x) >> (fracbits))
JAS_CAST(int, (x) >> (fracbits))
/* Convert a fixed-point number to a double. */
#define JAS_FIXTODBL(fix_t, fracbits, x) \
(JAS_CAST(double, x) / (JAS_CAST(fix_t, 1) << (fracbits)))
(JAS_CAST(double, x) / (JAS_CAST(fix_t, 1) << (fracbits)))
/* Convert a double to a fixed-point number. */
#define JAS_DBLTOFIX(fix_t, fracbits, x) \
JAS_CAST(fix_t, ((x) * JAS_CAST(double, JAS_CAST(fix_t, 1) << (fracbits))))
JAS_CAST(fix_t, ((x) * JAS_CAST(double, JAS_CAST(fix_t, 1) << (fracbits))))
/******************************************************************************\
* Basic arithmetic operations.
@@ -143,11 +143,11 @@ extern "C" {
/* Calculate the sum of two fixed-point numbers with overflow checking. */
#define JAS_FIX_ADD_OFLOW(fix_t, fracbits, x, y) \
((x) >= 0) ? \
(((y) >= 0) ? ((x) + (y) >= 0 || JAS_FIX_OFLOW(), (x) + (y)) : \
((x) + (y))) : \
(((y) >= 0) ? ((x) + (y)) : ((x) + (y) < 0 || JAS_FIX_OFLOW(), \
(x) + (y)))
((x) >= 0) ? \
(((y) >= 0) ? ((x) + (y) >= 0 || JAS_FIX_OFLOW(), (x) + (y)) : \
((x) + (y))) : \
(((y) >= 0) ? ((x) + (y)) : ((x) + (y) < 0 || JAS_FIX_OFLOW(), \
(x) + (y)))
/* Calculate the product of two fixed-point numbers. */
#if !defined(DEBUG_OVERFLOW)
@@ -159,17 +159,17 @@ extern "C" {
/* Calculate the product of two fixed-point numbers without overflow
checking. */
#define JAS_FIX_MUL_FAST(fix_t, fracbits, bigfix_t, x, y) \
JAS_CAST(fix_t, (JAS_CAST(bigfix_t, x) * JAS_CAST(bigfix_t, y)) >> \
(fracbits))
JAS_CAST(fix_t, (JAS_CAST(bigfix_t, x) * JAS_CAST(bigfix_t, y)) >> \
(fracbits))
/* Calculate the product of two fixed-point numbers with overflow
checking. */
#define JAS_FIX_MUL_OFLOW(fix_t, fracbits, bigfix_t, x, y) \
((JAS_CAST(bigfix_t, x) * JAS_CAST(bigfix_t, y) >> (fracbits)) == \
JAS_CAST(fix_t, (JAS_CAST(bigfix_t, x) * JAS_CAST(bigfix_t, y) >> \
(fracbits))) ? \
JAS_CAST(fix_t, (JAS_CAST(bigfix_t, x) * JAS_CAST(bigfix_t, y) >> \
(fracbits))) : JAS_FIX_OFLOW())
((JAS_CAST(bigfix_t, x) * JAS_CAST(bigfix_t, y) >> (fracbits)) == \
JAS_CAST(fix_t, (JAS_CAST(bigfix_t, x) * JAS_CAST(bigfix_t, y) >> \
(fracbits))) ? \
JAS_CAST(fix_t, (JAS_CAST(bigfix_t, x) * JAS_CAST(bigfix_t, y) >> \
(fracbits))) : JAS_FIX_OFLOW())
/* Calculate the product of a fixed-point number and an int. */
#if !defined(DEBUG_OVERFLOW)
@@ -181,12 +181,12 @@ extern "C" {
/* Calculate the product of a fixed-point number and an int without overflow
checking. */
#define JAS_FIX_MULBYINT_FAST(fix_t, fracbits, x, y) \
JAS_CAST(fix_t, ((x) * (y)))
JAS_CAST(fix_t, ((x) * (y)))
/* Calculate the product of a fixed-point number and an int with overflow
checking. */
#define JAS_FIX_MULBYINT_OFLOW(fix_t, fracbits, x, y) \
JAS_FIX_MULBYINT_FAST(fix_t, fracbits, x, y)
JAS_FIX_MULBYINT_FAST(fix_t, fracbits, x, y)
/* Calculate the quotient of two fixed-point numbers. */
#if !defined(DEBUG_OVERFLOW)
@@ -198,12 +198,12 @@ extern "C" {
/* Calculate the quotient of two fixed-point numbers without underflow
checking. */
#define JAS_FIX_DIV_FAST(fix_t, fracbits, bigfix_t, x, y) \
JAS_CAST(fix_t, (JAS_CAST(bigfix_t, x) << (fracbits)) / (y))
JAS_CAST(fix_t, (JAS_CAST(bigfix_t, x) << (fracbits)) / (y))
/* Calculate the quotient of two fixed-point numbers with underflow
checking. */
#define JAS_FIX_DIV_UFLOW(fix_t, fracbits, bigfix_t, x, y) \
JAS_FIX_DIV_FAST(fix_t, fracbits, bigfix_t, x, y)
JAS_FIX_DIV_FAST(fix_t, fracbits, bigfix_t, x, y)
/* Negate a fixed-point number. */
#if !defined(DEBUG_OVERFLOW)
@@ -214,13 +214,13 @@ extern "C" {
/* Negate a fixed-point number without overflow checking. */
#define JAS_FIX_NEG_FAST(fix_t, fracbits, x) \
(-(x))
(-(x))
/* Negate a fixed-point number with overflow checking. */
/* Yes, overflow is actually possible for two's complement representations,
although highly unlikely to occur. */
#define JAS_FIX_NEG_OFLOW(fix_t, fracbits, x) \
(((x) < 0) ? (-(x) > 0 || JAS_FIX_OFLOW(), -(x)) : (-(x)))
(((x) < 0) ? (-(x) > 0 || JAS_FIX_OFLOW(), -(x)) : (-(x)))
/* Perform an arithmetic shift left of a fixed-point number. */
#if !defined(DEBUG_OVERFLOW)
@@ -232,12 +232,12 @@ extern "C" {
/* Perform an arithmetic shift left of a fixed-point number without overflow
checking. */
#define JAS_FIX_ASL_FAST(fix_t, fracbits, x, n) \
((x) << (n))
((x) << (n))
/* Perform an arithmetic shift left of a fixed-point number with overflow
checking. */
#define JAS_FIX_ASL_OFLOW(fix_t, fracbits, x, n) \
((((x) << (n)) >> (n)) == (x) || JAS_FIX_OFLOW(), (x) << (n))
((((x) << (n)) >> (n)) == (x) || JAS_FIX_OFLOW(), (x) << (n))
/* Perform an arithmetic shift right of a fixed-point number. */
#if !defined(DEBUG_OVERFLOW)
@@ -249,12 +249,12 @@ extern "C" {
/* Perform an arithmetic shift right of a fixed-point number without underflow
checking. */
#define JAS_FIX_ASR_FAST(fix_t, fracbits, x, n) \
((x) >> (n))
((x) >> (n))
/* Perform an arithmetic shift right of a fixed-point number with underflow
checking. */
#define JAS_FIX_ASR_UFLOW(fix_t, fracbits, x, n) \
JAS_FIX_ASR_FAST(fix_t, fracbits, x, n)
JAS_FIX_ASR_FAST(fix_t, fracbits, x, n)
/******************************************************************************\
* Other basic arithmetic operations.
@@ -262,19 +262,19 @@ extern "C" {
/* Calculate the difference between two fixed-point numbers. */
#define JAS_FIX_SUB(fix_t, fracbits, x, y) \
JAS_FIX_ADD(fix_t, fracbits, x, JAS_FIX_NEG(fix_t, fracbits, y))
JAS_FIX_ADD(fix_t, fracbits, x, JAS_FIX_NEG(fix_t, fracbits, y))
/* Add one fixed-point number to another. */
#define JAS_FIX_PLUSEQ(fix_t, fracbits, x, y) \
((x) = JAS_FIX_ADD(fix_t, fracbits, x, y))
((x) = JAS_FIX_ADD(fix_t, fracbits, x, y))
/* Subtract one fixed-point number from another. */
#define JAS_FIX_MINUSEQ(fix_t, fracbits, x, y) \
((x) = JAS_FIX_SUB(fix_t, fracbits, x, y))
((x) = JAS_FIX_SUB(fix_t, fracbits, x, y))
/* Multiply one fixed-point number by another. */
#define JAS_FIX_MULEQ(fix_t, fracbits, bigfix_t, x, y) \
((x) = JAS_FIX_MUL(fix_t, fracbits, bigfix_t, x, y))
((x) = JAS_FIX_MUL(fix_t, fracbits, bigfix_t, x, y))
/******************************************************************************\
* Miscellaneous operations.
@@ -282,15 +282,15 @@ extern "C" {
/* Calculate the absolute value of a fixed-point number. */
#define JAS_FIX_ABS(fix_t, fracbits, x) \
(((x) >= 0) ? (x) : (JAS_FIX_NEG(fix_t, fracbits, x)))
(((x) >= 0) ? (x) : (JAS_FIX_NEG(fix_t, fracbits, x)))
/* Is a fixed-point number an integer? */
#define JAS_FIX_ISINT(fix_t, fracbits, x) \
(JAS_FIX_FLOOR(fix_t, fracbits, x) == (x))
(JAS_FIX_FLOOR(fix_t, fracbits, x) == (x))
/* Get the sign of a fixed-point number. */
#define JAS_FIX_SGN(fix_t, fracbits, x) \
((x) >= 0 ? 1 : (-1))
((x) >= 0 ? 1 : (-1))
/******************************************************************************\
* Relational operations.
@@ -298,23 +298,23 @@ extern "C" {
/* Compare two fixed-point numbers. */
#define JAS_FIX_CMP(fix_t, fracbits, x, y) \
((x) > (y) ? 1 : (((x) == (y)) ? 0 : (-1)))
((x) > (y) ? 1 : (((x) == (y)) ? 0 : (-1)))
/* Less than. */
#define JAS_FIX_LT(fix_t, fracbits, x, y) \
((x) < (y))
((x) < (y))
/* Less than or equal. */
#define JAS_FIX_LTE(fix_t, fracbits, x, y) \
((x) <= (y))
((x) <= (y))
/* Greater than. */
#define JAS_FIX_GT(fix_t, fracbits, x, y) \
((x) > (y))
((x) > (y))
/* Greater than or equal. */
#define JAS_FIX_GTE(fix_t, fracbits, x, y) \
((x) >= (y))
((x) >= (y))
/******************************************************************************\
* Rounding functions.
@@ -322,21 +322,21 @@ extern "C" {
/* Round a fixed-point number to the nearest integer. */
#define JAS_FIX_ROUND(fix_t, fracbits, x) \
(((x) < 0) ? JAS_FIX_FLOOR(fix_t, fracbits, JAS_FIX_ADD(fix_t, fracbits, \
(x), JAS_FIX_HALF(fix_t, fracbits))) : \
JAS_FIX_NEG(fix_t, fracbits, JAS_FIX_FLOOR(fix_t, fracbits, \
JAS_FIX_ADD(fix_t, fracbits, (-(x)), JAS_FIX_HALF(fix_t, fracbits)))))
(((x) < 0) ? JAS_FIX_FLOOR(fix_t, fracbits, JAS_FIX_ADD(fix_t, fracbits, \
(x), JAS_FIX_HALF(fix_t, fracbits))) : \
JAS_FIX_NEG(fix_t, fracbits, JAS_FIX_FLOOR(fix_t, fracbits, \
JAS_FIX_ADD(fix_t, fracbits, (-(x)), JAS_FIX_HALF(fix_t, fracbits)))))
/* Round a fixed-point number to the nearest integer in the direction of
negative infinity (i.e., the floor function). */
#define JAS_FIX_FLOOR(fix_t, fracbits, x) \
((x) & (~((JAS_CAST(fix_t, 1) << (fracbits)) - 1)))
((x) & (~((JAS_CAST(fix_t, 1) << (fracbits)) - 1)))
/* Round a fixed-point number to the nearest integer in the direction
of zero. */
#define JAS_FIX_TRUNC(fix_t, fracbits, x) \
(((x) >= 0) ? JAS_FIX_FLOOR(fix_t, fracbits, x) : \
JAS_FIX_CEIL(fix_t, fracbits, x))
(((x) >= 0) ? JAS_FIX_FLOOR(fix_t, fracbits, x) : \
JAS_FIX_CEIL(fix_t, fracbits, x))
/******************************************************************************\
* The below macros are for internal library use only. Do not invoke them
@@ -345,11 +345,11 @@ extern "C" {
/* Handle overflow. */
#define JAS_FIX_OFLOW() \
jas_eprintf("overflow error: file %s, line %d\n", __FILE__, __LINE__)
jas_eprintf("overflow error: file %s, line %d\n", __FILE__, __LINE__)
/* Handle underflow. */
#define JAS_FIX_UFLOW() \
jas_eprintf("underflow error: file %s, line %d\n", __FILE__, __LINE__)
jas_eprintf("underflow error: file %s, line %d\n", __FILE__, __LINE__)
#ifdef __cplusplus
}
+14 -14
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -93,14 +93,14 @@ extern "C" {
/* Command line option type. */
typedef struct {
int id;
/* The unique identifier for this option. */
int id;
/* The unique identifier for this option. */
char *name;
/* The name of this option. */
char *name;
/* The name of this option. */
int flags;
/* option flags. */
int flags;
/* option flags. */
} jas_opt_t;
+100 -100
Ver Arquivo
@@ -4,15 +4,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -20,15 +20,15 @@
* 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
@@ -55,7 +55,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -225,152 +225,152 @@ typedef jas_iccsig_t jas_iccattrname_t;
/* Date/time type. */
typedef struct {
jas_iccuint16_t year;
jas_iccuint16_t month;
jas_iccuint16_t day;
jas_iccuint16_t hour;
jas_iccuint16_t min;
jas_iccuint16_t sec;
jas_iccuint16_t year;
jas_iccuint16_t month;
jas_iccuint16_t day;
jas_iccuint16_t hour;
jas_iccuint16_t min;
jas_iccuint16_t sec;
} jas_icctime_t;
/* XYZ type. */
typedef struct {
jas_iccs15fixed16_t x;
jas_iccs15fixed16_t y;
jas_iccs15fixed16_t z;
jas_iccs15fixed16_t x;
jas_iccs15fixed16_t y;
jas_iccs15fixed16_t z;
} jas_iccxyz_t;
/* Curve type. */
typedef struct {
jas_iccuint32_t numents;
jas_iccuint16_t *ents;
jas_iccuint32_t numents;
jas_iccuint16_t *ents;
} jas_icccurv_t;
/* Text description type. */
typedef struct {
jas_iccuint32_t asclen;
char *ascdata; /* ASCII invariant description */
jas_iccuint32_t uclangcode; /* Unicode language code */
jas_iccuint32_t uclen; /* Unicode localizable description count */
uchar *ucdata; /* Unicode localizable description */
jas_iccuint16_t sccode; /* ScriptCode code */
jas_iccuint8_t maclen; /* Localizable Macintosh description count */
uchar macdata[69]; /* Localizable Macintosh description */
jas_iccuint32_t asclen;
char *ascdata; /* ASCII invariant description */
jas_iccuint32_t uclangcode; /* Unicode language code */
jas_iccuint32_t uclen; /* Unicode localizable description count */
uchar *ucdata; /* Unicode localizable description */
jas_iccuint16_t sccode; /* ScriptCode code */
jas_iccuint8_t maclen; /* Localizable Macintosh description count */
uchar macdata[69]; /* Localizable Macintosh description */
} jas_icctxtdesc_t;
/* Text type. */
typedef struct {
char *string; /* ASCII character string */
char *string; /* ASCII character string */
} jas_icctxt_t;
typedef struct {
jas_iccuint8_t numinchans;
jas_iccuint8_t numoutchans;
jas_iccsint32_t e[3][3];
jas_iccuint8_t clutlen;
jas_iccuint8_t *clut;
jas_iccuint16_t numintabents;
jas_iccuint8_t **intabs;
jas_iccuint8_t *intabsbuf;
jas_iccuint16_t numouttabents;
jas_iccuint8_t **outtabs;
jas_iccuint8_t *outtabsbuf;
jas_iccuint8_t numinchans;
jas_iccuint8_t numoutchans;
jas_iccsint32_t e[3][3];
jas_iccuint8_t clutlen;
jas_iccuint8_t *clut;
jas_iccuint16_t numintabents;
jas_iccuint8_t **intabs;
jas_iccuint8_t *intabsbuf;
jas_iccuint16_t numouttabents;
jas_iccuint8_t **outtabs;
jas_iccuint8_t *outtabsbuf;
} jas_icclut8_t;
typedef struct {
jas_iccuint8_t numinchans;
jas_iccuint8_t numoutchans;
jas_iccsint32_t e[3][3];
jas_iccuint8_t clutlen;
jas_iccuint16_t *clut;
jas_iccuint16_t numintabents;
jas_iccuint16_t **intabs;
jas_iccuint16_t *intabsbuf;
jas_iccuint16_t numouttabents;
jas_iccuint16_t **outtabs;
jas_iccuint16_t *outtabsbuf;
jas_iccuint8_t numinchans;
jas_iccuint8_t numoutchans;
jas_iccsint32_t e[3][3];
jas_iccuint8_t clutlen;
jas_iccuint16_t *clut;
jas_iccuint16_t numintabents;
jas_iccuint16_t **intabs;
jas_iccuint16_t *intabsbuf;
jas_iccuint16_t numouttabents;
jas_iccuint16_t **outtabs;
jas_iccuint16_t *outtabsbuf;
} jas_icclut16_t;
struct jas_iccattrval_s;
typedef struct {
void (*destroy)(struct jas_iccattrval_s *);
int (*copy)(struct jas_iccattrval_s *, struct jas_iccattrval_s *);
int (*input)(struct jas_iccattrval_s *, jas_stream_t *, int);
int (*output)(struct jas_iccattrval_s *, jas_stream_t *);
int (*getsize)(struct jas_iccattrval_s *);
void (*dump)(struct jas_iccattrval_s *, FILE *);
void (*destroy)(struct jas_iccattrval_s *);
int (*copy)(struct jas_iccattrval_s *, struct jas_iccattrval_s *);
int (*input)(struct jas_iccattrval_s *, jas_stream_t *, int);
int (*output)(struct jas_iccattrval_s *, jas_stream_t *);
int (*getsize)(struct jas_iccattrval_s *);
void (*dump)(struct jas_iccattrval_s *, FILE *);
} jas_iccattrvalops_t;
/* Attribute value type (type and value information). */
typedef struct jas_iccattrval_s {
int refcnt; /* reference count */
jas_iccsig_t type; /* type */
jas_iccattrvalops_t *ops; /* type-dependent operations */
union {
jas_iccxyz_t xyz;
jas_icccurv_t curv;
jas_icctxtdesc_t txtdesc;
jas_icctxt_t txt;
jas_icclut8_t lut8;
jas_icclut16_t lut16;
} data; /* value */
int refcnt; /* reference count */
jas_iccsig_t type; /* type */
jas_iccattrvalops_t *ops; /* type-dependent operations */
union {
jas_iccxyz_t xyz;
jas_icccurv_t curv;
jas_icctxtdesc_t txtdesc;
jas_icctxt_t txt;
jas_icclut8_t lut8;
jas_icclut16_t lut16;
} data; /* value */
} jas_iccattrval_t;
/* Header type. */
typedef struct {
jas_iccuint32_t size; /* profile size */
jas_iccsig_t cmmtype; /* CMM type signature */
jas_iccuint32_t version; /* profile version */
jas_iccsig_t clas; /* profile/device class signature */
jas_iccsig_t colorspc; /* color space of data */
jas_iccsig_t refcolorspc; /* profile connection space */
jas_icctime_t ctime; /* creation time */
jas_iccsig_t magic; /* profile file signature */
jas_iccsig_t platform; /* primary platform */
jas_iccuint32_t flags; /* profile flags */
jas_iccsig_t maker; /* device manufacturer signature */
jas_iccsig_t model; /* device model signature */
jas_iccuint64_t attr; /* device setup attributes */
jas_iccsig_t intent; /* rendering intent */
jas_iccxyz_t illum; /* illuminant */
jas_iccsig_t creator; /* profile creator signature */
jas_iccuint32_t size; /* profile size */
jas_iccsig_t cmmtype; /* CMM type signature */
jas_iccuint32_t version; /* profile version */
jas_iccsig_t clas; /* profile/device class signature */
jas_iccsig_t colorspc; /* color space of data */
jas_iccsig_t refcolorspc; /* profile connection space */
jas_icctime_t ctime; /* creation time */
jas_iccsig_t magic; /* profile file signature */
jas_iccsig_t platform; /* primary platform */
jas_iccuint32_t flags; /* profile flags */
jas_iccsig_t maker; /* device manufacturer signature */
jas_iccsig_t model; /* device model signature */
jas_iccuint64_t attr; /* device setup attributes */
jas_iccsig_t intent; /* rendering intent */
jas_iccxyz_t illum; /* illuminant */
jas_iccsig_t creator; /* profile creator signature */
} jas_icchdr_t;
typedef struct {
jas_iccsig_t name;
jas_iccattrval_t *val;
jas_iccsig_t name;
jas_iccattrval_t *val;
} jas_iccattr_t;
typedef struct {
int numattrs;
int maxattrs;
jas_iccattr_t *attrs;
int numattrs;
int maxattrs;
jas_iccattr_t *attrs;
} jas_iccattrtab_t;
typedef struct jas_icctagtabent_s {
jas_iccuint32_t tag;
jas_iccuint32_t off;
jas_iccuint32_t len;
void *data;
struct jas_icctagtabent_s *first;
jas_iccuint32_t tag;
jas_iccuint32_t off;
jas_iccuint32_t len;
void *data;
struct jas_icctagtabent_s *first;
} jas_icctagtabent_t;
typedef struct {
jas_iccuint32_t numents;
jas_icctagtabent_t *ents;
jas_iccuint32_t numents;
jas_icctagtabent_t *ents;
} jas_icctagtab_t;
/* ICC profile type. */
typedef struct {
jas_icchdr_t hdr;
jas_icctagtab_t tagtab;
jas_iccattrtab_t *attrtab;
jas_icchdr_t hdr;
jas_icctagtab_t tagtab;
jas_iccattrtab_t *attrtab;
} jas_iccprof_t;
typedef struct {
jas_iccuint32_t type;
jas_iccattrvalops_t ops;
jas_iccuint32_t type;
jas_iccattrvalops_t ops;
} jas_iccattrvalinfo_t;
jas_iccprof_t *jas_iccprof_load(jas_stream_t *in);
+110 -110
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -137,44 +137,44 @@ typedef int_fast16_t jas_image_smpltype_t;
typedef struct {
jas_image_coord_t tlx_;
/* The x-coordinate of the top-left corner of the component. */
jas_image_coord_t tlx_;
/* The x-coordinate of the top-left corner of the component. */
jas_image_coord_t tly_;
/* The y-coordinate of the top-left corner of the component. */
jas_image_coord_t tly_;
/* The y-coordinate of the top-left corner of the component. */
jas_image_coord_t hstep_;
/* The horizontal sampling period in units of the reference grid. */
jas_image_coord_t hstep_;
/* The horizontal sampling period in units of the reference grid. */
jas_image_coord_t vstep_;
/* The vertical sampling period in units of the reference grid. */
jas_image_coord_t vstep_;
/* The vertical sampling period in units of the reference grid. */
jas_image_coord_t width_;
/* The component width in samples. */
jas_image_coord_t width_;
/* The component width in samples. */
jas_image_coord_t height_;
/* The component height in samples. */
jas_image_coord_t height_;
/* The component height in samples. */
#ifdef FIX_ME
int smpltype_;
int smpltype_;
#else
int prec_;
/* The precision of the sample data (i.e., the number of bits per
sample). If the samples are signed values, this quantity
includes the sign bit. */
int prec_;
/* The precision of the sample data (i.e., the number of bits per
sample). If the samples are signed values, this quantity
includes the sign bit. */
int sgnd_;
/* The signedness of the sample data. */
int sgnd_;
/* The signedness of the sample data. */
#endif
jas_stream_t *stream_;
/* The stream containing the component data. */
jas_stream_t *stream_;
/* The stream containing the component data. */
int cps_;
/* The number of characters per sample in the stream. */
int cps_;
/* The number of characters per sample in the stream. */
jas_image_cmpttype_t type_;
/* The type of component (e.g., opacity, red, green, blue, luma). */
jas_image_cmpttype_t type_;
/* The type of component (e.g., opacity, red, green, blue, luma). */
} jas_image_cmpt_t;
@@ -182,35 +182,35 @@ typedef struct {
typedef struct {
jas_image_coord_t tlx_;
/* The x-coordinate of the top-left corner of the image bounding box. */
jas_image_coord_t tlx_;
/* The x-coordinate of the top-left corner of the image bounding box. */
jas_image_coord_t tly_;
/* The y-coordinate of the top-left corner of the image bounding box. */
jas_image_coord_t tly_;
/* The y-coordinate of the top-left corner of the image bounding box. */
jas_image_coord_t brx_;
/* The x-coordinate of the bottom-right corner of the image bounding
box (plus one). */
jas_image_coord_t brx_;
/* The x-coordinate of the bottom-right corner of the image bounding
box (plus one). */
jas_image_coord_t bry_;
/* The y-coordinate of the bottom-right corner of the image bounding
box (plus one). */
jas_image_coord_t bry_;
/* The y-coordinate of the bottom-right corner of the image bounding
box (plus one). */
int numcmpts_;
/* The number of components. */
int numcmpts_;
/* The number of components. */
int maxcmpts_;
/* The maximum number of components that this image can have (i.e., the
allocated size of the components array). */
int maxcmpts_;
/* The maximum number of components that this image can have (i.e., the
allocated size of the components array). */
jas_image_cmpt_t **cmpts_;
/* Per-component information. */
jas_image_cmpt_t **cmpts_;
/* Per-component information. */
jas_clrspc_t clrspc_;
jas_clrspc_t clrspc_;
jas_cmprof_t *cmprof_;
jas_cmprof_t *cmprof_;
bool inmem_;
bool inmem_;
} jas_image_t;
@@ -220,32 +220,32 @@ typedef struct {
typedef struct {
jas_image_coord_t tlx;
/* The x-coordinate of the top-left corner of the component. */
jas_image_coord_t tlx;
/* The x-coordinate of the top-left corner of the component. */
jas_image_coord_t tly;
/* The y-coordinate of the top-left corner of the component. */
jas_image_coord_t tly;
/* The y-coordinate of the top-left corner of the component. */
jas_image_coord_t hstep;
/* The horizontal sampling period in units of the reference grid. */
jas_image_coord_t hstep;
/* The horizontal sampling period in units of the reference grid. */
jas_image_coord_t vstep;
/* The vertical sampling period in units of the reference grid. */
jas_image_coord_t vstep;
/* The vertical sampling period in units of the reference grid. */
jas_image_coord_t width;
/* The width of the component in samples. */
jas_image_coord_t width;
/* The width of the component in samples. */
jas_image_coord_t height;
/* The height of the component in samples. */
jas_image_coord_t height;
/* The height of the component in samples. */
#ifdef FIX_ME
int smpltype;
int smpltype;
#else
int prec;
/* The precision of the component sample data. */
int prec;
/* The precision of the component sample data. */
int sgnd;
/* The signedness of the component sample data. */
int sgnd;
/* The signedness of the component sample data. */
#endif
} jas_image_cmptparm_t;
@@ -261,14 +261,14 @@ typedef struct {
typedef struct {
jas_image_t *(*decode)(jas_stream_t *in, char *opts);
/* Decode image data from a stream. */
jas_image_t *(*decode)(jas_stream_t *in, char *opts);
/* Decode image data from a stream. */
int (*encode)(jas_image_t *image, jas_stream_t *out, char *opts);
/* Encode image data to a stream. */
int (*encode)(jas_image_t *image, jas_stream_t *out, char *opts);
/* Encode image data to a stream. */
int (*validate)(jas_stream_t *in);
/* Determine if stream data is in a particular format. */
int (*validate)(jas_stream_t *in);
/* Determine if stream data is in a particular format. */
} jas_image_fmtops_t;
@@ -276,20 +276,20 @@ typedef struct {
typedef struct {
int id;
/* The ID for this format. */
int id;
/* The ID for this format. */
char *name;
/* The name by which this format is identified. */
char *name;
/* The name by which this format is identified. */
char *ext;
/* The file name extension associated with this format. */
char *ext;
/* The file name extension associated with this format. */
char *desc;
/* A brief description of the format. */
char *desc;
/* A brief description of the format. */
jas_image_fmtops_t ops;
/* The operations for this format. */
jas_image_fmtops_t ops;
/* The operations for this format. */
} jas_image_fmtinfo_t;
@@ -312,92 +312,92 @@ void jas_image_destroy(jas_image_t *image);
/* Get the width of the image in units of the image reference grid. */
#define jas_image_width(image) \
((image)->brx_ - (image)->tlx_)
((image)->brx_ - (image)->tlx_)
/* Get the height of the image in units of the image reference grid. */
#define jas_image_height(image) \
((image)->bry_ - (image)->tly_)
((image)->bry_ - (image)->tly_)
/* Get the x-coordinate of the top-left corner of the image bounding box
on the reference grid. */
#define jas_image_tlx(image) \
((image)->tlx_)
((image)->tlx_)
/* Get the y-coordinate of the top-left corner of the image bounding box
on the reference grid. */
#define jas_image_tly(image) \
((image)->tly_)
((image)->tly_)
/* Get the x-coordinate of the bottom-right corner of the image bounding box
on the reference grid (plus one). */
#define jas_image_brx(image) \
((image)->brx_)
((image)->brx_)
/* Get the y-coordinate of the bottom-right corner of the image bounding box
on the reference grid (plus one). */
#define jas_image_bry(image) \
((image)->bry_)
((image)->bry_)
/* Get the number of image components. */
#define jas_image_numcmpts(image) \
((image)->numcmpts_)
((image)->numcmpts_)
/* Get the color model used by the image. */
#define jas_image_clrspc(image) \
((image)->clrspc_)
((image)->clrspc_)
/* Set the color model for an image. */
#define jas_image_setclrspc(image, clrspc) \
((image)->clrspc_ = (clrspc))
((image)->clrspc_ = (clrspc))
#define jas_image_cmpttype(image, cmptno) \
((image)->cmpts_[(cmptno)]->type_)
((image)->cmpts_[(cmptno)]->type_)
#define jas_image_setcmpttype(image, cmptno, type) \
((image)->cmpts_[(cmptno)]->type_ = (type))
((image)->cmpts_[(cmptno)]->type_ = (type))
/* Get the width of a component. */
#define jas_image_cmptwidth(image, cmptno) \
((image)->cmpts_[cmptno]->width_)
((image)->cmpts_[cmptno]->width_)
/* Get the height of a component. */
#define jas_image_cmptheight(image, cmptno) \
((image)->cmpts_[cmptno]->height_)
((image)->cmpts_[cmptno]->height_)
/* Get the signedness of the sample data for a component. */
#define jas_image_cmptsgnd(image, cmptno) \
((image)->cmpts_[cmptno]->sgnd_)
((image)->cmpts_[cmptno]->sgnd_)
/* Get the precision of the sample data for a component. */
#define jas_image_cmptprec(image, cmptno) \
((image)->cmpts_[cmptno]->prec_)
((image)->cmpts_[cmptno]->prec_)
/* Get the horizontal subsampling factor for a component. */
#define jas_image_cmpthstep(image, cmptno) \
((image)->cmpts_[cmptno]->hstep_)
((image)->cmpts_[cmptno]->hstep_)
/* Get the vertical subsampling factor for a component. */
#define jas_image_cmptvstep(image, cmptno) \
((image)->cmpts_[cmptno]->vstep_)
((image)->cmpts_[cmptno]->vstep_)
/* Get the x-coordinate of the top-left corner of a component. */
#define jas_image_cmpttlx(image, cmptno) \
((image)->cmpts_[cmptno]->tlx_)
((image)->cmpts_[cmptno]->tlx_)
/* Get the y-coordinate of the top-left corner of a component. */
#define jas_image_cmpttly(image, cmptno) \
((image)->cmpts_[cmptno]->tly_)
((image)->cmpts_[cmptno]->tly_)
/* Get the x-coordinate of the bottom-right corner of a component
(plus "one"). */
#define jas_image_cmptbrx(image, cmptno) \
((image)->cmpts_[cmptno]->tlx_ + (image)->cmpts_[cmptno]->width_ * \
(image)->cmpts_[cmptno]->hstep_)
((image)->cmpts_[cmptno]->tlx_ + (image)->cmpts_[cmptno]->width_ * \
(image)->cmpts_[cmptno]->hstep_)
/* Get the y-coordinate of the bottom-right corner of a component
(plus "one"). */
#define jas_image_cmptbry(image, cmptno) \
((image)->cmpts_[cmptno]->tly_ + (image)->cmpts_[cmptno]->height_ * \
(image)->cmpts_[cmptno]->vstep_)
((image)->cmpts_[cmptno]->tly_ + (image)->cmpts_[cmptno]->height_ * \
(image)->cmpts_[cmptno]->vstep_)
/* Get the raw size of an image (i.e., the nominal size of the image without
any compression. */
@@ -439,7 +439,7 @@ int jas_image_copycmpt(jas_image_t *dstimage, int dstcmptno,
#define JAS_IMAGE_CDT_SETPREC(dtype) ((dtype) & 0x7f)
#define jas_image_cmptdtype(image, cmptno) \
(JAS_IMAGE_CDT_SETSGND((image)->cmpts_[cmptno]->sgnd_) | JAS_IMAGE_CDT_SETPREC((image)->cmpts_[cmptno]->prec_))
(JAS_IMAGE_CDT_SETSGND((image)->cmpts_[cmptno]->sgnd_) | JAS_IMAGE_CDT_SETPREC((image)->cmpts_[cmptno]->prec_))
int jas_image_depalettize(jas_image_t *image, int cmptno, int numlutents,
int_fast32_t *lutents, int dtype, int newcmptno);
+8 -8
Ver Arquivo
@@ -4,15 +4,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -20,15 +20,15 @@
* 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
@@ -55,7 +55,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
+17 -8
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -95,6 +95,9 @@ extern "C" {
#define jas_free MEMFREE
#define jas_realloc MEMREALLOC
#define jas_calloc MEMCALLOC
#define jas_alloc2(a, b) MEMALLOC((a)*(b))
#define jas_alloc3(a, b, c) MEMALLOC((a)*(b)*(c))
#define jas_realloc2(p, a, b) MEMREALLOC((p), (a)*(b))
#endif
/******************************************************************************\
@@ -115,6 +118,12 @@ void *jas_realloc(void *ptr, size_t size);
/* Allocate a block of memory and initialize the contents to zero. */
void *jas_calloc(size_t nmemb, size_t size);
/* size-checked double allocation .*/
void *jas_alloc2(size_t, size_t);
void *jas_alloc3(size_t, size_t, size_t);
void *jas_realloc2(void *, size_t, size_t);
#endif
#ifdef __cplusplus
+12 -12
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -90,20 +90,20 @@ extern "C" {
/* Compute the absolute value. */
#define JAS_ABS(x) \
(((x) >= 0) ? (x) : (-(x)))
(((x) >= 0) ? (x) : (-(x)))
/* Compute the minimum of two values. */
#define JAS_MIN(x, y) \
(((x) < (y)) ? (x) : (y))
(((x) < (y)) ? (x) : (y))
/* Compute the maximum of two values. */
#define JAS_MAX(x, y) \
(((x) > (y)) ? (x) : (y))
(((x) > (y)) ? (x) : (y))
/* Compute the remainder from division (where division is defined such
that the remainder is always nonnegative). */
#define JAS_MOD(x, y) \
(((x) < 0) ? (((-x) % (y)) ? ((y) - ((-(x)) % (y))) : (0)) : ((x) % (y)))
(((x) < 0) ? (((-x) % (y)) ? ((y) - ((-(x)) % (y))) : (0)) : ((x) % (y)))
/* Compute the integer with the specified number of least significant bits
set to one. */
+63 -63
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -104,38 +104,38 @@ typedef int_fast32_t jas_matent_t;
typedef struct {
/* Additional state information. */
int flags_;
/* Additional state information. */
int flags_;
/* The starting horizontal index. */
int_fast32_t xstart_;
/* The starting horizontal index. */
int_fast32_t xstart_;
/* The starting vertical index. */
int_fast32_t ystart_;
/* The starting vertical index. */
int_fast32_t ystart_;
/* The ending horizontal index. */
int_fast32_t xend_;
/* The ending horizontal index. */
int_fast32_t xend_;
/* The ending vertical index. */
int_fast32_t yend_;
/* The ending vertical index. */
int_fast32_t yend_;
/* The number of rows in the matrix. */
int_fast32_t numrows_;
/* The number of rows in the matrix. */
int_fast32_t numrows_;
/* The number of columns in the matrix. */
int_fast32_t numcols_;
/* The number of columns in the matrix. */
int_fast32_t numcols_;
/* Pointers to the start of each row. */
jas_seqent_t **rows_;
/* Pointers to the start of each row. */
jas_seqent_t **rows_;
/* The allocated size of the rows array. */
int_fast32_t maxrows_;
/* The allocated size of the rows array. */
int_fast32_t maxrows_;
/* The matrix data buffer. */
jas_seqent_t *data_;
/* The matrix data buffer. */
jas_seqent_t *data_;
/* The allocated size of the data array. */
int_fast32_t datasize_;
/* The allocated size of the data array. */
int_fast32_t datasize_;
} jas_matrix_t;
@@ -148,39 +148,39 @@ typedef jas_matrix_t jas_seq_t;
/* Get the number of rows. */
#define jas_matrix_numrows(matrix) \
((matrix)->numrows_)
((matrix)->numrows_)
/* Get the number of columns. */
#define jas_matrix_numcols(matrix) \
((matrix)->numcols_)
((matrix)->numcols_)
/* Get a matrix element. */
#define jas_matrix_get(matrix, i, j) \
((matrix)->rows_[i][j])
((matrix)->rows_[i][j])
/* Set a matrix element. */
#define jas_matrix_set(matrix, i, j, v) \
((matrix)->rows_[i][j] = (v))
((matrix)->rows_[i][j] = (v))
/* Get an element from a matrix that is known to be a row or column vector. */
#define jas_matrix_getv(matrix, i) \
(((matrix)->numrows_ == 1) ? ((matrix)->rows_[0][i]) : \
((matrix)->rows_[i][0]))
(((matrix)->numrows_ == 1) ? ((matrix)->rows_[0][i]) : \
((matrix)->rows_[i][0]))
/* Set an element in a matrix that is known to be a row or column vector. */
#define jas_matrix_setv(matrix, i, v) \
(((matrix)->numrows_ == 1) ? ((matrix)->rows_[0][i] = (v)) : \
((matrix)->rows_[i][0] = (v)))
(((matrix)->numrows_ == 1) ? ((matrix)->rows_[0][i] = (v)) : \
((matrix)->rows_[i][0] = (v)))
/* Get the address of an element in a matrix. */
#define jas_matrix_getref(matrix, i, j) \
(&(matrix)->rows_[i][j])
(&(matrix)->rows_[i][j])
#define jas_matrix_getvref(matrix, i) \
(((matrix)->numrows_ > 1) ? jas_matrix_getref(matrix, i, 0) : jas_matrix_getref(matrix, 0, i))
(((matrix)->numrows_ > 1) ? jas_matrix_getref(matrix, i, 0) : jas_matrix_getref(matrix, 0, i))
#define jas_matrix_length(matrix) \
(max((matrix)->numrows_, (matrix)->numcols_))
(max((matrix)->numrows_, (matrix)->numcols_))
/* Create a matrix with the specified dimensions. */
jas_matrix_t *jas_matrix_create(int numrows, int numcols);
@@ -223,11 +223,11 @@ void jas_matrix_setall(jas_matrix_t *matrix, jas_seqent_t val);
/* The spacing between rows of a matrix. */
#define jas_matrix_rowstep(matrix) \
(((matrix)->numrows_ > 1) ? ((matrix)->rows_[1] - (matrix)->rows_[0]) : (0))
(((matrix)->numrows_ > 1) ? ((matrix)->rows_[1] - (matrix)->rows_[0]) : (0))
/* The spacing between columns of a matrix. */
#define jas_matrix_step(matrix) \
(((matrix)->numrows_ > 1) ? (jas_matrix_rowstep(matrix)) : (1))
(((matrix)->numrows_ > 1) ? (jas_matrix_rowstep(matrix)) : (1))
/* Compare two matrices for equality. */
int jas_matrix_cmp(jas_matrix_t *mat0, jas_matrix_t *mat1);
@@ -245,30 +245,30 @@ jas_seq2d_t *jas_seq2d_copy(jas_seq2d_t *x);
jas_matrix_t *jas_seq2d_create(int xstart, int ystart, int xend, int yend);
#define jas_seq2d_destroy(s) \
jas_matrix_destroy(s)
jas_matrix_destroy(s)
#define jas_seq2d_xstart(s) \
((s)->xstart_)
((s)->xstart_)
#define jas_seq2d_ystart(s) \
((s)->ystart_)
((s)->ystart_)
#define jas_seq2d_xend(s) \
((s)->xend_)
((s)->xend_)
#define jas_seq2d_yend(s) \
((s)->yend_)
((s)->yend_)
#define jas_seq2d_getref(s, x, y) \
(jas_matrix_getref(s, (y) - (s)->ystart_, (x) - (s)->xstart_))
(jas_matrix_getref(s, (y) - (s)->ystart_, (x) - (s)->xstart_))
#define jas_seq2d_get(s, x, y) \
(jas_matrix_get(s, (y) - (s)->ystart_, (x) - (s)->xstart_))
(jas_matrix_get(s, (y) - (s)->ystart_, (x) - (s)->xstart_))
#define jas_seq2d_rowstep(s) \
jas_matrix_rowstep(s)
jas_matrix_rowstep(s)
#define jas_seq2d_width(s) \
((s)->xend_ - (s)->xstart_)
((s)->xend_ - (s)->xstart_)
#define jas_seq2d_height(s) \
((s)->yend_ - (s)->ystart_)
((s)->yend_ - (s)->ystart_)
#define jas_seq2d_setshift(s, x, y) \
((s)->xstart_ = (x), (s)->ystart_ = (y), \
(s)->xend_ = (s)->xstart_ + (s)->numcols_, \
(s)->yend_ = (s)->ystart_ + (s)->numrows_)
((s)->xstart_ = (x), (s)->ystart_ = (y), \
(s)->xend_ = (s)->xstart_ + (s)->numcols_, \
(s)->yend_ = (s)->ystart_ + (s)->numrows_)
void jas_seq2d_bindsub(jas_matrix_t *s, jas_matrix_t *s1, int xstart,
int ystart, int xend, int yend);
@@ -278,21 +278,21 @@ void jas_seq2d_bindsub(jas_matrix_t *s, jas_matrix_t *s1, int xstart,
\******************************************************************************/
#define jas_seq_create(start, end) \
(jas_seq2d_create(start, 0, end, 1))
(jas_seq2d_create(start, 0, end, 1))
#define jas_seq_destroy(seq) \
(jas_seq2d_destroy(seq))
(jas_seq2d_destroy(seq))
#define jas_seq_set(seq, i, v) \
((seq)->rows_[0][(i) - (seq)->xstart_] = (v))
((seq)->rows_[0][(i) - (seq)->xstart_] = (v))
#define jas_seq_getref(seq, i) \
(&(seq)->rows_[0][(i) - (seq)->xstart_])
(&(seq)->rows_[0][(i) - (seq)->xstart_])
#define jas_seq_get(seq, i) \
((seq)->rows_[0][(i) - (seq)->xstart_])
((seq)->rows_[0][(i) - (seq)->xstart_])
#define jas_seq_start(seq) \
((seq)->xstart_)
((seq)->xstart_)
#define jas_seq_end(seq) \
((seq)->xend_)
((seq)->xend_)
#ifdef __cplusplus
}
+87 -82
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -77,6 +77,7 @@
#include <jasper/jas_config.h>
#include <stdio.h>
#include <limits.h>
#if defined(HAVE_FCNTL_H)
#include <fcntl.h>
#endif
@@ -148,7 +149,7 @@ extern "C" {
#define JAS_STREAM_RWLIMIT 0x0004
/* The error mask. */
#define JAS_STREAM_ERRMASK \
(JAS_STREAM_EOF | JAS_STREAM_ERR | JAS_STREAM_RWLIMIT)
(JAS_STREAM_EOF | JAS_STREAM_ERR | JAS_STREAM_RWLIMIT)
/*
* Other miscellaneous constants.
@@ -178,17 +179,17 @@ typedef void jas_stream_obj_t;
typedef struct {
/* Read characters from a file object. */
int (*read_)(jas_stream_obj_t *obj, char *buf, int cnt);
/* Read characters from a file object. */
int (*read_)(jas_stream_obj_t *obj, char *buf, int cnt);
/* Write characters to a file object. */
int (*write_)(jas_stream_obj_t *obj, char *buf, int cnt);
/* Write characters to a file object. */
int (*write_)(jas_stream_obj_t *obj, char *buf, int cnt);
/* Set the position for a file object. */
long (*seek_)(jas_stream_obj_t *obj, long offset, int origin);
/* Set the position for a file object. */
long (*seek_)(jas_stream_obj_t *obj, long offset, int origin);
/* Close a file object. */
int (*close_)(jas_stream_obj_t *obj);
/* Close a file object. */
int (*close_)(jas_stream_obj_t *obj);
} jas_stream_ops_t;
@@ -198,46 +199,46 @@ typedef struct {
typedef struct {
/* The mode in which the stream was opened. */
int openmode_;
/* The mode in which the stream was opened. */
int openmode_;
/* The buffering mode. */
int bufmode_;
/* The buffering mode. */
int bufmode_;
/* The stream status. */
int flags_;
/* The stream status. */
int flags_;
/* The start of the buffer area to use for reading/writing. */
uchar *bufbase_;
/* The start of the buffer area to use for reading/writing. */
uchar *bufbase_;
/* The start of the buffer area excluding the extra initial space for
character putback. */
uchar *bufstart_;
/* The start of the buffer area excluding the extra initial space for
character putback. */
uchar *bufstart_;
/* The buffer size. */
int bufsize_;
/* The buffer size. */
int bufsize_;
/* The current position in the buffer. */
uchar *ptr_;
/* The current position in the buffer. */
uchar *ptr_;
/* The number of characters that must be read/written before
the buffer needs to be filled/flushed. */
int cnt_;
/* The number of characters that must be read/written before
the buffer needs to be filled/flushed. */
int cnt_;
/* A trivial buffer to be used for unbuffered operation. */
uchar tinybuf_[JAS_STREAM_MAXPUTBACK + 1];
/* A trivial buffer to be used for unbuffered operation. */
uchar tinybuf_[JAS_STREAM_MAXPUTBACK + 1];
/* The operations for the underlying stream file object. */
jas_stream_ops_t *ops_;
/* The operations for the underlying stream file object. */
jas_stream_ops_t *ops_;
/* The underlying stream file object. */
jas_stream_obj_t *obj_;
/* The underlying stream file object. */
jas_stream_obj_t *obj_;
/* The number of characters read/written. */
long rwcnt_;
/* The number of characters read/written. */
long rwcnt_;
/* The maximum number of characters that may be read/written. */
long rwlimit_;
/* The maximum number of characters that may be read/written. */
long rwlimit_;
} jas_stream_t;
@@ -249,9 +250,13 @@ typedef struct {
* File descriptor file object.
*/
typedef struct {
int fd;
int flags;
char pathname[L_tmpnam + 1];
int fd;
int flags;
#if defined _WIN32 && !defined __MINGW__ && !defined __MINGW32__
char pathname[MAX_PATH + 1];
#else
char pathname[PATH_MAX + 1];
#endif
} jas_stream_fileobj_t;
#define JAS_STREAM_FILEOBJ_DELONCLOSE 0x01
@@ -263,23 +268,23 @@ typedef struct {
typedef struct {
/* The data associated with this file. */
uchar *buf_;
/* The data associated with this file. */
uchar *buf_;
/* The allocated size of the buffer for holding file data. */
int bufsize_;
/* The allocated size of the buffer for holding file data. */
int bufsize_;
/* The length of the file. */
int_fast32_t len_;
/* The length of the file. */
int_fast32_t len_;
/* The seek position. */
int_fast32_t pos_;
/* The seek position. */
int_fast32_t pos_;
/* Is the buffer growable? */
int growable_;
/* Is the buffer growable? */
int growable_;
/* Was the buffer allocated internally? */
int myalloc_;
/* Was the buffer allocated internally? */
int myalloc_;
} jas_stream_memobj_t;
@@ -311,26 +316,26 @@ int jas_stream_close(jas_stream_t *stream);
/* Get the EOF indicator for a stream. */
#define jas_stream_eof(stream) \
(((stream)->flags_ & JAS_STREAM_EOF) != 0)
(((stream)->flags_ & JAS_STREAM_EOF) != 0)
/* Get the error indicator for a stream. */
#define jas_stream_error(stream) \
(((stream)->flags_ & JAS_STREAM_ERR) != 0)
(((stream)->flags_ & JAS_STREAM_ERR) != 0)
/* Clear the error indicator for a stream. */
#define jas_stream_clearerr(stream) \
((stream)->flags_ &= ~(JAS_STREAM_ERR | JAS_STREAM_EOF))
((stream)->flags_ &= ~(JAS_STREAM_ERR | JAS_STREAM_EOF))
/* Get the read/write limit for a stream. */
#define jas_stream_getrwlimit(stream) \
(((const jas_stream_t *)(stream))->rwlimit_)
(((const jas_stream_t *)(stream))->rwlimit_)
/* Set the read/write limit for a stream. */
int jas_stream_setrwlimit(jas_stream_t *stream, long rwlimit);
/* Get the read/write count for a stream. */
#define jas_stream_getrwcount(stream) \
(((const jas_stream_t *)(stream))->rwcnt_)
(((const jas_stream_t *)(stream))->rwcnt_)
/* Set the read/write count for a stream. */
long jas_stream_setrwcount(jas_stream_t *stream, long rwcnt);
@@ -371,8 +376,8 @@ char *jas_stream_gets(jas_stream_t *stream, char *buf, int bufsize);
/* Look at the next character to be read from a stream without actually
removing it from the stream. */
#define jas_stream_peekc(stream) \
(((stream)->cnt_ <= 0) ? jas_stream_fillbuf(stream, 0) : \
((int)(*(stream)->ptr_)))
(((stream)->cnt_ <= 0) ? jas_stream_fillbuf(stream, 0) : \
((int)(*(stream)->ptr_)))
/* Put a character back on a stream. */
int jas_stream_ungetc(jas_stream_t *stream, int c);
@@ -429,26 +434,26 @@ directly, you will die a horrible, miserable, and painful death! */
/* Read a character from a stream. */
#define jas_stream_getc_macro(stream) \
((!((stream)->flags_ & (JAS_STREAM_ERR | JAS_STREAM_EOF | \
JAS_STREAM_RWLIMIT))) ? \
(((stream)->rwlimit_ >= 0 && (stream)->rwcnt_ >= (stream)->rwlimit_) ? \
(stream->flags_ |= JAS_STREAM_RWLIMIT, EOF) : \
jas_stream_getc2(stream)) : EOF)
((!((stream)->flags_ & (JAS_STREAM_ERR | JAS_STREAM_EOF | \
JAS_STREAM_RWLIMIT))) ? \
(((stream)->rwlimit_ >= 0 && (stream)->rwcnt_ >= (stream)->rwlimit_) ? \
(stream->flags_ |= JAS_STREAM_RWLIMIT, EOF) : \
jas_stream_getc2(stream)) : EOF)
#define jas_stream_getc2(stream) \
((--(stream)->cnt_ < 0) ? jas_stream_fillbuf(stream, 1) : \
(++(stream)->rwcnt_, (int)(*(stream)->ptr_++)))
((--(stream)->cnt_ < 0) ? jas_stream_fillbuf(stream, 1) : \
(++(stream)->rwcnt_, (int)(*(stream)->ptr_++)))
/* Write a character to a stream. */
#define jas_stream_putc_macro(stream, c) \
((!((stream)->flags_ & (JAS_STREAM_ERR | JAS_STREAM_EOF | \
JAS_STREAM_RWLIMIT))) ? \
(((stream)->rwlimit_ >= 0 && (stream)->rwcnt_ >= (stream)->rwlimit_) ? \
(stream->flags_ |= JAS_STREAM_RWLIMIT, EOF) : \
jas_stream_putc2(stream, c)) : EOF)
((!((stream)->flags_ & (JAS_STREAM_ERR | JAS_STREAM_EOF | \
JAS_STREAM_RWLIMIT))) ? \
(((stream)->rwlimit_ >= 0 && (stream)->rwcnt_ >= (stream)->rwlimit_) ? \
(stream->flags_ |= JAS_STREAM_RWLIMIT, EOF) : \
jas_stream_putc2(stream, c)) : EOF)
#define jas_stream_putc2(stream, c) \
(((stream)->bufmode_ |= JAS_STREAM_WRBUF, --(stream)->cnt_ < 0) ? \
jas_stream_flushbuf((stream), (uchar)(c)) : \
(++(stream)->rwcnt_, (int)(*(stream)->ptr_++ = (c))))
(((stream)->bufmode_ |= JAS_STREAM_WRBUF, --(stream)->cnt_ < 0) ? \
jas_stream_flushbuf((stream), (uchar)(c)) : \
(++(stream)->rwcnt_, (int)(*(stream)->ptr_++ = (c))))
/* These prototypes need to be here for the sake of the stream_getc and
stream_putc macros. */
+8 -8
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
+12 -12
Ver Arquivo
@@ -4,15 +4,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -20,15 +20,15 @@
* 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
@@ -55,7 +55,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -75,15 +75,15 @@ extern "C" {
#if defined(HAVE_GETTIMEOFDAY)
typedef struct {
struct timeval start;
struct timeval stop;
struct timeval start;
struct timeval stop;
} jas_tmr_t;
#elif defined(HAVE_GETRUSAGE)
typedef struct {
struct rusage start;
struct rusage stop;
struct rusage start;
struct rusage stop;
} jas_tmr_t;
#else
+20 -20
Ver Arquivo
@@ -4,15 +4,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -20,15 +20,15 @@
* 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
@@ -55,7 +55,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -86,11 +86,11 @@ extern "C" {
typedef struct {
int id;
/* The ID for the tag. */
int id;
/* The ID for the tag. */
char *name;
/* The name of the tag. */
char *name;
/* The name of the tag. */
} jas_taginfo_t;
@@ -98,17 +98,17 @@ typedef struct {
typedef struct {
char *buf;
/* The parsing buffer. */
char *buf;
/* The parsing buffer. */
char *tag;
/* The current tag name. */
char *tag;
/* The current tag name. */
char *val;
/* The current value. */
char *val;
/* The current value. */
char *pos;
/* The current position in the parsing buffer. */
char *pos;
/* The current position in the parsing buffer. */
} jas_tvparser_t;
+9 -9
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -215,7 +215,7 @@ typedef ulonglong uint_fast64_t;
macro, type casts can be easily located in the source code with
tools like "grep". */
#define JAS_CAST(t, e) \
((t) (e))
((t) (e))
#ifdef __cplusplus
extern "C" {
+24 -24
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -85,24 +85,24 @@ extern "C" {
#endif
#define JAS_COPYRIGHT \
"Copyright (c) 2001-2006 Michael David Adams.\n" \
"Copyright (c) 1999-2000 Image Power, Inc. and the University of\n" \
" British Columbia.\n" \
"All rights reserved.\n"
"Copyright (c) 2001-2006 Michael David Adams.\n" \
"Copyright (c) 1999-2000 Image Power, Inc. and the University of\n" \
" British Columbia.\n" \
"All rights reserved.\n"
#define JAS_NOTES \
"For more information about this software, please visit the following\n" \
"web sites/pages:\n" \
" http://www.ece.uvic.ca/~mdadams/jasper\n" \
" http://www.jpeg.org/software\n" \
"To be added to the (moderated) JasPer software announcements\n" \
"mailing list, send an email to:\n" \
" jasper-announce-subscribe@yahoogroups.com\n" \
"To be added to the (unmoderated) JasPer software discussion\n" \
"mailing list, send an email to:\n" \
" jasper-discussion-subscribe@yahoogroups.com\n" \
"Please send any bug reports to:\n" \
" mdadams@ieee.org\n"
"For more information about this software, please visit the following\n" \
"web sites/pages:\n" \
" http://www.ece.uvic.ca/~mdadams/jasper\n" \
" http://www.jpeg.org/software\n" \
"To be added to the (moderated) JasPer software announcements\n" \
"mailing list, send an email to:\n" \
" jasper-announce-subscribe@yahoogroups.com\n" \
"To be added to the (unmoderated) JasPer software discussion\n" \
"mailing list, send an email to:\n" \
" jasper-discussion-subscribe@yahoogroups.com\n" \
"Please send any bug reports to:\n" \
" mdadams@ieee.org\n"
/******************************************************************************\
* Functions.
+8 -8
Ver Arquivo
@@ -4,15 +4,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -20,15 +20,15 @@
* 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
@@ -55,7 +55,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
+616 -558
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+82 -70
Ver Arquivo
@@ -5,16 +5,21 @@
* All rights reserved.
*/
/*
* Modified by Andrey Kiselev <dron@remotesensing.org> to handle UUID
* box properly.
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +27,15 @@
* 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
@@ -57,7 +62,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -81,7 +86,7 @@
\******************************************************************************/
#define JP2_SPTOBPC(s, p) \
((((p) - 1) & 0x7f) | (((s) & 1) << 7))
((((p) - 1) & 0x7f) | (((s) & 1) << 7))
/******************************************************************************\
* Box class.
@@ -119,7 +124,7 @@
#define JP2_JP_LEN 12
typedef struct {
uint_fast32_t magic;
uint_fast32_t magic;
} jp2_jp_t;
/* FTYP box data. */
@@ -130,10 +135,10 @@ typedef struct {
#define JP2_FTYP_COMPATCODE JP2_FTYP_MAJVER
typedef struct {
uint_fast32_t majver;
uint_fast32_t minver;
uint_fast32_t numcompatcodes;
uint_fast32_t compatcodes[JP2_FTYP_MAXCOMPATCODES];
uint_fast32_t majver;
uint_fast32_t minver;
uint_fast32_t numcompatcodes;
uint_fast32_t compatcodes[JP2_FTYP_MAXCOMPATCODES];
} jp2_ftyp_t;
/* IHDR box data. */
@@ -142,20 +147,20 @@ typedef struct {
#define JP2_IHDR_BPCNULL 255
typedef struct {
uint_fast32_t width;
uint_fast32_t height;
uint_fast16_t numcmpts;
uint_fast8_t bpc;
uint_fast8_t comptype;
uint_fast8_t csunk;
uint_fast8_t ipr;
uint_fast32_t width;
uint_fast32_t height;
uint_fast16_t numcmpts;
uint_fast8_t bpc;
uint_fast8_t comptype;
uint_fast8_t csunk;
uint_fast8_t ipr;
} jp2_ihdr_t;
/* BPCC box data. */
typedef struct {
uint_fast16_t numcmpts;
uint_fast8_t *bpcs;
uint_fast16_t numcmpts;
uint_fast8_t *bpcs;
} jp2_bpcc_t;
/* COLR box data. */
@@ -169,22 +174,22 @@ typedef struct {
#define JP2_COLR_SYCC 18
typedef struct {
uint_fast8_t method;
uint_fast8_t pri;
uint_fast8_t approx;
uint_fast32_t csid;
uint_fast8_t *iccp;
int iccplen;
/* XXX - Someday we ought to add ICC profile data here. */
uint_fast8_t method;
uint_fast8_t pri;
uint_fast8_t approx;
uint_fast32_t csid;
uint_fast8_t *iccp;
int iccplen;
/* XXX - Someday we ought to add ICC profile data here. */
} jp2_colr_t;
/* PCLR box data. */
typedef struct {
uint_fast16_t numlutents;
uint_fast8_t numchans;
int_fast32_t *lutdata;
uint_fast8_t *bpc;
uint_fast16_t numlutents;
uint_fast8_t numchans;
int_fast32_t *lutdata;
uint_fast8_t *bpc;
} jp2_pclr_t;
/* CDEF box per-channel data. */
@@ -206,29 +211,35 @@ typedef struct {
#define JP2_CDEF_ASOC_NONE 65535
typedef struct {
uint_fast16_t channo;
uint_fast16_t type;
uint_fast16_t assoc;
uint_fast16_t channo;
uint_fast16_t type;
uint_fast16_t assoc;
} jp2_cdefchan_t;
/* CDEF box data. */
typedef struct {
uint_fast16_t numchans;
jp2_cdefchan_t *ents;
uint_fast16_t numchans;
jp2_cdefchan_t *ents;
} jp2_cdef_t;
typedef struct {
uint_fast16_t cmptno;
uint_fast8_t map;
uint_fast8_t pcol;
uint_fast16_t cmptno;
uint_fast8_t map;
uint_fast8_t pcol;
} jp2_cmapent_t;
typedef struct {
uint_fast16_t numchans;
jp2_cmapent_t *ents;
uint_fast16_t numchans;
jp2_cmapent_t *ents;
} jp2_cmap_t;
typedef struct {
uint_fast32_t datalen;
uint_fast8_t uuid[16];
uint_fast8_t *data;
} jp2_uuid_t;
#define JP2_CMAP_DIRECT 0
#define JP2_CMAP_PALETTE 1
@@ -237,36 +248,37 @@ typedef struct {
struct jp2_boxops_s;
typedef struct {
struct jp2_boxops_s *ops;
struct jp2_boxinfo_s *info;
struct jp2_boxops_s *ops;
struct jp2_boxinfo_s *info;
uint_fast32_t type;
uint_fast32_t type;
/* The length of the box including the (variable-length) header. */
uint_fast32_t len;
/* The length of the box including the (variable-length) header. */
uint_fast32_t len;
/* The length of the box data. */
uint_fast32_t datalen;
/* The length of the box data. */
uint_fast32_t datalen;
union {
jp2_jp_t jp;
jp2_ftyp_t ftyp;
jp2_ihdr_t ihdr;
jp2_bpcc_t bpcc;
jp2_colr_t colr;
jp2_pclr_t pclr;
jp2_cdef_t cdef;
jp2_cmap_t cmap;
} data;
union {
jp2_jp_t jp;
jp2_ftyp_t ftyp;
jp2_ihdr_t ihdr;
jp2_bpcc_t bpcc;
jp2_colr_t colr;
jp2_pclr_t pclr;
jp2_cdef_t cdef;
jp2_cmap_t cmap;
jp2_uuid_t uuid;
} data;
} jp2_box_t;
typedef struct jp2_boxops_s {
void (*init)(jp2_box_t *box);
void (*destroy)(jp2_box_t *box);
int (*getdata)(jp2_box_t *box, jas_stream_t *in);
int (*putdata)(jp2_box_t *box, jas_stream_t *out);
void (*dumpdata)(jp2_box_t *box, FILE *out);
void (*init)(jp2_box_t *box);
void (*destroy)(jp2_box_t *box);
int (*getdata)(jp2_box_t *box, jas_stream_t *in);
int (*putdata)(jp2_box_t *box, jas_stream_t *out);
void (*dumpdata)(jp2_box_t *box, FILE *out);
} jp2_boxops_t;
/******************************************************************************\
@@ -274,10 +286,10 @@ typedef struct jp2_boxops_s {
\******************************************************************************/
typedef struct jp2_boxinfo_s {
int type;
char *name;
int flags;
jp2_boxops_t ops;
int type;
char *name;
int flags;
jp2_boxops_t ops;
} jp2_boxinfo_t;
/******************************************************************************\
+441 -441
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -95,509 +95,509 @@ static int jp2_getct(int colorspace, int type, int assoc);
jas_image_t *jp2_decode(jas_stream_t *in, char *optstr)
{
jp2_box_t *box;
int found;
jas_image_t *image;
jp2_dec_t *dec;
bool samedtype;
int dtype;
unsigned int i;
jp2_cmap_t *cmapd;
jp2_pclr_t *pclrd;
jp2_cdef_t *cdefd;
unsigned int channo;
int newcmptno;
int_fast32_t *lutents;
jp2_box_t *box;
int found;
jas_image_t *image;
jp2_dec_t *dec;
bool samedtype;
int dtype;
unsigned int i;
jp2_cmap_t *cmapd;
jp2_pclr_t *pclrd;
jp2_cdef_t *cdefd;
unsigned int channo;
int newcmptno;
int_fast32_t *lutents;
#if 0
jp2_cdefchan_t *cdefent;
int cmptno;
jp2_cdefchan_t *cdefent;
int cmptno;
#endif
jp2_cmapent_t *cmapent;
jas_icchdr_t icchdr;
jas_iccprof_t *iccprof;
jp2_cmapent_t *cmapent;
jas_icchdr_t icchdr;
jas_iccprof_t *iccprof;
dec = 0;
box = 0;
image = 0;
dec = 0;
box = 0;
image = 0;
if (!(dec = jp2_dec_create())) {
goto error;
}
if (!(dec = jp2_dec_create())) {
goto error;
}
/* Get the first box. This should be a JP box. */
if (!(box = jp2_box_get(in))) {
jas_eprintf("error: cannot get box\n");
goto error;
}
if (box->type != JP2_BOX_JP) {
jas_eprintf("error: expecting signature box\n");
goto error;
}
if (box->data.jp.magic != JP2_JP_MAGIC) {
jas_eprintf("incorrect magic number\n");
goto error;
}
jp2_box_destroy(box);
box = 0;
/* Get the first box. This should be a JP box. */
if (!(box = jp2_box_get(in))) {
jas_eprintf("error: cannot get box\n");
goto error;
}
if (box->type != JP2_BOX_JP) {
jas_eprintf("error: expecting signature box\n");
goto error;
}
if (box->data.jp.magic != JP2_JP_MAGIC) {
jas_eprintf("incorrect magic number\n");
goto error;
}
jp2_box_destroy(box);
box = 0;
/* Get the second box. This should be a FTYP box. */
if (!(box = jp2_box_get(in))) {
goto error;
}
if (box->type != JP2_BOX_FTYP) {
jas_eprintf("expecting file type box\n");
goto error;
}
jp2_box_destroy(box);
box = 0;
/* Get the second box. This should be a FTYP box. */
if (!(box = jp2_box_get(in))) {
goto error;
}
if (box->type != JP2_BOX_FTYP) {
jas_eprintf("expecting file type box\n");
goto error;
}
jp2_box_destroy(box);
box = 0;
/* Get more boxes... */
found = 0;
while ((box = jp2_box_get(in))) {
if (jas_getdbglevel() >= 1) {
jas_eprintf("box type %s\n", box->info->name);
}
switch (box->type) {
case JP2_BOX_JP2C:
found = 1;
break;
case JP2_BOX_IHDR:
if (!dec->ihdr) {
dec->ihdr = box;
box = 0;
}
break;
case JP2_BOX_BPCC:
if (!dec->bpcc) {
dec->bpcc = box;
box = 0;
}
break;
case JP2_BOX_CDEF:
if (!dec->cdef) {
dec->cdef = box;
box = 0;
}
break;
case JP2_BOX_PCLR:
if (!dec->pclr) {
dec->pclr = box;
box = 0;
}
break;
case JP2_BOX_CMAP:
if (!dec->cmap) {
dec->cmap = box;
box = 0;
}
break;
case JP2_BOX_COLR:
if (!dec->colr) {
dec->colr = box;
box = 0;
}
break;
}
if (box) {
jp2_box_destroy(box);
box = 0;
}
if (found) {
break;
}
}
/* Get more boxes... */
found = 0;
while ((box = jp2_box_get(in))) {
if (jas_getdbglevel() >= 1) {
jas_eprintf("box type %s\n", box->info->name);
}
switch (box->type) {
case JP2_BOX_JP2C:
found = 1;
break;
case JP2_BOX_IHDR:
if (!dec->ihdr) {
dec->ihdr = box;
box = 0;
}
break;
case JP2_BOX_BPCC:
if (!dec->bpcc) {
dec->bpcc = box;
box = 0;
}
break;
case JP2_BOX_CDEF:
if (!dec->cdef) {
dec->cdef = box;
box = 0;
}
break;
case JP2_BOX_PCLR:
if (!dec->pclr) {
dec->pclr = box;
box = 0;
}
break;
case JP2_BOX_CMAP:
if (!dec->cmap) {
dec->cmap = box;
box = 0;
}
break;
case JP2_BOX_COLR:
if (!dec->colr) {
dec->colr = box;
box = 0;
}
break;
}
if (box) {
jp2_box_destroy(box);
box = 0;
}
if (found) {
break;
}
}
if (!found) {
jas_eprintf("error: no code stream found\n");
goto error;
}
if (!found) {
jas_eprintf("error: no code stream found\n");
goto error;
}
if (!(dec->image = jpc_decode(in, optstr))) {
jas_eprintf("error: cannot decode code stream\n");
goto error;
}
if (!(dec->image = jpc_decode(in, optstr))) {
jas_eprintf("error: cannot decode code stream\n");
goto error;
}
/* An IHDR box must be present. */
if (!dec->ihdr) {
jas_eprintf("error: missing IHDR box\n");
goto error;
}
/* An IHDR box must be present. */
if (!dec->ihdr) {
jas_eprintf("error: missing IHDR box\n");
goto error;
}
/* Does the number of components indicated in the IHDR box match
the value specified in the code stream? */
if (dec->ihdr->data.ihdr.numcmpts != JAS_CAST(uint, jas_image_numcmpts(dec->image))) {
jas_eprintf("warning: number of components mismatch\n");
}
/* Does the number of components indicated in the IHDR box match
the value specified in the code stream? */
if (dec->ihdr->data.ihdr.numcmpts != JAS_CAST(uint, jas_image_numcmpts(dec->image))) {
jas_eprintf("warning: number of components mismatch\n");
}
/* At least one component must be present. */
if (!jas_image_numcmpts(dec->image)) {
jas_eprintf("error: no components\n");
goto error;
}
/* At least one component must be present. */
if (!jas_image_numcmpts(dec->image)) {
jas_eprintf("error: no components\n");
goto error;
}
/* Determine if all components have the same data type. */
samedtype = true;
dtype = jas_image_cmptdtype(dec->image, 0);
for (i = 1; i < JAS_CAST(uint, jas_image_numcmpts(dec->image)); ++i) {
if (jas_image_cmptdtype(dec->image, i) != dtype) {
samedtype = false;
break;
}
}
/* Determine if all components have the same data type. */
samedtype = true;
dtype = jas_image_cmptdtype(dec->image, 0);
for (i = 1; i < JAS_CAST(uint, jas_image_numcmpts(dec->image)); ++i) {
if (jas_image_cmptdtype(dec->image, i) != dtype) {
samedtype = false;
break;
}
}
/* Is the component data type indicated in the IHDR box consistent
with the data in the code stream? */
if ((samedtype && dec->ihdr->data.ihdr.bpc != JP2_DTYPETOBPC(dtype)) ||
(!samedtype && dec->ihdr->data.ihdr.bpc != JP2_IHDR_BPCNULL)) {
jas_eprintf("warning: component data type mismatch\n");
}
/* Is the component data type indicated in the IHDR box consistent
with the data in the code stream? */
if ((samedtype && dec->ihdr->data.ihdr.bpc != JP2_DTYPETOBPC(dtype)) ||
(!samedtype && dec->ihdr->data.ihdr.bpc != JP2_IHDR_BPCNULL)) {
jas_eprintf("warning: component data type mismatch\n");
}
/* Is the compression type supported? */
if (dec->ihdr->data.ihdr.comptype != JP2_IHDR_COMPTYPE) {
jas_eprintf("error: unsupported compression type\n");
goto error;
}
/* Is the compression type supported? */
if (dec->ihdr->data.ihdr.comptype != JP2_IHDR_COMPTYPE) {
jas_eprintf("error: unsupported compression type\n");
goto error;
}
if (dec->bpcc) {
/* Is the number of components indicated in the BPCC box
consistent with the code stream data? */
if (dec->bpcc->data.bpcc.numcmpts != JAS_CAST(uint, jas_image_numcmpts(
dec->image))) {
jas_eprintf("warning: number of components mismatch\n");
}
/* Is the component data type information indicated in the BPCC
box consistent with the code stream data? */
if (!samedtype) {
for (i = 0; i < JAS_CAST(uint, jas_image_numcmpts(dec->image)); ++i) {
if (jas_image_cmptdtype(dec->image, i) != JP2_BPCTODTYPE(dec->bpcc->data.bpcc.bpcs[i])) {
jas_eprintf("warning: component data type mismatch\n");
}
}
} else {
jas_eprintf("warning: superfluous BPCC box\n");
}
}
if (dec->bpcc) {
/* Is the number of components indicated in the BPCC box
consistent with the code stream data? */
if (dec->bpcc->data.bpcc.numcmpts != JAS_CAST(uint, jas_image_numcmpts(
dec->image))) {
jas_eprintf("warning: number of components mismatch\n");
}
/* Is the component data type information indicated in the BPCC
box consistent with the code stream data? */
if (!samedtype) {
for (i = 0; i < JAS_CAST(uint, jas_image_numcmpts(dec->image)); ++i) {
if (jas_image_cmptdtype(dec->image, i) != JP2_BPCTODTYPE(dec->bpcc->data.bpcc.bpcs[i])) {
jas_eprintf("warning: component data type mismatch\n");
}
}
} else {
jas_eprintf("warning: superfluous BPCC box\n");
}
}
/* A COLR box must be present. */
if (!dec->colr) {
jas_eprintf("error: no COLR box\n");
goto error;
}
/* A COLR box must be present. */
if (!dec->colr) {
jas_eprintf("error: no COLR box\n");
goto error;
}
switch (dec->colr->data.colr.method) {
case JP2_COLR_ENUM:
jas_image_setclrspc(dec->image, jp2_getcs(&dec->colr->data.colr));
break;
case JP2_COLR_ICC:
iccprof = jas_iccprof_createfrombuf(dec->colr->data.colr.iccp,
dec->colr->data.colr.iccplen);
assert(iccprof);
jas_iccprof_gethdr(iccprof, &icchdr);
jas_eprintf("ICC Profile CS %08x\n", icchdr.colorspc);
jas_image_setclrspc(dec->image, fromiccpcs(icchdr.colorspc));
dec->image->cmprof_ = jas_cmprof_createfromiccprof(iccprof);
assert(dec->image->cmprof_);
jas_iccprof_destroy(iccprof);
break;
}
switch (dec->colr->data.colr.method) {
case JP2_COLR_ENUM:
jas_image_setclrspc(dec->image, jp2_getcs(&dec->colr->data.colr));
break;
case JP2_COLR_ICC:
iccprof = jas_iccprof_createfrombuf(dec->colr->data.colr.iccp,
dec->colr->data.colr.iccplen);
assert(iccprof);
jas_iccprof_gethdr(iccprof, &icchdr);
jas_eprintf("ICC Profile CS %08x\n", icchdr.colorspc);
jas_image_setclrspc(dec->image, fromiccpcs(icchdr.colorspc));
dec->image->cmprof_ = jas_cmprof_createfromiccprof(iccprof);
assert(dec->image->cmprof_);
jas_iccprof_destroy(iccprof);
break;
}
/* If a CMAP box is present, a PCLR box must also be present. */
if (dec->cmap && !dec->pclr) {
jas_eprintf("warning: missing PCLR box or superfluous CMAP box\n");
jp2_box_destroy(dec->cmap);
dec->cmap = 0;
}
/* If a CMAP box is present, a PCLR box must also be present. */
if (dec->cmap && !dec->pclr) {
jas_eprintf("warning: missing PCLR box or superfluous CMAP box\n");
jp2_box_destroy(dec->cmap);
dec->cmap = 0;
}
/* If a CMAP box is not present, a PCLR box must not be present. */
if (!dec->cmap && dec->pclr) {
jas_eprintf("warning: missing CMAP box or superfluous PCLR box\n");
jp2_box_destroy(dec->pclr);
dec->pclr = 0;
}
/* If a CMAP box is not present, a PCLR box must not be present. */
if (!dec->cmap && dec->pclr) {
jas_eprintf("warning: missing CMAP box or superfluous PCLR box\n");
jp2_box_destroy(dec->pclr);
dec->pclr = 0;
}
/* Determine the number of channels (which is essentially the number
of components after any palette mappings have been applied). */
dec->numchans = dec->cmap ? dec->cmap->data.cmap.numchans : JAS_CAST(uint, jas_image_numcmpts(dec->image));
/* Determine the number of channels (which is essentially the number
of components after any palette mappings have been applied). */
dec->numchans = dec->cmap ? dec->cmap->data.cmap.numchans : JAS_CAST(uint, jas_image_numcmpts(dec->image));
/* Perform a basic sanity check on the CMAP box if present. */
if (dec->cmap) {
for (i = 0; i < dec->numchans; ++i) {
/* Is the component number reasonable? */
if (dec->cmap->data.cmap.ents[i].cmptno >= JAS_CAST(uint, jas_image_numcmpts(dec->image))) {
jas_eprintf("error: invalid component number in CMAP box\n");
goto error;
}
/* Is the LUT index reasonable? */
if (dec->cmap->data.cmap.ents[i].pcol >= dec->pclr->data.pclr.numchans) {
jas_eprintf("error: invalid CMAP LUT index\n");
goto error;
}
}
}
/* Perform a basic sanity check on the CMAP box if present. */
if (dec->cmap) {
for (i = 0; i < dec->numchans; ++i) {
/* Is the component number reasonable? */
if (dec->cmap->data.cmap.ents[i].cmptno >= JAS_CAST(uint, jas_image_numcmpts(dec->image))) {
jas_eprintf("error: invalid component number in CMAP box\n");
goto error;
}
/* Is the LUT index reasonable? */
if (dec->cmap->data.cmap.ents[i].pcol >= dec->pclr->data.pclr.numchans) {
jas_eprintf("error: invalid CMAP LUT index\n");
goto error;
}
}
}
/* Allocate space for the channel-number to component-number LUT. */
if (!(dec->chantocmptlut = jas_malloc(dec->numchans * sizeof(uint_fast16_t)))) {
jas_eprintf("error: no memory\n");
goto error;
}
/* Allocate space for the channel-number to component-number LUT. */
if (!(dec->chantocmptlut = jas_alloc2(dec->numchans, sizeof(uint_fast16_t)))) {
jas_eprintf("error: no memory\n");
goto error;
}
if (!dec->cmap) {
for (i = 0; i < dec->numchans; ++i) {
dec->chantocmptlut[i] = i;
}
} else {
cmapd = &dec->cmap->data.cmap;
pclrd = &dec->pclr->data.pclr;
cdefd = &dec->cdef->data.cdef;
for (channo = 0; channo < cmapd->numchans; ++channo) {
cmapent = &cmapd->ents[channo];
if (cmapent->map == JP2_CMAP_DIRECT) {
dec->chantocmptlut[channo] = channo;
} else if (cmapent->map == JP2_CMAP_PALETTE) {
lutents = jas_malloc(pclrd->numlutents * sizeof(int_fast32_t));
for (i = 0; i < pclrd->numlutents; ++i) {
lutents[i] = pclrd->lutdata[cmapent->pcol + i * pclrd->numchans];
}
newcmptno = jas_image_numcmpts(dec->image);
jas_image_depalettize(dec->image, cmapent->cmptno, pclrd->numlutents, lutents, JP2_BPCTODTYPE(pclrd->bpc[cmapent->pcol]), newcmptno);
dec->chantocmptlut[channo] = newcmptno;
jas_free(lutents);
if (!dec->cmap) {
for (i = 0; i < dec->numchans; ++i) {
dec->chantocmptlut[i] = i;
}
} else {
cmapd = &dec->cmap->data.cmap;
pclrd = &dec->pclr->data.pclr;
cdefd = &dec->cdef->data.cdef;
for (channo = 0; channo < cmapd->numchans; ++channo) {
cmapent = &cmapd->ents[channo];
if (cmapent->map == JP2_CMAP_DIRECT) {
dec->chantocmptlut[channo] = channo;
} else if (cmapent->map == JP2_CMAP_PALETTE) {
lutents = jas_alloc2(pclrd->numlutents, sizeof(int_fast32_t));
for (i = 0; i < pclrd->numlutents; ++i) {
lutents[i] = pclrd->lutdata[cmapent->pcol + i * pclrd->numchans];
}
newcmptno = jas_image_numcmpts(dec->image);
jas_image_depalettize(dec->image, cmapent->cmptno, pclrd->numlutents, lutents, JP2_BPCTODTYPE(pclrd->bpc[cmapent->pcol]), newcmptno);
dec->chantocmptlut[channo] = newcmptno;
jas_free(lutents);
#if 0
if (dec->cdef) {
cdefent = jp2_cdef_lookup(cdefd, channo);
if (!cdefent) {
abort();
}
jas_image_setcmpttype(dec->image, newcmptno, jp2_getct(jas_image_clrspc(dec->image), cdefent->type, cdefent->assoc));
} else {
jas_image_setcmpttype(dec->image, newcmptno, jp2_getct(jas_image_clrspc(dec->image), 0, channo + 1));
}
if (dec->cdef) {
cdefent = jp2_cdef_lookup(cdefd, channo);
if (!cdefent) {
abort();
}
jas_image_setcmpttype(dec->image, newcmptno, jp2_getct(jas_image_clrspc(dec->image), cdefent->type, cdefent->assoc));
} else {
jas_image_setcmpttype(dec->image, newcmptno, jp2_getct(jas_image_clrspc(dec->image), 0, channo + 1));
}
#endif
}
}
}
}
}
}
/* Mark all components as being of unknown type. */
/* Mark all components as being of unknown type. */
for (i = 0; i < JAS_CAST(uint, jas_image_numcmpts(dec->image)); ++i) {
jas_image_setcmpttype(dec->image, i, JAS_IMAGE_CT_UNKNOWN);
}
for (i = 0; i < JAS_CAST(uint, jas_image_numcmpts(dec->image)); ++i) {
jas_image_setcmpttype(dec->image, i, JAS_IMAGE_CT_UNKNOWN);
}
/* Determine the type of each component. */
if (dec->cdef) {
for (i = 0; i < dec->numchans; ++i) {
jas_image_setcmpttype(dec->image,
dec->chantocmptlut[dec->cdef->data.cdef.ents[i].channo],
jp2_getct(jas_image_clrspc(dec->image),
dec->cdef->data.cdef.ents[i].type, dec->cdef->data.cdef.ents[i].assoc));
}
} else {
for (i = 0; i < dec->numchans; ++i) {
jas_image_setcmpttype(dec->image, dec->chantocmptlut[i],
jp2_getct(jas_image_clrspc(dec->image), 0, i + 1));
}
}
/* Determine the type of each component. */
if (dec->cdef) {
for (i = 0; i < dec->numchans; ++i) {
jas_image_setcmpttype(dec->image,
dec->chantocmptlut[dec->cdef->data.cdef.ents[i].channo],
jp2_getct(jas_image_clrspc(dec->image),
dec->cdef->data.cdef.ents[i].type, dec->cdef->data.cdef.ents[i].assoc));
}
} else {
for (i = 0; i < dec->numchans; ++i) {
jas_image_setcmpttype(dec->image, dec->chantocmptlut[i],
jp2_getct(jas_image_clrspc(dec->image), 0, i + 1));
}
}
/* Delete any components that are not of interest. */
for (i = jas_image_numcmpts(dec->image); i > 0; --i) {
if (jas_image_cmpttype(dec->image, i - 1) == JAS_IMAGE_CT_UNKNOWN) {
jas_image_delcmpt(dec->image, i - 1);
}
}
/* Delete any components that are not of interest. */
for (i = jas_image_numcmpts(dec->image); i > 0; --i) {
if (jas_image_cmpttype(dec->image, i - 1) == JAS_IMAGE_CT_UNKNOWN) {
jas_image_delcmpt(dec->image, i - 1);
}
}
/* Ensure that some components survived. */
if (!jas_image_numcmpts(dec->image)) {
jas_eprintf("error: no components\n");
goto error;
}
/* Ensure that some components survived. */
if (!jas_image_numcmpts(dec->image)) {
jas_eprintf("error: no components\n");
goto error;
}
#if 0
jas_eprintf("no of components is %d\n", jas_image_numcmpts(dec->image));
#endif
/* Prevent the image from being destroyed later. */
image = dec->image;
dec->image = 0;
/* Prevent the image from being destroyed later. */
image = dec->image;
dec->image = 0;
jp2_dec_destroy(dec);
jp2_dec_destroy(dec);
return image;
return image;
error:
if (box) {
jp2_box_destroy(box);
}
if (dec) {
jp2_dec_destroy(dec);
}
return 0;
if (box) {
jp2_box_destroy(box);
}
if (dec) {
jp2_dec_destroy(dec);
}
return 0;
}
int jp2_validate(jas_stream_t *in)
{
char buf[JP2_VALIDATELEN];
int i;
int n;
char buf[JP2_VALIDATELEN];
int i;
int n;
#if 0
jas_stream_t *tmpstream;
jp2_box_t *box;
jas_stream_t *tmpstream;
jp2_box_t *box;
#endif
assert(JAS_STREAM_MAXPUTBACK >= JP2_VALIDATELEN);
assert(JAS_STREAM_MAXPUTBACK >= JP2_VALIDATELEN);
/* Read the validation data (i.e., the data used for detecting
the format). */
if ((n = jas_stream_read(in, buf, JP2_VALIDATELEN)) < 0) {
return -1;
}
/* Read the validation data (i.e., the data used for detecting
the format). */
if ((n = jas_stream_read(in, buf, JP2_VALIDATELEN)) < 0) {
return -1;
}
/* Put the validation data back onto the stream, so that the
stream position will not be changed. */
for (i = n - 1; i >= 0; --i) {
if (jas_stream_ungetc(in, buf[i]) == EOF) {
return -1;
}
}
/* Put the validation data back onto the stream, so that the
stream position will not be changed. */
for (i = n - 1; i >= 0; --i) {
if (jas_stream_ungetc(in, buf[i]) == EOF) {
return -1;
}
}
/* Did we read enough data? */
if (n < JP2_VALIDATELEN) {
return -1;
}
/* Did we read enough data? */
if (n < JP2_VALIDATELEN) {
return -1;
}
/* Is the box type correct? */
if (((buf[4] << 24) | (buf[5] << 16) | (buf[6] << 8) | buf[7]) !=
JP2_BOX_JP)
{
return -1;
}
/* Is the box type correct? */
if (((buf[4] << 24) | (buf[5] << 16) | (buf[6] << 8) | buf[7]) !=
JP2_BOX_JP)
{
return -1;
}
return 0;
return 0;
}
static jp2_dec_t *jp2_dec_create(void)
{
jp2_dec_t *dec;
jp2_dec_t *dec;
if (!(dec = jas_malloc(sizeof(jp2_dec_t)))) {
return 0;
}
dec->ihdr = 0;
dec->bpcc = 0;
dec->cdef = 0;
dec->pclr = 0;
dec->image = 0;
dec->chantocmptlut = 0;
dec->cmap = 0;
dec->colr = 0;
return dec;
if (!(dec = jas_malloc(sizeof(jp2_dec_t)))) {
return 0;
}
dec->ihdr = 0;
dec->bpcc = 0;
dec->cdef = 0;
dec->pclr = 0;
dec->image = 0;
dec->chantocmptlut = 0;
dec->cmap = 0;
dec->colr = 0;
return dec;
}
static void jp2_dec_destroy(jp2_dec_t *dec)
{
if (dec->ihdr) {
jp2_box_destroy(dec->ihdr);
}
if (dec->bpcc) {
jp2_box_destroy(dec->bpcc);
}
if (dec->cdef) {
jp2_box_destroy(dec->cdef);
}
if (dec->pclr) {
jp2_box_destroy(dec->pclr);
}
if (dec->image) {
jas_image_destroy(dec->image);
}
if (dec->cmap) {
jp2_box_destroy(dec->cmap);
}
if (dec->colr) {
jp2_box_destroy(dec->colr);
}
if (dec->chantocmptlut) {
jas_free(dec->chantocmptlut);
}
jas_free(dec);
if (dec->ihdr) {
jp2_box_destroy(dec->ihdr);
}
if (dec->bpcc) {
jp2_box_destroy(dec->bpcc);
}
if (dec->cdef) {
jp2_box_destroy(dec->cdef);
}
if (dec->pclr) {
jp2_box_destroy(dec->pclr);
}
if (dec->image) {
jas_image_destroy(dec->image);
}
if (dec->cmap) {
jp2_box_destroy(dec->cmap);
}
if (dec->colr) {
jp2_box_destroy(dec->colr);
}
if (dec->chantocmptlut) {
jas_free(dec->chantocmptlut);
}
jas_free(dec);
}
static int jp2_getct(int colorspace, int type, int assoc)
{
if (type == 1 && assoc == 0) {
return JAS_IMAGE_CT_OPACITY;
}
if (type == 0 && assoc >= 1 && assoc <= 65534) {
switch (colorspace) {
case JAS_CLRSPC_FAM_RGB:
switch (assoc) {
case JP2_CDEF_RGB_R:
return JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_RGB_R);
break;
case JP2_CDEF_RGB_G:
return JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_RGB_G);
break;
case JP2_CDEF_RGB_B:
return JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_RGB_B);
break;
}
break;
case JAS_CLRSPC_FAM_YCBCR:
switch (assoc) {
case JP2_CDEF_YCBCR_Y:
return JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_YCBCR_Y);
break;
case JP2_CDEF_YCBCR_CB:
return JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_YCBCR_CB);
break;
case JP2_CDEF_YCBCR_CR:
return JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_YCBCR_CR);
break;
}
break;
case JAS_CLRSPC_FAM_GRAY:
switch (assoc) {
case JP2_CDEF_GRAY_Y:
return JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_GRAY_Y);
break;
}
break;
default:
return JAS_IMAGE_CT_COLOR(assoc - 1);
break;
}
}
return JAS_IMAGE_CT_UNKNOWN;
if (type == 1 && assoc == 0) {
return JAS_IMAGE_CT_OPACITY;
}
if (type == 0 && assoc >= 1 && assoc <= 65534) {
switch (colorspace) {
case JAS_CLRSPC_FAM_RGB:
switch (assoc) {
case JP2_CDEF_RGB_R:
return JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_RGB_R);
break;
case JP2_CDEF_RGB_G:
return JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_RGB_G);
break;
case JP2_CDEF_RGB_B:
return JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_RGB_B);
break;
}
break;
case JAS_CLRSPC_FAM_YCBCR:
switch (assoc) {
case JP2_CDEF_YCBCR_Y:
return JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_YCBCR_Y);
break;
case JP2_CDEF_YCBCR_CB:
return JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_YCBCR_CB);
break;
case JP2_CDEF_YCBCR_CR:
return JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_YCBCR_CR);
break;
}
break;
case JAS_CLRSPC_FAM_GRAY:
switch (assoc) {
case JP2_CDEF_GRAY_Y:
return JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_GRAY_Y);
break;
}
break;
default:
return JAS_IMAGE_CT_COLOR(assoc - 1);
break;
}
}
return JAS_IMAGE_CT_UNKNOWN;
}
static int jp2_getcs(jp2_colr_t *colr)
{
if (colr->method == JP2_COLR_ENUM) {
switch (colr->csid) {
case JP2_COLR_SRGB:
return JAS_CLRSPC_SRGB;
break;
case JP2_COLR_SYCC:
return JAS_CLRSPC_SYCBCR;
break;
case JP2_COLR_SGRAY:
return JAS_CLRSPC_SGRAY;
break;
}
}
return JAS_CLRSPC_UNKNOWN;
if (colr->method == JP2_COLR_ENUM) {
switch (colr->csid) {
case JP2_COLR_SRGB:
return JAS_CLRSPC_SRGB;
break;
case JP2_COLR_SYCC:
return JAS_CLRSPC_SYCBCR;
break;
case JP2_COLR_SGRAY:
return JAS_CLRSPC_SGRAY;
break;
}
}
return JAS_CLRSPC_UNKNOWN;
}
static int fromiccpcs(int cs)
{
switch (cs) {
case ICC_CS_RGB:
return JAS_CLRSPC_GENRGB;
break;
case ICC_CS_YCBCR:
return JAS_CLRSPC_GENYCBCR;
break;
case ICC_CS_GRAY:
return JAS_CLRSPC_GENGRAY;
break;
}
return JAS_CLRSPC_UNKNOWN;
switch (cs) {
case ICC_CS_RGB:
return JAS_CLRSPC_GENRGB;
break;
case ICC_CS_YCBCR:
return JAS_CLRSPC_GENYCBCR;
break;
case ICC_CS_GRAY:
return JAS_CLRSPC_GENGRAY;
break;
}
return JAS_CLRSPC_UNKNOWN;
}
+17 -17
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -70,15 +70,15 @@
typedef struct {
jp2_box_t *pclr;
jp2_box_t *cdef;
jp2_box_t *ihdr;
jp2_box_t *bpcc;
jp2_box_t *cmap;
jp2_box_t *colr;
jas_image_t *image;
uint_fast16_t numchans;
uint_fast16_t *chantocmptlut;
jp2_box_t *pclr;
jp2_box_t *cdef;
jp2_box_t *ihdr;
jp2_box_t *bpcc;
jp2_box_t *cmap;
jp2_box_t *colr;
jas_image_t *image;
uint_fast16_t numchans;
uint_fast16_t *chantocmptlut;
} jp2_dec_t;
+355 -310
Ver Arquivo
@@ -5,16 +5,21 @@
* All rights reserved.
*/
/*
* Modified by Andrey Kiselev <dron@remotesensing.org> to handle UUID
* box properly.
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +27,15 @@
* 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
@@ -57,7 +62,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -86,23 +91,21 @@ static int clrspctojp2(jas_clrspc_t clrspc);
* Functions.
\******************************************************************************/
int jp2_encode(jas_image_t *image, jas_stream_t *out, char *optstr)
int jp2_write_header(jas_image_t *image, jas_stream_t *out)
{
jp2_box_t *box;
jp2_ftyp_t *ftyp;
jp2_ihdr_t *ihdr;
jas_stream_t *tmpstream;
int allcmptssame;
jp2_bpcc_t *bpcc;
long len;
uint_fast16_t cmptno;
jp2_colr_t *colr;
char buf[4096];
uint_fast32_t overhead;
jp2_cdefchan_t *cdefchanent;
jp2_cdef_t *cdef;
int i;
uint_fast32_t typeasoc;
jp2_box_t *box;
jp2_ftyp_t *ftyp;
jp2_ihdr_t *ihdr;
jas_stream_t *tmpstream;
int allcmptssame;
jp2_bpcc_t *bpcc;
long len;
uint_fast16_t cmptno;
jp2_colr_t *colr;
jp2_cdefchan_t *cdefchanent;
jp2_cdef_t *cdef;
int i;
uint_fast32_t typeasoc;
jas_iccprof_t *iccprof;
jas_stream_t *iccstream;
int pos;
@@ -110,327 +113,369 @@ int needcdef;
int prec;
int sgnd;
box = 0;
tmpstream = 0;
box = 0;
tmpstream = 0;
allcmptssame = 1;
sgnd = jas_image_cmptsgnd(image, 0);
prec = jas_image_cmptprec(image, 0);
for (i = 1; i < jas_image_numcmpts(image); ++i) {
if (jas_image_cmptsgnd(image, i) != sgnd ||
jas_image_cmptprec(image, i) != prec) {
allcmptssame = 0;
break;
}
}
allcmptssame = 1;
sgnd = jas_image_cmptsgnd(image, 0);
prec = jas_image_cmptprec(image, 0);
for (i = 1; i < jas_image_numcmpts(image); ++i) {
if (jas_image_cmptsgnd(image, i) != sgnd ||
jas_image_cmptprec(image, i) != prec) {
allcmptssame = 0;
break;
}
}
/* Output the signature box. */
/* Output the signature box. */
if (!(box = jp2_box_create(JP2_BOX_JP))) {
goto error;
}
box->data.jp.magic = JP2_JP_MAGIC;
if (jp2_box_put(box, out)) {
goto error;
}
jp2_box_destroy(box);
box = 0;
if (!(box = jp2_box_create(JP2_BOX_JP))) {
goto error;
}
box->data.jp.magic = JP2_JP_MAGIC;
if (jp2_box_put(box, out)) {
goto error;
}
jp2_box_destroy(box);
box = 0;
/* Output the file type box. */
/* Output the file type box. */
if (!(box = jp2_box_create(JP2_BOX_FTYP))) {
goto error;
}
ftyp = &box->data.ftyp;
ftyp->majver = JP2_FTYP_MAJVER;
ftyp->minver = JP2_FTYP_MINVER;
ftyp->numcompatcodes = 1;
ftyp->compatcodes[0] = JP2_FTYP_COMPATCODE;
if (jp2_box_put(box, out)) {
goto error;
}
jp2_box_destroy(box);
box = 0;
if (!(box = jp2_box_create(JP2_BOX_FTYP))) {
goto error;
}
ftyp = &box->data.ftyp;
ftyp->majver = JP2_FTYP_MAJVER;
ftyp->minver = JP2_FTYP_MINVER;
ftyp->numcompatcodes = 1;
ftyp->compatcodes[0] = JP2_FTYP_COMPATCODE;
if (jp2_box_put(box, out)) {
goto error;
}
jp2_box_destroy(box);
box = 0;
/*
* Generate the data portion of the JP2 header box.
* We cannot simply output the header for this box
* since we do not yet know the correct value for the length
* field.
*/
/*
* Generate the data portion of the JP2 header box.
* We cannot simply output the header for this box
* since we do not yet know the correct value for the length
* field.
*/
if (!(tmpstream = jas_stream_memopen(0, 0))) {
goto error;
}
if (!(tmpstream = jas_stream_memopen(0, 0))) {
goto error;
}
/* Generate image header box. */
/* Generate image header box. */
if (!(box = jp2_box_create(JP2_BOX_IHDR))) {
goto error;
}
ihdr = &box->data.ihdr;
ihdr->width = jas_image_width(image);
ihdr->height = jas_image_height(image);
ihdr->numcmpts = jas_image_numcmpts(image);
ihdr->bpc = allcmptssame ? JP2_SPTOBPC(jas_image_cmptsgnd(image, 0),
jas_image_cmptprec(image, 0)) : JP2_IHDR_BPCNULL;
ihdr->comptype = JP2_IHDR_COMPTYPE;
ihdr->csunk = 0;
ihdr->ipr = 0;
if (jp2_box_put(box, tmpstream)) {
goto error;
}
jp2_box_destroy(box);
box = 0;
if (!(box = jp2_box_create(JP2_BOX_IHDR))) {
goto error;
}
ihdr = &box->data.ihdr;
ihdr->width = jas_image_width(image);
ihdr->height = jas_image_height(image);
ihdr->numcmpts = jas_image_numcmpts(image);
ihdr->bpc = allcmptssame ? JP2_SPTOBPC(jas_image_cmptsgnd(image, 0),
jas_image_cmptprec(image, 0)) : JP2_IHDR_BPCNULL;
ihdr->comptype = JP2_IHDR_COMPTYPE;
ihdr->csunk = 0;
ihdr->ipr = 0;
if (jp2_box_put(box, tmpstream)) {
goto error;
}
jp2_box_destroy(box);
box = 0;
/* Generate bits per component box. */
/* Generate bits per component box. */
if (!allcmptssame) {
if (!(box = jp2_box_create(JP2_BOX_BPCC))) {
goto error;
}
bpcc = &box->data.bpcc;
bpcc->numcmpts = jas_image_numcmpts(image);
if (!(bpcc->bpcs = jas_malloc(bpcc->numcmpts *
sizeof(uint_fast8_t)))) {
goto error;
}
for (cmptno = 0; cmptno < bpcc->numcmpts; ++cmptno) {
bpcc->bpcs[cmptno] = JP2_SPTOBPC(jas_image_cmptsgnd(image,
cmptno), jas_image_cmptprec(image, cmptno));
}
if (jp2_box_put(box, tmpstream)) {
goto error;
}
jp2_box_destroy(box);
box = 0;
}
if (!allcmptssame) {
if (!(box = jp2_box_create(JP2_BOX_BPCC))) {
goto error;
}
bpcc = &box->data.bpcc;
bpcc->numcmpts = jas_image_numcmpts(image);
if (!(bpcc->bpcs = jas_alloc2(bpcc->numcmpts,
sizeof(uint_fast8_t)))) {
goto error;
}
for (cmptno = 0; cmptno < bpcc->numcmpts; ++cmptno) {
bpcc->bpcs[cmptno] = JP2_SPTOBPC(jas_image_cmptsgnd(image,
cmptno), jas_image_cmptprec(image, cmptno));
}
if (jp2_box_put(box, tmpstream)) {
goto error;
}
jp2_box_destroy(box);
box = 0;
}
/* Generate color specification box. */
/* Generate color specification box. */
if (!(box = jp2_box_create(JP2_BOX_COLR))) {
goto error;
}
colr = &box->data.colr;
switch (jas_image_clrspc(image)) {
case JAS_CLRSPC_SRGB:
case JAS_CLRSPC_SYCBCR:
case JAS_CLRSPC_SGRAY:
colr->method = JP2_COLR_ENUM;
colr->csid = clrspctojp2(jas_image_clrspc(image));
colr->pri = JP2_COLR_PRI;
colr->approx = 0;
break;
default:
colr->method = JP2_COLR_ICC;
colr->pri = JP2_COLR_PRI;
colr->approx = 0;
iccprof = jas_iccprof_createfromcmprof(jas_image_cmprof(image));
assert(iccprof);
iccstream = jas_stream_memopen(0, 0);
assert(iccstream);
if (jas_iccprof_save(iccprof, iccstream))
abort();
if ((pos = jas_stream_tell(iccstream)) < 0)
abort();
colr->iccplen = pos;
colr->iccp = jas_malloc(pos);
assert(colr->iccp);
jas_stream_rewind(iccstream);
if (jas_stream_read(iccstream, colr->iccp, colr->iccplen) != colr->iccplen)
abort();
jas_stream_close(iccstream);
jas_iccprof_destroy(iccprof);
break;
}
if (jp2_box_put(box, tmpstream)) {
goto error;
}
jp2_box_destroy(box);
box = 0;
if (!(box = jp2_box_create(JP2_BOX_COLR))) {
goto error;
}
colr = &box->data.colr;
switch (jas_image_clrspc(image)) {
case JAS_CLRSPC_SRGB:
case JAS_CLRSPC_SYCBCR:
case JAS_CLRSPC_SGRAY:
colr->method = JP2_COLR_ENUM;
colr->csid = clrspctojp2(jas_image_clrspc(image));
colr->pri = JP2_COLR_PRI;
colr->approx = 0;
break;
default:
colr->method = JP2_COLR_ICC;
colr->pri = JP2_COLR_PRI;
colr->approx = 0;
iccprof = jas_iccprof_createfromcmprof(jas_image_cmprof(image));
assert(iccprof);
iccstream = jas_stream_memopen(0, 0);
assert(iccstream);
if (jas_iccprof_save(iccprof, iccstream))
abort();
if ((pos = jas_stream_tell(iccstream)) < 0)
abort();
colr->iccplen = pos;
colr->iccp = jas_malloc(pos);
assert(colr->iccp);
jas_stream_rewind(iccstream);
if (jas_stream_read(iccstream, colr->iccp, colr->iccplen) != colr->iccplen)
abort();
jas_stream_close(iccstream);
jas_iccprof_destroy(iccprof);
break;
}
if (jp2_box_put(box, tmpstream)) {
goto error;
}
jp2_box_destroy(box);
box = 0;
needcdef = 1;
switch (jas_clrspc_fam(jas_image_clrspc(image))) {
case JAS_CLRSPC_FAM_RGB:
if (jas_image_cmpttype(image, 0) ==
JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_RGB_R) &&
jas_image_cmpttype(image, 1) ==
JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_RGB_G) &&
jas_image_cmpttype(image, 2) ==
JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_RGB_B))
needcdef = 0;
break;
case JAS_CLRSPC_FAM_YCBCR:
if (jas_image_cmpttype(image, 0) ==
JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_YCBCR_Y) &&
jas_image_cmpttype(image, 1) ==
JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_YCBCR_CB) &&
jas_image_cmpttype(image, 2) ==
JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_YCBCR_CR))
needcdef = 0;
break;
case JAS_CLRSPC_FAM_GRAY:
if (jas_image_cmpttype(image, 0) ==
JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_GRAY_Y))
needcdef = 0;
break;
default:
abort();
break;
}
needcdef = 1;
switch (jas_clrspc_fam(jas_image_clrspc(image))) {
case JAS_CLRSPC_FAM_RGB:
if (jas_image_cmpttype(image, 0) ==
JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_RGB_R) &&
jas_image_cmpttype(image, 1) ==
JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_RGB_G) &&
jas_image_cmpttype(image, 2) ==
JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_RGB_B))
needcdef = 0;
break;
case JAS_CLRSPC_FAM_YCBCR:
if (jas_image_cmpttype(image, 0) ==
JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_YCBCR_Y) &&
jas_image_cmpttype(image, 1) ==
JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_YCBCR_CB) &&
jas_image_cmpttype(image, 2) ==
JAS_IMAGE_CT_COLOR(JAS_CLRSPC_CHANIND_YCBCR_CR))
needcdef = 0;
break;
case JAS_CLRSPC_FAM_GRAY:
if (jas_image_cmpttype(image, 0) ==
JAS_IMAGE_CT_COLOR(JAS_IMAGE_CT_GRAY_Y))
needcdef = 0;
break;
default:
abort();
break;
}
if (needcdef) {
if (!(box = jp2_box_create(JP2_BOX_CDEF))) {
goto error;
}
cdef = &box->data.cdef;
cdef->numchans = jas_image_numcmpts(image);
cdef->ents = jas_malloc(cdef->numchans * sizeof(jp2_cdefchan_t));
for (i = 0; i < jas_image_numcmpts(image); ++i) {
cdefchanent = &cdef->ents[i];
cdefchanent->channo = i;
typeasoc = jp2_gettypeasoc(jas_image_clrspc(image), jas_image_cmpttype(image, i));
cdefchanent->type = typeasoc >> 16;
cdefchanent->assoc = typeasoc & 0x7fff;
}
if (jp2_box_put(box, tmpstream)) {
goto error;
}
jp2_box_destroy(box);
box = 0;
}
if (needcdef) {
if (!(box = jp2_box_create(JP2_BOX_CDEF))) {
goto error;
}
cdef = &box->data.cdef;
cdef->numchans = jas_image_numcmpts(image);
cdef->ents = jas_alloc2(cdef->numchans, sizeof(jp2_cdefchan_t));
for (i = 0; i < jas_image_numcmpts(image); ++i) {
cdefchanent = &cdef->ents[i];
cdefchanent->channo = i;
typeasoc = jp2_gettypeasoc(jas_image_clrspc(image), jas_image_cmpttype(image, i));
cdefchanent->type = typeasoc >> 16;
cdefchanent->assoc = typeasoc & 0x7fff;
}
if (jp2_box_put(box, tmpstream)) {
goto error;
}
jp2_box_destroy(box);
box = 0;
}
/* Determine the total length of the JP2 header box. */
/* Determine the total length of the JP2 header box. */
len = jas_stream_tell(tmpstream);
jas_stream_rewind(tmpstream);
len = jas_stream_tell(tmpstream);
jas_stream_rewind(tmpstream);
/*
* Output the JP2 header box and all of the boxes which it contains.
*/
/*
* Output the JP2 header box and all of the boxes which it contains.
*/
if (!(box = jp2_box_create(JP2_BOX_JP2H))) {
goto error;
}
box->len = len + JP2_BOX_HDRLEN(false);
if (jp2_box_put(box, out)) {
goto error;
}
jp2_box_destroy(box);
box = 0;
if (!(box = jp2_box_create(JP2_BOX_JP2H))) {
goto error;
}
box->len = len + JP2_BOX_HDRLEN(false);
if (jp2_box_put(box, out)) {
goto error;
}
jp2_box_destroy(box);
box = 0;
if (jas_stream_copy(out, tmpstream, len)) {
goto error;
}
if (jas_stream_copy(out, tmpstream, len)) {
goto error;
}
jas_stream_close(tmpstream);
tmpstream = 0;
jas_stream_close(tmpstream);
tmpstream = 0;
/*
* Output the contiguous code stream box.
*/
if (!(box = jp2_box_create(JP2_BOX_JP2C))) {
goto error;
}
box->len = 0;
if (jp2_box_put(box, out)) {
goto error;
}
jp2_box_destroy(box);
box = 0;
/* Output the JPEG-2000 code stream. */
overhead = jas_stream_getrwcount(out);
sprintf(buf, "%s\n_jp2overhead=%lu\n", (optstr ? optstr : ""),
(unsigned long) overhead);
if (jpc_encode(image, out, buf)) {
goto error;
}
return 0;
abort();
return 0;
abort();
error:
if (box) {
jp2_box_destroy(box);
}
if (tmpstream) {
jas_stream_close(tmpstream);
}
return -1;
if (box) {
jp2_box_destroy(box);
}
if (tmpstream) {
jas_stream_close(tmpstream);
}
return -1;
}
int jp2_write_codestream(jas_image_t *image, jas_stream_t *out, char *optstr)
{
jp2_box_t *box;
char buf[4096];
uint_fast32_t overhead;
/*
* Output the contiguous code stream box.
*/
if (!(box = jp2_box_create(JP2_BOX_JP2C))) {
goto error;
}
box->len = 0;
if (jp2_box_put(box, out)) {
goto error;
}
jp2_box_destroy(box);
box = 0;
/* Output the JPEG-2000 code stream. */
overhead = jas_stream_getrwcount(out);
sprintf(buf, "%s\n_jp2overhead=%lu\n", (optstr ? optstr : ""),
(unsigned long) overhead);
if (jpc_encode(image, out, buf)) {
goto error;
}
return 0;
abort();
error:
if (box) {
jp2_box_destroy(box);
}
return -1;
}
int jp2_encode(jas_image_t *image, jas_stream_t *out, char *optstr)
{
if (jp2_write_header(image, out) < 0)
return -1;
if (jp2_write_codestream(image, out, optstr) < 0)
return -1;
return 0;
}
int jp2_encode_uuid(jas_image_t *image, jas_stream_t *out,
char *optstr, jp2_box_t *uuid)
{
if (jp2_write_header(image, out) < 0)
return -1;
if (uuid) {
if (jp2_box_put(uuid, out))
return -1;
}
if (jp2_write_codestream(image, out, optstr) < 0)
return -1;
return 0;
}
static uint_fast32_t jp2_gettypeasoc(int colorspace, int ctype)
{
int type;
int asoc;
int type;
int asoc;
if (ctype & JAS_IMAGE_CT_OPACITY) {
type = JP2_CDEF_TYPE_OPACITY;
asoc = JP2_CDEF_ASOC_ALL;
goto done;
}
if (ctype & JAS_IMAGE_CT_OPACITY) {
type = JP2_CDEF_TYPE_OPACITY;
asoc = JP2_CDEF_ASOC_ALL;
goto done;
}
type = JP2_CDEF_TYPE_UNSPEC;
asoc = JP2_CDEF_ASOC_NONE;
switch (jas_clrspc_fam(colorspace)) {
case JAS_CLRSPC_FAM_RGB:
switch (JAS_IMAGE_CT_COLOR(ctype)) {
case JAS_IMAGE_CT_RGB_R:
type = JP2_CDEF_TYPE_COLOR;
asoc = JP2_CDEF_RGB_R;
break;
case JAS_IMAGE_CT_RGB_G:
type = JP2_CDEF_TYPE_COLOR;
asoc = JP2_CDEF_RGB_G;
break;
case JAS_IMAGE_CT_RGB_B:
type = JP2_CDEF_TYPE_COLOR;
asoc = JP2_CDEF_RGB_B;
break;
}
break;
case JAS_CLRSPC_FAM_YCBCR:
switch (JAS_IMAGE_CT_COLOR(ctype)) {
case JAS_IMAGE_CT_YCBCR_Y:
type = JP2_CDEF_TYPE_COLOR;
asoc = JP2_CDEF_YCBCR_Y;
break;
case JAS_IMAGE_CT_YCBCR_CB:
type = JP2_CDEF_TYPE_COLOR;
asoc = JP2_CDEF_YCBCR_CB;
break;
case JAS_IMAGE_CT_YCBCR_CR:
type = JP2_CDEF_TYPE_COLOR;
asoc = JP2_CDEF_YCBCR_CR;
break;
}
break;
case JAS_CLRSPC_FAM_GRAY:
type = JP2_CDEF_TYPE_COLOR;
asoc = JP2_CDEF_GRAY_Y;
break;
}
type = JP2_CDEF_TYPE_UNSPEC;
asoc = JP2_CDEF_ASOC_NONE;
switch (jas_clrspc_fam(colorspace)) {
case JAS_CLRSPC_FAM_RGB:
switch (JAS_IMAGE_CT_COLOR(ctype)) {
case JAS_IMAGE_CT_RGB_R:
type = JP2_CDEF_TYPE_COLOR;
asoc = JP2_CDEF_RGB_R;
break;
case JAS_IMAGE_CT_RGB_G:
type = JP2_CDEF_TYPE_COLOR;
asoc = JP2_CDEF_RGB_G;
break;
case JAS_IMAGE_CT_RGB_B:
type = JP2_CDEF_TYPE_COLOR;
asoc = JP2_CDEF_RGB_B;
break;
}
break;
case JAS_CLRSPC_FAM_YCBCR:
switch (JAS_IMAGE_CT_COLOR(ctype)) {
case JAS_IMAGE_CT_YCBCR_Y:
type = JP2_CDEF_TYPE_COLOR;
asoc = JP2_CDEF_YCBCR_Y;
break;
case JAS_IMAGE_CT_YCBCR_CB:
type = JP2_CDEF_TYPE_COLOR;
asoc = JP2_CDEF_YCBCR_CB;
break;
case JAS_IMAGE_CT_YCBCR_CR:
type = JP2_CDEF_TYPE_COLOR;
asoc = JP2_CDEF_YCBCR_CR;
break;
}
break;
case JAS_CLRSPC_FAM_GRAY:
type = JP2_CDEF_TYPE_COLOR;
asoc = JP2_CDEF_GRAY_Y;
break;
}
done:
return (type << 16) | asoc;
return (type << 16) | asoc;
}
static int clrspctojp2(jas_clrspc_t clrspc)
{
switch (clrspc) {
case JAS_CLRSPC_SRGB:
return JP2_COLR_SRGB;
case JAS_CLRSPC_SYCBCR:
return JP2_COLR_SYCC;
case JAS_CLRSPC_SGRAY:
return JP2_COLR_SGRAY;
default:
abort();
break;
}
switch (clrspc) {
case JAS_CLRSPC_SRGB:
return JP2_COLR_SRGB;
case JAS_CLRSPC_SYCBCR:
return JP2_COLR_SYCC;
case JAS_CLRSPC_SGRAY:
return JP2_COLR_SGRAY;
default:
abort();
break;
}
}
+245 -245
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -94,73 +94,73 @@ static jpc_bitstream_t *jpc_bitstream_alloc(void);
/* Open a bit stream from a stream. */
jpc_bitstream_t *jpc_bitstream_sopen(jas_stream_t *stream, char *mode)
{
jpc_bitstream_t *bitstream;
jpc_bitstream_t *bitstream;
/* Ensure that the open mode is valid. */
/* Ensure that the open mode is valid. */
#if 1
/* This causes a string literal too long error (with c99 pedantic mode). */
assert(!strcmp(mode, "r") || !strcmp(mode, "w") || !strcmp(mode, "r+")
|| !strcmp(mode, "w+"));
assert(!strcmp(mode, "r") || !strcmp(mode, "w") || !strcmp(mode, "r+")
|| !strcmp(mode, "w+"));
#endif
if (!(bitstream = jpc_bitstream_alloc())) {
return 0;
}
if (!(bitstream = jpc_bitstream_alloc())) {
return 0;
}
/* By default, do not close the underlying (character) stream, upon
the close of the bit stream. */
bitstream->flags_ = JPC_BITSTREAM_NOCLOSE;
/* By default, do not close the underlying (character) stream, upon
the close of the bit stream. */
bitstream->flags_ = JPC_BITSTREAM_NOCLOSE;
bitstream->stream_ = stream;
bitstream->openmode_ = (mode[0] == 'w') ? JPC_BITSTREAM_WRITE :
JPC_BITSTREAM_READ;
bitstream->stream_ = stream;
bitstream->openmode_ = (mode[0] == 'w') ? JPC_BITSTREAM_WRITE :
JPC_BITSTREAM_READ;
/* Mark the data buffer as empty. */
bitstream->cnt_ = (bitstream->openmode_ == JPC_BITSTREAM_READ) ? 0 : 8;
bitstream->buf_ = 0;
/* Mark the data buffer as empty. */
bitstream->cnt_ = (bitstream->openmode_ == JPC_BITSTREAM_READ) ? 0 : 8;
bitstream->buf_ = 0;
return bitstream;
return bitstream;
}
/* Close a bit stream. */
int jpc_bitstream_close(jpc_bitstream_t *bitstream)
{
int ret = 0;
int ret = 0;
/* Align to the next byte boundary while considering the effects of
bit stuffing. */
if (jpc_bitstream_align(bitstream)) {
ret = -1;
}
/* Align to the next byte boundary while considering the effects of
bit stuffing. */
if (jpc_bitstream_align(bitstream)) {
ret = -1;
}
/* If necessary, close the underlying (character) stream. */
if (!(bitstream->flags_ & JPC_BITSTREAM_NOCLOSE) && bitstream->stream_) {
if (jas_stream_close(bitstream->stream_)) {
ret = -1;
}
bitstream->stream_ = 0;
}
/* If necessary, close the underlying (character) stream. */
if (!(bitstream->flags_ & JPC_BITSTREAM_NOCLOSE) && bitstream->stream_) {
if (jas_stream_close(bitstream->stream_)) {
ret = -1;
}
bitstream->stream_ = 0;
}
jas_free(bitstream);
return ret;
jas_free(bitstream);
return ret;
}
/* Allocate a new bit stream. */
static jpc_bitstream_t *jpc_bitstream_alloc()
{
jpc_bitstream_t *bitstream;
jpc_bitstream_t *bitstream;
/* Allocate memory for the new bit stream object. */
if (!(bitstream = jas_malloc(sizeof(jpc_bitstream_t)))) {
return 0;
}
/* Initialize all of the data members. */
bitstream->stream_ = 0;
bitstream->cnt_ = 0;
bitstream->flags_ = 0;
bitstream->openmode_ = 0;
/* Allocate memory for the new bit stream object. */
if (!(bitstream = jas_malloc(sizeof(jpc_bitstream_t)))) {
return 0;
}
/* Initialize all of the data members. */
bitstream->stream_ = 0;
bitstream->cnt_ = 0;
bitstream->flags_ = 0;
bitstream->openmode_ = 0;
return bitstream;
return bitstream;
}
/******************************************************************************\
@@ -170,64 +170,64 @@ static jpc_bitstream_t *jpc_bitstream_alloc()
/* Get a bit from a bit stream. */
int jpc_bitstream_getbit_func(jpc_bitstream_t *bitstream)
{
int ret;
JAS_DBGLOG(1000, ("jpc_bitstream_getbit_func(%p)\n", bitstream));
ret = jpc_bitstream_getbit_macro(bitstream);
JAS_DBGLOG(1000, ("jpc_bitstream_getbit_func -> %d\n", ret));
return ret;
int ret;
JAS_DBGLOG(1000, ("jpc_bitstream_getbit_func(%p)\n", bitstream));
ret = jpc_bitstream_getbit_macro(bitstream);
JAS_DBGLOG(1000, ("jpc_bitstream_getbit_func -> %d\n", ret));
return ret;
}
/* Put a bit to a bit stream. */
int jpc_bitstream_putbit_func(jpc_bitstream_t *bitstream, int b)
{
int ret;
JAS_DBGLOG(1000, ("jpc_bitstream_putbit_func(%p, %d)\n", bitstream, b));
ret = jpc_bitstream_putbit_macro(bitstream, b);
JAS_DBGLOG(1000, ("jpc_bitstream_putbit_func() -> %d\n", ret));
return ret;
int ret;
JAS_DBGLOG(1000, ("jpc_bitstream_putbit_func(%p, %d)\n", bitstream, b));
ret = jpc_bitstream_putbit_macro(bitstream, b);
JAS_DBGLOG(1000, ("jpc_bitstream_putbit_func() -> %d\n", ret));
return ret;
}
/* Get one or more bits from a bit stream. */
long jpc_bitstream_getbits(jpc_bitstream_t *bitstream, int n)
{
long v;
int u;
long v;
int u;
/* We can reliably get at most 31 bits since ISO/IEC 9899 only
guarantees that a long can represent values up to 2^31-1. */
assert(n >= 0 && n < 32);
/* We can reliably get at most 31 bits since ISO/IEC 9899 only
guarantees that a long can represent values up to 2^31-1. */
assert(n >= 0 && n < 32);
/* Get the number of bits requested from the specified bit stream. */
v = 0;
while (--n >= 0) {
if ((u = jpc_bitstream_getbit(bitstream)) < 0) {
return -1;
}
v = (v << 1) | u;
}
return v;
/* Get the number of bits requested from the specified bit stream. */
v = 0;
while (--n >= 0) {
if ((u = jpc_bitstream_getbit(bitstream)) < 0) {
return -1;
}
v = (v << 1) | u;
}
return v;
}
/* Put one or more bits to a bit stream. */
int jpc_bitstream_putbits(jpc_bitstream_t *bitstream, int n, long v)
{
int m;
int m;
/* We can reliably put at most 31 bits since ISO/IEC 9899 only
guarantees that a long can represent values up to 2^31-1. */
assert(n >= 0 && n < 32);
/* Ensure that only the bits to be output are nonzero. */
assert(!(v & (~JAS_ONES(n))));
/* We can reliably put at most 31 bits since ISO/IEC 9899 only
guarantees that a long can represent values up to 2^31-1. */
assert(n >= 0 && n < 32);
/* Ensure that only the bits to be output are nonzero. */
assert(!(v & (~JAS_ONES(n))));
/* Put the desired number of bits to the specified bit stream. */
m = n - 1;
while (--n >= 0) {
if (jpc_bitstream_putbit(bitstream, (v >> m) & 1) == EOF) {
return EOF;
}
v <<= 1;
}
return 0;
/* Put the desired number of bits to the specified bit stream. */
m = n - 1;
while (--n >= 0) {
if (jpc_bitstream_putbit(bitstream, (v >> m) & 1) == EOF) {
return EOF;
}
v <<= 1;
}
return 0;
}
/******************************************************************************\
@@ -237,30 +237,30 @@ int jpc_bitstream_putbits(jpc_bitstream_t *bitstream, int n, long v)
/* Fill the buffer for a bit stream. */
int jpc_bitstream_fillbuf(jpc_bitstream_t *bitstream)
{
int c;
/* Note: The count has already been decremented by the caller. */
assert(bitstream->openmode_ & JPC_BITSTREAM_READ);
assert(bitstream->cnt_ <= 0);
int c;
/* Note: The count has already been decremented by the caller. */
assert(bitstream->openmode_ & JPC_BITSTREAM_READ);
assert(bitstream->cnt_ <= 0);
if (bitstream->flags_ & JPC_BITSTREAM_ERR) {
bitstream->cnt_ = 0;
return -1;
}
if (bitstream->flags_ & JPC_BITSTREAM_ERR) {
bitstream->cnt_ = 0;
return -1;
}
if (bitstream->flags_ & JPC_BITSTREAM_EOF) {
bitstream->buf_ = 0x7f;
bitstream->cnt_ = 7;
return 1;
}
if (bitstream->flags_ & JPC_BITSTREAM_EOF) {
bitstream->buf_ = 0x7f;
bitstream->cnt_ = 7;
return 1;
}
bitstream->buf_ = (bitstream->buf_ << 8) & 0xffff;
if ((c = jas_stream_getc((bitstream)->stream_)) == EOF) {
bitstream->flags_ |= JPC_BITSTREAM_EOF;
return 1;
}
bitstream->cnt_ = (bitstream->buf_ == 0xff00) ? 6 : 7;
bitstream->buf_ |= c & ((1 << (bitstream->cnt_ + 1)) - 1);
return (bitstream->buf_ >> bitstream->cnt_) & 1;
bitstream->buf_ = (bitstream->buf_ << 8) & 0xffff;
if ((c = jas_stream_getc((bitstream)->stream_)) == EOF) {
bitstream->flags_ |= JPC_BITSTREAM_EOF;
return 1;
}
bitstream->cnt_ = (bitstream->buf_ == 0xff00) ? 6 : 7;
bitstream->buf_ |= c & ((1 << (bitstream->cnt_ + 1)) - 1);
return (bitstream->buf_ >> bitstream->cnt_) & 1;
}
@@ -272,169 +272,169 @@ int jpc_bitstream_fillbuf(jpc_bitstream_t *bitstream)
the effects of bit stuffing)? */
int jpc_bitstream_needalign(jpc_bitstream_t *bitstream)
{
if (bitstream->openmode_ & JPC_BITSTREAM_READ) {
/* The bit stream is open for reading. */
/* If there are any bits buffered for reading, or the
previous byte forced a stuffed bit, alignment is
required. */
if ((bitstream->cnt_ < 8 && bitstream->cnt_ > 0) ||
((bitstream->buf_ >> 8) & 0xff) == 0xff) {
return 1;
}
} else if (bitstream->openmode_ & JPC_BITSTREAM_WRITE) {
/* The bit stream is open for writing. */
/* If there are any bits buffered for writing, or the
previous byte forced a stuffed bit, alignment is
required. */
if ((bitstream->cnt_ < 8 && bitstream->cnt_ >= 0) ||
((bitstream->buf_ >> 8) & 0xff) == 0xff) {
return 1;
}
} else {
/* This should not happen. Famous last words, eh? :-) */
assert(0);
return -1;
}
return 0;
if (bitstream->openmode_ & JPC_BITSTREAM_READ) {
/* The bit stream is open for reading. */
/* If there are any bits buffered for reading, or the
previous byte forced a stuffed bit, alignment is
required. */
if ((bitstream->cnt_ < 8 && bitstream->cnt_ > 0) ||
((bitstream->buf_ >> 8) & 0xff) == 0xff) {
return 1;
}
} else if (bitstream->openmode_ & JPC_BITSTREAM_WRITE) {
/* The bit stream is open for writing. */
/* If there are any bits buffered for writing, or the
previous byte forced a stuffed bit, alignment is
required. */
if ((bitstream->cnt_ < 8 && bitstream->cnt_ >= 0) ||
((bitstream->buf_ >> 8) & 0xff) == 0xff) {
return 1;
}
} else {
/* This should not happen. Famous last words, eh? :-) */
assert(0);
return -1;
}
return 0;
}
/* How many additional bytes would be output if we align the bit stream? */
int jpc_bitstream_pending(jpc_bitstream_t *bitstream)
{
if (bitstream->openmode_ & JPC_BITSTREAM_WRITE) {
/* The bit stream is being used for writing. */
if (bitstream->openmode_ & JPC_BITSTREAM_WRITE) {
/* The bit stream is being used for writing. */
#if 1
/* XXX - Is this really correct? Check someday... */
if (bitstream->cnt_ < 8) {
return 1;
}
/* XXX - Is this really correct? Check someday... */
if (bitstream->cnt_ < 8) {
return 1;
}
#else
if (bitstream->cnt_ < 8) {
if (((bitstream->buf_ >> 8) & 0xff) == 0xff) {
return 2;
}
return 1;
}
if (bitstream->cnt_ < 8) {
if (((bitstream->buf_ >> 8) & 0xff) == 0xff) {
return 2;
}
return 1;
}
#endif
return 0;
} else {
/* This operation should not be invoked on a bit stream that
is being used for reading. */
return -1;
}
return 0;
} else {
/* This operation should not be invoked on a bit stream that
is being used for reading. */
return -1;
}
}
/* Align the bit stream to a byte boundary. */
int jpc_bitstream_align(jpc_bitstream_t *bitstream)
{
int ret;
if (bitstream->openmode_ & JPC_BITSTREAM_READ) {
ret = jpc_bitstream_inalign(bitstream, 0, 0);
} else if (bitstream->openmode_ & JPC_BITSTREAM_WRITE) {
ret = jpc_bitstream_outalign(bitstream, 0);
} else {
abort();
}
return ret;
int ret;
if (bitstream->openmode_ & JPC_BITSTREAM_READ) {
ret = jpc_bitstream_inalign(bitstream, 0, 0);
} else if (bitstream->openmode_ & JPC_BITSTREAM_WRITE) {
ret = jpc_bitstream_outalign(bitstream, 0);
} else {
abort();
}
return ret;
}
/* Align a bit stream in the input case. */
int jpc_bitstream_inalign(jpc_bitstream_t *bitstream, int fillmask,
int filldata)
{
int n;
int v;
int u;
int numfill;
int m;
int n;
int v;
int u;
int numfill;
int m;
numfill = 7;
m = 0;
v = 0;
if (bitstream->cnt_ > 0) {
n = bitstream->cnt_;
} else if (!bitstream->cnt_) {
n = ((bitstream->buf_ & 0xff) == 0xff) ? 7 : 0;
} else {
n = 0;
}
if (n > 0) {
if ((u = jpc_bitstream_getbits(bitstream, n)) < 0) {
return -1;
}
m += n;
v = (v << n) | u;
}
if ((bitstream->buf_ & 0xff) == 0xff) {
if ((u = jpc_bitstream_getbits(bitstream, 7)) < 0) {
return -1;
}
v = (v << 7) | u;
m += 7;
}
if (m > numfill) {
v >>= m - numfill;
} else {
filldata >>= numfill - m;
fillmask >>= numfill - m;
}
if (((~(v ^ filldata)) & fillmask) != fillmask) {
/* The actual fill pattern does not match the expected one. */
return 1;
}
numfill = 7;
m = 0;
v = 0;
if (bitstream->cnt_ > 0) {
n = bitstream->cnt_;
} else if (!bitstream->cnt_) {
n = ((bitstream->buf_ & 0xff) == 0xff) ? 7 : 0;
} else {
n = 0;
}
if (n > 0) {
if ((u = jpc_bitstream_getbits(bitstream, n)) < 0) {
return -1;
}
m += n;
v = (v << n) | u;
}
if ((bitstream->buf_ & 0xff) == 0xff) {
if ((u = jpc_bitstream_getbits(bitstream, 7)) < 0) {
return -1;
}
v = (v << 7) | u;
m += 7;
}
if (m > numfill) {
v >>= m - numfill;
} else {
filldata >>= numfill - m;
fillmask >>= numfill - m;
}
if (((~(v ^ filldata)) & fillmask) != fillmask) {
/* The actual fill pattern does not match the expected one. */
return 1;
}
return 0;
return 0;
}
/* Align a bit stream in the output case. */
int jpc_bitstream_outalign(jpc_bitstream_t *bitstream, int filldata)
{
int n;
int v;
int n;
int v;
/* Ensure that this bit stream is open for writing. */
assert(bitstream->openmode_ & JPC_BITSTREAM_WRITE);
/* Ensure that this bit stream is open for writing. */
assert(bitstream->openmode_ & JPC_BITSTREAM_WRITE);
/* Ensure that the first bit of fill data is zero. */
/* Note: The first bit of fill data must be zero. If this were not
the case, the fill data itself could cause further bit stuffing to
be required (which would cause numerous complications). */
assert(!(filldata & (~0x3f)));
/* Ensure that the first bit of fill data is zero. */
/* Note: The first bit of fill data must be zero. If this were not
the case, the fill data itself could cause further bit stuffing to
be required (which would cause numerous complications). */
assert(!(filldata & (~0x3f)));
if (!bitstream->cnt_) {
if ((bitstream->buf_ & 0xff) == 0xff) {
n = 7;
v = filldata;
} else {
n = 0;
v = 0;
}
} else if (bitstream->cnt_ > 0 && bitstream->cnt_ < 8) {
n = bitstream->cnt_;
v = filldata >> (7 - n);
} else {
n = 0;
v = 0;
return 0;
}
if (!bitstream->cnt_) {
if ((bitstream->buf_ & 0xff) == 0xff) {
n = 7;
v = filldata;
} else {
n = 0;
v = 0;
}
} else if (bitstream->cnt_ > 0 && bitstream->cnt_ < 8) {
n = bitstream->cnt_;
v = filldata >> (7 - n);
} else {
n = 0;
v = 0;
return 0;
}
/* Write the appropriate fill data to the bit stream. */
if (n > 0) {
if (jpc_bitstream_putbits(bitstream, n, v)) {
return -1;
}
}
if (bitstream->cnt_ < 8) {
assert(bitstream->cnt_ >= 0 && bitstream->cnt_ < 8);
assert((bitstream->buf_ & 0xff) != 0xff);
/* Force the pending byte of output to be written to the
underlying (character) stream. */
if (jas_stream_putc(bitstream->stream_, bitstream->buf_ & 0xff) == EOF) {
return -1;
}
bitstream->cnt_ = 8;
bitstream->buf_ = (bitstream->buf_ << 8) & 0xffff;
}
/* Write the appropriate fill data to the bit stream. */
if (n > 0) {
if (jpc_bitstream_putbits(bitstream, n, v)) {
return -1;
}
}
if (bitstream->cnt_ < 8) {
assert(bitstream->cnt_ >= 0 && bitstream->cnt_ < 8);
assert((bitstream->buf_ & 0xff) != 0xff);
/* Force the pending byte of output to be written to the
underlying (character) stream. */
if (jas_stream_putc(bitstream->stream_, bitstream->buf_ & 0xff) == EOF) {
return -1;
}
bitstream->cnt_ = 8;
bitstream->buf_ = (bitstream->buf_ << 8) & 0xffff;
}
return 0;
return 0;
}
+36 -36
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -111,20 +111,20 @@
typedef struct {
/* Some miscellaneous flags. */
int flags_;
/* Some miscellaneous flags. */
int flags_;
/* The input/output buffer. */
uint_fast16_t buf_;
/* The input/output buffer. */
uint_fast16_t buf_;
/* The number of bits remaining in the byte being read/written. */
int cnt_;
/* The number of bits remaining in the byte being read/written. */
int cnt_;
/* The underlying stream associated with this bit stream. */
jas_stream_t *stream_;
/* The underlying stream associated with this bit stream. */
jas_stream_t *stream_;
/* The mode in which this bit stream was opened. */
int openmode_;
/* The mode in which this bit stream was opened. */
int openmode_;
} jpc_bitstream_t;
@@ -145,19 +145,19 @@ int jpc_bitstream_close(jpc_bitstream_t *bitstream);
/* Read a bit from a bit stream. */
#if defined(DEBUG)
#define jpc_bitstream_getbit(bitstream) \
jpc_bitstream_getbit_func(bitstream)
jpc_bitstream_getbit_func(bitstream)
#else
#define jpc_bitstream_getbit(bitstream) \
jpc_bitstream_getbit_macro(bitstream)
jpc_bitstream_getbit_macro(bitstream)
#endif
/* Write a bit to a bit stream. */
#if defined(DEBUG)
#define jpc_bitstream_putbit(bitstream, v) \
jpc_bitstream_putbit_func(bitstream, v)
jpc_bitstream_putbit_func(bitstream, v)
#else
#define jpc_bitstream_putbit(bitstream, v) \
jpc_bitstream_putbit_macro(bitstream, v)
jpc_bitstream_putbit_macro(bitstream, v)
#endif
/* Read one or more bits from a bit stream. */
@@ -196,7 +196,7 @@ int jpc_bitstream_pending(jpc_bitstream_t *bitstream);
/* Has EOF been encountered on a bit stream? */
#define jpc_bitstream_eof(bitstream) \
((bitstream)->flags_ & JPC_BITSTREAM_EOF)
((bitstream)->flags_ & JPC_BITSTREAM_EOF)
/******************************************************************************\
* Internals.
@@ -212,20 +212,20 @@ int jpc_bitstream_putbit_func(jpc_bitstream_t *bitstream, int v);
int jpc_bitstream_fillbuf(jpc_bitstream_t *bitstream);
#define jpc_bitstream_getbit_macro(bitstream) \
(assert((bitstream)->openmode_ & JPC_BITSTREAM_READ), \
(--(bitstream)->cnt_ >= 0) ? \
((int)(((bitstream)->buf_ >> (bitstream)->cnt_) & 1)) : \
jpc_bitstream_fillbuf(bitstream))
(assert((bitstream)->openmode_ & JPC_BITSTREAM_READ), \
(--(bitstream)->cnt_ >= 0) ? \
((int)(((bitstream)->buf_ >> (bitstream)->cnt_) & 1)) : \
jpc_bitstream_fillbuf(bitstream))
#define jpc_bitstream_putbit_macro(bitstream, bit) \
(assert((bitstream)->openmode_ & JPC_BITSTREAM_WRITE), \
(--(bitstream)->cnt_ < 0) ? \
((bitstream)->buf_ = ((bitstream)->buf_ << 8) & 0xffff, \
(bitstream)->cnt_ = ((bitstream)->buf_ == 0xff00) ? 6 : 7, \
(bitstream)->buf_ |= ((bit) & 1) << (bitstream)->cnt_, \
(jas_stream_putc((bitstream)->stream_, (bitstream)->buf_ >> 8) == EOF) \
? (EOF) : ((bit) & 1)) : \
((bitstream)->buf_ |= ((bit) & 1) << (bitstream)->cnt_, \
(bit) & 1))
(assert((bitstream)->openmode_ & JPC_BITSTREAM_WRITE), \
(--(bitstream)->cnt_ < 0) ? \
((bitstream)->buf_ = ((bitstream)->buf_ << 8) & 0xffff, \
(bitstream)->cnt_ = ((bitstream)->buf_ == 0xff00) ? 6 : 7, \
(bitstream)->buf_ |= ((bit) & 1) << (bitstream)->cnt_, \
(jas_stream_putc((bitstream)->stream_, (bitstream)->buf_ >> 8) == EOF) \
? (EOF) : ((bit) & 1)) : \
((bitstream)->buf_ |= ((bit) & 1) << (bitstream)->cnt_, \
(bit) & 1))
#endif
+8 -8
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
+1025 -1018
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+203 -203
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -125,8 +125,8 @@
typedef struct {
/* The number of components. */
uint_fast16_t numcomps;
/* The number of components. */
uint_fast16_t numcomps;
} jpc_cstate_t;
@@ -136,18 +136,18 @@ typedef struct {
typedef struct {
/* The tile number. */
uint_fast16_t tileno;
/* The tile number. */
uint_fast16_t tileno;
/* The combined length of the marker segment and its auxilary data
(i.e., packet data). */
uint_fast32_t len;
/* The combined length of the marker segment and its auxilary data
(i.e., packet data). */
uint_fast32_t len;
/* The tile-part instance. */
uint_fast8_t partno;
/* The tile-part instance. */
uint_fast8_t partno;
/* The number of tile-parts. */
uint_fast8_t numparts;
/* The number of tile-parts. */
uint_fast8_t numparts;
} jpc_sot_t;
@@ -159,19 +159,19 @@ typedef struct {
typedef struct {
/* The precision of the samples. */
uint_fast8_t prec;
/* The precision of the samples. */
uint_fast8_t prec;
/* The signedness of the samples. */
uint_fast8_t sgnd;
/* The signedness of the samples. */
uint_fast8_t sgnd;
/* The horizontal separation of samples with respect to the reference
grid. */
uint_fast8_t hsamp;
/* The horizontal separation of samples with respect to the reference
grid. */
uint_fast8_t hsamp;
/* The vertical separation of samples with respect to the reference
grid. */
uint_fast8_t vsamp;
/* The vertical separation of samples with respect to the reference
grid. */
uint_fast8_t vsamp;
} jpc_sizcomp_t;
@@ -179,42 +179,42 @@ typedef struct {
typedef struct {
/* The code stream capabilities. */
uint_fast16_t caps;
/* The code stream capabilities. */
uint_fast16_t caps;
/* The width of the image in units of the reference grid. */
uint_fast32_t width;
/* The width of the image in units of the reference grid. */
uint_fast32_t width;
/* The height of the image in units of the reference grid. */
uint_fast32_t height;
/* The height of the image in units of the reference grid. */
uint_fast32_t height;
/* The horizontal offset from the origin of the reference grid to the
left side of the image area. */
uint_fast32_t xoff;
/* The horizontal offset from the origin of the reference grid to the
left side of the image area. */
uint_fast32_t xoff;
/* The vertical offset from the origin of the reference grid to the
top side of the image area. */
uint_fast32_t yoff;
/* The vertical offset from the origin of the reference grid to the
top side of the image area. */
uint_fast32_t yoff;
/* The nominal width of a tile in units of the reference grid. */
uint_fast32_t tilewidth;
/* The nominal width of a tile in units of the reference grid. */
uint_fast32_t tilewidth;
/* The nominal height of a tile in units of the reference grid. */
uint_fast32_t tileheight;
/* The nominal height of a tile in units of the reference grid. */
uint_fast32_t tileheight;
/* The horizontal offset from the origin of the reference grid to the
left side of the first tile. */
uint_fast32_t tilexoff;
/* The horizontal offset from the origin of the reference grid to the
left side of the first tile. */
uint_fast32_t tilexoff;
/* The vertical offset from the origin of the reference grid to the
top side of the first tile. */
uint_fast32_t tileyoff;
/* The vertical offset from the origin of the reference grid to the
top side of the first tile. */
uint_fast32_t tileyoff;
/* The number of components. */
uint_fast16_t numcomps;
/* The number of components. */
uint_fast16_t numcomps;
/* The per-component information. */
jpc_sizcomp_t *comps;
/* The per-component information. */
jpc_sizcomp_t *comps;
} jpc_siz_t;
@@ -278,11 +278,11 @@ typedef struct {
typedef struct {
/* The packet partition width. */
uint_fast8_t parwidthval;
/* The packet partition width. */
uint_fast8_t parwidthval;
/* The packet partition height. */
uint_fast8_t parheightval;
/* The packet partition height. */
uint_fast8_t parheightval;
} jpc_coxrlvl_t;
@@ -290,29 +290,29 @@ typedef struct {
typedef struct {
/* The coding style. */
uint_fast8_t csty;
/* The coding style. */
uint_fast8_t csty;
/* The number of decomposition levels. */
uint_fast8_t numdlvls;
/* The number of decomposition levels. */
uint_fast8_t numdlvls;
/* The nominal code block width specifier. */
uint_fast8_t cblkwidthval;
/* The nominal code block width specifier. */
uint_fast8_t cblkwidthval;
/* The nominal code block height specifier. */
uint_fast8_t cblkheightval;
/* The nominal code block height specifier. */
uint_fast8_t cblkheightval;
/* The style of coding passes. */
uint_fast8_t cblksty;
/* The style of coding passes. */
uint_fast8_t cblksty;
/* The QMFB employed. */
uint_fast8_t qmfbid;
/* The QMFB employed. */
uint_fast8_t qmfbid;
/* The number of resolution levels. */
int numrlvls;
/* The number of resolution levels. */
int numrlvls;
/* The per-resolution-level information. */
jpc_coxrlvl_t rlvls[JPC_MAXRLVLS];
/* The per-resolution-level information. */
jpc_coxrlvl_t rlvls[JPC_MAXRLVLS];
} jpc_coxcp_t;
@@ -320,20 +320,20 @@ typedef struct {
typedef struct {
/* The general coding style. */
uint_fast8_t csty;
/* The general coding style. */
uint_fast8_t csty;
/* The progression order. */
uint_fast8_t prg;
/* The progression order. */
uint_fast8_t prg;
/* The number of layers. */
uint_fast16_t numlyrs;
/* The number of layers. */
uint_fast16_t numlyrs;
/* The multicomponent transform. */
uint_fast8_t mctrans;
/* The multicomponent transform. */
uint_fast8_t mctrans;
/* Component-related parameters. */
jpc_coxcp_t compparms;
/* Component-related parameters. */
jpc_coxcp_t compparms;
} jpc_cod_t;
@@ -341,11 +341,11 @@ typedef struct {
typedef struct {
/* The component number. */
uint_fast16_t compno;
/* The component number. */
uint_fast16_t compno;
/* Component-related parameters. */
jpc_coxcp_t compparms;
/* Component-related parameters. */
jpc_coxcp_t compparms;
} jpc_coc_t;
@@ -358,14 +358,14 @@ typedef struct {
typedef struct {
/* The component to which the marker applies. */
uint_fast16_t compno;
/* The component to which the marker applies. */
uint_fast16_t compno;
/* The ROI style. */
uint_fast8_t roisty;
/* The ROI style. */
uint_fast8_t roisty;
/* The ROI shift value. */
uint_fast8_t roishift;
/* The ROI shift value. */
uint_fast8_t roishift;
} jpc_rgn_t;
@@ -394,17 +394,17 @@ typedef struct {
typedef struct {
/* The quantization style. */
uint_fast8_t qntsty;
/* The quantization style. */
uint_fast8_t qntsty;
/* The number of step sizes. */
int numstepsizes;
/* The number of step sizes. */
int numstepsizes;
/* The step sizes. */
uint_fast16_t *stepsizes;
/* The step sizes. */
uint_fast16_t *stepsizes;
/* The number of guard bits. */
uint_fast8_t numguard;
/* The number of guard bits. */
uint_fast8_t numguard;
} jpc_qcxcp_t;
@@ -412,11 +412,11 @@ typedef struct {
typedef struct {
/* The component associated with this marker segment. */
uint_fast16_t compno;
/* The component associated with this marker segment. */
uint_fast16_t compno;
/* The parameters. */
jpc_qcxcp_t compparms;
/* The parameters. */
jpc_qcxcp_t compparms;
} jpc_qcc_t;
@@ -424,8 +424,8 @@ typedef struct {
typedef struct {
/* The parameters. */
jpc_qcxcp_t compparms;
/* The parameters. */
jpc_qcxcp_t compparms;
} jpc_qcd_t;
@@ -435,28 +435,28 @@ typedef struct {
typedef struct {
/* The progression order. */
uint_fast8_t prgord;
/* The progression order. */
uint_fast8_t prgord;
/* The lower bound (inclusive) on the resolution level for the
progression order volume. */
uint_fast8_t rlvlnostart;
/* The lower bound (inclusive) on the resolution level for the
progression order volume. */
uint_fast8_t rlvlnostart;
/* The upper bound (exclusive) on the resolution level for the
progression order volume. */
uint_fast8_t rlvlnoend;
/* The upper bound (exclusive) on the resolution level for the
progression order volume. */
uint_fast8_t rlvlnoend;
/* The lower bound (inclusive) on the component for the progression
order volume. */
uint_fast16_t compnostart;
/* The lower bound (inclusive) on the component for the progression
order volume. */
uint_fast16_t compnostart;
/* The upper bound (exclusive) on the component for the progression
order volume. */
uint_fast16_t compnoend;
/* The upper bound (exclusive) on the component for the progression
order volume. */
uint_fast16_t compnoend;
/* The upper bound (exclusive) on the layer for the progression
order volume. */
uint_fast16_t lyrnoend;
/* The upper bound (exclusive) on the layer for the progression
order volume. */
uint_fast16_t lyrnoend;
} jpc_pocpchg_t;
@@ -467,11 +467,11 @@ typedef jpc_pocpchg_t jpc_pchg_t;
typedef struct {
/* The number of progression order changes. */
int numpchgs;
/* The number of progression order changes. */
int numpchgs;
/* The per-progression-order-change information. */
jpc_pocpchg_t *pchgs;
/* The per-progression-order-change information. */
jpc_pocpchg_t *pchgs;
} jpc_poc_t;
@@ -483,14 +483,14 @@ typedef struct {
typedef struct {
/* The index. */
uint_fast8_t ind;
/* The index. */
uint_fast8_t ind;
/* The length. */
uint_fast16_t len;
/* The length. */
uint_fast16_t len;
/* The data. */
uchar *data;
/* The data. */
uchar *data;
} jpc_ppm_t;
@@ -498,14 +498,14 @@ typedef struct {
typedef struct {
/* The index. */
uint_fast8_t ind;
/* The index. */
uint_fast8_t ind;
/* The length. */
uint_fast32_t len;
/* The length. */
uint_fast32_t len;
/* The data. */
unsigned char *data;
/* The data. */
unsigned char *data;
} jpc_ppt_t;
@@ -522,14 +522,14 @@ typedef struct {
typedef struct {
/* The registration ID. */
uint_fast16_t regid;
/* The registration ID. */
uint_fast16_t regid;
/* The length of the data in bytes. */
uint_fast16_t len;
/* The length of the data in bytes. */
uint_fast16_t len;
/* The data. */
uchar *data;
/* The data. */
uchar *data;
} jpc_com_t;
@@ -539,8 +539,8 @@ typedef struct {
typedef struct {
/* The sequence number. */
uint_fast16_t seqno;
/* The sequence number. */
uint_fast16_t seqno;
} jpc_sop_t;
@@ -552,21 +552,21 @@ typedef struct {
typedef struct {
/* The horizontal offset. */
uint_fast16_t hoff;
/* The horizontal offset. */
uint_fast16_t hoff;
/* The vertical offset. */
uint_fast16_t voff;
/* The vertical offset. */
uint_fast16_t voff;
} jpc_crgcomp_t;
typedef struct {
/* The number of components. */
int numcomps;
/* The number of components. */
int numcomps;
/* Per component information. */
jpc_crgcomp_t *comps;
/* Per component information. */
jpc_crgcomp_t *comps;
} jpc_crg_t;
@@ -576,11 +576,11 @@ typedef struct {
typedef struct {
/* The data. */
uchar *data;
/* The data. */
uchar *data;
/* The length. */
uint_fast16_t len;
/* The length. */
uint_fast16_t len;
} jpc_unk_t;
@@ -589,26 +589,26 @@ typedef struct {
\**************************************/
typedef union {
int soc; /* unused */
jpc_sot_t sot;
int sod; /* unused */
int eoc; /* unused */
jpc_siz_t siz;
jpc_cod_t cod;
jpc_coc_t coc;
jpc_rgn_t rgn;
jpc_qcd_t qcd;
jpc_qcc_t qcc;
jpc_poc_t poc;
/* jpc_plm_t plm; */
/* jpc_plt_t plt; */
jpc_ppm_t ppm;
jpc_ppt_t ppt;
jpc_sop_t sop;
int eph; /* unused */
jpc_com_t com;
jpc_crg_t crg;
jpc_unk_t unk;
int soc; /* unused */
jpc_sot_t sot;
int sod; /* unused */
int eoc; /* unused */
jpc_siz_t siz;
jpc_cod_t cod;
jpc_coc_t coc;
jpc_rgn_t rgn;
jpc_qcd_t qcd;
jpc_qcc_t qcc;
jpc_poc_t poc;
/* jpc_plm_t plm; */
/* jpc_plt_t plt; */
jpc_ppm_t ppm;
jpc_ppt_t ppt;
jpc_sop_t sop;
int eph; /* unused */
jpc_com_t com;
jpc_crg_t crg;
jpc_unk_t unk;
} jpc_msparms_t;
/**************************************\
@@ -667,20 +667,20 @@ struct jpc_msops_s;
typedef struct {
/* The type of marker segment. */
uint_fast16_t id;
/* The type of marker segment. */
uint_fast16_t id;
/* The length of the marker segment. */
uint_fast16_t len;
/* The length of the marker segment. */
uint_fast16_t len;
/* The starting offset within the stream. */
uint_fast32_t off;
/* The starting offset within the stream. */
uint_fast32_t off;
/* The parameters of the marker segment. */
jpc_msparms_t parms;
/* The parameters of the marker segment. */
jpc_msparms_t parms;
/* The marker segment operations. */
struct jpc_msops_s *ops;
/* The marker segment operations. */
struct jpc_msops_s *ops;
} jpc_ms_t;
@@ -688,17 +688,17 @@ typedef struct {
typedef struct jpc_msops_s {
/* Destroy the marker segment parameters. */
void (*destroyparms)(jpc_ms_t *ms);
/* Destroy the marker segment parameters. */
void (*destroyparms)(jpc_ms_t *ms);
/* Get the marker segment parameters from a stream. */
int (*getparms)(jpc_ms_t *ms, jpc_cstate_t *cstate, jas_stream_t *in);
/* Get the marker segment parameters from a stream. */
int (*getparms)(jpc_ms_t *ms, jpc_cstate_t *cstate, jas_stream_t *in);
/* Put the marker segment parameters to a stream. */
int (*putparms)(jpc_ms_t *ms, jpc_cstate_t *cstate, jas_stream_t *out);
/* Put the marker segment parameters to a stream. */
int (*putparms)(jpc_ms_t *ms, jpc_cstate_t *cstate, jas_stream_t *out);
/* Dump the marker segment parameters (for debugging). */
int (*dumpparms)(jpc_ms_t *ms, FILE *out);
/* Dump the marker segment parameters (for debugging). */
int (*dumpparms)(jpc_ms_t *ms, FILE *out);
} jpc_msops_t;
@@ -720,12 +720,12 @@ void jpc_ms_destroy(jpc_ms_t *ms);
/* Does a marker segment have parameters? */
#define JPC_MS_HASPARMS(x) \
(!((x) == JPC_MS_SOC || (x) == JPC_MS_SOD || (x) == JPC_MS_EOC || \
(x) == JPC_MS_EPH || ((x) >= 0xff30 && (x) <= 0xff3f)))
(!((x) == JPC_MS_SOC || (x) == JPC_MS_SOD || (x) == JPC_MS_EOC || \
(x) == JPC_MS_EPH || ((x) >= 0xff30 && (x) <= 0xff3f)))
/* Get the marker segment type. */
#define jpc_ms_gettype(ms) \
((ms)->id)
((ms)->id)
/* Read a marker segment from a stream. */
jpc_ms_t *jpc_getms(jas_stream_t *in, jpc_cstate_t *cstate);
+1645 -1646
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+338 -338
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -92,14 +92,14 @@
typedef struct {
/* The index for this entry. */
uint_fast16_t ind;
/* The index for this entry. */
uint_fast16_t ind;
/* The data length. */
uint_fast32_t len;
/* The data length. */
uint_fast32_t len;
/* The data. */
uchar *data;
/* The data. */
uchar *data;
} jpc_ppxstabent_t;
@@ -107,15 +107,15 @@ typedef struct {
typedef struct {
/* The number of entries. */
int numents;
/* The number of entries. */
int numents;
/* The maximum number of entries (i.e., the allocated size of the array
below). */
int maxents;
/* The maximum number of entries (i.e., the allocated size of the array
below). */
int maxents;
/* The table entries. */
jpc_ppxstabent_t **ents;
/* The table entries. */
jpc_ppxstabent_t **ents;
} jpc_ppxstab_t;
@@ -123,15 +123,15 @@ typedef struct {
typedef struct {
/* The number of streams in this list. */
int numstreams;
/* The number of streams in this list. */
int numstreams;
/* The maximum number of streams that can be accomodated without
growing the streams array. */
int maxstreams;
/* The maximum number of streams that can be accomodated without
growing the streams array. */
int maxstreams;
/* The streams. */
jas_stream_t **streams;
/* The streams. */
jas_stream_t **streams;
} jpc_streamlist_t;
@@ -143,47 +143,47 @@ typedef struct {
typedef struct {
/* How were various coding parameters set? */
int flags;
/* How were various coding parameters set? */
int flags;
/* Per-component coding style parameters (e.g., explicit precinct sizes) */
uint_fast8_t csty;
/* Per-component coding style parameters (e.g., explicit precinct sizes) */
uint_fast8_t csty;
/* The number of resolution levels. */
uint_fast8_t numrlvls;
/* The number of resolution levels. */
uint_fast8_t numrlvls;
/* The code block width exponent. */
uint_fast8_t cblkwidthexpn;
/* The code block width exponent. */
uint_fast8_t cblkwidthexpn;
/* The code block height exponent. */
uint_fast8_t cblkheightexpn;
/* The code block height exponent. */
uint_fast8_t cblkheightexpn;
/* The QMFB ID. */
uint_fast8_t qmfbid;
/* The QMFB ID. */
uint_fast8_t qmfbid;
/* The quantization style. */
uint_fast8_t qsty;
/* The quantization style. */
uint_fast8_t qsty;
/* The number of quantizer step sizes. */
uint_fast16_t numstepsizes;
/* The number of quantizer step sizes. */
uint_fast16_t numstepsizes;
/* The step sizes. */
uint_fast16_t stepsizes[3 * JPC_MAXRLVLS + 1];
/* The step sizes. */
uint_fast16_t stepsizes[3 * JPC_MAXRLVLS + 1];
/* The number of guard bits. */
uint_fast8_t numguardbits;
/* The number of guard bits. */
uint_fast8_t numguardbits;
/* The ROI shift value. */
uint_fast8_t roishift;
/* The ROI shift value. */
uint_fast8_t roishift;
/* The code block parameters. */
uint_fast8_t cblkctx;
/* The code block parameters. */
uint_fast8_t cblkctx;
/* The precinct width exponents. */
uint_fast8_t prcwidthexpns[JPC_MAXRLVLS];
/* The precinct width exponents. */
uint_fast8_t prcwidthexpns[JPC_MAXRLVLS];
/* The precinct height exponents. */
uint_fast8_t prcheightexpns[JPC_MAXRLVLS];
/* The precinct height exponents. */
uint_fast8_t prcheightexpns[JPC_MAXRLVLS];
} jpc_dec_ccp_t;
@@ -191,29 +191,29 @@ typedef struct {
typedef struct {
/* How were these coding parameters set? */
int flags;
/* How were these coding parameters set? */
int flags;
/* Progression change list. */
jpc_pchglist_t *pchglist;
/* Progression change list. */
jpc_pchglist_t *pchglist;
/* Progression order. */
uint_fast8_t prgord;
/* Progression order. */
uint_fast8_t prgord;
/* The number of layers. */
uint_fast16_t numlyrs;
/* The number of layers. */
uint_fast16_t numlyrs;
/* The MCT ID. */
uint_fast8_t mctid;
/* The MCT ID. */
uint_fast8_t mctid;
/* The coding style parameters (e.g., SOP, EPH). */
uint_fast8_t csty;
/* The coding style parameters (e.g., SOP, EPH). */
uint_fast8_t csty;
/* The number of components. */
int numcomps;
/* The number of components. */
int numcomps;
/* The per-component coding parameters. */
jpc_dec_ccp_t *ccps;
/* The per-component coding parameters. */
jpc_dec_ccp_t *ccps;
} jpc_dec_cp_t;
@@ -225,38 +225,38 @@ typedef struct {
typedef struct jpc_dec_seg_s {
/* The next segment in the list. */
struct jpc_dec_seg_s *next;
/* The next segment in the list. */
struct jpc_dec_seg_s *next;
/* The previous segment in the list. */
struct jpc_dec_seg_s *prev;
/* The previous segment in the list. */
struct jpc_dec_seg_s *prev;
/* The starting pass number for this segment. */
int passno;
/* The starting pass number for this segment. */
int passno;
/* The number of passes in this segment. */
int numpasses;
/* The number of passes in this segment. */
int numpasses;
/* The maximum number of passes in this segment. */
int maxpasses;
/* The maximum number of passes in this segment. */
int maxpasses;
/* The type of data in this segment (i.e., MQ or raw). */
int type;
/* The type of data in this segment (i.e., MQ or raw). */
int type;
/* A stream containing the data for this segment. */
jas_stream_t *stream;
/* A stream containing the data for this segment. */
jas_stream_t *stream;
/* The number of bytes destined for this segment from the packet
currently being decoded. */
int cnt;
/* The number of bytes destined for this segment from the packet
currently being decoded. */
int cnt;
/* A flag indicating if this segment has been terminated. */
int complete;
/* A flag indicating if this segment has been terminated. */
int complete;
/* The layer number to which this segment belongs. */
/* If the segment spans multiple layers, then the largest layer number
spanned by the segment is used. */
int lyrno;
/* The layer number to which this segment belongs. */
/* If the segment spans multiple layers, then the largest layer number
spanned by the segment is used. */
int lyrno;
} jpc_dec_seg_t;
@@ -264,11 +264,11 @@ typedef struct jpc_dec_seg_s {
typedef struct {
/* The first entry in the list. */
jpc_dec_seg_t *head;
/* The first entry in the list. */
jpc_dec_seg_t *head;
/* The last entry in the list. */
jpc_dec_seg_t *tail;
/* The last entry in the list. */
jpc_dec_seg_t *tail;
} jpc_dec_seglist_t;
@@ -276,35 +276,35 @@ typedef struct {
typedef struct {
/* The number of passes. */
int numpasses;
/* The number of passes. */
int numpasses;
/* A list of segments that still need to be decoded. */
jpc_dec_seglist_t segs;
/* A list of segments that still need to be decoded. */
jpc_dec_seglist_t segs;
/* The first incomplete/partial segment. */
jpc_dec_seg_t *curseg;
/* The first incomplete/partial segment. */
jpc_dec_seg_t *curseg;
/* The number of leading insignificant bit planes for this code block. */
int numimsbs;
/* The number of leading insignificant bit planes for this code block. */
int numimsbs;
/* The number of bits used to encode pass data lengths. */
int numlenbits;
/* The number of bits used to encode pass data lengths. */
int numlenbits;
/* The first pass number containing data for this code block. */
int firstpassno;
/* The first pass number containing data for this code block. */
int firstpassno;
/* The MQ decoder. */
jpc_mqdec_t *mqdec;
/* The MQ decoder. */
jpc_mqdec_t *mqdec;
/* The raw bit stream decoder. */
jpc_bitstream_t *nulldec;
/* The raw bit stream decoder. */
jpc_bitstream_t *nulldec;
/* The per-sample state information for this code block. */
jas_matrix_t *flags;
/* The per-sample state information for this code block. */
jas_matrix_t *flags;
/* The sample data associated with this code block. */
jas_matrix_t *data;
/* The sample data associated with this code block. */
jas_matrix_t *data;
} jpc_dec_cblk_t;
@@ -312,39 +312,39 @@ typedef struct {
typedef struct {
/* The x-coordinate of the top-left corner of the precinct. */
uint_fast32_t xstart;
/* The x-coordinate of the top-left corner of the precinct. */
uint_fast32_t xstart;
/* The y-coordinate of the top-left corner of the precinct. */
uint_fast32_t ystart;
/* The y-coordinate of the top-left corner of the precinct. */
uint_fast32_t ystart;
/* The x-coordinate of the bottom-right corner of the precinct
(plus one). */
uint_fast32_t xend;
/* The x-coordinate of the bottom-right corner of the precinct
(plus one). */
uint_fast32_t xend;
/* The y-coordinate of the bottom-right corner of the precinct
(plus one). */
uint_fast32_t yend;
/* The y-coordinate of the bottom-right corner of the precinct
(plus one). */
uint_fast32_t yend;
/* The number of code blocks spanning this precinct in the horizontal
direction. */
int numhcblks;
/* The number of code blocks spanning this precinct in the horizontal
direction. */
int numhcblks;
/* The number of code blocks spanning this precinct in the vertical
direction. */
int numvcblks;
/* The number of code blocks spanning this precinct in the vertical
direction. */
int numvcblks;
/* The total number of code blocks in this precinct. */
int numcblks;
/* The total number of code blocks in this precinct. */
int numcblks;
/* The per code block information. */
jpc_dec_cblk_t *cblks;
/* The per code block information. */
jpc_dec_cblk_t *cblks;
/* The inclusion tag tree. */
jpc_tagtree_t *incltagtree;
/* The inclusion tag tree. */
jpc_tagtree_t *incltagtree;
/* The insignificant MSBs tag tree. */
jpc_tagtree_t *numimsbstagtree;
/* The insignificant MSBs tag tree. */
jpc_tagtree_t *numimsbstagtree;
} jpc_dec_prc_t;
@@ -352,29 +352,29 @@ typedef struct {
typedef struct {
/* The per-code-block-group state information. */
jpc_dec_prc_t *prcs;
/* The per-code-block-group state information. */
jpc_dec_prc_t *prcs;
/* The sample data associated with this band. */
jas_matrix_t *data;
/* The sample data associated with this band. */
jas_matrix_t *data;
/* The orientation of this band (i.e., LL, LH, HL, or HH). */
int orient;
/* The orientation of this band (i.e., LL, LH, HL, or HH). */
int orient;
/* The encoded quantizer step size. */
int stepsize;
/* The encoded quantizer step size. */
int stepsize;
/* The absolute quantizer step size. */
jpc_fix_t absstepsize;
/* The absolute quantizer step size. */
jpc_fix_t absstepsize;
/* The number of bit planes for this band. */
int numbps;
/* The number of bit planes for this band. */
int numbps;
/* The analysis gain associated with this band. */
int analgain;
/* The analysis gain associated with this band. */
int analgain;
/* The ROI shift value for this band. */
int roishift;
/* The ROI shift value for this band. */
int roishift;
} jpc_dec_band_t;
@@ -382,60 +382,60 @@ typedef struct {
typedef struct {
/* The number of bands associated with this resolution level. */
int numbands;
/* The number of bands associated with this resolution level. */
int numbands;
/* The per-band information. */
jpc_dec_band_t *bands;
/* The per-band information. */
jpc_dec_band_t *bands;
/* The x-coordinate of the top-left corner of the tile-component
at this resolution. */
uint_fast32_t xstart;
/* The x-coordinate of the top-left corner of the tile-component
at this resolution. */
uint_fast32_t xstart;
/* The y-coordinate of the top-left corner of the tile-component
at this resolution. */
uint_fast32_t ystart;
/* The y-coordinate of the top-left corner of the tile-component
at this resolution. */
uint_fast32_t ystart;
/* The x-coordinate of the bottom-right corner of the tile-component
at this resolution (plus one). */
uint_fast32_t xend;
/* The x-coordinate of the bottom-right corner of the tile-component
at this resolution (plus one). */
uint_fast32_t xend;
/* The y-coordinate of the bottom-right corner of the tile-component
at this resolution (plus one). */
uint_fast32_t yend;
/* The y-coordinate of the bottom-right corner of the tile-component
at this resolution (plus one). */
uint_fast32_t yend;
/* The exponent value for the nominal precinct width measured
relative to the associated LL band. */
int prcwidthexpn;
/* The exponent value for the nominal precinct width measured
relative to the associated LL band. */
int prcwidthexpn;
/* The exponent value for the nominal precinct height measured
relative to the associated LL band. */
int prcheightexpn;
/* The exponent value for the nominal precinct height measured
relative to the associated LL band. */
int prcheightexpn;
/* The number of precincts in the horizontal direction. */
int numhprcs;
/* The number of precincts in the horizontal direction. */
int numhprcs;
/* The number of precincts in the vertical direction. */
int numvprcs;
/* The number of precincts in the vertical direction. */
int numvprcs;
/* The total number of precincts. */
int numprcs;
/* The total number of precincts. */
int numprcs;
/* The exponent value for the nominal code block group width.
This quantity is associated with the next lower resolution level
(assuming that there is one). */
int cbgwidthexpn;
/* The exponent value for the nominal code block group width.
This quantity is associated with the next lower resolution level
(assuming that there is one). */
int cbgwidthexpn;
/* The exponent value for the nominal code block group height
This quantity is associated with the next lower resolution level
(assuming that there is one). */
int cbgheightexpn;
/* The exponent value for the nominal code block group height
This quantity is associated with the next lower resolution level
(assuming that there is one). */
int cbgheightexpn;
/* The exponent value for the code block width. */
uint_fast16_t cblkwidthexpn;
/* The exponent value for the code block width. */
uint_fast16_t cblkwidthexpn;
/* The exponent value for the code block height. */
uint_fast16_t cblkheightexpn;
/* The exponent value for the code block height. */
uint_fast16_t cblkheightexpn;
} jpc_dec_rlvl_t;
@@ -443,33 +443,33 @@ typedef struct {
typedef struct {
/* The x-coordinate of the top-left corner of the tile-component
in the coordinate system of the tile-component. */
uint_fast32_t xstart;
/* The x-coordinate of the top-left corner of the tile-component
in the coordinate system of the tile-component. */
uint_fast32_t xstart;
/* The y-coordinate of the top-left corner of the tile-component
in the coordinate system of the tile-component. */
uint_fast32_t ystart;
/* The y-coordinate of the top-left corner of the tile-component
in the coordinate system of the tile-component. */
uint_fast32_t ystart;
/* The x-coordinate of the bottom-right corner of the tile-component
in the coordinate system of the tile-component (plus one). */
uint_fast32_t xend;
/* The x-coordinate of the bottom-right corner of the tile-component
in the coordinate system of the tile-component (plus one). */
uint_fast32_t xend;
/* The y-coordinate of the bottom-right corner of the tile-component
in the coordinate system of the tile-component (plus one). */
uint_fast32_t yend;
/* The y-coordinate of the bottom-right corner of the tile-component
in the coordinate system of the tile-component (plus one). */
uint_fast32_t yend;
/* The component data for the current tile. */
jas_matrix_t *data;
/* The component data for the current tile. */
jas_matrix_t *data;
/* The number of resolution levels. */
int numrlvls;
/* The number of resolution levels. */
int numrlvls;
/* The per resolution level information. */
jpc_dec_rlvl_t *rlvls;
/* The per resolution level information. */
jpc_dec_rlvl_t *rlvls;
/* The TSFB. */
jpc_tsfb_t *tsfb;
/* The TSFB. */
jpc_tsfb_t *tsfb;
} jpc_dec_tcomp_t;
@@ -486,51 +486,51 @@ typedef struct {
typedef struct {
/* The processing state for this tile. */
int state;
/* The processing state for this tile. */
int state;
/* The x-coordinate of the top-left corner of the tile on the reference
grid. */
uint_fast32_t xstart;
/* The x-coordinate of the top-left corner of the tile on the reference
grid. */
uint_fast32_t xstart;
/* The y-coordinate of the top-left corner of the tile on the reference
grid. */
uint_fast32_t ystart;
/* The y-coordinate of the top-left corner of the tile on the reference
grid. */
uint_fast32_t ystart;
/* The x-coordinate of the bottom-right corner of the tile on the
reference grid (plus one). */
uint_fast32_t xend;
/* The x-coordinate of the bottom-right corner of the tile on the
reference grid (plus one). */
uint_fast32_t xend;
/* The y-coordinate of the bottom-right corner of the tile on the
reference grid (plus one). */
uint_fast32_t yend;
/* The y-coordinate of the bottom-right corner of the tile on the
reference grid (plus one). */
uint_fast32_t yend;
/* The packed packet header data for this tile. */
jpc_ppxstab_t *pptstab;
/* The packed packet header data for this tile. */
jpc_ppxstab_t *pptstab;
/* A stream containing the packed packet header data for this tile. */
jas_stream_t *pkthdrstream;
/* A stream containing the packed packet header data for this tile. */
jas_stream_t *pkthdrstream;
/* The current position within the packed packet header stream. */
long pkthdrstreampos;
/* The current position within the packed packet header stream. */
long pkthdrstreampos;
/* The coding parameters for this tile. */
jpc_dec_cp_t *cp;
/* The coding parameters for this tile. */
jpc_dec_cp_t *cp;
/* The per tile-component information. */
jpc_dec_tcomp_t *tcomps;
/* The per tile-component information. */
jpc_dec_tcomp_t *tcomps;
/* The next expected tile-part number. */
int partno;
/* The next expected tile-part number. */
int partno;
/* The number of tile-parts. */
int numparts;
/* The number of tile-parts. */
int numparts;
/* The coding mode. */
int realmode;
/* The coding mode. */
int realmode;
/* The packet iterator for this tile. */
jpc_pi_t *pi;
/* The packet iterator for this tile. */
jpc_pi_t *pi;
} jpc_dec_tile_t;
@@ -538,29 +538,29 @@ typedef struct {
typedef struct {
/* The horizontal sampling period. */
uint_fast32_t hstep;
/* The horizontal sampling period. */
uint_fast32_t hstep;
/* The vertical sampling period. */
uint_fast32_t vstep;
/* The vertical sampling period. */
uint_fast32_t vstep;
/* The number of samples in the horizontal direction. */
uint_fast32_t width;
/* The number of samples in the horizontal direction. */
uint_fast32_t width;
/* The number of samples in the vertical direction. */
uint_fast32_t height;
/* The number of samples in the vertical direction. */
uint_fast32_t height;
/* The precision of the sample data. */
uint_fast16_t prec;
/* The precision of the sample data. */
uint_fast16_t prec;
/* The signedness of the sample data. */
bool sgnd;
/* The signedness of the sample data. */
bool sgnd;
/* The sample alignment horizontal offset. */
uint_fast32_t hsubstep;
/* The sample alignment vertical offset. */
uint_fast32_t vsubstep;
/* The sample alignment horizontal offset. */
uint_fast32_t hsubstep;
/* The sample alignment vertical offset. */
uint_fast32_t vsubstep;
} jpc_dec_cmpt_t;
@@ -568,96 +568,96 @@ typedef struct {
typedef struct {
/* The decoded image. */
jas_image_t *image;
/* The decoded image. */
jas_image_t *image;
/* The x-coordinate of the top-left corner of the image area on
the reference grid. */
uint_fast32_t xstart;
/* The x-coordinate of the top-left corner of the image area on
the reference grid. */
uint_fast32_t xstart;
/* The y-coordinate of the top-left corner of the image area on
the reference grid. */
uint_fast32_t ystart;
/* The y-coordinate of the top-left corner of the image area on
the reference grid. */
uint_fast32_t ystart;
/* The x-coordinate of the bottom-right corner of the image area on
the reference grid (plus one). */
uint_fast32_t xend;
/* The x-coordinate of the bottom-right corner of the image area on
the reference grid (plus one). */
uint_fast32_t xend;
/* The y-coordinate of the bottom-right corner of the image area on
the reference grid (plus one). */
uint_fast32_t yend;
/* The y-coordinate of the bottom-right corner of the image area on
the reference grid (plus one). */
uint_fast32_t yend;
/* The nominal tile width in units of the image reference grid. */
uint_fast32_t tilewidth;
/* The nominal tile width in units of the image reference grid. */
uint_fast32_t tilewidth;
/* The nominal tile height in units of the image reference grid. */
uint_fast32_t tileheight;
/* The nominal tile height in units of the image reference grid. */
uint_fast32_t tileheight;
/* The horizontal offset from the origin of the reference grid to the
left side of the first tile. */
uint_fast32_t tilexoff;
/* The horizontal offset from the origin of the reference grid to the
left side of the first tile. */
uint_fast32_t tilexoff;
/* The vertical offset from the origin of the reference grid to the
top side of the first tile. */
uint_fast32_t tileyoff;
/* The vertical offset from the origin of the reference grid to the
top side of the first tile. */
uint_fast32_t tileyoff;
/* The number of tiles spanning the image area in the vertical
direction. */
int numhtiles;
/* The number of tiles spanning the image area in the vertical
direction. */
int numhtiles;
/* The number of tiles spanning the image area in the horizontal
direction. */
int numvtiles;
/* The number of tiles spanning the image area in the horizontal
direction. */
int numvtiles;
/* The total number of tiles. */
int numtiles;
/* The total number of tiles. */
int numtiles;
/* The per-tile information. */
jpc_dec_tile_t *tiles;
/* The per-tile information. */
jpc_dec_tile_t *tiles;
/* The tile currently being processed. */
jpc_dec_tile_t *curtile;
/* The tile currently being processed. */
jpc_dec_tile_t *curtile;
/* The number of components. */
int numcomps;
/* The number of components. */
int numcomps;
/* The stream containing the input JPEG-2000 code stream data. */
jas_stream_t *in;
/* The stream containing the input JPEG-2000 code stream data. */
jas_stream_t *in;
/* The default coding parameters for all tiles. */
jpc_dec_cp_t *cp;
/* The default coding parameters for all tiles. */
jpc_dec_cp_t *cp;
/* The maximum number of layers that may be decoded. */
int maxlyrs;
/* The maximum number of layers that may be decoded. */
int maxlyrs;
/* The maximum number of packets that may be decoded. */
int maxpkts;
/* The maximum number of packets that may be decoded. */
int maxpkts;
/* The number of packets decoded so far in the processing of the entire
code stream. */
int numpkts;
/* The number of packets decoded so far in the processing of the entire
code stream. */
int numpkts;
/* The next expected PPM marker segment sequence number. */
int ppmseqno;
/* The next expected PPM marker segment sequence number. */
int ppmseqno;
/* The current state for code stream processing. */
int state;
/* The current state for code stream processing. */
int state;
/* The per-component information. */
jpc_dec_cmpt_t *cmpts;
/* The per-component information. */
jpc_dec_cmpt_t *cmpts;
/* The information from PPM marker segments. */
jpc_ppxstab_t *ppmstab;
/* The information from PPM marker segments. */
jpc_ppxstab_t *ppmstab;
/* A list of streams containing packet header data from PPM marker
segments. */
jpc_streamlist_t *pkthdrstreams;
/* A list of streams containing packet header data from PPM marker
segments. */
jpc_streamlist_t *pkthdrstreams;
/* The expected ending offset for a tile-part. */
long curtileendoff;
/* The expected ending offset for a tile-part. */
long curtileendoff;
/* This is required by the tier-2 decoder. */
jpc_cstate_t *cstate;
/* This is required by the tier-2 decoder. */
jpc_cstate_t *cstate;
} jpc_dec_t;
@@ -665,14 +665,14 @@ typedef struct {
typedef struct {
/* The debug level for the decoder. */
int debug;
/* The debug level for the decoder. */
int debug;
/* The maximum number of layers to decode. */
int maxlyrs;
/* The maximum number of layers to decode. */
int maxlyrs;
/* The maximum number of packets to decode. */
int maxpkts;
/* The maximum number of packets to decode. */
int maxpkts;
} jpc_dec_importopts_t;
+1997 -1997
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+335 -335
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -100,29 +100,29 @@
typedef struct {
/* The horizontal sampling period. */
uint_fast8_t sampgrdstepx;
/* The horizontal sampling period. */
uint_fast8_t sampgrdstepx;
/* The vertical sampling period. */
uint_fast8_t sampgrdstepy;
/* The vertical sampling period. */
uint_fast8_t sampgrdstepy;
/* The sample alignment horizontal offset. */
uint_fast8_t sampgrdsubstepx;
/* The sample alignment horizontal offset. */
uint_fast8_t sampgrdsubstepx;
/* The sample alignment vertical offset. */
uint_fast8_t sampgrdsubstepy;
/* The sample alignment vertical offset. */
uint_fast8_t sampgrdsubstepy;
/* The precision of the samples. */
uint_fast8_t prec;
/* The precision of the samples. */
uint_fast8_t prec;
/* The signedness of the samples. */
bool sgnd;
/* The signedness of the samples. */
bool sgnd;
/* The number of step sizes. */
uint_fast16_t numstepsizes;
/* The number of step sizes. */
uint_fast16_t numstepsizes;
/* The quantizer step sizes. */
uint_fast16_t stepsizes[JPC_MAXBANDS];
/* The quantizer step sizes. */
uint_fast16_t stepsizes[JPC_MAXBANDS];
} jpc_enc_ccp_t;
@@ -130,24 +130,24 @@ typedef struct {
typedef struct {
/* The coding mode. */
bool intmode;
/* The coding mode. */
bool intmode;
/* The coding style (i.e., SOP, EPH). */
uint_fast8_t csty;
/* The coding style (i.e., SOP, EPH). */
uint_fast8_t csty;
/* The progression order. */
uint_fast8_t prg;
/* The progression order. */
uint_fast8_t prg;
/* The multicomponent transform. */
uint_fast8_t mctid;
/* The multicomponent transform. */
uint_fast8_t mctid;
/* The number of layers. */
uint_fast16_t numlyrs;
/* The number of layers. */
uint_fast16_t numlyrs;
/* The normalized bit rates associated with the various
intermediate layers. */
jpc_fix_t *ilyrrates;
/* The normalized bit rates associated with the various
intermediate layers. */
jpc_fix_t *ilyrrates;
} jpc_enc_tcp_t;
@@ -155,33 +155,33 @@ typedef struct {
typedef struct {
/* The coding style (i.e., explicit precinct sizes). */
uint_fast8_t csty;
/* The coding style (i.e., explicit precinct sizes). */
uint_fast8_t csty;
/* The maximum number of resolution levels allowed. */
uint_fast8_t maxrlvls;
/* The maximum number of resolution levels allowed. */
uint_fast8_t maxrlvls;
/* The exponent for the nominal code block width. */
uint_fast16_t cblkwidthexpn;
/* The exponent for the nominal code block width. */
uint_fast16_t cblkwidthexpn;
/* The exponent for the nominal code block height. */
uint_fast16_t cblkheightexpn;
/* The exponent for the nominal code block height. */
uint_fast16_t cblkheightexpn;
/* The code block style parameters (e.g., lazy, terminate all,
segmentation symbols, causal, reset probability models). */
uint_fast8_t cblksty;
/* The code block style parameters (e.g., lazy, terminate all,
segmentation symbols, causal, reset probability models). */
uint_fast8_t cblksty;
/* The QMFB. */
uint_fast8_t qmfbid;
/* The QMFB. */
uint_fast8_t qmfbid;
/* The precinct width values. */
uint_fast16_t prcwidthexpns[JPC_MAXRLVLS];
/* The precinct width values. */
uint_fast16_t prcwidthexpns[JPC_MAXRLVLS];
/* The precinct height values. */
uint_fast16_t prcheightexpns[JPC_MAXRLVLS];
/* The precinct height values. */
uint_fast16_t prcheightexpns[JPC_MAXRLVLS];
/* The number of guard bits. */
uint_fast8_t numgbits;
/* The number of guard bits. */
uint_fast8_t numgbits;
} jpc_enc_tccp_t;
@@ -189,67 +189,67 @@ typedef struct {
typedef struct {
/* The debug level. */
int debug;
/* The debug level. */
int debug;
/* The horizontal offset from the origin of the reference grid to the
left edge of the image area. */
uint_fast32_t imgareatlx;
/* The horizontal offset from the origin of the reference grid to the
left edge of the image area. */
uint_fast32_t imgareatlx;
/* The vertical offset from the origin of the reference grid to the
top edge of the image area. */
uint_fast32_t imgareatly;
/* The vertical offset from the origin of the reference grid to the
top edge of the image area. */
uint_fast32_t imgareatly;
/* The horizontal offset from the origin of the reference grid to the
right edge of the image area (plus one). */
uint_fast32_t refgrdwidth;
/* The horizontal offset from the origin of the reference grid to the
right edge of the image area (plus one). */
uint_fast32_t refgrdwidth;
/* The vertical offset from the origin of the reference grid to the
bottom edge of the image area (plus one). */
uint_fast32_t refgrdheight;
/* The vertical offset from the origin of the reference grid to the
bottom edge of the image area (plus one). */
uint_fast32_t refgrdheight;
/* The horizontal offset from the origin of the tile grid to the
origin of the reference grid. */
uint_fast32_t tilegrdoffx;
/* The horizontal offset from the origin of the tile grid to the
origin of the reference grid. */
uint_fast32_t tilegrdoffx;
/* The vertical offset from the origin of the tile grid to the
origin of the reference grid. */
uint_fast32_t tilegrdoffy;
/* The vertical offset from the origin of the tile grid to the
origin of the reference grid. */
uint_fast32_t tilegrdoffy;
/* The nominal tile width in units of the image reference grid. */
uint_fast32_t tilewidth;
/* The nominal tile width in units of the image reference grid. */
uint_fast32_t tilewidth;
/* The nominal tile height in units of the image reference grid. */
uint_fast32_t tileheight;
/* The nominal tile height in units of the image reference grid. */
uint_fast32_t tileheight;
/* The number of tiles spanning the image area in the horizontal
direction. */
uint_fast32_t numhtiles;
/* The number of tiles spanning the image area in the horizontal
direction. */
uint_fast32_t numhtiles;
/* The number of tiles spanning the image area in the vertical
direction. */
uint_fast32_t numvtiles;
/* The number of tiles spanning the image area in the vertical
direction. */
uint_fast32_t numvtiles;
/* The number of tiles. */
uint_fast32_t numtiles;
/* The number of tiles. */
uint_fast32_t numtiles;
/* The number of components. */
uint_fast16_t numcmpts;
/* The number of components. */
uint_fast16_t numcmpts;
/* The per-component coding parameters. */
jpc_enc_ccp_t *ccps;
/* The per-component coding parameters. */
jpc_enc_ccp_t *ccps;
/* The per-tile coding parameters. */
jpc_enc_tcp_t tcp;
/* The per-tile coding parameters. */
jpc_enc_tcp_t tcp;
/* The per-tile-component coding parameters. */
jpc_enc_tccp_t tccp;
/* The per-tile-component coding parameters. */
jpc_enc_tccp_t tccp;
/* The target code stream length in bytes. */
uint_fast32_t totalsize;
/* The target code stream length in bytes. */
uint_fast32_t totalsize;
/* The raw (i.e., uncompressed) size of the image in bytes. */
uint_fast32_t rawsize;
/* The raw (i.e., uncompressed) size of the image in bytes. */
uint_fast32_t rawsize;
} jpc_enc_cp_t;
@@ -261,35 +261,35 @@ typedef struct {
typedef struct {
/* The starting offset for this pass. */
int start;
/* The starting offset for this pass. */
int start;
/* The ending offset for this pass. */
int end;
/* The ending offset for this pass. */
int end;
/* The type of data in this pass (i.e., MQ or raw). */
int type;
/* The type of data in this pass (i.e., MQ or raw). */
int type;
/* Flag indicating that this pass is terminated. */
int term;
/* Flag indicating that this pass is terminated. */
int term;
/* The entropy coder state after coding this pass. */
jpc_mqencstate_t mqencstate;
/* The entropy coder state after coding this pass. */
jpc_mqencstate_t mqencstate;
/* The layer to which this pass has been assigned. */
int lyrno;
/* The layer to which this pass has been assigned. */
int lyrno;
/* The R-D slope for this pass. */
jpc_flt_t rdslope;
/* The R-D slope for this pass. */
jpc_flt_t rdslope;
/* The weighted MSE reduction associated with this pass. */
jpc_flt_t wmsedec;
/* The weighted MSE reduction associated with this pass. */
jpc_flt_t wmsedec;
/* The cumulative weighted MSE reduction. */
jpc_flt_t cumwmsedec;
/* The cumulative weighted MSE reduction. */
jpc_flt_t cumwmsedec;
/* The normalized MSE reduction. */
long nmsedec;
/* The normalized MSE reduction. */
long nmsedec;
} jpc_enc_pass_t;
@@ -297,53 +297,53 @@ typedef struct {
typedef struct {
/* The number of passes. */
int numpasses;
/* The number of passes. */
int numpasses;
/* The per-pass information. */
jpc_enc_pass_t *passes;
/* The per-pass information. */
jpc_enc_pass_t *passes;
/* The number of passes encoded so far. */
int numencpasses;
/* The number of passes encoded so far. */
int numencpasses;
/* The number of insignificant MSBs. */
int numimsbs;
/* The number of insignificant MSBs. */
int numimsbs;
/* The number of bits used to encode pass data lengths. */
int numlenbits;
/* The number of bits used to encode pass data lengths. */
int numlenbits;
/* The byte stream for this code block. */
jas_stream_t *stream;
/* The byte stream for this code block. */
jas_stream_t *stream;
/* The entropy encoder. */
jpc_mqenc_t *mqenc;
/* The entropy encoder. */
jpc_mqenc_t *mqenc;
/* The data for this code block. */
jas_matrix_t *data;
/* The data for this code block. */
jas_matrix_t *data;
/* The state for this code block. */
jas_matrix_t *flags;
/* The state for this code block. */
jas_matrix_t *flags;
/* The number of bit planes required for this code block. */
int numbps;
/* The number of bit planes required for this code block. */
int numbps;
/* The next pass to be encoded. */
jpc_enc_pass_t *curpass;
/* The next pass to be encoded. */
jpc_enc_pass_t *curpass;
/* The per-code-block-group state information. */
struct jpc_enc_prc_s *prc;
/* The per-code-block-group state information. */
struct jpc_enc_prc_s *prc;
/* The saved current pass. */
/* This is used by the rate control code. */
jpc_enc_pass_t *savedcurpass;
/* The saved current pass. */
/* This is used by the rate control code. */
jpc_enc_pass_t *savedcurpass;
/* The saved length indicator size. */
/* This is used by the rate control code. */
int savednumlenbits;
/* The saved length indicator size. */
/* This is used by the rate control code. */
int savednumlenbits;
/* The saved number of encoded passes. */
/* This is used by the rate control code. */
int savednumencpasses;
/* The saved number of encoded passes. */
/* This is used by the rate control code. */
int savednumencpasses;
} jpc_enc_cblk_t;
@@ -351,50 +351,50 @@ typedef struct {
typedef struct jpc_enc_prc_s {
/* The x-coordinate of the top-left corner of the precinct. */
uint_fast32_t tlx;
/* The x-coordinate of the top-left corner of the precinct. */
uint_fast32_t tlx;
/* The y-coordinate of the top-left corner of the precinct. */
uint_fast32_t tly;
/* The y-coordinate of the top-left corner of the precinct. */
uint_fast32_t tly;
/* The x-coordinate of the bottom-right corner of the precinct
(plus one). */
uint_fast32_t brx;
/* The x-coordinate of the bottom-right corner of the precinct
(plus one). */
uint_fast32_t brx;
/* The y-coordinate of the bottom-right corner of the precinct
(plus one). */
uint_fast32_t bry;
/* The y-coordinate of the bottom-right corner of the precinct
(plus one). */
uint_fast32_t bry;
/* The number of code blocks spanning the precinct in the horizontal
direction. */
int numhcblks;
/* The number of code blocks spanning the precinct in the horizontal
direction. */
int numhcblks;
/* The number of code blocks spanning the precinct in the vertical
direction. */
int numvcblks;
/* The number of code blocks spanning the precinct in the vertical
direction. */
int numvcblks;
/* The total number of code blocks. */
int numcblks;
/* The total number of code blocks. */
int numcblks;
/* The per-code-block information. */
jpc_enc_cblk_t *cblks;
/* The per-code-block information. */
jpc_enc_cblk_t *cblks;
/* The inclusion tag tree. */
jpc_tagtree_t *incltree;
/* The inclusion tag tree. */
jpc_tagtree_t *incltree;
/* The insignifcant MSBs tag tree. */
jpc_tagtree_t *nlibtree;
/* The insignifcant MSBs tag tree. */
jpc_tagtree_t *nlibtree;
/* The per-band information. */
struct jpc_enc_band_s *band;
/* The per-band information. */
struct jpc_enc_band_s *band;
/* The saved inclusion tag tree. */
/* This is used by rate control. */
jpc_tagtree_t *savincltree;
/* The saved inclusion tag tree. */
/* This is used by rate control. */
jpc_tagtree_t *savincltree;
/* The saved leading-insignificant-bit-planes tag tree. */
/* This is used by rate control. */
jpc_tagtree_t *savnlibtree;
/* The saved leading-insignificant-bit-planes tag tree. */
/* This is used by rate control. */
jpc_tagtree_t *savnlibtree;
} jpc_enc_prc_t;
@@ -402,33 +402,33 @@ typedef struct jpc_enc_prc_s {
typedef struct jpc_enc_band_s {
/* The per precinct information. */
jpc_enc_prc_t *prcs;
/* The per precinct information. */
jpc_enc_prc_t *prcs;
/* The coefficient data for this band. */
jas_matrix_t *data;
/* The coefficient data for this band. */
jas_matrix_t *data;
/* The orientation of this band (i.e., LL, LH, HL, or HH). */
int orient;
/* The orientation of this band (i.e., LL, LH, HL, or HH). */
int orient;
/* The number of bit planes associated with this band. */
int numbps;
/* The number of bit planes associated with this band. */
int numbps;
/* The quantizer step size. */
jpc_fix_t absstepsize;
/* The quantizer step size. */
jpc_fix_t absstepsize;
/* The encoded quantizer step size. */
int stepsize;
/* The encoded quantizer step size. */
int stepsize;
/* The L2 norm of the synthesis basis functions associated with
this band. (The MCT is not considered in this value.) */
jpc_fix_t synweight;
/* The L2 norm of the synthesis basis functions associated with
this band. (The MCT is not considered in this value.) */
jpc_fix_t synweight;
/* The analysis gain for this band. */
int analgain;
/* The analysis gain for this band. */
int analgain;
/* The per-resolution-level information. */
struct jpc_enc_rlvl_s *rlvl;
/* The per-resolution-level information. */
struct jpc_enc_rlvl_s *rlvl;
} jpc_enc_band_t;
@@ -436,65 +436,65 @@ typedef struct jpc_enc_band_s {
typedef struct jpc_enc_rlvl_s {
/* The x-coordinate of the top-left corner of the tile-component
at this resolution. */
uint_fast32_t tlx;
/* The x-coordinate of the top-left corner of the tile-component
at this resolution. */
uint_fast32_t tlx;
/* The y-coordinate of the top-left corner of the tile-component
at this resolution. */
uint_fast32_t tly;
/* The y-coordinate of the top-left corner of the tile-component
at this resolution. */
uint_fast32_t tly;
/* The x-coordinate of the bottom-right corner of the tile-component
at this resolution (plus one). */
uint_fast32_t brx;
/* The x-coordinate of the bottom-right corner of the tile-component
at this resolution (plus one). */
uint_fast32_t brx;
/* The y-coordinate of the bottom-right corner of the tile-component
at this resolution (plus one). */
uint_fast32_t bry;
/* The y-coordinate of the bottom-right corner of the tile-component
at this resolution (plus one). */
uint_fast32_t bry;
/* The exponent value for the nominal precinct width measured
relative to the associated LL band. */
int prcwidthexpn;
/* The exponent value for the nominal precinct width measured
relative to the associated LL band. */
int prcwidthexpn;
/* The exponent value for the nominal precinct height measured
relative to the associated LL band. */
int prcheightexpn;
/* The exponent value for the nominal precinct height measured
relative to the associated LL band. */
int prcheightexpn;
/* The number of precincts spanning the resolution level in the
horizontal direction. */
int numhprcs;
/* The number of precincts spanning the resolution level in the
horizontal direction. */
int numhprcs;
/* The number of precincts spanning the resolution level in the
vertical direction. */
int numvprcs;
/* The number of precincts spanning the resolution level in the
vertical direction. */
int numvprcs;
/* The total number of precincts. */
int numprcs;
/* The total number of precincts. */
int numprcs;
/* The exponent value for the nominal code block group width.
This quantity is associated with the next lower resolution level
(assuming that there is one). */
int cbgwidthexpn;
/* The exponent value for the nominal code block group width.
This quantity is associated with the next lower resolution level
(assuming that there is one). */
int cbgwidthexpn;
/* The exponent value for the nominal code block group height.
This quantity is associated with the next lower resolution level
(assuming that there is one). */
int cbgheightexpn;
/* The exponent value for the nominal code block group height.
This quantity is associated with the next lower resolution level
(assuming that there is one). */
int cbgheightexpn;
/* The exponent value for the code block width. */
uint_fast16_t cblkwidthexpn;
/* The exponent value for the code block width. */
uint_fast16_t cblkwidthexpn;
/* The exponent value for the code block height. */
uint_fast16_t cblkheightexpn;
/* The exponent value for the code block height. */
uint_fast16_t cblkheightexpn;
/* The number of bands associated with this resolution level. */
int numbands;
/* The number of bands associated with this resolution level. */
int numbands;
/* The per-band information. */
jpc_enc_band_t *bands;
/* The per-band information. */
jpc_enc_band_t *bands;
/* The parent tile-component. */
struct jpc_enc_tcmpt_s *tcmpt;
/* The parent tile-component. */
struct jpc_enc_tcmpt_s *tcmpt;
} jpc_enc_rlvl_t;
@@ -502,53 +502,53 @@ typedef struct jpc_enc_rlvl_s {
typedef struct jpc_enc_tcmpt_s {
/* The number of resolution levels. */
int numrlvls;
/* The number of resolution levels. */
int numrlvls;
/* The per-resolution-level information. */
jpc_enc_rlvl_t *rlvls;
/* The per-resolution-level information. */
jpc_enc_rlvl_t *rlvls;
/* The tile-component data. */
jas_matrix_t *data;
/* The tile-component data. */
jas_matrix_t *data;
/* The QMFB. */
int qmfbid;
/* The QMFB. */
int qmfbid;
/* The number of bands. */
int numbands;
/* The number of bands. */
int numbands;
/* The TSFB. */
jpc_tsfb_t *tsfb;
/* The TSFB. */
jpc_tsfb_t *tsfb;
/* The synthesis energy weight (for the MCT). */
jpc_fix_t synweight;
/* The synthesis energy weight (for the MCT). */
jpc_fix_t synweight;
/* The precinct width exponents. */
int prcwidthexpns[JPC_MAXRLVLS];
/* The precinct width exponents. */
int prcwidthexpns[JPC_MAXRLVLS];
/* The precinct height exponents. */
int prcheightexpns[JPC_MAXRLVLS];
/* The precinct height exponents. */
int prcheightexpns[JPC_MAXRLVLS];
/* The code block width exponent. */
int cblkwidthexpn;
/* The code block width exponent. */
int cblkwidthexpn;
/* The code block height exponent. */
int cblkheightexpn;
/* The code block height exponent. */
int cblkheightexpn;
/* Coding style (i.e., explicit precinct sizes). */
int csty;
/* Coding style (i.e., explicit precinct sizes). */
int csty;
/* Code block style. */
int cblksty;
/* Code block style. */
int cblksty;
/* The number of quantizer step sizes. */
int numstepsizes;
/* The number of quantizer step sizes. */
int numstepsizes;
/* The encoded quantizer step sizes. */
uint_fast16_t stepsizes[JPC_MAXBANDS];
/* The encoded quantizer step sizes. */
uint_fast16_t stepsizes[JPC_MAXBANDS];
/* The parent tile. */
struct jpc_enc_tile_s *tile;
/* The parent tile. */
struct jpc_enc_tile_s *tile;
} jpc_enc_tcmpt_t;
@@ -556,55 +556,55 @@ typedef struct jpc_enc_tcmpt_s {
typedef struct jpc_enc_tile_s {
/* The tile number. */
uint_fast32_t tileno;
/* The tile number. */
uint_fast32_t tileno;
/* The x-coordinate of the top-left corner of the tile measured with
respect to the reference grid. */
uint_fast32_t tlx;
/* The x-coordinate of the top-left corner of the tile measured with
respect to the reference grid. */
uint_fast32_t tlx;
/* The y-coordinate of the top-left corner of the tile measured with
respect to the reference grid. */
uint_fast32_t tly;
/* The y-coordinate of the top-left corner of the tile measured with
respect to the reference grid. */
uint_fast32_t tly;
/* The x-coordinate of the bottom-right corner of the tile measured
with respect to the reference grid (plus one). */
uint_fast32_t brx;
/* The x-coordinate of the bottom-right corner of the tile measured
with respect to the reference grid (plus one). */
uint_fast32_t brx;
/* The y-coordinate of the bottom-right corner of the tile measured
with respect to the reference grid (plus one). */
uint_fast32_t bry;
/* The y-coordinate of the bottom-right corner of the tile measured
with respect to the reference grid (plus one). */
uint_fast32_t bry;
/* The coding style. */
uint_fast8_t csty;
/* The coding style. */
uint_fast8_t csty;
/* The progression order. */
uint_fast8_t prg;
/* The progression order. */
uint_fast8_t prg;
/* The number of layers. */
int numlyrs;
/* The number of layers. */
int numlyrs;
/* The MCT to employ (if any). */
uint_fast8_t mctid;
/* The MCT to employ (if any). */
uint_fast8_t mctid;
/* The packet iterator (used to determine the order of packet
generation). */
jpc_pi_t *pi;
/* The packet iterator (used to determine the order of packet
generation). */
jpc_pi_t *pi;
/* The coding mode (i.e., integer or real). */
bool intmode;
/* The coding mode (i.e., integer or real). */
bool intmode;
/* The number of bytes to allocate to the various layers. */
uint_fast32_t *lyrsizes;
/* The number of bytes to allocate to the various layers. */
uint_fast32_t *lyrsizes;
/* The number of tile-components. */
int numtcmpts;
/* The number of tile-components. */
int numtcmpts;
/* The per tile-component information. */
jpc_enc_tcmpt_t *tcmpts;
/* The per tile-component information. */
jpc_enc_tcmpt_t *tcmpts;
/* The raw (i.e., uncompressed) size of this tile. */
uint_fast32_t rawsize;
/* The raw (i.e., uncompressed) size of this tile. */
uint_fast32_t rawsize;
} jpc_enc_tile_t;
@@ -612,34 +612,34 @@ typedef struct jpc_enc_tile_s {
typedef struct jpc_enc_s {
/* The image being encoded. */
jas_image_t *image;
/* The image being encoded. */
jas_image_t *image;
/* The output stream. */
jas_stream_t *out;
/* The output stream. */
jas_stream_t *out;
/* The coding parameters. */
jpc_enc_cp_t *cp;
/* The coding parameters. */
jpc_enc_cp_t *cp;
/* The tile currently being processed. */
jpc_enc_tile_t *curtile;
/* The tile currently being processed. */
jpc_enc_tile_t *curtile;
/* The code stream state. */
jpc_cstate_t *cstate;
/* The code stream state. */
jpc_cstate_t *cstate;
/* The number of bytes output so far. */
uint_fast32_t len;
/* The number of bytes output so far. */
uint_fast32_t len;
/* The number of bytes available for the main body of the code stream. */
/* This is used for rate allocation purposes. */
uint_fast32_t mainbodysize;
/* The number of bytes available for the main body of the code stream. */
/* This is used for rate allocation purposes. */
uint_fast32_t mainbodysize;
/* The marker segment currently being processed. */
/* This member is a convenience for making cleanup easier. */
jpc_ms_t *mrk;
/* The marker segment currently being processed. */
/* This member is a convenience for making cleanup easier. */
jpc_ms_t *mrk;
/* The stream used to temporarily hold tile-part data. */
jas_stream_t *tmpstream;
/* The stream used to temporarily hold tile-part data. */
jas_stream_t *tmpstream;
} jpc_enc_t;
+12 -12
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -113,11 +113,11 @@ typedef int_fast64_t jpc_fix_big_t;
#define jpc_fix_add(x, y) JAS_FIX_ADD(jpc_fix_t, JPC_FIX_FRACBITS, x, y)
#define jpc_fix_sub(x, y) JAS_FIX_SUB(jpc_fix_t, JPC_FIX_FRACBITS, x, y)
#define jpc_fix_mul(x, y) \
JAS_FIX_MUL(jpc_fix_t, JPC_FIX_FRACBITS, jpc_fix_big_t, x, y)
JAS_FIX_MUL(jpc_fix_t, JPC_FIX_FRACBITS, jpc_fix_big_t, x, y)
#define jpc_fix_mulbyint(x, y) \
JAS_FIX_MULBYINT(jpc_fix_t, JPC_FIX_FRACBITS, x, y)
JAS_FIX_MULBYINT(jpc_fix_t, JPC_FIX_FRACBITS, x, y)
#define jpc_fix_div(x, y) \
JAS_FIX_DIV(jpc_fix_t, JPC_FIX_FRACBITS, jpc_fix_big_t, x, y)
JAS_FIX_DIV(jpc_fix_t, JPC_FIX_FRACBITS, jpc_fix_big_t, x, y)
#define jpc_fix_neg(x) JAS_FIX_NEG(jpc_fix_t, JPC_FIX_FRACBITS, x)
#define jpc_fix_asl(x, n) JAS_FIX_ASL(jpc_fix_t, JPC_FIX_FRACBITS, x, n)
#define jpc_fix_asr(x, n) JAS_FIX_ASR(jpc_fix_t, JPC_FIX_FRACBITS, x, n)
@@ -125,7 +125,7 @@ typedef int_fast64_t jpc_fix_big_t;
#define jpc_fix_pluseq(x, y) JAS_FIX_PLUSEQ(jpc_fix_t, JPC_FIX_FRACBITS, x, y)
#define jpc_fix_minuseq(x, y) JAS_FIX_MINUSEQ(jpc_fix_t, JPC_FIX_FRACBITS, x, y)
#define jpc_fix_muleq(x, y) \
JAS_FIX_MULEQ(jpc_fix_t, JPC_FIX_FRACBITS, jpc_fix_big_t, x, y)
JAS_FIX_MULEQ(jpc_fix_t, JPC_FIX_FRACBITS, jpc_fix_big_t, x, y)
#define jpc_fix_abs(x) JAS_FIX_ABS(jpc_fix_t, JPC_FIX_FRACBITS, x)
#define jpc_fix_isint(x) JAS_FIX_ISINT(jpc_fix_t, JPC_FIX_FRACBITS, x)
+8 -8
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
+26 -26
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -88,17 +88,17 @@
integer. */
int jpc_floorlog2(int x)
{
int y;
int y;
/* The argument must be positive. */
assert(x > 0);
/* The argument must be positive. */
assert(x > 0);
y = 0;
while (x > 1) {
x >>= 1;
++y;
}
return y;
y = 0;
while (x > 1) {
x >>= 1;
++y;
}
return y;
}
/* Calculate the bit position of the first leading one in a nonnegative
@@ -107,15 +107,15 @@ int jpc_floorlog2(int x)
allowable range for x is slightly different. */
int jpc_firstone(int x)
{
int n;
int n;
/* The argument must be nonnegative. */
assert(x >= 0);
/* The argument must be nonnegative. */
assert(x >= 0);
n = -1;
while (x > 0) {
x >>= 1;
++n;
}
return n;
n = -1;
while (x > 0) {
x >>= 1;
++n;
}
return n;
}
+8 -8
Ver Arquivo
@@ -4,15 +4,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -20,15 +20,15 @@
* 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
@@ -55,7 +55,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
+180 -180
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -86,206 +86,206 @@
void jpc_rct(jas_matrix_t *c0, jas_matrix_t *c1, jas_matrix_t *c2)
{
int numrows;
int numcols;
int i;
int j;
jpc_fix_t *c0p;
jpc_fix_t *c1p;
jpc_fix_t *c2p;
int numrows;
int numcols;
int i;
int j;
jpc_fix_t *c0p;
jpc_fix_t *c1p;
jpc_fix_t *c2p;
numrows = jas_matrix_numrows(c0);
numcols = jas_matrix_numcols(c0);
numrows = jas_matrix_numrows(c0);
numcols = jas_matrix_numcols(c0);
/* All three matrices must have the same dimensions. */
assert(jas_matrix_numrows(c1) == numrows && jas_matrix_numcols(c1) == numcols
&& jas_matrix_numrows(c2) == numrows && jas_matrix_numcols(c2) == numcols);
/* All three matrices must have the same dimensions. */
assert(jas_matrix_numrows(c1) == numrows && jas_matrix_numcols(c1) == numcols
&& jas_matrix_numrows(c2) == numrows && jas_matrix_numcols(c2) == numcols);
for (i = 0; i < numrows; i++) {
c0p = jas_matrix_getref(c0, i, 0);
c1p = jas_matrix_getref(c1, i, 0);
c2p = jas_matrix_getref(c2, i, 0);
for (j = numcols; j > 0; --j) {
int r;
int g;
int b;
int y;
int u;
int v;
r = *c0p;
g = *c1p;
b = *c2p;
y = (r + (g << 1) + b) >> 2;
u = b - g;
v = r - g;
*c0p++ = y;
*c1p++ = u;
*c2p++ = v;
}
}
for (i = 0; i < numrows; i++) {
c0p = jas_matrix_getref(c0, i, 0);
c1p = jas_matrix_getref(c1, i, 0);
c2p = jas_matrix_getref(c2, i, 0);
for (j = numcols; j > 0; --j) {
int r;
int g;
int b;
int y;
int u;
int v;
r = *c0p;
g = *c1p;
b = *c2p;
y = (r + (g << 1) + b) >> 2;
u = b - g;
v = r - g;
*c0p++ = y;
*c1p++ = u;
*c2p++ = v;
}
}
}
/* Compute the inverse RCT. */
void jpc_irct(jas_matrix_t *c0, jas_matrix_t *c1, jas_matrix_t *c2)
{
int numrows;
int numcols;
int i;
int j;
jpc_fix_t *c0p;
jpc_fix_t *c1p;
jpc_fix_t *c2p;
int numrows;
int numcols;
int i;
int j;
jpc_fix_t *c0p;
jpc_fix_t *c1p;
jpc_fix_t *c2p;
numrows = jas_matrix_numrows(c0);
numcols = jas_matrix_numcols(c0);
numrows = jas_matrix_numrows(c0);
numcols = jas_matrix_numcols(c0);
/* All three matrices must have the same dimensions. */
assert(jas_matrix_numrows(c1) == numrows && jas_matrix_numcols(c1) == numcols
&& jas_matrix_numrows(c2) == numrows && jas_matrix_numcols(c2) == numcols);
/* All three matrices must have the same dimensions. */
assert(jas_matrix_numrows(c1) == numrows && jas_matrix_numcols(c1) == numcols
&& jas_matrix_numrows(c2) == numrows && jas_matrix_numcols(c2) == numcols);
for (i = 0; i < numrows; i++) {
c0p = jas_matrix_getref(c0, i, 0);
c1p = jas_matrix_getref(c1, i, 0);
c2p = jas_matrix_getref(c2, i, 0);
for (j = numcols; j > 0; --j) {
int r;
int g;
int b;
int y;
int u;
int v;
y = *c0p;
u = *c1p;
v = *c2p;
g = y - ((u + v) >> 2);
r = v + g;
b = u + g;
*c0p++ = r;
*c1p++ = g;
*c2p++ = b;
}
}
for (i = 0; i < numrows; i++) {
c0p = jas_matrix_getref(c0, i, 0);
c1p = jas_matrix_getref(c1, i, 0);
c2p = jas_matrix_getref(c2, i, 0);
for (j = numcols; j > 0; --j) {
int r;
int g;
int b;
int y;
int u;
int v;
y = *c0p;
u = *c1p;
v = *c2p;
g = y - ((u + v) >> 2);
r = v + g;
b = u + g;
*c0p++ = r;
*c1p++ = g;
*c2p++ = b;
}
}
}
void jpc_ict(jas_matrix_t *c0, jas_matrix_t *c1, jas_matrix_t *c2)
{
int numrows;
int numcols;
int i;
int j;
jpc_fix_t r;
jpc_fix_t g;
jpc_fix_t b;
jpc_fix_t y;
jpc_fix_t u;
jpc_fix_t v;
jpc_fix_t *c0p;
jpc_fix_t *c1p;
jpc_fix_t *c2p;
int numrows;
int numcols;
int i;
int j;
jpc_fix_t r;
jpc_fix_t g;
jpc_fix_t b;
jpc_fix_t y;
jpc_fix_t u;
jpc_fix_t v;
jpc_fix_t *c0p;
jpc_fix_t *c1p;
jpc_fix_t *c2p;
numrows = jas_matrix_numrows(c0);
assert(jas_matrix_numrows(c1) == numrows && jas_matrix_numrows(c2) == numrows);
numcols = jas_matrix_numcols(c0);
assert(jas_matrix_numcols(c1) == numcols && jas_matrix_numcols(c2) == numcols);
for (i = 0; i < numrows; ++i) {
c0p = jas_matrix_getref(c0, i, 0);
c1p = jas_matrix_getref(c1, i, 0);
c2p = jas_matrix_getref(c2, i, 0);
for (j = numcols; j > 0; --j) {
r = *c0p;
g = *c1p;
b = *c2p;
y = jpc_fix_add3(jpc_fix_mul(jpc_dbltofix(0.299), r), jpc_fix_mul(jpc_dbltofix(0.587), g),
jpc_fix_mul(jpc_dbltofix(0.114), b));
u = jpc_fix_add3(jpc_fix_mul(jpc_dbltofix(-0.16875), r), jpc_fix_mul(jpc_dbltofix(-0.33126), g),
jpc_fix_mul(jpc_dbltofix(0.5), b));
v = jpc_fix_add3(jpc_fix_mul(jpc_dbltofix(0.5), r), jpc_fix_mul(jpc_dbltofix(-0.41869), g),
jpc_fix_mul(jpc_dbltofix(-0.08131), b));
*c0p++ = y;
*c1p++ = u;
*c2p++ = v;
}
}
numrows = jas_matrix_numrows(c0);
assert(jas_matrix_numrows(c1) == numrows && jas_matrix_numrows(c2) == numrows);
numcols = jas_matrix_numcols(c0);
assert(jas_matrix_numcols(c1) == numcols && jas_matrix_numcols(c2) == numcols);
for (i = 0; i < numrows; ++i) {
c0p = jas_matrix_getref(c0, i, 0);
c1p = jas_matrix_getref(c1, i, 0);
c2p = jas_matrix_getref(c2, i, 0);
for (j = numcols; j > 0; --j) {
r = *c0p;
g = *c1p;
b = *c2p;
y = jpc_fix_add3(jpc_fix_mul(jpc_dbltofix(0.299), r), jpc_fix_mul(jpc_dbltofix(0.587), g),
jpc_fix_mul(jpc_dbltofix(0.114), b));
u = jpc_fix_add3(jpc_fix_mul(jpc_dbltofix(-0.16875), r), jpc_fix_mul(jpc_dbltofix(-0.33126), g),
jpc_fix_mul(jpc_dbltofix(0.5), b));
v = jpc_fix_add3(jpc_fix_mul(jpc_dbltofix(0.5), r), jpc_fix_mul(jpc_dbltofix(-0.41869), g),
jpc_fix_mul(jpc_dbltofix(-0.08131), b));
*c0p++ = y;
*c1p++ = u;
*c2p++ = v;
}
}
}
void jpc_iict(jas_matrix_t *c0, jas_matrix_t *c1, jas_matrix_t *c2)
{
int numrows;
int numcols;
int i;
int j;
jpc_fix_t r;
jpc_fix_t g;
jpc_fix_t b;
jpc_fix_t y;
jpc_fix_t u;
jpc_fix_t v;
jpc_fix_t *c0p;
jpc_fix_t *c1p;
jpc_fix_t *c2p;
int numrows;
int numcols;
int i;
int j;
jpc_fix_t r;
jpc_fix_t g;
jpc_fix_t b;
jpc_fix_t y;
jpc_fix_t u;
jpc_fix_t v;
jpc_fix_t *c0p;
jpc_fix_t *c1p;
jpc_fix_t *c2p;
numrows = jas_matrix_numrows(c0);
assert(jas_matrix_numrows(c1) == numrows && jas_matrix_numrows(c2) == numrows);
numcols = jas_matrix_numcols(c0);
assert(jas_matrix_numcols(c1) == numcols && jas_matrix_numcols(c2) == numcols);
for (i = 0; i < numrows; ++i) {
c0p = jas_matrix_getref(c0, i, 0);
c1p = jas_matrix_getref(c1, i, 0);
c2p = jas_matrix_getref(c2, i, 0);
for (j = numcols; j > 0; --j) {
y = *c0p;
u = *c1p;
v = *c2p;
r = jpc_fix_add(y, jpc_fix_mul(jpc_dbltofix(1.402), v));
g = jpc_fix_add3(y, jpc_fix_mul(jpc_dbltofix(-0.34413), u),
jpc_fix_mul(jpc_dbltofix(-0.71414), v));
b = jpc_fix_add(y, jpc_fix_mul(jpc_dbltofix(1.772), u));
*c0p++ = r;
*c1p++ = g;
*c2p++ = b;
}
}
numrows = jas_matrix_numrows(c0);
assert(jas_matrix_numrows(c1) == numrows && jas_matrix_numrows(c2) == numrows);
numcols = jas_matrix_numcols(c0);
assert(jas_matrix_numcols(c1) == numcols && jas_matrix_numcols(c2) == numcols);
for (i = 0; i < numrows; ++i) {
c0p = jas_matrix_getref(c0, i, 0);
c1p = jas_matrix_getref(c1, i, 0);
c2p = jas_matrix_getref(c2, i, 0);
for (j = numcols; j > 0; --j) {
y = *c0p;
u = *c1p;
v = *c2p;
r = jpc_fix_add(y, jpc_fix_mul(jpc_dbltofix(1.402), v));
g = jpc_fix_add3(y, jpc_fix_mul(jpc_dbltofix(-0.34413), u),
jpc_fix_mul(jpc_dbltofix(-0.71414), v));
b = jpc_fix_add(y, jpc_fix_mul(jpc_dbltofix(1.772), u));
*c0p++ = r;
*c1p++ = g;
*c2p++ = b;
}
}
}
jpc_fix_t jpc_mct_getsynweight(int mctid, int cmptno)
{
jpc_fix_t synweight;
jpc_fix_t synweight;
synweight = JPC_FIX_ONE;
switch (mctid) {
case JPC_MCT_RCT:
switch (cmptno) {
case 0:
synweight = jpc_dbltofix(sqrt(3.0));
break;
case 1:
synweight = jpc_dbltofix(sqrt(0.6875));
break;
case 2:
synweight = jpc_dbltofix(sqrt(0.6875));
break;
}
break;
case JPC_MCT_ICT:
switch (cmptno) {
case 0:
synweight = jpc_dbltofix(sqrt(3.0000));
break;
case 1:
synweight = jpc_dbltofix(sqrt(3.2584));
break;
case 2:
synweight = jpc_dbltofix(sqrt(2.4755));
break;
}
break;
synweight = JPC_FIX_ONE;
switch (mctid) {
case JPC_MCT_RCT:
switch (cmptno) {
case 0:
synweight = jpc_dbltofix(sqrt(3.0));
break;
case 1:
synweight = jpc_dbltofix(sqrt(0.6875));
break;
case 2:
synweight = jpc_dbltofix(sqrt(0.6875));
break;
}
break;
case JPC_MCT_ICT:
switch (cmptno) {
case 0:
synweight = jpc_dbltofix(sqrt(3.0000));
break;
case 1:
synweight = jpc_dbltofix(sqrt(3.2584));
break;
case 2:
synweight = jpc_dbltofix(sqrt(2.4755));
break;
}
break;
#if 0
default:
synweight = JPC_FIX_ONE;
break;
default:
synweight = JPC_FIX_ONE;
break;
#endif
}
}
return synweight;
return synweight;
}
+8 -8
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
+102 -102
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -82,98 +82,98 @@
/* MQ coder per-state information. */
jpc_mqstate_t jpc_mqstates[47 * 2] = {
{0x5601, 0, &jpc_mqstates[ 2], &jpc_mqstates[ 3]},
{0x5601, 1, &jpc_mqstates[ 3], &jpc_mqstates[ 2]},
{0x3401, 0, &jpc_mqstates[ 4], &jpc_mqstates[12]},
{0x3401, 1, &jpc_mqstates[ 5], &jpc_mqstates[13]},
{0x1801, 0, &jpc_mqstates[ 6], &jpc_mqstates[18]},
{0x1801, 1, &jpc_mqstates[ 7], &jpc_mqstates[19]},
{0x0ac1, 0, &jpc_mqstates[ 8], &jpc_mqstates[24]},
{0x0ac1, 1, &jpc_mqstates[ 9], &jpc_mqstates[25]},
{0x0521, 0, &jpc_mqstates[10], &jpc_mqstates[58]},
{0x0521, 1, &jpc_mqstates[11], &jpc_mqstates[59]},
{0x0221, 0, &jpc_mqstates[76], &jpc_mqstates[66]},
{0x0221, 1, &jpc_mqstates[77], &jpc_mqstates[67]},
{0x5601, 0, &jpc_mqstates[14], &jpc_mqstates[13]},
{0x5601, 1, &jpc_mqstates[15], &jpc_mqstates[12]},
{0x5401, 0, &jpc_mqstates[16], &jpc_mqstates[28]},
{0x5401, 1, &jpc_mqstates[17], &jpc_mqstates[29]},
{0x4801, 0, &jpc_mqstates[18], &jpc_mqstates[28]},
{0x4801, 1, &jpc_mqstates[19], &jpc_mqstates[29]},
{0x3801, 0, &jpc_mqstates[20], &jpc_mqstates[28]},
{0x3801, 1, &jpc_mqstates[21], &jpc_mqstates[29]},
{0x3001, 0, &jpc_mqstates[22], &jpc_mqstates[34]},
{0x3001, 1, &jpc_mqstates[23], &jpc_mqstates[35]},
{0x2401, 0, &jpc_mqstates[24], &jpc_mqstates[36]},
{0x2401, 1, &jpc_mqstates[25], &jpc_mqstates[37]},
{0x1c01, 0, &jpc_mqstates[26], &jpc_mqstates[40]},
{0x1c01, 1, &jpc_mqstates[27], &jpc_mqstates[41]},
{0x1601, 0, &jpc_mqstates[58], &jpc_mqstates[42]},
{0x1601, 1, &jpc_mqstates[59], &jpc_mqstates[43]},
{0x5601, 0, &jpc_mqstates[30], &jpc_mqstates[29]},
{0x5601, 1, &jpc_mqstates[31], &jpc_mqstates[28]},
{0x5401, 0, &jpc_mqstates[32], &jpc_mqstates[28]},
{0x5401, 1, &jpc_mqstates[33], &jpc_mqstates[29]},
{0x5101, 0, &jpc_mqstates[34], &jpc_mqstates[30]},
{0x5101, 1, &jpc_mqstates[35], &jpc_mqstates[31]},
{0x4801, 0, &jpc_mqstates[36], &jpc_mqstates[32]},
{0x4801, 1, &jpc_mqstates[37], &jpc_mqstates[33]},
{0x3801, 0, &jpc_mqstates[38], &jpc_mqstates[34]},
{0x3801, 1, &jpc_mqstates[39], &jpc_mqstates[35]},
{0x3401, 0, &jpc_mqstates[40], &jpc_mqstates[36]},
{0x3401, 1, &jpc_mqstates[41], &jpc_mqstates[37]},
{0x3001, 0, &jpc_mqstates[42], &jpc_mqstates[38]},
{0x3001, 1, &jpc_mqstates[43], &jpc_mqstates[39]},
{0x2801, 0, &jpc_mqstates[44], &jpc_mqstates[38]},
{0x2801, 1, &jpc_mqstates[45], &jpc_mqstates[39]},
{0x2401, 0, &jpc_mqstates[46], &jpc_mqstates[40]},
{0x2401, 1, &jpc_mqstates[47], &jpc_mqstates[41]},
{0x2201, 0, &jpc_mqstates[48], &jpc_mqstates[42]},
{0x2201, 1, &jpc_mqstates[49], &jpc_mqstates[43]},
{0x1c01, 0, &jpc_mqstates[50], &jpc_mqstates[44]},
{0x1c01, 1, &jpc_mqstates[51], &jpc_mqstates[45]},
{0x1801, 0, &jpc_mqstates[52], &jpc_mqstates[46]},
{0x1801, 1, &jpc_mqstates[53], &jpc_mqstates[47]},
{0x1601, 0, &jpc_mqstates[54], &jpc_mqstates[48]},
{0x1601, 1, &jpc_mqstates[55], &jpc_mqstates[49]},
{0x1401, 0, &jpc_mqstates[56], &jpc_mqstates[50]},
{0x1401, 1, &jpc_mqstates[57], &jpc_mqstates[51]},
{0x1201, 0, &jpc_mqstates[58], &jpc_mqstates[52]},
{0x1201, 1, &jpc_mqstates[59], &jpc_mqstates[53]},
{0x1101, 0, &jpc_mqstates[60], &jpc_mqstates[54]},
{0x1101, 1, &jpc_mqstates[61], &jpc_mqstates[55]},
{0x0ac1, 0, &jpc_mqstates[62], &jpc_mqstates[56]},
{0x0ac1, 1, &jpc_mqstates[63], &jpc_mqstates[57]},
{0x09c1, 0, &jpc_mqstates[64], &jpc_mqstates[58]},
{0x09c1, 1, &jpc_mqstates[65], &jpc_mqstates[59]},
{0x08a1, 0, &jpc_mqstates[66], &jpc_mqstates[60]},
{0x08a1, 1, &jpc_mqstates[67], &jpc_mqstates[61]},
{0x0521, 0, &jpc_mqstates[68], &jpc_mqstates[62]},
{0x0521, 1, &jpc_mqstates[69], &jpc_mqstates[63]},
{0x0441, 0, &jpc_mqstates[70], &jpc_mqstates[64]},
{0x0441, 1, &jpc_mqstates[71], &jpc_mqstates[65]},
{0x02a1, 0, &jpc_mqstates[72], &jpc_mqstates[66]},
{0x02a1, 1, &jpc_mqstates[73], &jpc_mqstates[67]},
{0x0221, 0, &jpc_mqstates[74], &jpc_mqstates[68]},
{0x0221, 1, &jpc_mqstates[75], &jpc_mqstates[69]},
{0x0141, 0, &jpc_mqstates[76], &jpc_mqstates[70]},
{0x0141, 1, &jpc_mqstates[77], &jpc_mqstates[71]},
{0x0111, 0, &jpc_mqstates[78], &jpc_mqstates[72]},
{0x0111, 1, &jpc_mqstates[79], &jpc_mqstates[73]},
{0x0085, 0, &jpc_mqstates[80], &jpc_mqstates[74]},
{0x0085, 1, &jpc_mqstates[81], &jpc_mqstates[75]},
{0x0049, 0, &jpc_mqstates[82], &jpc_mqstates[76]},
{0x0049, 1, &jpc_mqstates[83], &jpc_mqstates[77]},
{0x0025, 0, &jpc_mqstates[84], &jpc_mqstates[78]},
{0x0025, 1, &jpc_mqstates[85], &jpc_mqstates[79]},
{0x0015, 0, &jpc_mqstates[86], &jpc_mqstates[80]},
{0x0015, 1, &jpc_mqstates[87], &jpc_mqstates[81]},
{0x0009, 0, &jpc_mqstates[88], &jpc_mqstates[82]},
{0x0009, 1, &jpc_mqstates[89], &jpc_mqstates[83]},
{0x0005, 0, &jpc_mqstates[90], &jpc_mqstates[84]},
{0x0005, 1, &jpc_mqstates[91], &jpc_mqstates[85]},
{0x0001, 0, &jpc_mqstates[90], &jpc_mqstates[86]},
{0x0001, 1, &jpc_mqstates[91], &jpc_mqstates[87]},
{0x5601, 0, &jpc_mqstates[92], &jpc_mqstates[92]},
{0x5601, 1, &jpc_mqstates[93], &jpc_mqstates[93]},
{0x5601, 0, &jpc_mqstates[ 2], &jpc_mqstates[ 3]},
{0x5601, 1, &jpc_mqstates[ 3], &jpc_mqstates[ 2]},
{0x3401, 0, &jpc_mqstates[ 4], &jpc_mqstates[12]},
{0x3401, 1, &jpc_mqstates[ 5], &jpc_mqstates[13]},
{0x1801, 0, &jpc_mqstates[ 6], &jpc_mqstates[18]},
{0x1801, 1, &jpc_mqstates[ 7], &jpc_mqstates[19]},
{0x0ac1, 0, &jpc_mqstates[ 8], &jpc_mqstates[24]},
{0x0ac1, 1, &jpc_mqstates[ 9], &jpc_mqstates[25]},
{0x0521, 0, &jpc_mqstates[10], &jpc_mqstates[58]},
{0x0521, 1, &jpc_mqstates[11], &jpc_mqstates[59]},
{0x0221, 0, &jpc_mqstates[76], &jpc_mqstates[66]},
{0x0221, 1, &jpc_mqstates[77], &jpc_mqstates[67]},
{0x5601, 0, &jpc_mqstates[14], &jpc_mqstates[13]},
{0x5601, 1, &jpc_mqstates[15], &jpc_mqstates[12]},
{0x5401, 0, &jpc_mqstates[16], &jpc_mqstates[28]},
{0x5401, 1, &jpc_mqstates[17], &jpc_mqstates[29]},
{0x4801, 0, &jpc_mqstates[18], &jpc_mqstates[28]},
{0x4801, 1, &jpc_mqstates[19], &jpc_mqstates[29]},
{0x3801, 0, &jpc_mqstates[20], &jpc_mqstates[28]},
{0x3801, 1, &jpc_mqstates[21], &jpc_mqstates[29]},
{0x3001, 0, &jpc_mqstates[22], &jpc_mqstates[34]},
{0x3001, 1, &jpc_mqstates[23], &jpc_mqstates[35]},
{0x2401, 0, &jpc_mqstates[24], &jpc_mqstates[36]},
{0x2401, 1, &jpc_mqstates[25], &jpc_mqstates[37]},
{0x1c01, 0, &jpc_mqstates[26], &jpc_mqstates[40]},
{0x1c01, 1, &jpc_mqstates[27], &jpc_mqstates[41]},
{0x1601, 0, &jpc_mqstates[58], &jpc_mqstates[42]},
{0x1601, 1, &jpc_mqstates[59], &jpc_mqstates[43]},
{0x5601, 0, &jpc_mqstates[30], &jpc_mqstates[29]},
{0x5601, 1, &jpc_mqstates[31], &jpc_mqstates[28]},
{0x5401, 0, &jpc_mqstates[32], &jpc_mqstates[28]},
{0x5401, 1, &jpc_mqstates[33], &jpc_mqstates[29]},
{0x5101, 0, &jpc_mqstates[34], &jpc_mqstates[30]},
{0x5101, 1, &jpc_mqstates[35], &jpc_mqstates[31]},
{0x4801, 0, &jpc_mqstates[36], &jpc_mqstates[32]},
{0x4801, 1, &jpc_mqstates[37], &jpc_mqstates[33]},
{0x3801, 0, &jpc_mqstates[38], &jpc_mqstates[34]},
{0x3801, 1, &jpc_mqstates[39], &jpc_mqstates[35]},
{0x3401, 0, &jpc_mqstates[40], &jpc_mqstates[36]},
{0x3401, 1, &jpc_mqstates[41], &jpc_mqstates[37]},
{0x3001, 0, &jpc_mqstates[42], &jpc_mqstates[38]},
{0x3001, 1, &jpc_mqstates[43], &jpc_mqstates[39]},
{0x2801, 0, &jpc_mqstates[44], &jpc_mqstates[38]},
{0x2801, 1, &jpc_mqstates[45], &jpc_mqstates[39]},
{0x2401, 0, &jpc_mqstates[46], &jpc_mqstates[40]},
{0x2401, 1, &jpc_mqstates[47], &jpc_mqstates[41]},
{0x2201, 0, &jpc_mqstates[48], &jpc_mqstates[42]},
{0x2201, 1, &jpc_mqstates[49], &jpc_mqstates[43]},
{0x1c01, 0, &jpc_mqstates[50], &jpc_mqstates[44]},
{0x1c01, 1, &jpc_mqstates[51], &jpc_mqstates[45]},
{0x1801, 0, &jpc_mqstates[52], &jpc_mqstates[46]},
{0x1801, 1, &jpc_mqstates[53], &jpc_mqstates[47]},
{0x1601, 0, &jpc_mqstates[54], &jpc_mqstates[48]},
{0x1601, 1, &jpc_mqstates[55], &jpc_mqstates[49]},
{0x1401, 0, &jpc_mqstates[56], &jpc_mqstates[50]},
{0x1401, 1, &jpc_mqstates[57], &jpc_mqstates[51]},
{0x1201, 0, &jpc_mqstates[58], &jpc_mqstates[52]},
{0x1201, 1, &jpc_mqstates[59], &jpc_mqstates[53]},
{0x1101, 0, &jpc_mqstates[60], &jpc_mqstates[54]},
{0x1101, 1, &jpc_mqstates[61], &jpc_mqstates[55]},
{0x0ac1, 0, &jpc_mqstates[62], &jpc_mqstates[56]},
{0x0ac1, 1, &jpc_mqstates[63], &jpc_mqstates[57]},
{0x09c1, 0, &jpc_mqstates[64], &jpc_mqstates[58]},
{0x09c1, 1, &jpc_mqstates[65], &jpc_mqstates[59]},
{0x08a1, 0, &jpc_mqstates[66], &jpc_mqstates[60]},
{0x08a1, 1, &jpc_mqstates[67], &jpc_mqstates[61]},
{0x0521, 0, &jpc_mqstates[68], &jpc_mqstates[62]},
{0x0521, 1, &jpc_mqstates[69], &jpc_mqstates[63]},
{0x0441, 0, &jpc_mqstates[70], &jpc_mqstates[64]},
{0x0441, 1, &jpc_mqstates[71], &jpc_mqstates[65]},
{0x02a1, 0, &jpc_mqstates[72], &jpc_mqstates[66]},
{0x02a1, 1, &jpc_mqstates[73], &jpc_mqstates[67]},
{0x0221, 0, &jpc_mqstates[74], &jpc_mqstates[68]},
{0x0221, 1, &jpc_mqstates[75], &jpc_mqstates[69]},
{0x0141, 0, &jpc_mqstates[76], &jpc_mqstates[70]},
{0x0141, 1, &jpc_mqstates[77], &jpc_mqstates[71]},
{0x0111, 0, &jpc_mqstates[78], &jpc_mqstates[72]},
{0x0111, 1, &jpc_mqstates[79], &jpc_mqstates[73]},
{0x0085, 0, &jpc_mqstates[80], &jpc_mqstates[74]},
{0x0085, 1, &jpc_mqstates[81], &jpc_mqstates[75]},
{0x0049, 0, &jpc_mqstates[82], &jpc_mqstates[76]},
{0x0049, 1, &jpc_mqstates[83], &jpc_mqstates[77]},
{0x0025, 0, &jpc_mqstates[84], &jpc_mqstates[78]},
{0x0025, 1, &jpc_mqstates[85], &jpc_mqstates[79]},
{0x0015, 0, &jpc_mqstates[86], &jpc_mqstates[80]},
{0x0015, 1, &jpc_mqstates[87], &jpc_mqstates[81]},
{0x0009, 0, &jpc_mqstates[88], &jpc_mqstates[82]},
{0x0009, 1, &jpc_mqstates[89], &jpc_mqstates[83]},
{0x0005, 0, &jpc_mqstates[90], &jpc_mqstates[84]},
{0x0005, 1, &jpc_mqstates[91], &jpc_mqstates[85]},
{0x0001, 0, &jpc_mqstates[90], &jpc_mqstates[86]},
{0x0001, 1, &jpc_mqstates[91], &jpc_mqstates[87]},
{0x5601, 0, &jpc_mqstates[92], &jpc_mqstates[92]},
{0x5601, 1, &jpc_mqstates[93], &jpc_mqstates[93]},
};
+20 -20
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -86,11 +86,11 @@
typedef struct {
/* The most probable symbol (MPS). */
int mps;
/* The most probable symbol (MPS). */
int mps;
/* The state index. */
int_fast16_t ind;
/* The state index. */
int_fast16_t ind;
} jpc_mqctx_t;
@@ -100,17 +100,17 @@ typedef struct {
typedef struct jpc_mqstate_s {
/* The Qe value. */
uint_fast16_t qeval;
/* The Qe value. */
uint_fast16_t qeval;
/* The MPS. */
int mps;
/* The MPS. */
int mps;
/* The NMPS state. */
struct jpc_mqstate_s *nmps;
/* The NMPS state. */
struct jpc_mqstate_s *nmps;
/* The NLPS state. */
struct jpc_mqstate_s *nlps;
/* The NLPS state. */
struct jpc_mqstate_s *nlps;
} jpc_mqstate_t;
+125 -125
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -88,7 +88,7 @@
#if defined(DEBUG)
#define MQDEC_CALL(n, x) \
((jas_getdbglevel() >= (n)) ? ((void)(x)) : ((void)0))
((jas_getdbglevel() >= (n)) ? ((void)(x)) : ((void)0))
#else
#define MQDEC_CALL(n, x)
#endif
@@ -106,49 +106,49 @@ static void jpc_mqdec_bytein(jpc_mqdec_t *mqdec);
/* Create a MQ decoder. */
jpc_mqdec_t *jpc_mqdec_create(int maxctxs, jas_stream_t *in)
{
jpc_mqdec_t *mqdec;
jpc_mqdec_t *mqdec;
/* There must be at least one context. */
assert(maxctxs > 0);
/* There must be at least one context. */
assert(maxctxs > 0);
/* Allocate memory for the MQ decoder. */
if (!(mqdec = jas_malloc(sizeof(jpc_mqdec_t)))) {
goto error;
}
mqdec->in = in;
mqdec->maxctxs = maxctxs;
/* Allocate memory for the per-context state information. */
if (!(mqdec->ctxs = jas_malloc(mqdec->maxctxs * sizeof(jpc_mqstate_t *)))) {
goto error;
}
/* Set the current context to the first context. */
mqdec->curctx = mqdec->ctxs;
/* Allocate memory for the MQ decoder. */
if (!(mqdec = jas_malloc(sizeof(jpc_mqdec_t)))) {
goto error;
}
mqdec->in = in;
mqdec->maxctxs = maxctxs;
/* Allocate memory for the per-context state information. */
if (!(mqdec->ctxs = jas_alloc2(mqdec->maxctxs, sizeof(jpc_mqstate_t *)))) {
goto error;
}
/* Set the current context to the first context. */
mqdec->curctx = mqdec->ctxs;
/* If an input stream has been associated with the MQ decoder,
initialize the decoder state from the stream. */
if (mqdec->in) {
jpc_mqdec_init(mqdec);
}
/* Initialize the per-context state information. */
jpc_mqdec_setctxs(mqdec, 0, 0);
/* If an input stream has been associated with the MQ decoder,
initialize the decoder state from the stream. */
if (mqdec->in) {
jpc_mqdec_init(mqdec);
}
/* Initialize the per-context state information. */
jpc_mqdec_setctxs(mqdec, 0, 0);
return mqdec;
return mqdec;
error:
/* Oops... Something has gone wrong. */
if (mqdec) {
jpc_mqdec_destroy(mqdec);
}
return 0;
/* Oops... Something has gone wrong. */
if (mqdec) {
jpc_mqdec_destroy(mqdec);
}
return 0;
}
/* Destroy a MQ decoder. */
void jpc_mqdec_destroy(jpc_mqdec_t *mqdec)
{
if (mqdec->ctxs) {
jas_free(mqdec->ctxs);
}
jas_free(mqdec);
if (mqdec->ctxs) {
jas_free(mqdec->ctxs);
}
jas_free(mqdec);
}
/******************************************************************************\
@@ -159,59 +159,59 @@ void jpc_mqdec_destroy(jpc_mqdec_t *mqdec)
void jpc_mqdec_init(jpc_mqdec_t *mqdec)
{
int c;
int c;
mqdec->eof = 0;
mqdec->creg = 0;
/* Get the next byte from the input stream. */
if ((c = jas_stream_getc(mqdec->in)) == EOF) {
/* We have encountered an I/O error or EOF. */
c = 0xff;
mqdec->eof = 1;
}
mqdec->inbuffer = c;
mqdec->creg += mqdec->inbuffer << 16;
jpc_mqdec_bytein(mqdec);
mqdec->creg <<= 7;
mqdec->ctreg -= 7;
mqdec->areg = 0x8000;
mqdec->eof = 0;
mqdec->creg = 0;
/* Get the next byte from the input stream. */
if ((c = jas_stream_getc(mqdec->in)) == EOF) {
/* We have encountered an I/O error or EOF. */
c = 0xff;
mqdec->eof = 1;
}
mqdec->inbuffer = c;
mqdec->creg += mqdec->inbuffer << 16;
jpc_mqdec_bytein(mqdec);
mqdec->creg <<= 7;
mqdec->ctreg -= 7;
mqdec->areg = 0x8000;
}
/* Set the input stream for a MQ decoder. */
void jpc_mqdec_setinput(jpc_mqdec_t *mqdec, jas_stream_t *in)
{
mqdec->in = in;
mqdec->in = in;
}
/* Initialize one or more contexts. */
void jpc_mqdec_setctxs(jpc_mqdec_t *mqdec, int numctxs, jpc_mqctx_t *ctxs)
{
jpc_mqstate_t **ctx;
int n;
jpc_mqstate_t **ctx;
int n;
ctx = mqdec->ctxs;
n = JAS_MIN(mqdec->maxctxs, numctxs);
while (--n >= 0) {
*ctx = &jpc_mqstates[2 * ctxs->ind + ctxs->mps];
++ctx;
++ctxs;
}
n = mqdec->maxctxs - numctxs;
while (--n >= 0) {
*ctx = &jpc_mqstates[0];
++ctx;
}
ctx = mqdec->ctxs;
n = JAS_MIN(mqdec->maxctxs, numctxs);
while (--n >= 0) {
*ctx = &jpc_mqstates[2 * ctxs->ind + ctxs->mps];
++ctx;
++ctxs;
}
n = mqdec->maxctxs - numctxs;
while (--n >= 0) {
*ctx = &jpc_mqstates[0];
++ctx;
}
}
/* Initialize a context. */
void jpc_mqdec_setctx(jpc_mqdec_t *mqdec, int ctxno, jpc_mqctx_t *ctx)
{
jpc_mqstate_t **ctxi;
ctxi = &mqdec->ctxs[ctxno];
*ctxi = &jpc_mqstates[2 * ctx->ind + ctx->mps];
jpc_mqstate_t **ctxi;
ctxi = &mqdec->ctxs[ctxno];
*ctxi = &jpc_mqstates[2 * ctx->ind + ctx->mps];
}
/******************************************************************************\
@@ -222,36 +222,36 @@ void jpc_mqdec_setctx(jpc_mqdec_t *mqdec, int ctxno, jpc_mqctx_t *ctx)
int jpc_mqdec_getbit_func(register jpc_mqdec_t *mqdec)
{
int bit;
JAS_DBGLOG(100, ("jpc_mqdec_getbit_func(%p)\n", mqdec));
MQDEC_CALL(100, jpc_mqdec_dump(mqdec, stderr));
bit = jpc_mqdec_getbit_macro(mqdec);
MQDEC_CALL(100, jpc_mqdec_dump(mqdec, stderr));
JAS_DBGLOG(100, ("ctx = %d, decoded %d\n", mqdec->curctx -
mqdec->ctxs, bit));
return bit;
int bit;
JAS_DBGLOG(100, ("jpc_mqdec_getbit_func(%p)\n", mqdec));
MQDEC_CALL(100, jpc_mqdec_dump(mqdec, stderr));
bit = jpc_mqdec_getbit_macro(mqdec);
MQDEC_CALL(100, jpc_mqdec_dump(mqdec, stderr));
JAS_DBGLOG(100, ("ctx = %d, decoded %d\n", mqdec->curctx -
mqdec->ctxs, bit));
return bit;
}
/* Apply MPS_EXCHANGE algorithm (with RENORMD). */
int jpc_mqdec_mpsexchrenormd(register jpc_mqdec_t *mqdec)
{
int ret;
register jpc_mqstate_t *state = *mqdec->curctx;
jpc_mqdec_mpsexchange(mqdec->areg, state->qeval, mqdec->curctx, ret);
jpc_mqdec_renormd(mqdec->areg, mqdec->creg, mqdec->ctreg, mqdec->in,
mqdec->eof, mqdec->inbuffer);
return ret;
int ret;
register jpc_mqstate_t *state = *mqdec->curctx;
jpc_mqdec_mpsexchange(mqdec->areg, state->qeval, mqdec->curctx, ret);
jpc_mqdec_renormd(mqdec->areg, mqdec->creg, mqdec->ctreg, mqdec->in,
mqdec->eof, mqdec->inbuffer);
return ret;
}
/* Apply LPS_EXCHANGE algorithm (with RENORMD). */
int jpc_mqdec_lpsexchrenormd(register jpc_mqdec_t *mqdec)
{
int ret;
register jpc_mqstate_t *state = *mqdec->curctx;
jpc_mqdec_lpsexchange(mqdec->areg, state->qeval, mqdec->curctx, ret);
jpc_mqdec_renormd(mqdec->areg, mqdec->creg, mqdec->ctreg, mqdec->in,
mqdec->eof, mqdec->inbuffer);
return ret;
int ret;
register jpc_mqstate_t *state = *mqdec->curctx;
jpc_mqdec_lpsexchange(mqdec->areg, state->qeval, mqdec->curctx, ret);
jpc_mqdec_renormd(mqdec->areg, mqdec->creg, mqdec->ctreg, mqdec->in,
mqdec->eof, mqdec->inbuffer);
return ret;
}
/******************************************************************************\
@@ -261,32 +261,32 @@ int jpc_mqdec_lpsexchrenormd(register jpc_mqdec_t *mqdec)
/* Apply the BYTEIN algorithm. */
static void jpc_mqdec_bytein(jpc_mqdec_t *mqdec)
{
int c;
unsigned char prevbuf;
int c;
unsigned char prevbuf;
if (!mqdec->eof) {
if ((c = jas_stream_getc(mqdec->in)) == EOF) {
mqdec->eof = 1;
c = 0xff;
}
prevbuf = mqdec->inbuffer;
mqdec->inbuffer = c;
if (prevbuf == 0xff) {
if (c > 0x8f) {
mqdec->creg += 0xff00;
mqdec->ctreg = 8;
} else {
mqdec->creg += c << 9;
mqdec->ctreg = 7;
}
} else {
mqdec->creg += c << 8;
mqdec->ctreg = 8;
}
} else {
mqdec->creg += 0xff00;
mqdec->ctreg = 8;
}
if (!mqdec->eof) {
if ((c = jas_stream_getc(mqdec->in)) == EOF) {
mqdec->eof = 1;
c = 0xff;
}
prevbuf = mqdec->inbuffer;
mqdec->inbuffer = c;
if (prevbuf == 0xff) {
if (c > 0x8f) {
mqdec->creg += 0xff00;
mqdec->ctreg = 8;
} else {
mqdec->creg += c << 9;
mqdec->ctreg = 7;
}
} else {
mqdec->creg += c << 8;
mqdec->ctreg = 8;
}
} else {
mqdec->creg += 0xff00;
mqdec->ctreg = 8;
}
}
/******************************************************************************\
@@ -297,10 +297,10 @@ static void jpc_mqdec_bytein(jpc_mqdec_t *mqdec)
void jpc_mqdec_dump(jpc_mqdec_t *mqdec, FILE *out)
{
fprintf(out, "MQDEC A = %08lx, C = %08lx, CT=%08lx, ",
(unsigned long) mqdec->areg, (unsigned long) mqdec->creg,
(unsigned long) mqdec->ctreg);
fprintf(out, "CTX = %d, ", (int)(mqdec->curctx - mqdec->ctxs));
fprintf(out, "IND %d, MPS %d, QEVAL %x\n", (int)(*mqdec->curctx -
jpc_mqstates), (int)(*mqdec->curctx)->mps, (int)(*mqdec->curctx)->qeval);
fprintf(out, "MQDEC A = %08lx, C = %08lx, CT=%08lx, ",
(unsigned long) mqdec->areg, (unsigned long) mqdec->creg,
(unsigned long) mqdec->ctreg);
fprintf(out, "CTX = %d, ", (int)(mqdec->curctx - mqdec->ctxs));
fprintf(out, "IND %d, MPS %d, QEVAL %x\n", (int)(*mqdec->curctx -
jpc_mqstates), (int)(*mqdec->curctx)->mps, (int)(*mqdec->curctx)->qeval);
}
+92 -92
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -87,32 +87,32 @@
typedef struct {
/* The C register. */
uint_fast32_t creg;
/* The C register. */
uint_fast32_t creg;
/* The A register. */
uint_fast32_t areg;
/* The A register. */
uint_fast32_t areg;
/* The CT register. */
uint_fast32_t ctreg;
/* The CT register. */
uint_fast32_t ctreg;
/* The current context. */
jpc_mqstate_t **curctx;
/* The current context. */
jpc_mqstate_t **curctx;
/* The per-context information. */
jpc_mqstate_t **ctxs;
/* The per-context information. */
jpc_mqstate_t **ctxs;
/* The maximum number of contexts. */
int maxctxs;
/* The maximum number of contexts. */
int maxctxs;
/* The stream from which to read data. */
jas_stream_t *in;
/* The stream from which to read data. */
jas_stream_t *in;
/* The last character read. */
uchar inbuffer;
/* The last character read. */
uchar inbuffer;
/* The EOF indicator. */
int eof;
/* The EOF indicator. */
int eof;
} jpc_mqdec_t;
@@ -142,7 +142,7 @@ void jpc_mqdec_init(jpc_mqdec_t *dec);
/* Set the current context for a MQ decoder. */
#define jpc_mqdec_setcurctx(dec, ctxno) \
((mqdec)->curctx = &(mqdec)->ctxs[ctxno]);
((mqdec)->curctx = &(mqdec)->ctxs[ctxno]);
/* Set the state information for a particular context of a MQ decoder. */
void jpc_mqdec_setctx(jpc_mqdec_t *dec, int ctxno, jpc_mqctx_t *ctx);
@@ -157,19 +157,19 @@ void jpc_mqdec_setctxs(jpc_mqdec_t *dec, int numctxs, jpc_mqctx_t *ctxs);
/* Decode a symbol. */
#if !defined(DEBUG)
#define jpc_mqdec_getbit(dec) \
jpc_mqdec_getbit_macro(dec)
jpc_mqdec_getbit_macro(dec)
#else
#define jpc_mqdec_getbit(dec) \
jpc_mqdec_getbit_func(dec)
jpc_mqdec_getbit_func(dec)
#endif
/* Decode a symbol (assuming an unskewed probability distribution). */
#if !defined(DEBUG)
#define jpc_mqdec_getbitnoskew(dec) \
jpc_mqdec_getbit_macro(dec)
jpc_mqdec_getbit_macro(dec)
#else
#define jpc_mqdec_getbitnoskew(dec) \
jpc_mqdec_getbit_func(dec)
jpc_mqdec_getbit_func(dec)
#endif
/******************************************************************************\
@@ -186,82 +186,82 @@ void jpc_mqdec_dump(jpc_mqdec_t *dec, FILE *out);
\******************************************************************************/
#define jpc_mqdec_getbit_macro(dec) \
((((dec)->areg -= (*(dec)->curctx)->qeval), \
(dec)->creg >> 16 >= (*(dec)->curctx)->qeval) ? \
((((dec)->creg -= (*(dec)->curctx)->qeval << 16), \
(dec)->areg & 0x8000) ? (*(dec)->curctx)->mps : \
jpc_mqdec_mpsexchrenormd(dec)) : \
jpc_mqdec_lpsexchrenormd(dec))
((((dec)->areg -= (*(dec)->curctx)->qeval), \
(dec)->creg >> 16 >= (*(dec)->curctx)->qeval) ? \
((((dec)->creg -= (*(dec)->curctx)->qeval << 16), \
(dec)->areg & 0x8000) ? (*(dec)->curctx)->mps : \
jpc_mqdec_mpsexchrenormd(dec)) : \
jpc_mqdec_lpsexchrenormd(dec))
#define jpc_mqdec_mpsexchange(areg, delta, curctx, bit) \
{ \
if ((areg) < (delta)) { \
register jpc_mqstate_t *state = *(curctx); \
/* LPS decoded. */ \
(bit) = state->mps ^ 1; \
*(curctx) = state->nlps; \
} else { \
register jpc_mqstate_t *state = *(curctx); \
/* MPS decoded. */ \
(bit) = state->mps; \
*(curctx) = state->nmps; \
} \
if ((areg) < (delta)) { \
register jpc_mqstate_t *state = *(curctx); \
/* LPS decoded. */ \
(bit) = state->mps ^ 1; \
*(curctx) = state->nlps; \
} else { \
register jpc_mqstate_t *state = *(curctx); \
/* MPS decoded. */ \
(bit) = state->mps; \
*(curctx) = state->nmps; \
} \
}
#define jpc_mqdec_lpsexchange(areg, delta, curctx, bit) \
{ \
if ((areg) >= (delta)) { \
register jpc_mqstate_t *state = *(curctx); \
(areg) = (delta); \
(bit) = state->mps ^ 1; \
*(curctx) = state->nlps; \
} else { \
register jpc_mqstate_t *state = *(curctx); \
(areg) = (delta); \
(bit) = state->mps; \
*(curctx) = state->nmps; \
} \
if ((areg) >= (delta)) { \
register jpc_mqstate_t *state = *(curctx); \
(areg) = (delta); \
(bit) = state->mps ^ 1; \
*(curctx) = state->nlps; \
} else { \
register jpc_mqstate_t *state = *(curctx); \
(areg) = (delta); \
(bit) = state->mps; \
*(curctx) = state->nmps; \
} \
}
#define jpc_mqdec_renormd(areg, creg, ctreg, in, eof, inbuf) \
{ \
do { \
if (!(ctreg)) { \
jpc_mqdec_bytein2(creg, ctreg, in, eof, inbuf); \
} \
(areg) <<= 1; \
(creg) <<= 1; \
--(ctreg); \
} while (!((areg) & 0x8000)); \
do { \
if (!(ctreg)) { \
jpc_mqdec_bytein2(creg, ctreg, in, eof, inbuf); \
} \
(areg) <<= 1; \
(creg) <<= 1; \
--(ctreg); \
} while (!((areg) & 0x8000)); \
}
#define jpc_mqdec_bytein2(creg, ctreg, in, eof, inbuf) \
{ \
int c; \
unsigned char prevbuf; \
if (!(eof)) { \
if ((c = jas_stream_getc(in)) == EOF) { \
(eof) = 1; \
c = 0xff; \
} \
prevbuf = (inbuf); \
(inbuf) = c; \
if (prevbuf == 0xff) { \
if (c > 0x8f) { \
(creg) += 0xff00; \
(ctreg) = 8; \
} else { \
(creg) += c << 9; \
(ctreg) = 7; \
} \
} else { \
(creg) += c << 8; \
(ctreg) = 8; \
} \
} else { \
(creg) += 0xff00; \
(ctreg) = 8; \
} \
int c; \
unsigned char prevbuf; \
if (!(eof)) { \
if ((c = jas_stream_getc(in)) == EOF) { \
(eof) = 1; \
c = 0xff; \
} \
prevbuf = (inbuf); \
(inbuf) = c; \
if (prevbuf == 0xff) { \
if (c > 0x8f) { \
(creg) += 0xff00; \
(ctreg) = 8; \
} else { \
(creg) += c << 9; \
(ctreg) = 7; \
} \
} else { \
(creg) += c << 8; \
(ctreg) = 8; \
} \
} else { \
(creg) += 0xff00; \
(ctreg) = 8; \
} \
}
int jpc_mqdec_getbit_func(jpc_mqdec_t *dec);
+191 -191
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -87,90 +87,90 @@
#if defined(DEBUG)
#define JPC_MQENC_CALL(n, x) \
((jas_getdbglevel() >= (n)) ? ((void)(x)) : ((void)0))
((jas_getdbglevel() >= (n)) ? ((void)(x)) : ((void)0))
#else
#define JPC_MQENC_CALL(n, x)
#endif
#define jpc_mqenc_codemps9(areg, creg, ctreg, curctx, enc) \
{ \
jpc_mqstate_t *state = *(curctx); \
(areg) -= state->qeval; \
if (!((areg) & 0x8000)) { \
if ((areg) < state->qeval) { \
(areg) = state->qeval; \
} else { \
(creg) += state->qeval; \
} \
*(curctx) = state->nmps; \
jpc_mqenc_renorme((areg), (creg), (ctreg), (enc)); \
} else { \
(creg) += state->qeval; \
} \
jpc_mqstate_t *state = *(curctx); \
(areg) -= state->qeval; \
if (!((areg) & 0x8000)) { \
if ((areg) < state->qeval) { \
(areg) = state->qeval; \
} else { \
(creg) += state->qeval; \
} \
*(curctx) = state->nmps; \
jpc_mqenc_renorme((areg), (creg), (ctreg), (enc)); \
} else { \
(creg) += state->qeval; \
} \
}
#define jpc_mqenc_codelps2(areg, creg, ctreg, curctx, enc) \
{ \
jpc_mqstate_t *state = *(curctx); \
(areg) -= state->qeval; \
if ((areg) < state->qeval) { \
(creg) += state->qeval; \
} else { \
(areg) = state->qeval; \
} \
*(curctx) = state->nlps; \
jpc_mqenc_renorme((areg), (creg), (ctreg), (enc)); \
jpc_mqstate_t *state = *(curctx); \
(areg) -= state->qeval; \
if ((areg) < state->qeval) { \
(creg) += state->qeval; \
} else { \
(areg) = state->qeval; \
} \
*(curctx) = state->nlps; \
jpc_mqenc_renorme((areg), (creg), (ctreg), (enc)); \
}
#define jpc_mqenc_renorme(areg, creg, ctreg, enc) \
{ \
do { \
(areg) <<= 1; \
(creg) <<= 1; \
if (!--(ctreg)) { \
jpc_mqenc_byteout((areg), (creg), (ctreg), (enc)); \
} \
} while (!((areg) & 0x8000)); \
do { \
(areg) <<= 1; \
(creg) <<= 1; \
if (!--(ctreg)) { \
jpc_mqenc_byteout((areg), (creg), (ctreg), (enc)); \
} \
} while (!((areg) & 0x8000)); \
}
#define jpc_mqenc_byteout(areg, creg, ctreg, enc) \
{ \
if ((enc)->outbuf != 0xff) { \
if ((creg) & 0x8000000) { \
if (++((enc)->outbuf) == 0xff) { \
(creg) &= 0x7ffffff; \
jpc_mqenc_byteout2(enc); \
enc->outbuf = ((creg) >> 20) & 0xff; \
(creg) &= 0xfffff; \
(ctreg) = 7; \
} else { \
jpc_mqenc_byteout2(enc); \
enc->outbuf = ((creg) >> 19) & 0xff; \
(creg) &= 0x7ffff; \
(ctreg) = 8; \
} \
} else { \
jpc_mqenc_byteout2(enc); \
(enc)->outbuf = ((creg) >> 19) & 0xff; \
(creg) &= 0x7ffff; \
(ctreg) = 8; \
} \
} else { \
jpc_mqenc_byteout2(enc); \
(enc)->outbuf = ((creg) >> 20) & 0xff; \
(creg) &= 0xfffff; \
(ctreg) = 7; \
} \
if ((enc)->outbuf != 0xff) { \
if ((creg) & 0x8000000) { \
if (++((enc)->outbuf) == 0xff) { \
(creg) &= 0x7ffffff; \
jpc_mqenc_byteout2(enc); \
enc->outbuf = ((creg) >> 20) & 0xff; \
(creg) &= 0xfffff; \
(ctreg) = 7; \
} else { \
jpc_mqenc_byteout2(enc); \
enc->outbuf = ((creg) >> 19) & 0xff; \
(creg) &= 0x7ffff; \
(ctreg) = 8; \
} \
} else { \
jpc_mqenc_byteout2(enc); \
(enc)->outbuf = ((creg) >> 19) & 0xff; \
(creg) &= 0x7ffff; \
(ctreg) = 8; \
} \
} else { \
jpc_mqenc_byteout2(enc); \
(enc)->outbuf = ((creg) >> 20) & 0xff; \
(creg) &= 0xfffff; \
(ctreg) = 7; \
} \
}
#define jpc_mqenc_byteout2(enc) \
{ \
if (enc->outbuf >= 0) { \
if (jas_stream_putc(enc->out, (unsigned char)enc->outbuf) == EOF) { \
enc->err |= 1; \
} \
} \
enc->lastbyte = enc->outbuf; \
if (enc->outbuf >= 0) { \
if (jas_stream_putc(enc->out, (unsigned char)enc->outbuf) == EOF) { \
enc->err |= 1; \
} \
} \
enc->lastbyte = enc->outbuf; \
}
/******************************************************************************\
@@ -187,45 +187,45 @@ static void jpc_mqenc_setbits(jpc_mqenc_t *mqenc);
jpc_mqenc_t *jpc_mqenc_create(int maxctxs, jas_stream_t *out)
{
jpc_mqenc_t *mqenc;
jpc_mqenc_t *mqenc;
/* Allocate memory for the MQ encoder. */
if (!(mqenc = jas_malloc(sizeof(jpc_mqenc_t)))) {
goto error;
}
mqenc->out = out;
mqenc->maxctxs = maxctxs;
/* Allocate memory for the MQ encoder. */
if (!(mqenc = jas_malloc(sizeof(jpc_mqenc_t)))) {
goto error;
}
mqenc->out = out;
mqenc->maxctxs = maxctxs;
/* Allocate memory for the per-context state information. */
if (!(mqenc->ctxs = jas_malloc(mqenc->maxctxs * sizeof(jpc_mqstate_t *)))) {
goto error;
}
/* Allocate memory for the per-context state information. */
if (!(mqenc->ctxs = jas_alloc2(mqenc->maxctxs, sizeof(jpc_mqstate_t *)))) {
goto error;
}
/* Set the current context to the first one. */
mqenc->curctx = mqenc->ctxs;
/* Set the current context to the first one. */
mqenc->curctx = mqenc->ctxs;
jpc_mqenc_init(mqenc);
jpc_mqenc_init(mqenc);
/* Initialize the per-context state information to something sane. */
jpc_mqenc_setctxs(mqenc, 0, 0);
/* Initialize the per-context state information to something sane. */
jpc_mqenc_setctxs(mqenc, 0, 0);
return mqenc;
return mqenc;
error:
if (mqenc) {
jpc_mqenc_destroy(mqenc);
}
return 0;
if (mqenc) {
jpc_mqenc_destroy(mqenc);
}
return 0;
}
/* Destroy a MQ encoder. */
void jpc_mqenc_destroy(jpc_mqenc_t *mqenc)
{
if (mqenc->ctxs) {
jas_free(mqenc->ctxs);
}
jas_free(mqenc);
if (mqenc->ctxs) {
jas_free(mqenc->ctxs);
}
jas_free(mqenc);
}
/******************************************************************************\
@@ -236,33 +236,33 @@ void jpc_mqenc_destroy(jpc_mqenc_t *mqenc)
void jpc_mqenc_init(jpc_mqenc_t *mqenc)
{
mqenc->areg = 0x8000;
mqenc->outbuf = -1;
mqenc->creg = 0;
mqenc->ctreg = 12;
mqenc->lastbyte = -1;
mqenc->err = 0;
mqenc->areg = 0x8000;
mqenc->outbuf = -1;
mqenc->creg = 0;
mqenc->ctreg = 12;
mqenc->lastbyte = -1;
mqenc->err = 0;
}
/* Initialize one or more contexts. */
void jpc_mqenc_setctxs(jpc_mqenc_t *mqenc, int numctxs, jpc_mqctx_t *ctxs)
{
jpc_mqstate_t **ctx;
int n;
jpc_mqstate_t **ctx;
int n;
ctx = mqenc->ctxs;
n = JAS_MIN(mqenc->maxctxs, numctxs);
while (--n >= 0) {
*ctx = &jpc_mqstates[2 * ctxs->ind + ctxs->mps];
++ctx;
++ctxs;
}
n = mqenc->maxctxs - numctxs;
while (--n >= 0) {
*ctx = &jpc_mqstates[0];
++ctx;
}
ctx = mqenc->ctxs;
n = JAS_MIN(mqenc->maxctxs, numctxs);
while (--n >= 0) {
*ctx = &jpc_mqstates[2 * ctxs->ind + ctxs->mps];
++ctx;
++ctxs;
}
n = mqenc->maxctxs - numctxs;
while (--n >= 0) {
*ctx = &jpc_mqstates[0];
++ctx;
}
}
@@ -270,10 +270,10 @@ void jpc_mqenc_setctxs(jpc_mqenc_t *mqenc, int numctxs, jpc_mqctx_t *ctxs)
void jpc_mqenc_getstate(jpc_mqenc_t *mqenc, jpc_mqencstate_t *state)
{
state->areg = mqenc->areg;
state->creg = mqenc->creg;
state->ctreg = mqenc->ctreg;
state->lastbyte = mqenc->lastbyte;
state->areg = mqenc->areg;
state->creg = mqenc->creg;
state->ctreg = mqenc->ctreg;
state->lastbyte = mqenc->lastbyte;
}
/******************************************************************************\
@@ -284,49 +284,49 @@ void jpc_mqenc_getstate(jpc_mqenc_t *mqenc, jpc_mqencstate_t *state)
int jpc_mqenc_putbit_func(jpc_mqenc_t *mqenc, int bit)
{
const jpc_mqstate_t *state;
JAS_DBGLOG(100, ("jpc_mqenc_putbit(%p, %d)\n", mqenc, bit));
JPC_MQENC_CALL(100, jpc_mqenc_dump(mqenc, stderr));
const jpc_mqstate_t *state;
JAS_DBGLOG(100, ("jpc_mqenc_putbit(%p, %d)\n", mqenc, bit));
JPC_MQENC_CALL(100, jpc_mqenc_dump(mqenc, stderr));
state = *(mqenc->curctx);
state = *(mqenc->curctx);
if (state->mps == bit) {
/* Apply the CODEMPS algorithm as defined in the standard. */
mqenc->areg -= state->qeval;
if (!(mqenc->areg & 0x8000)) {
jpc_mqenc_codemps2(mqenc);
} else {
mqenc->creg += state->qeval;
}
} else {
/* Apply the CODELPS algorithm as defined in the standard. */
jpc_mqenc_codelps2(mqenc->areg, mqenc->creg, mqenc->ctreg, mqenc->curctx, mqenc);
}
if (state->mps == bit) {
/* Apply the CODEMPS algorithm as defined in the standard. */
mqenc->areg -= state->qeval;
if (!(mqenc->areg & 0x8000)) {
jpc_mqenc_codemps2(mqenc);
} else {
mqenc->creg += state->qeval;
}
} else {
/* Apply the CODELPS algorithm as defined in the standard. */
jpc_mqenc_codelps2(mqenc->areg, mqenc->creg, mqenc->ctreg, mqenc->curctx, mqenc);
}
return jpc_mqenc_error(mqenc) ? (-1) : 0;
return jpc_mqenc_error(mqenc) ? (-1) : 0;
}
int jpc_mqenc_codemps2(jpc_mqenc_t *mqenc)
{
/* Note: This function only performs part of the work associated with
the CODEMPS algorithm from the standard. Some of the work is also
performed by the caller. */
/* Note: This function only performs part of the work associated with
the CODEMPS algorithm from the standard. Some of the work is also
performed by the caller. */
jpc_mqstate_t *state = *(mqenc->curctx);
if (mqenc->areg < state->qeval) {
mqenc->areg = state->qeval;
} else {
mqenc->creg += state->qeval;
}
*mqenc->curctx = state->nmps;
jpc_mqenc_renorme(mqenc->areg, mqenc->creg, mqenc->ctreg, mqenc);
return jpc_mqenc_error(mqenc) ? (-1) : 0;
jpc_mqstate_t *state = *(mqenc->curctx);
if (mqenc->areg < state->qeval) {
mqenc->areg = state->qeval;
} else {
mqenc->creg += state->qeval;
}
*mqenc->curctx = state->nmps;
jpc_mqenc_renorme(mqenc->areg, mqenc->creg, mqenc->ctreg, mqenc);
return jpc_mqenc_error(mqenc) ? (-1) : 0;
}
int jpc_mqenc_codelps(jpc_mqenc_t *mqenc)
{
jpc_mqenc_codelps2(mqenc->areg, mqenc->creg, mqenc->ctreg, mqenc->curctx, mqenc);
return jpc_mqenc_error(mqenc) ? (-1) : 0;
jpc_mqenc_codelps2(mqenc->areg, mqenc->creg, mqenc->ctreg, mqenc->curctx, mqenc);
return jpc_mqenc_error(mqenc) ? (-1) : 0;
}
/******************************************************************************\
@@ -337,56 +337,56 @@ int jpc_mqenc_codelps(jpc_mqenc_t *mqenc)
int jpc_mqenc_flush(jpc_mqenc_t *mqenc, int termmode)
{
int_fast16_t k;
int_fast16_t k;
switch (termmode) {
case JPC_MQENC_PTERM:
k = 11 - mqenc->ctreg + 1;
while (k > 0) {
mqenc->creg <<= mqenc->ctreg;
mqenc->ctreg = 0;
jpc_mqenc_byteout(mqenc->areg, mqenc->creg, mqenc->ctreg,
mqenc);
k -= mqenc->ctreg;
}
if (mqenc->outbuf != 0xff) {
jpc_mqenc_byteout(mqenc->areg, mqenc->creg, mqenc->ctreg, mqenc);
}
break;
case JPC_MQENC_DEFTERM:
jpc_mqenc_setbits(mqenc);
mqenc->creg <<= mqenc->ctreg;
jpc_mqenc_byteout(mqenc->areg, mqenc->creg, mqenc->ctreg, mqenc);
mqenc->creg <<= mqenc->ctreg;
jpc_mqenc_byteout(mqenc->areg, mqenc->creg, mqenc->ctreg, mqenc);
if (mqenc->outbuf != 0xff) {
jpc_mqenc_byteout(mqenc->areg, mqenc->creg, mqenc->ctreg, mqenc);
}
break;
default:
abort();
break;
}
return 0;
switch (termmode) {
case JPC_MQENC_PTERM:
k = 11 - mqenc->ctreg + 1;
while (k > 0) {
mqenc->creg <<= mqenc->ctreg;
mqenc->ctreg = 0;
jpc_mqenc_byteout(mqenc->areg, mqenc->creg, mqenc->ctreg,
mqenc);
k -= mqenc->ctreg;
}
if (mqenc->outbuf != 0xff) {
jpc_mqenc_byteout(mqenc->areg, mqenc->creg, mqenc->ctreg, mqenc);
}
break;
case JPC_MQENC_DEFTERM:
jpc_mqenc_setbits(mqenc);
mqenc->creg <<= mqenc->ctreg;
jpc_mqenc_byteout(mqenc->areg, mqenc->creg, mqenc->ctreg, mqenc);
mqenc->creg <<= mqenc->ctreg;
jpc_mqenc_byteout(mqenc->areg, mqenc->creg, mqenc->ctreg, mqenc);
if (mqenc->outbuf != 0xff) {
jpc_mqenc_byteout(mqenc->areg, mqenc->creg, mqenc->ctreg, mqenc);
}
break;
default:
abort();
break;
}
return 0;
}
static void jpc_mqenc_setbits(jpc_mqenc_t *mqenc)
{
uint_fast32_t tmp = mqenc->creg + mqenc->areg;
mqenc->creg |= 0xffff;
if (mqenc->creg >= tmp) {
mqenc->creg -= 0x8000;
}
uint_fast32_t tmp = mqenc->creg + mqenc->areg;
mqenc->creg |= 0xffff;
if (mqenc->creg >= tmp) {
mqenc->creg -= 0x8000;
}
}
/* Dump a MQ encoder to a stream for debugging. */
int jpc_mqenc_dump(jpc_mqenc_t *mqenc, FILE *out)
{
fprintf(out, "AREG = %08x, CREG = %08x, CTREG = %d\n",
(unsigned)mqenc->areg, (unsigned)mqenc->creg, (int)mqenc->ctreg);
fprintf(out, "IND = %02d, MPS = %d, QEVAL = %04x\n",
(int)(*mqenc->curctx - jpc_mqstates), (int)(*mqenc->curctx)->mps,
(int)(*mqenc->curctx)->qeval);
return 0;
fprintf(out, "AREG = %08x, CREG = %08x, CTREG = %d\n",
(unsigned)mqenc->areg, (unsigned)mqenc->creg, (int)mqenc->ctreg);
fprintf(out, "IND = %02d, MPS = %d, QEVAL = %04x\n",
(int)(*mqenc->curctx - jpc_mqstates), (int)(*mqenc->curctx)->mps,
(int)(*mqenc->curctx)->qeval);
return 0;
}
+43 -43
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -98,53 +98,53 @@
typedef struct {
/* The C register. */
uint_fast32_t creg;
/* The C register. */
uint_fast32_t creg;
/* The A register. */
uint_fast32_t areg;
/* The A register. */
uint_fast32_t areg;
/* The CT register. */
uint_fast32_t ctreg;
/* The CT register. */
uint_fast32_t ctreg;
/* The maximum number of contexts. */
int maxctxs;
/* The maximum number of contexts. */
int maxctxs;
/* The per-context information. */
jpc_mqstate_t **ctxs;
/* The per-context information. */
jpc_mqstate_t **ctxs;
/* The current context. */
jpc_mqstate_t **curctx;
/* The current context. */
jpc_mqstate_t **curctx;
/* The stream for encoder output. */
jas_stream_t *out;
/* The stream for encoder output. */
jas_stream_t *out;
/* The byte buffer (i.e., the B variable in the standard). */
int_fast16_t outbuf;
/* The byte buffer (i.e., the B variable in the standard). */
int_fast16_t outbuf;
/* The last byte output. */
int_fast16_t lastbyte;
/* The last byte output. */
int_fast16_t lastbyte;
/* The error indicator. */
int err;
/* The error indicator. */
int err;
} jpc_mqenc_t;
/* MQ arithmetic encoder state information. */
typedef struct {
/* The A register. */
unsigned areg;
/* The A register. */
unsigned areg;
/* The C register. */
unsigned creg;
/* The C register. */
unsigned creg;
/* The CT register. */
unsigned ctreg;
/* The CT register. */
unsigned ctreg;
/* The last byte output by the encoder. */
int lastbyte;
/* The last byte output by the encoder. */
int lastbyte;
} jpc_mqencstate_t;
@@ -185,7 +185,7 @@ void jpc_mqenc_setctxs(jpc_mqenc_t *enc, int numctxs, jpc_mqctx_t *ctxs);
/* Get the error state of a MQ encoder. */
#define jpc_mqenc_error(enc) \
((enc)->err)
((enc)->err)
/* Get the current encoder state. */
void jpc_mqenc_getstate(jpc_mqenc_t *enc, jpc_mqencstate_t *state);
@@ -217,11 +217,11 @@ int jpc_mqenc_dump(jpc_mqenc_t *mqenc, FILE *out);
/* Note: This macro is included only to satisfy the needs of
the mqenc_putbit macro. */
#define jpc_mqenc_putbit_macro(enc, bit) \
(((*((enc)->curctx))->mps == (bit)) ? \
(((enc)->areg -= (*(enc)->curctx)->qeval), \
((!((enc)->areg & 0x8000)) ? (jpc_mqenc_codemps2(enc)) : \
((enc)->creg += (*(enc)->curctx)->qeval))) : \
jpc_mqenc_codelps(enc))
(((*((enc)->curctx))->mps == (bit)) ? \
(((enc)->areg -= (*(enc)->curctx)->qeval), \
((!((enc)->areg & 0x8000)) ? (jpc_mqenc_codemps2(enc)) : \
((enc)->creg += (*(enc)->curctx)->qeval))) : \
jpc_mqenc_codelps(enc))
/* Note: These function prototypes are included only to satisfy the
needs of the mqenc_putbit_macro macro. Do not call any of these
+2525 -2525
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+12 -12
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -101,10 +101,10 @@ any particular platform. Hopefully, it is not too unreasonable, however. */
#endif
typedef struct {
int (*analyze)(int *, int, int, int, int, int);
int (*synthesize)(int *, int, int, int, int, int);
double *lpenergywts;
double *hpenergywts;
int (*analyze)(int *, int, int, int, int, int);
int (*synthesize)(int *, int, int, int, int, int);
double *lpenergywts;
double *hpenergywts;
} jpc_qmfb2d_t;
extern jpc_qmfb2d_t jpc_ft_qmfb2d;
+302 -302
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -114,49 +114,49 @@ void jpc_initmqctxs(void);
int JPC_PASSTYPE(int passno)
{
int passtype;
switch (passno % 3) {
case 0:
passtype = JPC_CLNPASS;
break;
case 1:
passtype = JPC_SIGPASS;
break;
case 2:
passtype = JPC_REFPASS;
break;
default:
passtype = -1;
assert(0);
break;
}
return passtype;
int passtype;
switch (passno % 3) {
case 0:
passtype = JPC_CLNPASS;
break;
case 1:
passtype = JPC_SIGPASS;
break;
case 2:
passtype = JPC_REFPASS;
break;
default:
passtype = -1;
assert(0);
break;
}
return passtype;
}
int JPC_NOMINALGAIN(int qmfbid, int numlvls, int lvlno, int orient)
{
/* Avoid compiler warnings about unused parameters. */
numlvls = 0;
/* Avoid compiler warnings about unused parameters. */
numlvls = 0;
if (qmfbid == JPC_COX_INS) {
return 0;
return 0;
}
assert(qmfbid == JPC_COX_RFT);
if (lvlno == 0) {
assert(orient == JPC_TSFB_LL);
return 0;
} else {
switch (orient) {
case JPC_TSFB_LH:
case JPC_TSFB_HL:
return 1;
break;
case JPC_TSFB_HH:
return 2;
break;
}
}
abort();
assert(qmfbid == JPC_COX_RFT);
if (lvlno == 0) {
assert(orient == JPC_TSFB_LL);
return 0;
} else {
switch (orient) {
case JPC_TSFB_LH:
case JPC_TSFB_HL:
return 1;
break;
case JPC_TSFB_HH:
return 2;
break;
}
}
abort();
}
/******************************************************************************\
@@ -165,66 +165,66 @@ if (qmfbid == JPC_COX_INS) {
int JPC_SEGTYPE(int passno, int firstpassno, int bypass)
{
int passtype;
if (bypass) {
passtype = JPC_PASSTYPE(passno);
if (passtype == JPC_CLNPASS) {
return JPC_SEG_MQ;
}
return ((passno < firstpassno + 10) ? JPC_SEG_MQ : JPC_SEG_RAW);
} else {
return JPC_SEG_MQ;
}
int passtype;
if (bypass) {
passtype = JPC_PASSTYPE(passno);
if (passtype == JPC_CLNPASS) {
return JPC_SEG_MQ;
}
return ((passno < firstpassno + 10) ? JPC_SEG_MQ : JPC_SEG_RAW);
} else {
return JPC_SEG_MQ;
}
}
int JPC_SEGPASSCNT(int passno, int firstpassno, int numpasses, int bypass, int termall)
{
int ret;
int passtype;
int ret;
int passtype;
if (termall) {
ret = 1;
} else if (bypass) {
if (passno < firstpassno + 10) {
ret = 10 - (passno - firstpassno);
} else {
passtype = JPC_PASSTYPE(passno);
switch (passtype) {
case JPC_SIGPASS:
ret = 2;
break;
case JPC_REFPASS:
ret = 1;
break;
case JPC_CLNPASS:
ret = 1;
break;
default:
ret = -1;
assert(0);
break;
}
}
} else {
ret = JPC_PREC * 3 - 2;
}
ret = JAS_MIN(ret, numpasses - passno);
return ret;
if (termall) {
ret = 1;
} else if (bypass) {
if (passno < firstpassno + 10) {
ret = 10 - (passno - firstpassno);
} else {
passtype = JPC_PASSTYPE(passno);
switch (passtype) {
case JPC_SIGPASS:
ret = 2;
break;
case JPC_REFPASS:
ret = 1;
break;
case JPC_CLNPASS:
ret = 1;
break;
default:
ret = -1;
assert(0);
break;
}
}
} else {
ret = JPC_PREC * 3 - 2;
}
ret = JAS_MIN(ret, numpasses - passno);
return ret;
}
int JPC_ISTERMINATED(int passno, int firstpassno, int numpasses, int termall,
int lazy)
{
int ret;
int n;
if (passno - firstpassno == numpasses - 1) {
ret = 1;
} else {
n = JPC_SEGPASSCNT(passno, firstpassno, numpasses, lazy, termall);
ret = (n <= 1) ? 1 : 0;
}
int ret;
int n;
if (passno - firstpassno == numpasses - 1) {
ret = 1;
} else {
n = JPC_SEGPASSCNT(passno, firstpassno, numpasses, lazy, termall);
ret = (n <= 1) ? 1 : 0;
}
return ret;
return ret;
}
/******************************************************************************\
@@ -233,265 +233,265 @@ int JPC_ISTERMINATED(int passno, int firstpassno, int numpasses, int termall,
void jpc_initluts()
{
int i;
int orient;
int refine;
float u;
float v;
float t;
int i;
int orient;
int refine;
float u;
float v;
float t;
/* XXX - hack */
jpc_initmqctxs();
for (orient = 0; orient < 4; ++orient) {
for (i = 0; i < 256; ++i) {
jpc_zcctxnolut[(orient << 8) | i] = jpc_getzcctxno(i, orient);
}
}
for (orient = 0; orient < 4; ++orient) {
for (i = 0; i < 256; ++i) {
jpc_zcctxnolut[(orient << 8) | i] = jpc_getzcctxno(i, orient);
}
}
for (i = 0; i < 256; ++i) {
jpc_spblut[i] = jpc_getspb(i << 4);
}
for (i = 0; i < 256; ++i) {
jpc_spblut[i] = jpc_getspb(i << 4);
}
for (i = 0; i < 256; ++i) {
jpc_scctxnolut[i] = jpc_getscctxno(i << 4);
}
for (i = 0; i < 256; ++i) {
jpc_scctxnolut[i] = jpc_getscctxno(i << 4);
}
for (refine = 0; refine < 2; ++refine) {
for (i = 0; i < 2048; ++i) {
jpc_magctxnolut[(refine << 11) + i] = jpc_getmagctxno((refine ? JPC_REFINE : 0) | i);
}
}
for (refine = 0; refine < 2; ++refine) {
for (i = 0; i < 2048; ++i) {
jpc_magctxnolut[(refine << 11) + i] = jpc_getmagctxno((refine ? JPC_REFINE : 0) | i);
}
}
for (i = 0; i < (1 << JPC_NMSEDEC_BITS); ++i) {
t = i * jpc_pow2i(-JPC_NMSEDEC_FRACBITS);
u = t;
v = t - 1.5;
jpc_signmsedec[i] = jpc_dbltofix(floor((u * u - v * v) * jpc_pow2i(JPC_NMSEDEC_FRACBITS) + 0.5) / jpc_pow2i(JPC_NMSEDEC_FRACBITS));
for (i = 0; i < (1 << JPC_NMSEDEC_BITS); ++i) {
t = i * jpc_pow2i(-JPC_NMSEDEC_FRACBITS);
u = t;
v = t - 1.5;
jpc_signmsedec[i] = jpc_dbltofix(floor((u * u - v * v) * jpc_pow2i(JPC_NMSEDEC_FRACBITS) + 0.5) / jpc_pow2i(JPC_NMSEDEC_FRACBITS));
/* XXX - this calc is not correct */
jpc_signmsedec0[i] = jpc_dbltofix(floor((u * u) * jpc_pow2i(JPC_NMSEDEC_FRACBITS) + 0.5) / jpc_pow2i(JPC_NMSEDEC_FRACBITS));
u = t - 1.0;
if (i & (1 << (JPC_NMSEDEC_BITS - 1))) {
v = t - 1.5;
} else {
v = t - 0.5;
}
jpc_refnmsedec[i] = jpc_dbltofix(floor((u * u - v * v) * jpc_pow2i(JPC_NMSEDEC_FRACBITS) + 0.5) / jpc_pow2i(JPC_NMSEDEC_FRACBITS));
jpc_signmsedec0[i] = jpc_dbltofix(floor((u * u) * jpc_pow2i(JPC_NMSEDEC_FRACBITS) + 0.5) / jpc_pow2i(JPC_NMSEDEC_FRACBITS));
u = t - 1.0;
if (i & (1 << (JPC_NMSEDEC_BITS - 1))) {
v = t - 1.5;
} else {
v = t - 0.5;
}
jpc_refnmsedec[i] = jpc_dbltofix(floor((u * u - v * v) * jpc_pow2i(JPC_NMSEDEC_FRACBITS) + 0.5) / jpc_pow2i(JPC_NMSEDEC_FRACBITS));
/* XXX - this calc is not correct */
jpc_refnmsedec0[i] = jpc_dbltofix(floor((u * u) * jpc_pow2i(JPC_NMSEDEC_FRACBITS) + 0.5) / jpc_pow2i(JPC_NMSEDEC_FRACBITS));
}
jpc_refnmsedec0[i] = jpc_dbltofix(floor((u * u) * jpc_pow2i(JPC_NMSEDEC_FRACBITS) + 0.5) / jpc_pow2i(JPC_NMSEDEC_FRACBITS));
}
}
jpc_fix_t jpc_getsignmsedec_func(jpc_fix_t x, int bitpos)
{
jpc_fix_t y;
assert(!(x & (~JAS_ONES(bitpos + 1))));
y = jpc_getsignmsedec_macro(x, bitpos);
return y;
jpc_fix_t y;
assert(!(x & (~JAS_ONES(bitpos + 1))));
y = jpc_getsignmsedec_macro(x, bitpos);
return y;
}
int jpc_getzcctxno(int f, int orient)
{
int h;
int v;
int d;
int n;
int t;
int hv;
int h;
int v;
int d;
int n;
int t;
int hv;
/* Avoid compiler warning. */
n = 0;
/* Avoid compiler warning. */
n = 0;
h = ((f & JPC_WSIG) != 0) + ((f & JPC_ESIG) != 0);
v = ((f & JPC_NSIG) != 0) + ((f & JPC_SSIG) != 0);
d = ((f & JPC_NWSIG) != 0) + ((f & JPC_NESIG) != 0) + ((f & JPC_SESIG) != 0) + ((f & JPC_SWSIG) != 0);
switch (orient) {
case JPC_TSFB_HL:
t = h;
h = v;
v = t;
case JPC_TSFB_LL:
case JPC_TSFB_LH:
if (!h) {
if (!v) {
if (!d) {
n = 0;
} else if (d == 1) {
n = 1;
} else {
n = 2;
}
} else if (v == 1) {
n = 3;
} else {
n = 4;
}
} else if (h == 1) {
if (!v) {
if (!d) {
n = 5;
} else {
n = 6;
}
} else {
n = 7;
}
} else {
n = 8;
}
break;
case JPC_TSFB_HH:
hv = h + v;
if (!d) {
if (!hv) {
n = 0;
} else if (hv == 1) {
n = 1;
} else {
n = 2;
}
} else if (d == 1) {
if (!hv) {
n = 3;
} else if (hv == 1) {
n = 4;
} else {
n = 5;
}
} else if (d == 2) {
if (!hv) {
n = 6;
} else {
n = 7;
}
} else {
n = 8;
}
break;
}
assert(n < JPC_NUMZCCTXS);
return JPC_ZCCTXNO + n;
h = ((f & JPC_WSIG) != 0) + ((f & JPC_ESIG) != 0);
v = ((f & JPC_NSIG) != 0) + ((f & JPC_SSIG) != 0);
d = ((f & JPC_NWSIG) != 0) + ((f & JPC_NESIG) != 0) + ((f & JPC_SESIG) != 0) + ((f & JPC_SWSIG) != 0);
switch (orient) {
case JPC_TSFB_HL:
t = h;
h = v;
v = t;
case JPC_TSFB_LL:
case JPC_TSFB_LH:
if (!h) {
if (!v) {
if (!d) {
n = 0;
} else if (d == 1) {
n = 1;
} else {
n = 2;
}
} else if (v == 1) {
n = 3;
} else {
n = 4;
}
} else if (h == 1) {
if (!v) {
if (!d) {
n = 5;
} else {
n = 6;
}
} else {
n = 7;
}
} else {
n = 8;
}
break;
case JPC_TSFB_HH:
hv = h + v;
if (!d) {
if (!hv) {
n = 0;
} else if (hv == 1) {
n = 1;
} else {
n = 2;
}
} else if (d == 1) {
if (!hv) {
n = 3;
} else if (hv == 1) {
n = 4;
} else {
n = 5;
}
} else if (d == 2) {
if (!hv) {
n = 6;
} else {
n = 7;
}
} else {
n = 8;
}
break;
}
assert(n < JPC_NUMZCCTXS);
return JPC_ZCCTXNO + n;
}
int jpc_getspb(int f)
{
int hc;
int vc;
int n;
int hc;
int vc;
int n;
hc = JAS_MIN(((f & (JPC_ESIG | JPC_ESGN)) == JPC_ESIG) + ((f & (JPC_WSIG | JPC_WSGN)) == JPC_WSIG), 1) -
JAS_MIN(((f & (JPC_ESIG | JPC_ESGN)) == (JPC_ESIG | JPC_ESGN)) + ((f & (JPC_WSIG | JPC_WSGN)) == (JPC_WSIG | JPC_WSGN)), 1);
vc = JAS_MIN(((f & (JPC_NSIG | JPC_NSGN)) == JPC_NSIG) + ((f & (JPC_SSIG | JPC_SSGN)) == JPC_SSIG), 1) -
JAS_MIN(((f & (JPC_NSIG | JPC_NSGN)) == (JPC_NSIG | JPC_NSGN)) + ((f & (JPC_SSIG | JPC_SSGN)) == (JPC_SSIG | JPC_SSGN)), 1);
if (!hc && !vc) {
n = 0;
} else {
n = (!(hc > 0 || (!hc && vc > 0)));
}
return n;
hc = JAS_MIN(((f & (JPC_ESIG | JPC_ESGN)) == JPC_ESIG) + ((f & (JPC_WSIG | JPC_WSGN)) == JPC_WSIG), 1) -
JAS_MIN(((f & (JPC_ESIG | JPC_ESGN)) == (JPC_ESIG | JPC_ESGN)) + ((f & (JPC_WSIG | JPC_WSGN)) == (JPC_WSIG | JPC_WSGN)), 1);
vc = JAS_MIN(((f & (JPC_NSIG | JPC_NSGN)) == JPC_NSIG) + ((f & (JPC_SSIG | JPC_SSGN)) == JPC_SSIG), 1) -
JAS_MIN(((f & (JPC_NSIG | JPC_NSGN)) == (JPC_NSIG | JPC_NSGN)) + ((f & (JPC_SSIG | JPC_SSGN)) == (JPC_SSIG | JPC_SSGN)), 1);
if (!hc && !vc) {
n = 0;
} else {
n = (!(hc > 0 || (!hc && vc > 0)));
}
return n;
}
int jpc_getscctxno(int f)
{
int hc;
int vc;
int n;
int hc;
int vc;
int n;
/* Avoid compiler warning. */
n = 0;
/* Avoid compiler warning. */
n = 0;
hc = JAS_MIN(((f & (JPC_ESIG | JPC_ESGN)) == JPC_ESIG) + ((f & (JPC_WSIG | JPC_WSGN)) == JPC_WSIG),
1) - JAS_MIN(((f & (JPC_ESIG | JPC_ESGN)) == (JPC_ESIG | JPC_ESGN)) +
((f & (JPC_WSIG | JPC_WSGN)) == (JPC_WSIG | JPC_WSGN)), 1);
vc = JAS_MIN(((f & (JPC_NSIG | JPC_NSGN)) == JPC_NSIG) + ((f & (JPC_SSIG | JPC_SSGN)) == JPC_SSIG),
1) - JAS_MIN(((f & (JPC_NSIG | JPC_NSGN)) == (JPC_NSIG | JPC_NSGN)) +
((f & (JPC_SSIG | JPC_SSGN)) == (JPC_SSIG | JPC_SSGN)), 1);
assert(hc >= -1 && hc <= 1 && vc >= -1 && vc <= 1);
if (hc < 0) {
hc = -hc;
vc = -vc;
}
if (!hc) {
if (vc == -1) {
n = 1;
} else if (!vc) {
n = 0;
} else {
n = 1;
}
} else if (hc == 1) {
if (vc == -1) {
n = 2;
} else if (!vc) {
n = 3;
} else {
n = 4;
}
}
assert(n < JPC_NUMSCCTXS);
return JPC_SCCTXNO + n;
hc = JAS_MIN(((f & (JPC_ESIG | JPC_ESGN)) == JPC_ESIG) + ((f & (JPC_WSIG | JPC_WSGN)) == JPC_WSIG),
1) - JAS_MIN(((f & (JPC_ESIG | JPC_ESGN)) == (JPC_ESIG | JPC_ESGN)) +
((f & (JPC_WSIG | JPC_WSGN)) == (JPC_WSIG | JPC_WSGN)), 1);
vc = JAS_MIN(((f & (JPC_NSIG | JPC_NSGN)) == JPC_NSIG) + ((f & (JPC_SSIG | JPC_SSGN)) == JPC_SSIG),
1) - JAS_MIN(((f & (JPC_NSIG | JPC_NSGN)) == (JPC_NSIG | JPC_NSGN)) +
((f & (JPC_SSIG | JPC_SSGN)) == (JPC_SSIG | JPC_SSGN)), 1);
assert(hc >= -1 && hc <= 1 && vc >= -1 && vc <= 1);
if (hc < 0) {
hc = -hc;
vc = -vc;
}
if (!hc) {
if (vc == -1) {
n = 1;
} else if (!vc) {
n = 0;
} else {
n = 1;
}
} else if (hc == 1) {
if (vc == -1) {
n = 2;
} else if (!vc) {
n = 3;
} else {
n = 4;
}
}
assert(n < JPC_NUMSCCTXS);
return JPC_SCCTXNO + n;
}
int jpc_getmagctxno(int f)
{
int n;
int n;
if (!(f & JPC_REFINE)) {
n = (f & (JPC_OTHSIGMSK)) ? 1 : 0;
} else {
n = 2;
}
if (!(f & JPC_REFINE)) {
n = (f & (JPC_OTHSIGMSK)) ? 1 : 0;
} else {
n = 2;
}
assert(n < JPC_NUMMAGCTXS);
return JPC_MAGCTXNO + n;
assert(n < JPC_NUMMAGCTXS);
return JPC_MAGCTXNO + n;
}
void jpc_initctxs(jpc_mqctx_t *ctxs)
{
jpc_mqctx_t *ctx;
int i;
jpc_mqctx_t *ctx;
int i;
ctx = ctxs;
for (i = 0; i < JPC_NUMCTXS; ++i) {
ctx->mps = 0;
switch (i) {
case JPC_UCTXNO:
ctx->ind = 46;
break;
case JPC_ZCCTXNO:
ctx->ind = 4;
break;
case JPC_AGGCTXNO:
ctx->ind = 3;
break;
default:
ctx->ind = 0;
break;
}
++ctx;
}
ctx = ctxs;
for (i = 0; i < JPC_NUMCTXS; ++i) {
ctx->mps = 0;
switch (i) {
case JPC_UCTXNO:
ctx->ind = 46;
break;
case JPC_ZCCTXNO:
ctx->ind = 4;
break;
case JPC_AGGCTXNO:
ctx->ind = 3;
break;
default:
ctx->ind = 0;
break;
}
++ctx;
}
}
void jpc_initmqctxs()
{
jpc_initctxs(jpc_mqctxs);
jpc_initctxs(jpc_mqctxs);
}
/* Calculate the real quantity exp2(n), where x is an integer. */
double jpc_pow2i(int n)
{
double x;
double a;
double x;
double a;
x = 1.0;
if (n < 0) {
a = 0.5;
n = -n;
} else {
a = 2.0;
}
while (--n >= 0) {
x *= a;
}
return x;
x = 1.0;
if (n < 0) {
a = 0.5;
n = -n;
} else {
a = 2.0;
}
while (--n >= 0) {
x *= a;
}
return x;
}
+49 -49
Ver Arquivo
@@ -6,15 +6,15 @@
*/
/* __START_OF_JASPER_LICENSE__
*
*
* 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,
@@ -22,15 +22,15 @@
* 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
@@ -57,7 +57,7 @@
* 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.
*
*
* __END_OF_JASPER_LICENSE__
*/
@@ -127,7 +127,7 @@
#define JPC_WSIG 0x0080
/* The significance mask for 8-connected neighbours. */
#define JPC_OTHSIGMSK \
(JPC_NSIG | JPC_NESIG | JPC_ESIG | JPC_SESIG | JPC_SSIG | JPC_SWSIG | JPC_WSIG | JPC_NWSIG)
(JPC_NSIG | JPC_NESIG | JPC_ESIG | JPC_SESIG | JPC_SSIG | JPC_SWSIG | JPC_WSIG | JPC_NWSIG)
/* The significance mask for 4-connected neighbours. */
#define JPC_PRIMSIGMSK (JPC_NSIG | JPC_ESIG | JPC_SSIG | JPC_WSIG)
@@ -201,75 +201,75 @@ void jpc_initctxs(jpc_mqctx_t *ctxs);
/* Get the zero coding context. */
int jpc_getzcctxno(int f, int orient);
#define JPC_GETZCCTXNO(f, orient) \
(jpc_zcctxnolut[((orient) << 8) | ((f) & JPC_OTHSIGMSK)])
(jpc_zcctxnolut[((orient) << 8) | ((f) & JPC_OTHSIGMSK)])
/* Get the sign prediction bit. */
int jpc_getspb(int f);
#define JPC_GETSPB(f) \
(jpc_spblut[((f) & (JPC_PRIMSIGMSK | JPC_SGNMSK)) >> 4])
(jpc_spblut[((f) & (JPC_PRIMSIGMSK | JPC_SGNMSK)) >> 4])
/* Get the sign coding context. */
int jpc_getscctxno(int f);
#define JPC_GETSCCTXNO(f) \
(jpc_scctxnolut[((f) & (JPC_PRIMSIGMSK | JPC_SGNMSK)) >> 4])
(jpc_scctxnolut[((f) & (JPC_PRIMSIGMSK | JPC_SGNMSK)) >> 4])
/* Get the magnitude context. */
int jpc_getmagctxno(int f);
#define JPC_GETMAGCTXNO(f) \
(jpc_magctxnolut[((f) & JPC_OTHSIGMSK) | ((((f) & JPC_REFINE) != 0) << 11)])
(jpc_magctxnolut[((f) & JPC_OTHSIGMSK) | ((((f) & JPC_REFINE) != 0) << 11)])
/* Get the normalized MSE reduction for significance passes. */
#define JPC_GETSIGNMSEDEC(x, bitpos) jpc_getsignmsedec_macro(x, bitpos)
jpc_fix_t jpc_getsignmsedec_func(jpc_fix_t x, int bitpos);
#define jpc_getsignmsedec_macro(x, bitpos) \
((bitpos > JPC_NMSEDEC_FRACBITS) ? jpc_signmsedec[JPC_ASR(x, bitpos - JPC_NMSEDEC_FRACBITS) & JAS_ONES(JPC_NMSEDEC_BITS)] : \
(jpc_signmsedec0[JPC_ASR(x, bitpos - JPC_NMSEDEC_FRACBITS) & JAS_ONES(JPC_NMSEDEC_BITS)]))
((bitpos > JPC_NMSEDEC_FRACBITS) ? jpc_signmsedec[JPC_ASR(x, bitpos - JPC_NMSEDEC_FRACBITS) & JAS_ONES(JPC_NMSEDEC_BITS)] : \
(jpc_signmsedec0[JPC_ASR(x, bitpos - JPC_NMSEDEC_FRACBITS) & JAS_ONES(JPC_NMSEDEC_BITS)]))
/* Get the normalized MSE reduction for refinement passes. */
#define JPC_GETREFNMSEDEC(x, bitpos) jpc_getrefnmsedec_macro(x, bitpos)
jpc_fix_t jpc_refsignmsedec_func(jpc_fix_t x, int bitpos);
#define jpc_getrefnmsedec_macro(x, bitpos) \
((bitpos > JPC_NMSEDEC_FRACBITS) ? jpc_refnmsedec[JPC_ASR(x, bitpos - JPC_NMSEDEC_FRACBITS) & JAS_ONES(JPC_NMSEDEC_BITS)] : \
(jpc_refnmsedec0[JPC_ASR(x, bitpos - JPC_NMSEDEC_FRACBITS) & JAS_ONES(JPC_NMSEDEC_BITS)]))
((bitpos > JPC_NMSEDEC_FRACBITS) ? jpc_refnmsedec[JPC_ASR(x, bitpos - JPC_NMSEDEC_FRACBITS) & JAS_ONES(JPC_NMSEDEC_BITS)] : \
(jpc_refnmsedec0[JPC_ASR(x, bitpos - JPC_NMSEDEC_FRACBITS) & JAS_ONES(JPC_NMSEDEC_BITS)]))
/* Arithmetic shift right (with ability to shift left also). */
#define JPC_ASR(x, n) \
(((n) >= 0) ? ((x) >> (n)) : ((x) << (-(n))))
(((n) >= 0) ? ((x) >> (n)) : ((x) << (-(n))))
/* Update the per-sample state information. */
#define JPC_UPDATEFLAGS4(fp, rowstep, s, vcausalflag) \
{ \
register jpc_fix_t *np = (fp) - (rowstep); \
register jpc_fix_t *sp = (fp) + (rowstep); \
if ((vcausalflag)) { \
sp[-1] |= JPC_NESIG; \
sp[1] |= JPC_NWSIG; \
if (s) { \
*sp |= JPC_NSIG | JPC_NSGN; \
(fp)[-1] |= JPC_ESIG | JPC_ESGN; \
(fp)[1] |= JPC_WSIG | JPC_WSGN; \
} else { \
*sp |= JPC_NSIG; \
(fp)[-1] |= JPC_ESIG; \
(fp)[1] |= JPC_WSIG; \
} \
} else { \
np[-1] |= JPC_SESIG; \
np[1] |= JPC_SWSIG; \
sp[-1] |= JPC_NESIG; \
sp[1] |= JPC_NWSIG; \
if (s) { \
*np |= JPC_SSIG | JPC_SSGN; \
*sp |= JPC_NSIG | JPC_NSGN; \
(fp)[-1] |= JPC_ESIG | JPC_ESGN; \
(fp)[1] |= JPC_WSIG | JPC_WSGN; \
} else { \
*np |= JPC_SSIG; \
*sp |= JPC_NSIG; \
(fp)[-1] |= JPC_ESIG; \
(fp)[1] |= JPC_WSIG; \
} \
} \
register jpc_fix_t *np = (fp) - (rowstep); \
register jpc_fix_t *sp = (fp) + (rowstep); \
if ((vcausalflag)) { \
sp[-1] |= JPC_NESIG; \
sp[1] |= JPC_NWSIG; \
if (s) { \
*sp |= JPC_NSIG | JPC_NSGN; \
(fp)[-1] |= JPC_ESIG | JPC_ESGN; \
(fp)[1] |= JPC_WSIG | JPC_WSGN; \
} else { \
*sp |= JPC_NSIG; \
(fp)[-1] |= JPC_ESIG; \
(fp)[1] |= JPC_WSIG; \
} \
} else { \
np[-1] |= JPC_SESIG; \
np[1] |= JPC_SWSIG; \
sp[-1] |= JPC_NESIG; \
sp[1] |= JPC_NWSIG; \
if (s) { \
*np |= JPC_SSIG | JPC_SSGN; \
*sp |= JPC_NSIG | JPC_NSGN; \
(fp)[-1] |= JPC_ESIG | JPC_ESGN; \
(fp)[1] |= JPC_WSIG | JPC_WSGN; \
} else { \
*np |= JPC_SSIG; \
*sp |= JPC_NSIG; \
(fp)[-1] |= JPC_ESIG; \
(fp)[1] |= JPC_WSIG; \
} \
} \
}
/* Initialize the lookup tables used by the codec. */
+665 -665
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff

Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais