Commit Graph

126 Commits

Author SHA1 Message Date
Alexander Alekhin
12e8e33144 build: enable -Wimplicit-fallthrough warning for OpenCV modules 2018-04-19 19:54:03 +03:00
Alexander Alekhin
7d8f1dde26 core(persistence): disable checks for base64 streams 2018-03-27 17:02:04 +03:00
Alexander Alekhin
f4c4b01455 core: added checks and "fixit" items for persistence parsers
To raise errors with proper messages of the problems.
2018-03-27 16:19:43 +03:00
Maksim Shabunin
e225850cc6 Split persistence.cpp into smaller pieces (#10788)
* Extracted base64 persistence functionality

* Extracted YML persistence functionality

* Extracted JSON persistence functionality

* Extracted XML persistence functionality

* Extracted public C and C++ interfaces implementation in persistence

* Persistence: cleanup and fixes

* fixup! Persistence: cleanup and fixes
2018-02-06 11:59:32 +03:00
Pavel Rojtberg
2d674fc151 persistence: replace arbitrary limit of cn to 4 by CV_CN_MAX (#10636)
* persistence: replace arbitrary limit of cn to 4 by CV_CN_MAX

* python: added persistence test, remove temp files

* fixup! python: added persistence test, remove temp files

* fixup! python: added persistence test, remove temp files
2018-01-23 13:36:30 +03:00
Alexander Alekhin
825b14278e core: fix persistence with deprecated traits 2017-12-12 17:07:36 +03:00
Maksim Shabunin
7349b8f5ce Build for embedded systems 2017-12-11 13:27:37 +03:00
Alexander Alekhin
0451629e22 core(persistence): resolve DMatch/KeyPoint problem 2017-08-31 19:35:48 +03:00
Vladislav Sovrasov
5e68b28ad3 core: fix file not closed when exception in FS 2017-08-07 21:03:59 +03:00
dkurt
583b327523 Fix JSON booleans without quotes 2017-07-26 12:51:06 +03:00
dkurt
3515f6ec33 Missed NAMED bit of JSON nodes tag 2017-07-25 13:39:32 +03:00
Alexander Alekhin
ec7ce81401 core: fix FileStorage format detection in case of .gz archives 2017-07-20 19:58:36 +03:00
Alexander Alekhin
5bc291937f test: FileStorage format regression test 2017-07-20 19:58:10 +03:00
PkLab.net
6dd9e18b2e add std::string overload for cv::read() 2017-07-12 15:51:11 +03:00
Vladislav Sovrasov
5b833db558 core: forbid conversion real->int in some cases in FileStorage 2017-07-12 15:50:57 +03:00
Maksim Shabunin
a769d69a9d Fixed several issues found by static analysis 2017-06-28 18:06:18 +03:00
Alexander Alekhin
006966e629 trace: initial support for code trace 2017-06-26 17:07:13 +03:00
Maksim Shabunin
b04ed5956e Fixed several issues found by static analysis in core module 2017-05-23 12:35:31 +03:00
Alexander Alekhin
75f28245a8 core: fix persistence bug in RAW I/O code
- persistence.cpp code expects special sizeof value for passed structures
- this assumption is lead to memory corruption problems
- fixed/workarounded test to prevent memory corruption on Linux 32-bit systems
2017-04-26 17:19:26 +03:00
Yuriy Solovyov
26ccc09c46 Fix zlib issue on iOS 2017-04-14 17:16:00 +03:00
Alexander Alekhin
5d31d6ebbb Merge pull request #8306 from chacha21:portability 2017-03-03 04:46:05 +00:00
chacha21
74abbd0898 Fix compilation when USE_ZLIB is false
create a dummy gzFile type
2017-03-02 16:58:51 +01:00
chacha21
aa1b031274 get rid of warning C4800 under VS2010
the "std::basic_ios::operator bool" differs between C++98 and C++11. The
"double not" syntax is portable and covers both cases with equivalent
meaning
2017-03-02 16:56:20 +01:00
Vladislav Sovrasov
c321d025c4 Fix DMatch and Keypoint I/O in FileStorage 2017-03-01 15:07:38 +03:00
Vladislav Sovrasov
896c34fab3 Add support of type headings from YAML1.2 2017-01-17 16:40:38 +03:00
Matt Bennett
c3a8db6d6c Merge pull request #7952 from mattmyne:JSONWriteFixTrailingDecimalPoint
Append zero to trailing decimal place for FileStorage JSON write of a float or double value (#7952)

* Fix for FileStorage JSON write of a float or double value that has no fractional part; appends a zero character after the trailing decimal place to meet JSON standard.

* strlen return to size_t type rather than unnecessary cast to int
2017-01-02 20:28:07 +00:00
mshabunin
e941259434 Persistence: fixed valgrind warning in base64 decoder 2016-12-08 14:58:18 +03:00
mshabunin
a0e771f545 Fixed valgrind issues in persistence functions 2016-12-02 18:41:25 +03:00
Vladislav Sovrasov
e955d17c51 Add new error messages 2016-11-02 14:53:56 +03:00
Vladislav Sovrasov
38483fe7a7 Skip UTF-8 BOM in FileStorage 2016-11-02 14:51:07 +03:00
fegorsch
ddf0554fff Use colon in "%YAML:1.0" directive when persisting to YAML-files
In YAML 1.0 the colon is mandatory. See http://yaml.org/spec/1.0/#id2558635.

This also allows prior releases to read YAML files created with the current version.
2016-10-25 18:18:35 +02:00
Vadim Pisarevsky
b03e3abd62 Merge pull request #7088 from wiryls:FileStorageJSON 2016-08-24 16:49:06 +00:00
MYLS
47f2e618ee Add two tests.
- one test for type_id;
- another for comments in JSON;
2016-08-24 17:01:57 +08:00
Pavel Vlasov
30a6cee2fe Instrumentation for OpenCV API regions and IPP functions; 2016-08-19 18:10:03 +03:00
MYLS
d99832163a solve warnings and do some cleaning. 2016-08-11 03:31:35 +08:00
MYLS
8596e82d98 Add JSON support.
a JSON emitter, a parser, tests and some basic doc.
2016-08-11 00:53:15 +08:00
MYLS
1da8a19af3 fixed two bugs that I caused. 2016-08-05 16:15:03 +08:00
MYLS
86238d2748 make some changes according to the code review.
- use `std::string` instead of `new char`;
- reserve 1 MB for buffer;
2016-08-05 15:17:21 +08:00
MYLS
3935855365 Merge remote-tracking branch 'refs/remotes/opencv/master' into FileStorageBase64DocsTests
# Conflicts:
#	modules/core/test/test_io.cpp
2016-07-30 01:08:27 +08:00
MYLS
08911cbfae change code to snippet and do some cleaning.
- use `@snippet` instead of `@code` in docs.
- remove some functions that were not used.
2016-07-30 00:35:41 +08:00
MYLS
cf2d6f6721 solve errors and warnings
Modified performance test and solve a problem caused by an enum type.
2016-07-19 21:18:41 +08:00
MYLS
78ca5ddd45 solve errors and warnings 2016-07-19 19:56:57 +08:00
Ilya Lavrenov
87ae4e0564 fixed clone of empty matrix 2016-07-19 11:31:53 +03:00
MYLS
617df09143 Modify Base64 functions and add test and documentation
Major changes:

- modify the Base64 functions to compatible with `cvWriteRawData` and so
on.
- add a Base64 flag for FileStorage and outputs raw data in Base64
automatically.
- complete all  testing and documentation.
2016-07-19 15:54:38 +08:00
Philipp Hasper
00112bbe10 persistence: fixing crash with space-only values 2016-07-08 12:41:05 +02:00
MYLS
7c92ee2e6e Split cvWriteRawData_Base64 into three functions
The three new functions:

```cpp
void cvStartWriteRawData_Base64(::CvFileStorage * fs, const char* name,
int len, const char* dt);
void cvWriteRawData_Base64(::CvFileStorage *
fs, const void* _data, int len);
void
cvEndWriteRawData_Base64(::CvFileStorage * fs);
```

Test is also updated. (And it's remarkable that there is a bug in
`cvWriteReadData`.)
2016-06-24 22:27:42 +08:00
MYLS
29921d055d change the parameter to CvMat and CvMatND
```cpp
cvWriteMat_Base64(::cv::FileStorage & fs, ::cv::String const & name,
::cv::Mat const & mat)
```
becomes:
```cpp
CV_EXPORTS void cvWriteMat_Base64(::CvFileStorage* fs, const char* name,
const ::CvMat* mat);
CV_EXPORTS void
cvWriteMatND_Base64(::CvFileStorage* fs, const char* name, const
::CvMatND* mat);
```
2016-06-20 16:59:58 +08:00
MYLS
9faa2a7fd0 solve warning for IOS
Two test are still needed:

1. Verify the Base64 data.
2. Read an old YML file for compatibility test.
2016-06-19 02:44:39 +08:00
MYLS
958263d245 Solve warnings, and adjusted the test case. 2016-06-19 02:00:32 +08:00
MYLS
882e4221e7 fix errors from test.
Two other test are still needed.

1. Verify the Base64 data.
2. Read an old YML file for compatibility test.
2016-06-19 00:45:51 +08:00