Compare commits

...

1745 Commits

Author SHA1 Message Date
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
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
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
2601 changed files with 632450 additions and 298645 deletions

55
.gitattributes vendored Normal file
View File

@@ -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
.gitignore vendored Normal file
View File

@@ -0,0 +1,8 @@
*.pyc
.DS_Store
refman.rst
OpenCV4Tegra/
*.user
.sw[a-z]
.*.swp
tags

View File

@@ -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)

Binary file not shown.

Binary file not shown.

123
3rdparty/ilmimf/README vendored
View File

@@ -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
3rdparty/include/MultiMon.h vendored Normal file
View File

@@ -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

View File

@@ -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

18
3rdparty/include/dshow/bdatypes.h vendored Executable file → Normal file
View File

@@ -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

View File

@@ -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 */

View File

@@ -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;

View File

@@ -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 {

View File

@@ -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

View File

@@ -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 */

View File

@@ -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;

View File

@@ -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 // [

View File

@@ -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)
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -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
3rdparty/libjasper/changelog vendored Normal file
View File

@@ -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
3rdparty/libjasper/copyright vendored Normal file
View File

@@ -0,0 +1,62 @@
This package was debianized by Christopher L Cheney <ccheney@debian.org> on
Fri, 22 Aug 2003 01:33:34 -0500.
The current maintainer is Roland Stigge <stigge@antcom.de>
It was downloaded from http://www.ece.uvic.ca/~mdadams/jasper/
Upstream Author: Michael Adams <mdadams@ece.uvic.ca>
License:
JasPer License Version 2.0
Copyright (c) 1999-2000 Image Power, Inc.
Copyright (c) 1999-2000 The University of British Columbia
Copyright (c) 2001-2003 Michael David Adams
All rights reserved.
Permission is hereby granted, free of charge, to any person (the
"User") obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge,
publish, distribute, and/or sell copies of the Software, and to permit
persons to whom the Software is furnished to do so, subject to the
following conditions:
1. The above copyright notices and this permission notice (which
includes the disclaimer below) shall be included in all copies or
substantial portions of the Software.
2. The name of a copyright holder shall not be used to endorse or
promote products derived from the Software without specific prior
written permission.
THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO
EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE
PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE
THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY.
EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS
BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL
PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS
GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE
ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE
IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL
SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES,
AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL
SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH
THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH,
PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH
RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY
EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES.

File diff suppressed because it is too large Load Diff

View File

@@ -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;
}

View File

@@ -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;
}

File diff suppressed because it is too large Load Diff

View File

@@ -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);

File diff suppressed because it is too large Load Diff

View File

@@ -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();
}

View File

@@ -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

View File

@@ -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;
}

File diff suppressed because it is too large Load Diff

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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. */

View File

@@ -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__
*/

View File

@@ -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

View File

@@ -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
}

View File

@@ -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;

View File

@@ -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);

View File

@@ -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);

View File

@@ -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__
*/

View File

@@ -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

View File

@@ -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. */

View File

@@ -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
}

View File

@@ -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. */

View File

@@ -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__
*/

View File

@@ -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

View File

@@ -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;

View File

@@ -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" {

View File

@@ -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.

View File

@@ -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__
*/

File diff suppressed because it is too large Load Diff

View File

@@ -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;
/******************************************************************************\

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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__
*/

File diff suppressed because it is too large Load Diff

View File

@@ -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);

File diff suppressed because it is too large Load Diff

View File

@@ -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;

File diff suppressed because it is too large Load Diff

View File

@@ -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;

View File

@@ -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)

View File

@@ -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__
*/

View File

@@ -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;
}

View File

@@ -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__
*/

View File

@@ -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;
}

View File

@@ -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__
*/

View File

@@ -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]},
};

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -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;
}

View File

@@ -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

File diff suppressed because it is too large Load Diff

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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. */

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More