Spelling (#2067)
* spelling: accelerometer Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: address Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: anonymous Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: available Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: baby Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: buffer Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: build Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: builds Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: by inclusion Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: byte order Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: camera Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: command Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: consistency Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: constructor Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: continuous Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: continuously Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: correspond Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: decompression Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: dedicated Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: denominator Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: dependencies Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: detector Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: dlighting Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: dragging Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: duplicate Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: dynamic Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: empty Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: enable Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: endianness Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: examining Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: exceed Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: extension Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: fact Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: fails Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: fixed Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: fluorescent Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: focuspoint Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: focuspoints Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: from Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: happened Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: hierarchy Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: initiate Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: interesting Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: internal Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: javascript Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: language Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: libiconv Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: libraries Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: library Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: localization Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: macros Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: member Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: members Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: metadata Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: miscellaneous Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: mnemonic Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: modified Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: multiple Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: multithreaded Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: mysterious Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: photoshop Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: platforms Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: preliminary Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: priority Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: properties Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: qualifier Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: recognition Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: recognized Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: reentrancy Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: remaining Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: remotetest Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: requested Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: sensitivity Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: standardize Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: successful Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: such Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: tags Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: temperature Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: test Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: the Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: these Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: third Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: this Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: transparent Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: unable Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: underwater Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: uninterpreted Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: using Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: utc - coordinated universal time Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: which Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: with Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
This commit is contained in:
parent
5e9e31f1a8
commit
e56abfa10a
@ -18,7 +18,7 @@ Coding Guidelines
|
||||
- All new code that is added must be resistant to integer overflows, thus if you multiply, add, subtract, divide or bitshift integers you must ensure that no overflow can occur. Please keep in mind that signed integer overflow is undefined behavior, thus you must check for overflows before performing the arithmetic operation, otherwise the compiler is free to optimize your check after the overflow away (this has happened already).
|
||||
- All new code must be resistant to buffer overflows. Thus before you access arrays a range check must be performed.
|
||||
- Distrust any data that you extract from images or from external sources. E.g. if the metadata of an image gives you an offset of another information inside that file, do not assume that this offset will not result in an out off bounds read.
|
||||
- New code must not assume the endianes and the word size of the system it is being run on. I.e. don't assume that `sizeof(int) = 8` or that the following will work:
|
||||
- New code must not assume the endianness and the word size of the system it is being run on. I.e. don't assume that `sizeof(int) = 8` or that the following will work:
|
||||
```cpp
|
||||
const uint32_t some_var = get_var();
|
||||
const uint16_t lower_2_bytes = (const uint16_t*) &some_var;
|
||||
|
||||
@ -64,7 +64,7 @@ Once you have a GitHub login:
|
||||
$ git fetch exiv2_upstream master
|
||||
$ git checkout -b my-new-feature exiv2_upstream/master --no-track
|
||||
|
||||
NB: This is an important step to avoid draging in old commits!
|
||||
NB: This is an important step to avoid dragging in old commits!
|
||||
|
||||
5. Configure the project and check that it builds (if not, please report a bug):
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ A commit message can look like this:
|
||||
- Specify concrete ubuntu and mac versions
|
||||
- Use latest conan version
|
||||
- Fix the profiles for linux and mac
|
||||
- Use new version of expat (avilable in conan-center)
|
||||
- Use new version of expat (available in conan-center)
|
||||
- Install urllib3 as suggested in python guidelines
|
||||
- Use virtualenv with python3
|
||||
```
|
||||
|
||||
@ -21,7 +21,7 @@ The following programs are build and installed in /usr/local/bin.
|
||||
| _**addmoddel**_ | Demonstrates Exiv2 library APIs to add, modify or delete metadata | [addmoddel](#addmoddel) | [addmoddel.cpp](samples/addmoddel.cpp) |
|
||||
| _**exifcomment**_ | Set Exif.Photo.UserComment in an image | [exifcomment](#exifcomment) | [exifcomment.cpp](samples/exifcomment.cpp) |
|
||||
| _**exifdata**_ | Prints _**Exif**_ metadata in different formats in an image | [exifdata](#exifdata) | [exifdata.cpp](samples/exifdata.cpp) |
|
||||
| _**exifprint**_ | Print _**Exif**_ metadata in images<br>Miscelleous other features | [exifprint](#exifprint)| [exifprint.cpp](samples/exifprint.cpp) |
|
||||
| _**exifprint**_ | Print _**Exif**_ metadata in images<br>Miscellaneous other features | [exifprint](#exifprint)| [exifprint.cpp](samples/exifprint.cpp) |
|
||||
| _**exifvalue**_ | Prints the value of a single _**Exif**_ tag in a file | [exifvalue](#exifvalue) | [exifvalue.cpp](samples/exifvalue.cpp) |
|
||||
| _**exiv2**_ | Utility to read and write image metadata, including Exif, IPTC, XMP, image comments, ICC Profile, thumbnails, image previews and many vendor makernote tags.<br>This is the primary test tool used by Team Exiv2 and can exercise almost all code in the library. Due to the extensive capability of this utility, the APIs used are usually less obvious for casual code inspection. | [exiv2 manpage](exiv2.md)<br>[https://exiv2.org/sample.html](https://exiv2.org/sample.html) | |
|
||||
| _**exiv2json**_ | Extracts data from image in JSON format.<br>This program also contains a parser to recursively parse Xmp metadata into vectors and objects. | [exiv2json](#exiv2json) | [exiv2json.cpp](samples/exiv2json.cpp) |
|
||||
@ -162,7 +162,7 @@ Option: all | exif | iptc | xmp | filesystem
|
||||
|
||||
This program dumps metadata from an image in JSON format. _Code: [exiv2json.cpp](samples/exiv2json.cpp)_
|
||||
|
||||
exiv2json has a recursive parser to encode XMP into Vectors and Objects. XMP data is XMP and can contain XMP `Bag` and `Seq` which are converted to JSON Objects and Arrays. Exiv2 presents data in the format: [Family.Group.Tagname](exiv2.md#exiv2_key_syntax). For XMP, results in "flat" output such such as:
|
||||
exiv2json has a recursive parser to encode XMP into Vectors and Objects. XMP data is XMP and can contain XMP `Bag` and `Seq` which are converted to JSON Objects and Arrays. Exiv2 presents data in the format: [Family.Group.Tagname](exiv2.md#exiv2_key_syntax). For XMP, results in "flat" output such as:
|
||||
|
||||
```
|
||||
$ curl --silent -O https://clanmills.com/Stonehenge.jpg
|
||||
@ -211,7 +211,7 @@ $
|
||||
Usage: geotag {-help|-version|-dst|-dryrun|-ascii|-verbose|-adjust value|-tz value|-delta value}+ path+
|
||||
```
|
||||
|
||||
Geotag reads one or more GPX files and adds GPS Tages to images. _Code: [geotag.cpp](samples/geotag.cpp)_
|
||||
Geotag reads one or more GPX files and adds GPS Tags to images. _Code: [geotag.cpp](samples/geotag.cpp)_
|
||||
|
||||
If the path is a directory, geotag will read all the files in the directory. It constructs a time dictionary of position data, then updates every image with GPS Tags.
|
||||
|
||||
@ -478,7 +478,7 @@ Test access to preview images
|
||||
#### remotetest
|
||||
|
||||
```
|
||||
Usage: remotetest remotetest file {--nocurl | --curl}
|
||||
Usage: remotetest file {--nocurl | --curl}
|
||||
```
|
||||
|
||||
Tester application for testing remote i/o.
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
|
||||
| **CI Status:** | | |
|
||||
|:-- |:-- |:-- |
|
||||
| [](https://github.com/Exiv2/exiv2/actions/workflows/on_push_BasicWinLinMac.yml) | [](https://github.com/Exiv2/exiv2/actions/workflows/nightly_Linux_distributions.yml) | [](https://github.com/Exiv2/exiv2/actions/workflows/on_PR_linux_special_buils.yml) |
|
||||
| [](https://github.com/Exiv2/exiv2/actions/workflows/on_push_BasicWinLinMac.yml) | [](https://github.com/Exiv2/exiv2/actions/workflows/nightly_Linux_distributions.yml) | [](https://github.com/Exiv2/exiv2/actions/workflows/on_PR_linux_special_builds.yml) |
|
||||
| [](https://github.com/Exiv2/exiv2/actions/workflows/on_PR_linux_matrix.yml) | [](https://github.com/Exiv2/exiv2/actions/workflows/on_PR_mac_matrix.yml) | [](https://github.com/Exiv2/exiv2/actions/workflows/on_PR_windows_matrix.yml) |
|
||||
|
||||
<div id="1">
|
||||
@ -197,7 +197,7 @@ CMake will detect libiconv of all UNIX like systems including Linux, macOS, UNIX
|
||||
|
||||
The library libiconv is a GNU library and we do not recommend using libiconv with Exiv2 when building with Visual Studio.
|
||||
|
||||
Exiv2 includes the file cmake/FindIconv.cmake which contains a guard to prevent CMake from finding libiconv when you build with Visual Studio. This was added because of issues reported when Visual Studio attempted to link libconv libraries installed by Cygwin, or MinGW or gnuwin32. [https://github.com/Exiv2/exiv2/issues/1250](https://github.com/Exiv2/exiv2/issues/1250)
|
||||
Exiv2 includes the file cmake/FindIconv.cmake which contains a guard to prevent CMake from finding libiconv when you build with Visual Studio. This was added because of issues reported when Visual Studio attempted to link libiconv libraries installed by Cygwin, or MinGW or gnuwin32. [https://github.com/Exiv2/exiv2/issues/1250](https://github.com/Exiv2/exiv2/issues/1250)
|
||||
|
||||
There are build instructions about Visual Studio in libiconv-1.16/INSTALL.window require you to install Cygwin. There is an article here about building libiconv with Visual Studio. [https://www.codeproject.com/Articles/302012/How-to-Build-libiconv-with-Microsoft-Visual-Studio](https://www.codeproject.com/Articles/302012/How-to-Build-libiconv-with-Microsoft-Visual-Studio).
|
||||
|
||||
@ -654,7 +654,7 @@ You can cross compile Exiv2 on Linux for MinGW. We have used the following meth
|
||||
$ sudo dnf install mingw64-gcc-c++ mingw64-filesystem mingw64-expat mingw64-zlib cmake make
|
||||
```
|
||||
|
||||
#### 2 Install Dependancies
|
||||
#### 2 Install Dependencies
|
||||
|
||||
You will need to install x86_64 libraries to support the options you wish to use. By default, you will need libz and expat. Your `dnf` command above has installed them for you. If you wish to use features such as `webready` you should install openssl and libcurl as follows:
|
||||
|
||||
@ -807,7 +807,7 @@ Access to the bmff code is guarded in two ways. Firstly, you have to build the
|
||||
EXIV2API bool enableBMFF(bool enable);
|
||||
```
|
||||
|
||||
The return value from `enableBMFF()` is true if the library has been build with bmff support (cmake option -DEXIV2_ANABLE_BMFF=On).
|
||||
The return value from `enableBMFF()` is true if the library has been build with bmff support (cmake option -DEXIV2_ENABLE_BMFF=On).
|
||||
|
||||
Applications may wish to provide a preference setting to enable bmff support and thereby place the responsibility for the use of this code with the user of the application.
|
||||
|
||||
|
||||
@ -38,7 +38,7 @@ Team Exiv2 does not back-port security (or any other fix) to earlier releases of
|
||||
|
||||
The version numbering scheme is explained below. The design includes provision for a security release. A _**Dot Release**_ is an updated version of the library with security PRs and other changes. A _**Dot Release**_ offers the same API as its parent. A _**Security Release**_ is an existing release PLUS one or more security PRs. Nothing else is changed from it parent.
|
||||
|
||||
Users can register on GitHub.com to receive release notices for RC and GM Releases. Additionally, we inform users when we begin a project to create a new release on FaceBook (https://facebook.com/exiv2) and Discuss Pixls (https://discuss.pixls.us). The announcement of a new release project has a preliminay specification and schedule.
|
||||
Users can register on GitHub.com to receive release notices for RC and GM Releases. Additionally, we inform users when we begin a project to create a new release on FaceBook (https://facebook.com/exiv2) and Discuss Pixls (https://discuss.pixls.us). The announcement of a new release project has a preliminary specification and schedule.
|
||||
|
||||
## Version Numbering Scheme
|
||||
|
||||
|
||||
@ -268,7 +268,7 @@ OPTIMIZE_OUTPUT_VHDL = NO
|
||||
# parses. With this tag you can assign which parser to use for a given
|
||||
# extension. Doxygen has a built-in mapping, but you can override or extend it
|
||||
# using this tag. The format is ext=language, where ext is a file extension, and
|
||||
# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
|
||||
# language is one of the parsers supported by doxygen: IDL, Java, JavaScript,
|
||||
# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
|
||||
# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
|
||||
# Fortran. In the later case the parser tries to guess whether the code is fixed
|
||||
@ -675,7 +675,7 @@ SHOW_NAMESPACES = YES
|
||||
# The FILE_VERSION_FILTER tag can be used to specify a program or script that
|
||||
# doxygen should invoke to get the current version for each file (typically from
|
||||
# the version control system). Doxygen will invoke the program by executing (via
|
||||
# popen()) the command command input-file, where command is the value of the
|
||||
# popen()) the command input-file, where command is the value of the
|
||||
# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
|
||||
# by doxygen. Whatever the program writes to standard output is used as the file
|
||||
# version. For an example see the documentation.
|
||||
@ -1474,7 +1474,7 @@ EXT_LINKS_IN_WINDOW = NO
|
||||
|
||||
FORMULA_FONTSIZE = 10
|
||||
|
||||
# Use the FORMULA_TRANPARENT tag to determine whether or not the images
|
||||
# Use the FORMULA_TRANSPARENT tag to determine whether or not the images
|
||||
# generated for formulas are transparent PNGs. Transparent PNGs are not
|
||||
# supported properly for IE 6.0, but are supported on all modern browsers.
|
||||
#
|
||||
@ -1486,7 +1486,7 @@ FORMULA_FONTSIZE = 10
|
||||
FORMULA_TRANSPARENT = YES
|
||||
|
||||
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
|
||||
# http://www.mathjax.org) which uses client side Javascript for the rendering
|
||||
# http://www.mathjax.org) which uses client side JavaScript for the rendering
|
||||
# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
|
||||
# installed or if you want to formulas look prettier in the HTML output. When
|
||||
# enabled you may also need to install MathJax separately and configure the path
|
||||
@ -1556,7 +1556,7 @@ MATHJAX_CODEFILE =
|
||||
SEARCHENGINE = YES
|
||||
|
||||
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
|
||||
# implemented using a web server instead of a web client using Javascript. There
|
||||
# implemented using a web server instead of a web client using JavaScript. There
|
||||
# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
|
||||
# setting. When disabled, doxygen will generate a PHP script for searching and
|
||||
# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
# This module provides function for joining paths
|
||||
# known from from most languages
|
||||
# known from most languages
|
||||
#
|
||||
# Original license:
|
||||
# SPDX-License-Identifier: (MIT OR CC0-1.0)
|
||||
|
||||
@ -131,7 +131,7 @@ foreach(doc ${DOCS})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${doc} DESTINATION .)
|
||||
endforeach()
|
||||
|
||||
# copy build/log which which is present if built by build.sh
|
||||
# copy build/log which is present if built by build.sh
|
||||
if(EXISTS ${PROJECT_SOURCE_DIR}/build/logs/build.txt)
|
||||
install(FILES ${PROJECT_SOURCE_DIR}/build/logs/build.txt DESTINATION "logs")
|
||||
endif()
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
#
|
||||
# Before to run this script you must set these shell variable :
|
||||
# $EXIVCoverityToken with token of Exiv2 project given by Coverity SCAN
|
||||
# $EXIVCoverityEmail with email adress to send SCAN result.
|
||||
# $EXIVCoverityEmail with email address to send SCAN result.
|
||||
#
|
||||
# Coverity Scan bin dir must be appended to PATH variable.
|
||||
#
|
||||
|
||||
@ -61,7 +61,7 @@ E:\Projects\libexpat. The exiv2 solution will have the exiv2 project
|
||||
exposition) and the expat-static project (from libexpat). The
|
||||
expat-static project is added as a reference to the exiv2
|
||||
project. This make Visual Studio generate the correct dependency
|
||||
heirarchy and compile correctly.
|
||||
hierarchy and compile correctly.
|
||||
|
||||
# Folder Structure #
|
||||
|
||||
|
||||
@ -323,7 +323,7 @@ Build: (11)
|
||||
0001329 Error during cmake with gcc version parsing
|
||||
0001310 Provide support for msys/2.0
|
||||
0001299 exiv2-0.26-trunk.tar.gz changed on download server
|
||||
0001270 Using libexiv2.a/.lib in multhreaded app segfaults.
|
||||
0001270 Using libexiv2.a/.lib in multithreaded app segfaults.
|
||||
0001237 Report CMake/MinGW issues to Kitware
|
||||
0001188 Provide build support for C++11
|
||||
0001174 Visual Studio Support Enhancements
|
||||
@ -643,9 +643,9 @@ Changes from version 0.25 to 0.26
|
||||
- 0001145: Respect Sony/Minolta lenses with shared LensID such as Tamron SP AF 17-50mm F2.8 XR Di II LD
|
||||
- 0001144: Sigma 10-20mm f/4-5.6 EX DC is detected as Tamaron
|
||||
(Simon Harhues)
|
||||
- 0001142: Manual lens does not get recogniced: Beroflex zoom 500mm
|
||||
- 0001142: Manual lens does not get recognized: Beroflex zoom 500mm
|
||||
(Simon Harhues / Niels Kristian Bech Jensen)
|
||||
- 0001141: Manual lens does not get recogniced: Pentax macro 100mm
|
||||
- 0001141: Manual lens does not get recognized: Pentax macro 100mm
|
||||
(Simon Harhues / Niels Kristian Bech Jensen)
|
||||
- 0001118: Add support for ZEISS Loxia 2/50 lens
|
||||
(Eugen Neu)
|
||||
@ -689,7 +689,7 @@ Changes from version 0.25 to 0.26
|
||||
- 0000922: Add options -pS and -dI to application exiv2
|
||||
- 0000855: Segfault when accessing focalLength with 0.23
|
||||
(Tobias E.)
|
||||
- 0000756: Access to ICC Profile (TAG: 0x8773) data in Exif as uninterpretted binary
|
||||
- 0000756: Access to ICC Profile (TAG: 0x8773) data in Exif as uninterpreted binary
|
||||
(Ray NA)
|
||||
- 0000676: Patch for reading ICC color profiles
|
||||
(Andreas Huggel)
|
||||
@ -783,7 +783,7 @@ Changes from version 0.25 to 0.26
|
||||
|
||||
* Testing: (6)
|
||||
- 0001230: Bug Hunt for v0.26
|
||||
- 0001207: digiKam maintenance tool to synchronize files metadata and database crash in Exiv2 (re-entrancy issue ?)
|
||||
- 0001207: digiKam maintenance tool to synchronize files metadata and database crash in Exiv2 (reentrancy issue ?)
|
||||
(Uwe Haider)
|
||||
- 0001057: Implement target/modifier - (stdin/stdout) for exiv2 options -i (insert) and -e (extract)
|
||||
- 0001045: Add COPYRIGHT file to test/data/
|
||||
@ -1192,7 +1192,7 @@ Changes from version 0.23 to 0.24
|
||||
(Reported by S. Verdoold, patch by Pascal de Bruijn)
|
||||
- 0000861: Sigma 18-250mm not properly recognised on Pentax
|
||||
(Reported by S. Verdoold, patch by Pascal de Bruijn)
|
||||
- 0000862: Video code is failing the test suite (on all plaforms)
|
||||
- 0000862: Video code is failing the test suite (on all platforms)
|
||||
(Robin Mills, Abhinav Badola)
|
||||
- 0000865: Patches for locale and boost issue (Patches by Mario anyc)
|
||||
- 0000868: Support for two lens for sony mount
|
||||
@ -1463,7 +1463,7 @@ Changes from version 0.20 to 0.21
|
||||
(Patch by Matthias Baas)
|
||||
- Added ExifKey::defaultCount() to access the new count reference
|
||||
information.
|
||||
- Fixed zlib uncompression of large PNG metadata buffers.
|
||||
- Fixed zlib decompression of large PNG metadata buffers.
|
||||
- Improved determination of MIME type.
|
||||
- Updated Canon makernote. (Greg Mansfield, Axel Waggershauser)
|
||||
- Updated Olympus makernote. (Greg Mansfield)
|
||||
@ -1713,7 +1713,7 @@ Changes from version 0.18 to 0.18.1
|
||||
support for multiple TIFF tree structures.
|
||||
|
||||
* MSVC related
|
||||
- 0000621: windows librarys are forcing a link to
|
||||
- 0000621: windows libraries are forcing a link to
|
||||
..\..\..\zlib-1.2.3\projects\visual6\blah\blah.
|
||||
(Reported by Peter J. Ersts, fix by Robin Mills)
|
||||
|
||||
@ -2051,7 +2051,7 @@ Changes from version 0.12 to 0.13
|
||||
and insert actions.
|
||||
|
||||
* Exiv2 library
|
||||
- 0000503: [metadata] Tiff generated by photoshop crashes exiv2
|
||||
- 0000503: [metadata] Tiff generated by Photoshop crashes exiv2
|
||||
(digikam bug 139658).
|
||||
- 0000502: [iptc] New TIFF parser: Decode IPTC from Exif.Image.IPTCNAA.
|
||||
(Reported by Walter Hangartner)
|
||||
@ -2124,7 +2124,7 @@ Changes from version 0.11 to 0.12
|
||||
- [exif] Updated Minolta makernote. (Gilles Caulier, Paul Tribick)
|
||||
|
||||
* MSVC related
|
||||
- 0000487: Crash in exiv2.exe (built with VC++ 2005 Express) when examing TIFF
|
||||
- 0000487: Crash in exiv2.exe (built with VC++ 2005 Express) when examining TIFF
|
||||
images (Reported with patch by Dimitri Schoolwerth)
|
||||
|
||||
|
||||
|
||||
@ -70,7 +70,7 @@ set Xmp.xmpDM.videoFrameSize/stDim:unit inch
|
||||
set Xmp.dc.publisher James Bond
|
||||
set Xmp.dc.publisher[1]/?ns:role secret agent
|
||||
|
||||
# Add a qualifer to an array element of Xmp.dc.creator (added above)
|
||||
# Add a qualifier to an array element of Xmp.dc.creator (added above)
|
||||
set Xmp.dc.creator[2]/?ns:role programmer
|
||||
|
||||
# Add an array of structures. First set a text property with just the
|
||||
|
||||
10
exiv2.md
10
exiv2.md
@ -107,7 +107,7 @@ image are determined.
|
||||
- Reading other TIFF-like RAW image formats, which are not listed in
|
||||
the table, may also work.
|
||||
|
||||
- Some image formats allow an extra interal type of metadata. Only
|
||||
- Some image formats allow an extra internal type of metadata. Only
|
||||
partial support exists for the RAF format.
|
||||
|
||||
- Support for BMFF types such as AVIF, CR3, HEIF and HEIC is a build
|
||||
@ -1008,8 +1008,8 @@ HH:MM:SScHH:MM
|
||||
```
|
||||
where HH:MM:SS refers to local time's hour, minutes and seconds and, HH:MM
|
||||
refers to hours and minutes with c being ahead (+) or behind (-)
|
||||
Universal Coordinated Time (UCT) as described in ISO 8601 (e.g.,
|
||||
08:45:15+01:00 is 08:45:15, which is +1 hour different from UCT).
|
||||
Coordinated Universal Time (UTC) as described in ISO 8601 (e.g.,
|
||||
08:45:15+01:00 is 08:45:15, which is +1 hour different from UTC).
|
||||
|
||||
<div id="date_time_makernotes">
|
||||
|
||||
@ -1803,7 +1803,7 @@ tags. See [fixiso](#fi_fixiso).
|
||||
<div id="return_value">
|
||||
|
||||
# 14 RETURN VALUE
|
||||
`0` if successfull, otherwise a positive integer as error code.
|
||||
`0` if successful, otherwise a positive integer as error code.
|
||||
|
||||
[TOC](#TOC)
|
||||
|
||||
@ -1815,7 +1815,7 @@ tags. See [fixiso](#fi_fixiso).
|
||||
|
||||
### TZ
|
||||
This is the timezone to use when adjusting for daylight savings time (DST) and
|
||||
affects the changing of the the time and date (e.g., when adjusting or
|
||||
affects the changing of the time and date (e.g., when adjusting or
|
||||
renaming). See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
for a list of valid values to use. The variable is not set by default for
|
||||
Windows and an attempt is made to obtain the timezone from the OS. If this
|
||||
|
||||
@ -310,7 +310,7 @@ namespace Exiv2 {
|
||||
/*!
|
||||
@brief Constructor that accepts the file path on which IO will be
|
||||
performed. The constructor does not open the file, and
|
||||
therefore never failes.
|
||||
therefore never fails.
|
||||
@param path The full path of a file
|
||||
*/
|
||||
explicit FileIo(const std::string& path);
|
||||
@ -329,7 +329,7 @@ namespace Exiv2 {
|
||||
//! @name Manipulators
|
||||
//@{
|
||||
/*!
|
||||
@brief Open the file using using the specified mode.
|
||||
@brief Open the file using the specified mode.
|
||||
|
||||
This method can also be used to "reopen" a file which will flush any
|
||||
unwritten data and reset the IO position to the start. Although
|
||||
@ -343,7 +343,7 @@ namespace Exiv2 {
|
||||
*/
|
||||
int open(const std::string& mode);
|
||||
/*!
|
||||
@brief Open the file using using the default access mode of "rb".
|
||||
@brief Open the file using the default access mode of "rb".
|
||||
This method can also be used to "reopen" a file which will flush
|
||||
any unwritten data and reset the IO position to the start.
|
||||
@return 0 if successful;<BR>
|
||||
@ -884,7 +884,7 @@ namespace Exiv2 {
|
||||
*/
|
||||
DataBuf read(long rcount) override;
|
||||
/*!
|
||||
@brief Read data from the the memory blocks. Reading starts at the current
|
||||
@brief Read data from the memory blocks. Reading starts at the current
|
||||
IO position and the position is advanced by the number of
|
||||
bytes read.
|
||||
If the memory blocks are not populated (!= bMemory), it will connect to server
|
||||
@ -994,7 +994,7 @@ namespace Exiv2 {
|
||||
/*!
|
||||
@brief Constructor that accepts the http URL on which IO will be
|
||||
performed. The constructor does not open the file, and
|
||||
therefore never failes.
|
||||
therefore never fails.
|
||||
@param url The full path of url
|
||||
@param blockSize the size of the memory block. The file content is
|
||||
divided into the memory blocks. These blocks are populated
|
||||
|
||||
@ -36,7 +36,7 @@ typedef int pid_t;
|
||||
#include "exv_conf.h"
|
||||
////////////////////////////////////////
|
||||
|
||||
///// Start of platform marcos /////////
|
||||
///// Start of platform macros /////////
|
||||
#if defined(__MINGW32__) || defined(__MINGW64__)
|
||||
# ifndef __MING__
|
||||
# define __MING__ 1
|
||||
@ -79,9 +79,9 @@ typedef int pid_t;
|
||||
# include <fstream>
|
||||
# endif
|
||||
#endif
|
||||
///// End of platform marcos /////////
|
||||
///// End of platform macros /////////
|
||||
|
||||
///// Path separator marcos /////
|
||||
///// Path separator macros /////
|
||||
#ifndef EXV_SEPARATOR_STR
|
||||
# if defined(WIN32) && !defined(__CYGWIN__)
|
||||
# define EXV_SEPARATOR_STR "\\"
|
||||
|
||||
@ -187,11 +187,11 @@ namespace Exiv2 {
|
||||
*/
|
||||
static const char* dataSetDesc(uint16_t number, uint16_t recordId);
|
||||
/*!
|
||||
@brief Return the photohsop name of a given dataset.
|
||||
@brief Return the Photoshop name of a given dataset.
|
||||
@param number The dataset number
|
||||
@param recordId The IPTC record Id
|
||||
@return The name used by photoshop for a dataset or an empty
|
||||
string if photoshop does not use the dataset.
|
||||
@return The name used by Photoshop for a dataset or an empty
|
||||
string if Photoshop does not use the dataset.
|
||||
*/
|
||||
static const char* dataSetPsName(uint16_t number, uint16_t recordId);
|
||||
/*!
|
||||
|
||||
@ -156,7 +156,7 @@ namespace Exiv2
|
||||
typedef typename storage_type<data_type>::value_type value_type;
|
||||
|
||||
/*!
|
||||
* Default contructor, requires begin to be smaller than end,
|
||||
* Default constructor, requires begin to be smaller than end,
|
||||
* otherwise an exception is thrown. Also forwards all parameters to
|
||||
* the constructor of storage_
|
||||
*/
|
||||
|
||||
@ -137,7 +137,7 @@ namespace Exiv2 {
|
||||
|
||||
@param key The key string.
|
||||
@throw Error if the first part of the key is not '<b>Exif</b>' or
|
||||
the remainin parts of the key cannot be parsed and
|
||||
the remaining parts of the key cannot be parsed and
|
||||
converted to a group name and tag name.
|
||||
*/
|
||||
explicit ExifKey(const std::string& key);
|
||||
|
||||
@ -102,12 +102,12 @@ namespace Exiv2 {
|
||||
asciiString = 2, //!< Exif ASCII type, 8-bit byte.
|
||||
unsignedShort = 3, //!< Exif SHORT type, 16-bit (2-byte) unsigned integer.
|
||||
unsignedLong = 4, //!< Exif LONG type, 32-bit (4-byte) unsigned integer.
|
||||
unsignedRational = 5, //!< Exif RATIONAL type, two LONGs: numerator and denumerator of a fraction.
|
||||
unsignedRational = 5, //!< Exif RATIONAL type, two LONGs: numerator and denominator of a fraction.
|
||||
signedByte = 6, //!< Exif SBYTE type, an 8-bit signed (twos-complement) integer.
|
||||
undefined = 7, //!< Exif UNDEFINED type, an 8-bit byte that may contain anything.
|
||||
signedShort = 8, //!< Exif SSHORT type, a 16-bit (2-byte) signed (twos-complement) integer.
|
||||
signedLong = 9, //!< Exif SLONG type, a 32-bit (4-byte) signed (twos-complement) integer.
|
||||
signedRational =10, //!< Exif SRATIONAL type, two SLONGs: numerator and denumerator of a fraction.
|
||||
signedRational =10, //!< Exif SRATIONAL type, two SLONGs: numerator and denominator of a fraction.
|
||||
tiffFloat =11, //!< TIFF FLOAT type, single precision (4-byte) IEEE format.
|
||||
tiffDouble =12, //!< TIFF DOUBLE type, double precision (8-byte) IEEE format.
|
||||
tiffIfd =13, //!< TIFF IFD type, 32-bit (4-byte) unsigned integer.
|
||||
|
||||
@ -406,7 +406,7 @@ namespace Exiv2 {
|
||||
/*!
|
||||
@brief %Value for string type.
|
||||
|
||||
This can be a plain Ascii string or a multipe byte encoded string. It is
|
||||
This can be a plain Ascii string or a multiple byte encoded string. It is
|
||||
left to caller to decode and encode the string to and from readable
|
||||
text if that is required.
|
||||
*/
|
||||
@ -472,7 +472,7 @@ namespace Exiv2 {
|
||||
//@{
|
||||
UniquePtr clone() const { return UniquePtr(clone_()); }
|
||||
/*!
|
||||
@brief Write the ASCII value up to the the first '\\0' character to an
|
||||
@brief Write the ASCII value up to the first '\\0' character to an
|
||||
output stream. Any further characters are ignored and not
|
||||
written to the output stream.
|
||||
*/
|
||||
@ -488,7 +488,7 @@ namespace Exiv2 {
|
||||
/*!
|
||||
@brief %Value for an Exif comment.
|
||||
|
||||
This can be a plain Ascii string or a multipe byte encoded string. The
|
||||
This can be a plain Ascii string or a multiple byte encoded string. The
|
||||
comment is expected to be encoded in the character set indicated (default
|
||||
undefined), but this is not checked. It is left to caller to decode and
|
||||
encode the string to and from readable text if that is required.
|
||||
|
||||
@ -13401,7 +13401,7 @@ msgstr ""
|
||||
|
||||
#: src/properties.cpp:277
|
||||
msgid ""
|
||||
"References to resources that were incorporated, byinclusion or reference, "
|
||||
"References to resources that were incorporated, by inclusion or reference, "
|
||||
"into this resource."
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -25,10 +25,10 @@ Thank You to the following who have contributed to this release.
|
||||
1) Bug and security fixes:
|
||||
- bmff read-only support (.CR3, .HEIC, .HEIF, .AVIF and JXL/bmff).
|
||||
- Security process is defined. https://github.com/Exiv2/exiv2/security/policy
|
||||
- 3 benign ASAN issues. First CVE in 18 months. Patched in 2hrs, Fixed ixed in 24hrs.
|
||||
- 3 benign ASAN issues. First CVE in 18 months. Patched in 2hrs, Fixed in 24hrs.
|
||||
- DNG 1.6 and Exif 2.32 support.
|
||||
- More easyaccess APIs and documentation.
|
||||
- Localation support on Crowdin.
|
||||
- Localization support on Crowdin.
|
||||
- Updated Catalan localisation.
|
||||
|
||||
2) Changes to downloadable build bundles:
|
||||
@ -248,7 +248,7 @@ Build: (11)
|
||||
0001329 Error during cmake with gcc version parsing
|
||||
0001310 Provide support for msys/2.0
|
||||
0001299 exiv2-0.26-trunk.tar.gz changed on download server
|
||||
0001270 Using libexiv2.a/.lib in multhreaded app segfaults.
|
||||
0001270 Using libexiv2.a/.lib in multithreaded app segfaults.
|
||||
0001237 Report CMake/MinGW issues to Kitware
|
||||
0001188 Provide build support for C++11
|
||||
0001174 Visual Studio Support Enhancements
|
||||
|
||||
@ -50,7 +50,7 @@ void httpcon(const std::string& url, bool useHttp1_0 = false) {
|
||||
void curlcon(const std::string& url, bool useHttp1_0 = false) {
|
||||
CURL* curl = curl_easy_init();
|
||||
if(!curl) {
|
||||
throw Exiv2::Error(Exiv2::kerErrorMessage, "Uable to init libcurl.");
|
||||
throw Exiv2::Error(Exiv2::kerErrorMessage, "Unable to init libcurl.");
|
||||
}
|
||||
|
||||
// get the timeout value
|
||||
@ -73,7 +73,7 @@ void curlcon(const std::string& url, bool useHttp1_0 = false) {
|
||||
|
||||
/* Perform the request, res will get the return code */
|
||||
CURLcode res = curl_easy_perform(curl);
|
||||
if(res != CURLE_OK) { // error happends
|
||||
if(res != CURLE_OK) { // error happened
|
||||
throw Exiv2::Error(Exiv2::kerErrorMessage, curl_easy_strerror(res));
|
||||
}
|
||||
|
||||
|
||||
@ -164,7 +164,7 @@ bool isArray(std::string& value)
|
||||
template <class T>
|
||||
void push(Jzon::Node& node,const std::string& key,T i)
|
||||
{
|
||||
#define ABORT_IF_I_EMTPY \
|
||||
#define ABORT_IF_I_EMPTY \
|
||||
if (i->value().size() == 0) { \
|
||||
return; \
|
||||
}
|
||||
@ -200,7 +200,7 @@ void push(Jzon::Node& node,const std::string& key,T i)
|
||||
|
||||
case Exiv2::unsignedRational:
|
||||
case Exiv2::signedRational: {
|
||||
ABORT_IF_I_EMTPY
|
||||
ABORT_IF_I_EMPTY
|
||||
Jzon::Array arr;
|
||||
Exiv2::Rational rat = i->value().toRational();
|
||||
arr.Add(rat.first );
|
||||
@ -209,7 +209,7 @@ void push(Jzon::Node& node,const std::string& key,T i)
|
||||
} break;
|
||||
|
||||
case Exiv2::langAlt: {
|
||||
ABORT_IF_I_EMTPY
|
||||
ABORT_IF_I_EMPTY
|
||||
Jzon::Object l ;
|
||||
const auto& langs = dynamic_cast<const Exiv2::LangAltValue&>(i->value());
|
||||
for (auto&& lang : langs.value_) {
|
||||
|
||||
@ -310,7 +310,7 @@ struct UserData final
|
||||
std::string exift;
|
||||
time_t time{0};
|
||||
Options& options_;
|
||||
// static public data memembers
|
||||
// static public data members
|
||||
};
|
||||
|
||||
// XML Parser Callbacks
|
||||
|
||||
@ -60,7 +60,7 @@ class Params : public Util::Getopt {
|
||||
|
||||
public:
|
||||
/*!
|
||||
@brief Call Getopt::getopt() with optstring, to inititate command line
|
||||
@brief Call Getopt::getopt() with optstring, to initiate command line
|
||||
argument parsing, perform consistency checks after all command line
|
||||
arguments are parsed.
|
||||
|
||||
|
||||
@ -187,7 +187,7 @@ try {
|
||||
xmpData["Xmp.dc.publisher"] = "James Bond"; // creates an unordered array
|
||||
xmpData["Xmp.dc.publisher[1]/?ns:role"] = "secret agent";
|
||||
|
||||
// Add a qualifer to an array element of Xmp.dc.creator (added above)
|
||||
// Add a qualifier to an array element of Xmp.dc.creator (added above)
|
||||
tv.read("programmer");
|
||||
xmpData.add(Exiv2::XmpKey("Xmp.dc.creator[2]/?ns:role"), &tv);
|
||||
|
||||
|
||||
@ -186,7 +186,7 @@ elseif(EXIV2_ENABLE_EXTERNAL_XMP)
|
||||
target_compile_definitions(exiv2lib PUBLIC EXV_ADOBE_XMPSDK=2016)
|
||||
endif()
|
||||
|
||||
# Use include/exiv2 to build libary code
|
||||
# Use include/exiv2 to build library code
|
||||
target_include_directories(exiv2lib PUBLIC
|
||||
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include/exiv2>
|
||||
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
|
||||
|
||||
@ -212,7 +212,7 @@ namespace Action {
|
||||
}; // class Print
|
||||
|
||||
/*!
|
||||
@brief %Rename a file to its metadate creation timestamp,
|
||||
@brief %Rename a file to its metadata creation timestamp,
|
||||
in the specified format.
|
||||
*/
|
||||
class Rename : public Task {
|
||||
|
||||
@ -2080,7 +2080,7 @@ namespace Exiv2 {
|
||||
throw Error(kerErrorMessage, "Please set the path of the server script to handle http post data to EXIV2_HTTP_POST environmental variable.");
|
||||
}
|
||||
|
||||
// standadize the path without "/" at the beginning.
|
||||
// standardize the path without "/" at the beginning.
|
||||
std::size_t protocolIndex = scriptPath.find("://");
|
||||
if (protocolIndex == std::string::npos && scriptPath[0] != '/') {
|
||||
scriptPath = "/" + scriptPath;
|
||||
@ -2192,7 +2192,7 @@ namespace Exiv2 {
|
||||
CurlIo::CurlImpl::CurlImpl(const std::string& url, size_t blockSize) : Impl(url, blockSize), curl_(curl_easy_init())
|
||||
{
|
||||
if(!curl_) {
|
||||
throw Error(kerErrorMessage, "Uable to init libcurl.");
|
||||
throw Error(kerErrorMessage, "Unable to init libcurl.");
|
||||
}
|
||||
|
||||
// The default block size for FTP is much larger than other protocols
|
||||
@ -2218,7 +2218,7 @@ namespace Exiv2 {
|
||||
// init curl pointer
|
||||
curl_ = curl_easy_init();
|
||||
if(!curl_) {
|
||||
throw Error(kerErrorMessage, "Uable to init libcurl.");
|
||||
throw Error(kerErrorMessage, "Unable to init libcurl.");
|
||||
}
|
||||
|
||||
// The default block size for FTP is much larger than other protocols
|
||||
@ -2245,7 +2245,7 @@ namespace Exiv2 {
|
||||
|
||||
/* Perform the request, res will get the return code */
|
||||
CURLcode res = curl_easy_perform(curl_);
|
||||
if(res != CURLE_OK) { // error happends
|
||||
if(res != CURLE_OK) { // error happened
|
||||
throw Error(kerErrorMessage, curl_easy_strerror(res));
|
||||
}
|
||||
// get status
|
||||
|
||||
@ -67,7 +67,7 @@
|
||||
#define TAG_iinf 0x69696e66 /**< "iinf" Item info */
|
||||
#define TAG_iloc 0x696c6f63 /**< "iloc" Item location */
|
||||
#define TAG_ispe 0x69737065 /**< "ispe" Image spatial extents */
|
||||
#define TAG_infe 0x696e6665 /**< "infe" Item Info Extention */
|
||||
#define TAG_infe 0x696e6665 /**< "infe" Item Info Extension */
|
||||
#define TAG_ipma 0x69706d61 /**< "ipma" Item Property Association */
|
||||
#define TAG_cmt1 0x434d5431 /**< "CMT1" ifd0Id */
|
||||
#define TAG_cmt2 0x434D5432 /**< "CMD2" exifID */
|
||||
@ -245,7 +245,7 @@ namespace Exiv2
|
||||
out << std::endl;
|
||||
}
|
||||
// The enforce() above checks that restore + buffer_size won't
|
||||
// exceed pbox_end, and by implication, won't excced LONG_MAX
|
||||
// exceed pbox_end, and by implication, won't exceed LONG_MAX
|
||||
return restore + buffer_size;
|
||||
}
|
||||
|
||||
|
||||
@ -740,8 +740,8 @@ namespace Exiv2 {
|
||||
{0x000a, "WB_GRGBLevelsDaylight", N_("WB_G RGB Levels Daylight"), N_("WB_G RGB Levels Daylight"), canonWbId, makerTags, unsignedLong, -1, printValue},
|
||||
{0x0012, "WB_GRGBLevelsCloudy", N_("WB_G RGB Levels Cloudy"), N_("WB_G RGB Levels Cloudy"), canonWbId, makerTags, unsignedLong, -1, printValue},
|
||||
{0x001a, "WB_GRGBLevelsTungsten", N_("WB_G RGB Levels Tungsten"), N_("WB_G RGB Levels Tungsten"), canonWbId, makerTags, unsignedLong, -1, printValue},
|
||||
{0x0022, "WB_GRGBLevelsFluorescent", N_("WB_G RGB Levels Flourescent"), N_("WB_G RGB Levels Flourescent"), canonWbId, makerTags, unsignedLong, -1, printValue},
|
||||
{0x002a, "WB_GRGBLevelsFluorHigh", N_("WB_G RGB Levels Flourecent High"), N_("WB_G RGB Levels Flourecent High"), canonWbId, makerTags, unsignedLong, -1, printValue},
|
||||
{0x0022, "WB_GRGBLevelsFluorescent", N_("WB_G RGB Levels Fluorescent"), N_("WB_G RGB Levels Fluorescent"), canonWbId, makerTags, unsignedLong, -1, printValue},
|
||||
{0x002a, "WB_GRGBLevelsFluorHigh", N_("WB_G RGB Levels Fluorescent High"), N_("WB_G RGB Levels Fluorescent High"), canonWbId, makerTags, unsignedLong, -1, printValue},
|
||||
{0x0032, "WB_GRGBLevelsFlash", N_("WB_G RGB Levels Flash"), N_("WB_G RGB Levels Flash"), canonWbId, makerTags, unsignedLong, -1, printValue},
|
||||
{0x003a, "WB_GRGBLevelsUnderwater", N_("WB_G RGB Levels Underwater"), N_("WB_G RGB Levels Underwater"), canonWbId, makerTags, unsignedLong, -1, printValue},
|
||||
{0x0042, "WB_GRGBLevelsCustom1", N_("WB_G RGB Levels Custom 1"), N_("WB_G RGB Levels Custom 1"), canonWbId, makerTags, unsignedLong, -1, printValue},
|
||||
@ -849,7 +849,7 @@ namespace Exiv2 {
|
||||
{0x000d, "WB_RGGBLevelsShade", N_("WB_RGGB Levels Shade"), N_("WB_RGGB Levels Shade"), canonCbId, makerTags, signedShort, -1, printValue},
|
||||
{0x001a, "WB_RGGBLevelsCloudy", N_("WB_RGGB Levels Cloudy"), N_("WB_RGGB Levels Cloudy"), canonCbId, makerTags, signedShort, -1, printValue},
|
||||
{0x0011, "WB_RGGBLevelsTungsten", N_("WB_RGGB Levels Tungsten"), N_("WB_RGGB Levels Tungsten"), canonCbId, makerTags, signedShort, -1, printValue},
|
||||
{0x0015, "WB_RGGBLevelsFlourescent", N_("WB_RGGB Levels Flourecent"), N_("WB_RGGB Levels Flourecent"), canonCbId, makerTags, signedShort, -1, printValue},
|
||||
{0x0015, "WB_RGGBLevelsFluorescent", N_("WB_RGGB Levels Fluorescent"), N_("WB_RGGB Levels Fluorescent"), canonCbId, makerTags, signedShort, -1, printValue},
|
||||
{0x0032, "WB_RGGBLevelsFlash", N_("WB_RGGB Levels Flash"), N_("WB_RGGB Levels Flash"), canonCbId, makerTags, signedShort, -1, printValue},
|
||||
{0x001d, "WB_RGGBLevelsCustomBlackLevels", N_("WB_RGGB Levels Custom Black Levels"), N_("WB_RGGB Levels Custom Black Levels"), canonCbId, makerTags, signedShort, -1, printValue},
|
||||
{0x0021, "WB_RGGBLevelsKelvin", N_("WB_RGGB Levels Kelvin"), N_("WB_RGGB Levels Kelvin"), canonCbId, makerTags, signedShort, -1, printValue},
|
||||
@ -1189,7 +1189,7 @@ namespace Exiv2 {
|
||||
// Canon OneShotAFRelease, tag 0x0001
|
||||
constexpr TagDetails canonOneShotAFRelease[] = {
|
||||
{ 0, N_("Focus Priority") },
|
||||
{ 1, N_("Release Priortiy") }
|
||||
{ 1, N_("Release Priority") }
|
||||
};
|
||||
|
||||
// Canon AutoAFPointSelEOSiTRAF, tag 0x0001
|
||||
@ -1230,7 +1230,7 @@ namespace Exiv2 {
|
||||
// Canon ManualAFPointSelPattern, tag 0x0001
|
||||
constexpr TagDetails canonManualAFPointSelPattern[] = {
|
||||
{ 0, N_("Stops at AF Area Edges") },
|
||||
{ 1, N_("Continous") }
|
||||
{ 1, N_("Continuous") }
|
||||
};
|
||||
|
||||
// Canon AFPointDisplayDuringFocus, tag 0x0001
|
||||
@ -2914,7 +2914,7 @@ namespace Exiv2 {
|
||||
if ( value.typeId() == unsignedShort
|
||||
&& value.count() > 0) {
|
||||
// The offset of '5' seems to be ok for most Canons (see Exiftool)
|
||||
// It might be explained by the fakt, that most Canons have a longest
|
||||
// It might be explained by the fact, that most Canons have a longest
|
||||
// exposure of 30s which is 5 EV below 1s
|
||||
// see also printSi0x0017
|
||||
std::ostringstream oss;
|
||||
|
||||
@ -367,11 +367,11 @@ namespace Exiv2 {
|
||||
|
||||
//! AutoISO, tag 0x3008
|
||||
constexpr TagDetails casio2AutoISO[] = {
|
||||
{ 1, N_("On") },
|
||||
{ 2, N_("Off") },
|
||||
{ 7, N_("On (high sensitiviy)") },
|
||||
{ 8, N_("On (anti-shake)") },
|
||||
{ 10, N_("High Speed") }
|
||||
{ 1, N_("On") },
|
||||
{ 2, N_("Off") },
|
||||
{ 7, N_("On (high sensitivity)") },
|
||||
{ 8, N_("On (anti-shake)") },
|
||||
{ 10, N_("High Speed") }
|
||||
};
|
||||
|
||||
//! AFMode, tag 0x3009
|
||||
@ -396,7 +396,7 @@ namespace Exiv2 {
|
||||
{ 0, N_("Off") },
|
||||
{ 1, N_("Scenery") },
|
||||
{ 3, N_("Green") },
|
||||
{ 5, N_("Unterwater") },
|
||||
{ 5, N_("Underwater") },
|
||||
{ 9, N_("Flesh Tones") }
|
||||
|
||||
};
|
||||
|
||||
@ -226,7 +226,7 @@ namespace Exiv2 {
|
||||
//! Return the tag id of this component
|
||||
uint16_t tagId() const { return tag_ & 0x3fff; }
|
||||
|
||||
//! Return the type id of thi component
|
||||
//! Return the type id of this component
|
||||
TypeId typeId() const { return typeId(tag_); }
|
||||
|
||||
//! Return the data location for this component
|
||||
|
||||
@ -155,7 +155,7 @@ namespace Exiv2 {
|
||||
md_st->write(os, &ed);
|
||||
bool ok = false;
|
||||
const long st_val = parseLong(os.str(), ok);
|
||||
// SensivityType out of range or cannot be parsed properly
|
||||
// SensitivityType out of range or cannot be parsed properly
|
||||
if (!ok || st_val < 1 || st_val > 7)
|
||||
break;
|
||||
// pick up list of ISO tags, and check for at least one of
|
||||
|
||||
@ -314,7 +314,7 @@ private:
|
||||
|
||||
public:
|
||||
/*!
|
||||
@brief Call Getopt::getopt() with optstring, to inititate command line
|
||||
@brief Call Getopt::getopt() with optstring, to initiate command line
|
||||
argument parsing, perform consistency checks after all command line
|
||||
arguments are parsed.
|
||||
|
||||
|
||||
@ -181,7 +181,7 @@ struct IMAGEINFO_T
|
||||
unsigned long trigCount; //!< trig counter
|
||||
short manipulType; //!< defines how to interpret manipFactors
|
||||
short manipFactors[5]; //!< Used average factors
|
||||
/** Detecor settings - camera type dependent */
|
||||
/** Detector settings - camera type dependent */
|
||||
long detectorPars[20]; //!< Currently used detector parameters like
|
||||
//! used bias, offsets. Usage is camera
|
||||
//! dependent
|
||||
@ -205,7 +205,7 @@ struct DISTR_DATA_T
|
||||
//! FALSE
|
||||
long curGlobalOffset;
|
||||
float curGlobalGain; //!< globalOffset/Gain to generate LUT from
|
||||
//! updated continously when live only
|
||||
//! updated continuously when live only
|
||||
#define regulationOn 1
|
||||
unsigned short regulMethodMask; //!< Method used for o/g calculation
|
||||
unsigned short visualImage; //!< TRUE (1) for TV (visual)
|
||||
|
||||
@ -366,7 +366,7 @@ int Exiv2::http(Exiv2::Dictionary& request,Exiv2::Dictionary& response,std::stri
|
||||
}
|
||||
}
|
||||
|
||||
// if the bufffer's full and we're still searching - give up!
|
||||
// if the buffer's full and we're still searching - give up!
|
||||
// this handles the possibility that there are no headers
|
||||
if ( bSearching && buff_l-end < 10 ) {
|
||||
bSearching = false ;
|
||||
|
||||
@ -554,7 +554,7 @@ namespace Exiv2 {
|
||||
std::vector<long> iptcDataSegs;
|
||||
|
||||
if (bPrint || option == kpsXMP || option == kpsIccProfile || option == kpsIptcErase) {
|
||||
// nmonic for markers
|
||||
// mnemonic for markers
|
||||
std::string nm[256];
|
||||
nm[0xd8] = "SOI";
|
||||
nm[0xd9] = "EOI";
|
||||
|
||||
@ -790,7 +790,7 @@ namespace Exiv2 {
|
||||
{0x0048, "ExposureTime", N_("Exposure Time"),
|
||||
N_("Exposure time"),
|
||||
minoltaCs7DId, makerTags, unsignedShort, 1, printValue},
|
||||
// 0x004A is a dupplicate than 0x002D.
|
||||
// 0x004A is a duplicate than 0x002D.
|
||||
{0x004A, "FreeMemoryCardImages", N_("Free Memory Card Images"),
|
||||
N_("Free memory card images"),
|
||||
minoltaCs7DId, makerTags, unsignedShort, 1, printValue},
|
||||
@ -800,7 +800,7 @@ namespace Exiv2 {
|
||||
{0x0060, "NoiseReduction", N_("Noise Reduction"),
|
||||
N_("Noise reduction"),
|
||||
minoltaCs7DId, makerTags, unsignedShort, 1, printMinoltaSonyBoolValue},
|
||||
// 0x0062 is a dupplicate than 0x005E.
|
||||
// 0x0062 is a duplicate than 0x005E.
|
||||
{0x0062, "ImageNumber", N_("Image Number"),
|
||||
N_("Image number"),
|
||||
minoltaCs7DId, makerTags, unsignedShort, 1, printValue},
|
||||
|
||||
@ -61,7 +61,7 @@ namespace Exiv2 {
|
||||
};
|
||||
|
||||
//! Off, Low, Normal, High, multiple tags
|
||||
constexpr TagDetails nikonActiveDLighning[] = {
|
||||
constexpr TagDetails nikonActiveDLighting[] = {
|
||||
{ 0, N_("Off") },
|
||||
{ 1, N_("Low") },
|
||||
{ 3, N_("Normal") },
|
||||
@ -383,7 +383,7 @@ namespace Exiv2 {
|
||||
unsigned long focusPoint = value.toLong(1);
|
||||
|
||||
switch (focusPoint) {
|
||||
// Could use array nikonFokuspoints
|
||||
// Could use array nikonFocuspoints
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
@ -583,7 +583,7 @@ namespace Exiv2 {
|
||||
{0x001e, "ColorSpace", N_("Color Space"), N_("Color space"), nikon3Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikonColorSpace)},
|
||||
{0x001f, "VRInfo", N_("VR Info"), N_("VR info"), nikon3Id, makerTags, undefined, -1, printValue},
|
||||
{0x0020, "ImageAuthentication", N_("Image Authentication"), N_("Image authentication"), nikon3Id, makerTags, unsignedByte, -1, EXV_PRINT_TAG(nikonOffOn)},
|
||||
{0x0022, "ActiveDLighting", N_("ActiveD-Lighting"), N_("ActiveD-lighting"), nikon3Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikonActiveDLighning)},
|
||||
{0x0022, "ActiveDLighting", N_("ActiveD-Lighting"), N_("ActiveD-lighting"), nikon3Id, makerTags, unsignedShort, -1, EXV_PRINT_TAG(nikonActiveDLighting)},
|
||||
{0x0023, "PictureControl", N_("Picture Control"), N_(" Picture control"), nikon3Id, makerTags, undefined, -1, printValue},
|
||||
{0x0024, "WorldTime", N_("World Time"), N_("World time"), nikon3Id, makerTags, undefined, -1, printValue},
|
||||
{0x0025, "ISOInfo", N_("ISO Info"), N_("ISO info"), nikon3Id, makerTags, undefined, -1, printValue},
|
||||
@ -1710,7 +1710,7 @@ namespace Exiv2 {
|
||||
// What focuspoint did the user select?
|
||||
if (focuspoint < focuspoints) {
|
||||
os << nikonFocuspoints[focuspoint];
|
||||
// TODO: os << position[fokuspoint][combination]
|
||||
// TODO: os << position[focuspoint][combination]
|
||||
}
|
||||
else
|
||||
os << "(" << focuspoint << ")";
|
||||
@ -1718,7 +1718,7 @@ namespace Exiv2 {
|
||||
sep = ',';
|
||||
}
|
||||
|
||||
// What fokuspoints(!) did the camera use? add if differs
|
||||
// What focuspoints(!) did the camera use? add if differs
|
||||
if (focusused == 0)
|
||||
os << sep << " " << _("none");
|
||||
else if (focusused != 1U<<focuspoint) {
|
||||
@ -2620,7 +2620,7 @@ fmountlens[] = {
|
||||
{
|
||||
const unsigned char vid = static_cast<unsigned>(value.toLong(0));
|
||||
|
||||
/* the 'FMntLens' name is added to the annonymous struct for
|
||||
/* the 'FMntLens' name is added to the anonymous struct for
|
||||
* fmountlens[]
|
||||
*
|
||||
* remember to name the struct when importing/updating the lens info
|
||||
|
||||
@ -78,7 +78,7 @@ namespace Exiv2 {
|
||||
static std::ostream& print0x1015(std::ostream& os, const Value& value, const ExifData*);
|
||||
//! Print Olympus equipment Lens type
|
||||
static std::ostream& print0x0201(std::ostream& os, const Value& value, const ExifData*);
|
||||
//! Print Olympus CamerID
|
||||
//! Print Olympus CameraID
|
||||
static std::ostream& print0x0209(std::ostream& os, const Value& value, const ExifData*);
|
||||
//! Print Olympus equipment Extender
|
||||
static std::ostream& printEq0x0301(std::ostream& os, const Value& value, const ExifData*);
|
||||
|
||||
@ -467,7 +467,7 @@ namespace Exiv2 {
|
||||
{0x0040, "Saturation", N_("Saturation"), N_("Saturation"), panasonicId, makerTags, unsignedShort, -1, printValue},
|
||||
{0x0041, "Sharpness", N_("Sharpness"), N_("Sharpness"), panasonicId, makerTags, unsignedShort, -1, printValue},
|
||||
{0x0042, "FilmMode", N_("Film Mode"), N_("Film mode"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicFilmMode)},
|
||||
{0x0044, "ColorTempKelvin", N_("Color Temp Kelvin"), N_("Color Temperatur in Kelvin"), panasonicId, makerTags, unsignedShort, -1, printValue},
|
||||
{0x0044, "ColorTempKelvin", N_("Color Temp Kelvin"), N_("Color Temperature in Kelvin"), panasonicId, makerTags, unsignedShort, -1, printValue},
|
||||
{0x0045, "BracketSettings", N_("Bracket Settings"), N_("Bracket Settings"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicBracketSettings)},
|
||||
{0x0046, "WBAdjustAB", N_("WB Adjust AB"), N_("WB adjust AB. Positive is a shift toward blue."), panasonicId, makerTags, unsignedShort, -1, printValue},
|
||||
{0x0047, "WBAdjustGM", N_("WB Adjust GM"), N_("WBAdjustGM. Positive is a shift toward green."), panasonicId, makerTags, unsignedShort, -1, printValue},
|
||||
@ -601,7 +601,7 @@ namespace Exiv2 {
|
||||
|
||||
} // PanasonicMakerNote::print0x0029
|
||||
|
||||
// bage age
|
||||
// baby age
|
||||
std::ostream& PanasonicMakerNote::print0x0033(std::ostream& os,
|
||||
const Value& value,
|
||||
const ExifData*)
|
||||
|
||||
@ -63,7 +63,7 @@ namespace Exiv2 {
|
||||
static std::ostream& printPressure(std::ostream& os, const Value& value, const ExifData*);
|
||||
//! Print special text values: title, landmark, county and so on
|
||||
static std::ostream& printPanasonicText(std::ostream& os, const Value& value, const ExifData*);
|
||||
//! Print accerometer readings
|
||||
//! Print accelerometer readings
|
||||
static std::ostream& printAccelerometer(std::ostream& os, const Value& value, const ExifData*);
|
||||
//! Print roll angle
|
||||
static std::ostream& printRollAngle(std::ostream& os, const Value& value, const ExifData*);
|
||||
|
||||
@ -249,7 +249,7 @@ namespace Exiv2 {
|
||||
{ 0x109, N_("On, Slow-sync") },
|
||||
{ 0x10a, N_("On, Slow-sync, Red-eye reduction") },
|
||||
{ 0x10b, N_("On, Trailing-curtain Sync") },
|
||||
// exiftool recognises 2 values, the values here correpond with Value 0
|
||||
// exiftool recognises 2 values, the values here correspond with Value 0
|
||||
};
|
||||
|
||||
//! Focus, tag 0x000d
|
||||
|
||||
@ -121,7 +121,7 @@ namespace Exiv2 {
|
||||
uint32_t headerSize = readPgfHeaderSize(*io_);
|
||||
readPgfHeaderStructure(*io_, pixelWidth_, pixelHeight_);
|
||||
|
||||
// And now, the most interresting, the user data byte array where metadata are stored as small image.
|
||||
// And now, the most interesting, the user data byte array where metadata are stored as small image.
|
||||
|
||||
enforce(headerSize <= std::numeric_limits<uint32_t>::max() - 8, kerCorruptedMetadata);
|
||||
#if LONG_MAX < UINT_MAX
|
||||
|
||||
@ -354,7 +354,7 @@ namespace Exiv2
|
||||
}
|
||||
|
||||
// We look if a comments string exist. Note than we use only 'Description' keyword which
|
||||
// is dedicaced to store long comments. 'Comment' keyword is ignored.
|
||||
// is dedicated to store long comments. 'Comment' keyword is ignored.
|
||||
|
||||
if (keySize >= 11 && memcmp("Description", key, 11) == 0 && pImage->comment().empty()) {
|
||||
pImage->setComment(std::string(arr.c_str(), arr.size()));
|
||||
|
||||
@ -594,7 +594,7 @@ namespace Exiv2 {
|
||||
return;
|
||||
}
|
||||
if (!strcmp(szChunk, "eXIf")) {
|
||||
; // do nothing Exif metdata is written following IHDR
|
||||
; // do nothing Exif metadata is written following IHDR
|
||||
; // as zTXt chunk with signature Raw profile type exif__
|
||||
} else if (!strcmp(szChunk, "IHDR")) {
|
||||
#ifdef EXIV2_DEBUG_MESSAGES
|
||||
|
||||
@ -110,7 +110,7 @@ namespace {
|
||||
static PreviewId getNumLoaders();
|
||||
|
||||
protected:
|
||||
//! Constructor. Sets all image properies to unknown.
|
||||
//! Constructor. Sets all image properties to unknown.
|
||||
Loader(PreviewId id, const Image &image);
|
||||
|
||||
//! Functions that creates a loader from given parameters
|
||||
@ -810,7 +810,7 @@ namespace {
|
||||
|
||||
// the size_ parameter is originally computed by summing all values inside sizes
|
||||
// see the constructor of LoaderTiff
|
||||
// But e.g in malicious files some of thes values could be negative
|
||||
// But e.g in malicious files some of these values could be negative
|
||||
// That's why we check again for each step here to really make sure we don't overstep
|
||||
enforce(Safe::add(idxBuf, size) <= size_, kerCorruptedMetadata);
|
||||
if (size!=0 && Safe::add(offset, size) <= static_cast<uint32_t>(io.size())){
|
||||
|
||||
@ -262,7 +262,7 @@ namespace Exiv2 {
|
||||
"intended to give human readers a general indication of the steps taken to make the "
|
||||
"changes from the previous version to this one. The list should be at an abstract "
|
||||
"level; it is not intended to be an exhaustive keystroke or other detailed history.") },
|
||||
{ "Ingredients", N_("Ingredients"), "bag ResourceRef", xmpBag, xmpInternal, N_("References to resources that were incorporated, byinclusion or reference, into this resource.") },
|
||||
{ "Ingredients", N_("Ingredients"), "bag ResourceRef", xmpBag, xmpInternal, N_("References to resources that were incorporated, by inclusion or reference, into this resource.") },
|
||||
{ "InstanceID", N_("Instance ID"), "URI", xmpText, xmpInternal, N_("An identifier for a specific incarnation of a document, updated each time a file "
|
||||
"is saved. It should be based on a UUID; see Document and Instance IDs below.") },
|
||||
{ "ManagedFrom", N_("Managed From"), "ResourceRef", xmpText, xmpInternal, N_("A reference to the document as it was prior to becoming managed. It is set when a "
|
||||
@ -4161,7 +4161,7 @@ namespace Exiv2 {
|
||||
|
||||
@throw Error if the key cannot be decomposed.
|
||||
*/
|
||||
void decomposeKey(const std::string& key); //!< Misterious magic
|
||||
void decomposeKey(const std::string& key); //!< Mysterious magic
|
||||
|
||||
// DATA
|
||||
static constexpr auto familyName_ = "Xmp"; //!< "Xmp"
|
||||
|
||||
@ -303,7 +303,7 @@ namespace Exiv2 {
|
||||
8 4 bytes height Height of thumbnail in pixels.
|
||||
12 4 bytes widthbytes Padded row bytes as (width * bitspixel + 31) / 32 * 4.
|
||||
16 4 bytes size Total size as widthbytes * height * planes
|
||||
20 4 bytes compressedsize Size after compression. Used for consistentcy check.
|
||||
20 4 bytes compressedsize Size after compression. Used for consistency check.
|
||||
24 2 bytes bitspixel = 24. Bits per pixel.
|
||||
26 2 bytes planes = 1. Number of planes.
|
||||
28 variable data JFIF data in RGB format.
|
||||
|
||||
@ -1657,7 +1657,7 @@ namespace Exiv2 {
|
||||
N_("A string that identifies a specific instance in a semantic mask."),
|
||||
ifd0Id, dngTags, asciiString, 0, printValue}, // DNG 1.6 tag
|
||||
{0xcd31, "CalibrationIlluminant3", N_("Calibration Illuminant 3"),
|
||||
N_("The illuminant used for an optional thrid set of color calibration "
|
||||
N_("The illuminant used for an optional third set of color calibration "
|
||||
"tags (ColorMatrix3, CameraCalibration3, ReductionMatrix3). The legal "
|
||||
"values for this tag are the same as the legal values for the "
|
||||
"LightSource EXIF tag; CalibrationIlluminant1 and CalibrationIlluminant2 "
|
||||
|
||||
@ -844,7 +844,7 @@ namespace Exiv2 {
|
||||
|
||||
void TiffEncoder::visitBinaryElement(TiffBinaryElement* object)
|
||||
{
|
||||
// Temporarily overwrite byteorder according to that of the binary element
|
||||
// Temporarily overwrite byte order according to that of the binary element
|
||||
ByteOrder boOrig = byteOrder_;
|
||||
if (object->elByteOrder() != invalidByteOrder) byteOrder_ = object->elByteOrder();
|
||||
encodeTiffComponent(object);
|
||||
|
||||
@ -533,7 +533,7 @@ namespace Exiv2 {
|
||||
static uint32_t updateDirEntry(byte* buf, ByteOrder byteOrder, TiffComponent* pTiffComponent);
|
||||
/*!
|
||||
@brief Check if the tag is an image tag of an existing image. Such
|
||||
tags are copied from the original image and can't be modifed.
|
||||
tags are copied from the original image and can't be modified.
|
||||
|
||||
The condition is true if there is an existing image (as
|
||||
opposed to a newly created TIFF image) and \em tag, \em group
|
||||
|
||||
@ -208,14 +208,14 @@ namespace Exiv2 {
|
||||
height = Exiv2::getULong(size_buf, littleEndian) + 1;
|
||||
}
|
||||
|
||||
/* Chunk with with animation control data. */
|
||||
/* Chunk with animation control data. */
|
||||
#ifdef __CHECK_FOR_ALPHA__ // Maybe in the future
|
||||
if (equalsWebPTag(chunkId, WEBP_CHUNK_HEADER_ANIM) && !has_alpha) {
|
||||
has_alpha = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Chunk with with lossy image data. */
|
||||
/* Chunk with lossy image data. */
|
||||
#ifdef __CHECK_FOR_ALPHA__ // Maybe in the future
|
||||
if (equalsWebPTag(chunkId, WEBP_CHUNK_HEADER_VP8) && !has_alpha) {
|
||||
has_alpha = true;
|
||||
@ -238,7 +238,7 @@ namespace Exiv2 {
|
||||
height = Exiv2::getUShort(size_buf, littleEndian) & 0x3fff;
|
||||
}
|
||||
|
||||
/* Chunk with with lossless image data. */
|
||||
/* Chunk with lossless image data. */
|
||||
if (equalsWebPTag(chunkId, WEBP_CHUNK_HEADER_VP8L) && !has_alpha) {
|
||||
enforce(size >= 5, Exiv2::kerCorruptedMetadata);
|
||||
if ((payload.read_uint8(4) & WEBP_VP8X_ALPHA_BIT) == WEBP_VP8X_ALPHA_BIT) {
|
||||
|
||||
@ -53,7 +53,7 @@ SHELL = /bin/bash
|
||||
|
||||
# ******************************************************************************
|
||||
# Targets
|
||||
.PHONY: all test testv teste mostlyclean clean distclean maintainer-clean
|
||||
.PHONY: all test mostlyclean clean distclean maintainer-clean
|
||||
|
||||
##
|
||||
# to save download time for simple build/test, we download video and eps data on demand
|
||||
|
||||
@ -70,7 +70,7 @@ set Xmp.xmpDM.videoFrameSize/stDim:unit inch
|
||||
set Xmp.dc.publisher James Bond
|
||||
set Xmp.dc.publisher[1]/?ns:role secret agent
|
||||
|
||||
# Add a qualifer to an array element of Xmp.dc.creator (added above)
|
||||
# Add a qualifier to an array element of Xmp.dc.creator (added above)
|
||||
set Xmp.dc.creator[2]/?ns:role programmer
|
||||
|
||||
# Add an array of structures. First set a text property with just the
|
||||
|
||||
@ -440,7 +440,7 @@ prepareTest()
|
||||
bin="$EXIV2_BINDIR/"
|
||||
fi
|
||||
|
||||
# update PATHs to ensure we load the the correct dynamlic library
|
||||
# update PATHs to ensure we load the correct dynamic library
|
||||
if [ $PLATFORM == 'mingw' -a $PLATFORM == 'cygwin' ]; then
|
||||
export PATH="$bin:$PATH"
|
||||
elif [ 'PLATFORM' == 'Darwin' ]; then
|
||||
|
||||
@ -8,7 +8,7 @@ source ./functions.source
|
||||
nls=$(runTest exiv2 -vVg nls|tail -1)
|
||||
platform=$(${bin}exiv2${exe} -vVg platform|tail -1)
|
||||
if [ "$nls" != "enable_nls=1" ]; then
|
||||
echo "exiv2 not bulid with nls"
|
||||
echo "exiv2 not build with nls"
|
||||
exit 0
|
||||
fi
|
||||
if [ "$platform" == "platform=windows" ]; then
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
import system_tests
|
||||
|
||||
|
||||
class Sigma24_105mmRecognization(metaclass=system_tests.CaseMeta):
|
||||
class Sigma24_105mmRecognition(metaclass=system_tests.CaseMeta):
|
||||
|
||||
url = "https://github.com/Exiv2/exiv2/issues/45"
|
||||
|
||||
|
||||
@ -622,7 +622,7 @@ def test_run(self):
|
||||
t.cancel()
|
||||
|
||||
def get_decode_error():
|
||||
""" Return an error indicating the the decoding of stdout/stderr
|
||||
""" Return an error indicating the decoding of stdout/stderr
|
||||
failed.
|
||||
"""
|
||||
return "Could not decode the output of the command '{!s}' with "\
|
||||
|
||||
@ -24,11 +24,11 @@
|
||||
|
||||
using namespace Exiv2;
|
||||
|
||||
// The tests corrispond to those in issue https://github.com/Exiv2/exiv2/issues/1481
|
||||
// The tests correspond to those in issue https://github.com/Exiv2/exiv2/issues/1481
|
||||
|
||||
|
||||
// 1. No language value
|
||||
TEST(LangAltValueReadTest, noLangugeValBeforeSpace)
|
||||
TEST(LangAltValueReadTest, noLanguageValBeforeSpace)
|
||||
{
|
||||
XmpParser::initialize();
|
||||
::atexit(XmpParser::terminate);
|
||||
@ -45,7 +45,7 @@ TEST(LangAltValueReadTest, noLangugeValBeforeSpace)
|
||||
}
|
||||
}
|
||||
|
||||
TEST(LangAltValueReadTest, quoteThenNoLangugeValBeforeSpace)
|
||||
TEST(LangAltValueReadTest, quoteThenNoLanguageValBeforeSpace)
|
||||
{
|
||||
XmpParser::initialize();
|
||||
::atexit(XmpParser::terminate);
|
||||
|
||||
@ -147,7 +147,7 @@ TEST(MemIo, readLessBytesThanAvailableReturnsRequestedBytes)
|
||||
ASSERT_EQ(5, io.read(buf2.data(), 5));
|
||||
}
|
||||
|
||||
TEST(MemIo, readSameBytesThanAvailableReturnsRequetedBytes)
|
||||
TEST(MemIo, readSameBytesThanAvailableReturnsRequestedBytes)
|
||||
{
|
||||
std::array<byte, 10> buf1, buf2;
|
||||
buf1.fill(1);
|
||||
|
||||
@ -33,7 +33,7 @@ class slice;
|
||||
* This namespace contains the helper-function get_test_data. It is intented
|
||||
* to be used for test with the slice fixture: it returns the appropriate
|
||||
* data to the constructor of slice. For (const) T==std::vector it returns the
|
||||
* fixtures meber vec_, for (const) T==int* it returns vec_.data()
|
||||
* fixtures member vec_, for (const) T==int* it returns vec_.data()
|
||||
*
|
||||
* Due to C++98's limitations, this requires a separate traits class, that
|
||||
* specifies the return type *and* a specialization of get_test_data for each
|
||||
|
||||
Loading…
Reference in New Issue
Block a user