[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a
Maximiliano Curia
maxy at moszumanska.debian.org
Thu Jul 13 17:39:55 UTC 2017
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=27d6294
The following commit has been merged in the master branch:
commit 27d629425ec56b16eec485e1c25427e3871fa02e
Author: Andreas Huggel <ahuggel at gmx.net>
Date: Thu Oct 9 16:12:37 2008 +0000
Minor changes.
---
samples/prevtest.cpp | 2 +-
src/preview.cpp | 169 +++++++++++++++++++++++++--------------------------
src/preview.hpp | 24 ++++----
3 files changed, 96 insertions(+), 99 deletions(-)
diff --git a/samples/prevtest.cpp b/samples/prevtest.cpp
index 51b1d4e..50172a5 100644
--- a/samples/prevtest.cpp
+++ b/samples/prevtest.cpp
@@ -29,7 +29,7 @@ try {
{
loader.readDimensions(*pos);
std::cout << "found preview " << pos->id_
- << ", length: " << pos->length_
+ << ", size: " << pos->size_
<< ", " << pos->width_ << 'x' << pos->height_
<< "
";
diff --git a/src/preview.cpp b/src/preview.cpp
index 9ce1ff2..d82f6c4 100644
--- a/src/preview.cpp
+++ b/src/preview.cpp
@@ -48,22 +48,24 @@ EXIV2_RCSID("@(#) $Id$")
// *****************************************************************************
namespace {
/*!
- @brief Compare two preview images by length. Return true if the
- lhs is smaller than rhs.
+ @brief Compare two preview images by number of pixels, if width and height
+ of both lhs and rhs are available or else by size.
+ Return true if lhs is smaller than rhs.
*/
bool cmpPreviewProperties(
const Exiv2::PreviewProperties& lhs,
const Exiv2::PreviewProperties& rhs
)
{
- static const long compressionFactor = 10;
-
- long l = (long)lhs.width_ * lhs.height_;
- if (l == 0) l = lhs.uncompressed_ ? lhs.length_ : lhs.length_ * compressionFactor;
-
- long r = (long)rhs.width_ * rhs.height_;
- if (r == 0) r = rhs.uncompressed_ ? rhs.length_ : rhs.length_ * compressionFactor;
-
+ static const uint16_t compressionFactor = 10;
+
+ uint32_t l = lhs.width_ * lhs.height_;
+ uint32_t r = rhs.width_ * rhs.height_;
+ if (l == 0 || r == 0) {
+ l = lhs.uncompressed_ ? lhs.size_ : lhs.size_ * compressionFactor;
+ r = rhs.uncompressed_ ? rhs.size_ : rhs.size_ * compressionFactor;
+ }
+
return l < r;
}
}
@@ -87,7 +89,7 @@ namespace Exiv2 {
static Loader::AutoPtr create(PreviewId id, const Image &image);
//! Check if a preview image with given params exists in the image
- virtual bool valid() const {return valid_;};
+ virtual bool valid() const { return valid_; }
//! Get properties of a preview image with given params
virtual PreviewProperties getProperties() const;
@@ -96,7 +98,7 @@ namespace Exiv2 {
virtual DataBuf getData() const = 0;
//! Read preview image dimensions when they are not available directly
- virtual bool readDimensions() {return true;};
+ virtual bool readDimensions() { return true; }
//! A number of image loaders configured in the loaderList_ table
static PreviewId getNumLoaders();
@@ -108,7 +110,6 @@ namespace Exiv2 {
const char *imageMimeType_; //!< Image type for which is the loader valid, NULL matches all images
CreateFunc create_; //!< Function that creates particular loader instance
int parIdx_; //!< Parameter that is passed into CreateFunc
-
};
static const LoaderList loaderList_[]; // PreviewId is an index to this table
@@ -116,10 +117,10 @@ namespace Exiv2 {
PreviewId id_;
const Image &image_;
- int width_;
- int height_;
+ uint32_t width_;
+ uint32_t height_;
bool uncompressed_;
- long length_;
+ uint32_t size_;
bool valid_;
};
@@ -133,24 +134,24 @@ namespace Exiv2 {
virtual DataBuf getData() const;
virtual bool readDimensions();
- long getOffset() const;
- long getLength() const;
+ uint32_t getOffset() const;
+ uint32_t getSize() const;
protected:
- // this table lists possible offset/length key pairs
+ // this table lists possible offset/size key pairs
// parIdx is an index to this table
struct Param {
const char* offsetKey_;
- const char* lengthKey_;
+ const char* sizeKey_;
};
static const Param param_[];
ExifKey offsetKey_;
- ExifKey lengthKey_;
+ ExifKey sizeKey_;
- long offset_;
+ uint32_t offset_;
};
Loader::AutoPtr createLoaderExifJpeg(PreviewId id, const Image &image, int parIdx);
@@ -166,17 +167,17 @@ namespace Exiv2 {
protected:
- // this table lists possible offset/length key pairs
+ // this table lists possible offset/size key pairs
// parIdx is an index to this table
struct Param {
const char* dataKey_;
- const char* lengthKey_;
+ const char* sizeKey_;
};
static const Param param_[];
ExifKey dataKey_;
- ExifKey lengthKey_;
+ ExifKey sizeKey_;
};
Loader::AutoPtr createLoaderExifDataJpeg(PreviewId id, const Image &image, int parIdx);
@@ -203,7 +204,6 @@ namespace Exiv2 {
};
static const Param param_[];
-
};
Loader::AutoPtr createLoaderTiff(PreviewId id, const Image &image, int parIdx);
@@ -229,7 +229,7 @@ namespace Exiv2 {
{ NULL, createLoaderExifJpeg, 4},
{ NULL, createLoaderExifJpeg, 5},
{ "image/x-canon-cr2", createLoaderExifJpeg, 6}
- };
+ };
const LoaderExifJpeg::Param LoaderExifJpeg::param_[] = {
{ "Exif.Image.JPEGInterchangeFormat", "Exif.Image.JPEGInterchangeFormatLength" }, // 0
@@ -239,14 +239,14 @@ namespace Exiv2 {
{ "Exif.SubImage4.JPEGInterchangeFormat", "Exif.SubImage4.JPEGInterchangeFormatLength" }, // 4
{ "Exif.Image2.JPEGInterchangeFormat", "Exif.Image2.JPEGInterchangeFormatLength" }, // 5
{ "Exif.Image.StripOffsets", "Exif.Image.StripByteCounts" } // 6
- };
+ };
const LoaderExifDataJpeg::Param LoaderExifDataJpeg::param_[] = {
{ "Exif.Thumbnail.JPEGInterchangeFormat", "Exif.Thumbnail.JPEGInterchangeFormatLength" }, // 0
{ "Exif.NikonPreview.JPEGInterchangeFormat", "Exif.NikonPreview.JPEGInterchangeFormatLength" }, // 1
{ "Exif.Pentax.PreviewOffset", "Exif.Pentax.PreviewLength" }, // 2
{ "Exif.Minolta.ThumbnailOffset", "Exif.Minolta.ThumbnailLength" } // 3
- };
+ };
const LoaderTiff::Param LoaderTiff::param_[] = {
{ "Image" }, // 0
@@ -255,19 +255,18 @@ namespace Exiv2 {
{ "SubImage3" }, // 3
{ "SubImage4" }, // 4
{ "Thumbnail" } // 5
- };
+ };
PreviewImage::PreviewImage(const PreviewProperties &properties, DataBuf &data)
- : properties_(properties), data_(data)
+ : properties_(properties), data_(data)
{
}
PreviewImage::PreviewImage(const PreviewImage &src)
- : properties_(src.properties_), data_(const_cast<DataBuf&>(src.data_))
+ : properties_(src.properties_), data_(const_cast<DataBuf&>(src.data_))
{
}
-
long PreviewImage::writeFile(const std::string& path) const
{
std::string name = path + extension();
@@ -289,32 +288,32 @@ namespace Exiv2 {
return properties_.extension_;
}
- long PreviewImage::length() const
+ uint32_t PreviewImage::size() const
{
- return properties_.length_;
+ return properties_.size_;
}
Loader::AutoPtr Loader::create(PreviewId id, const Image &image)
{
- if (id < 0 || id >= Loader::getNumLoaders())
- return AutoPtr();
+ if (id < 0 || id >= Loader::getNumLoaders())
+ return AutoPtr();
- if (loaderList_[id].imageMimeType_ &&
- std::string(loaderList_[id].imageMimeType_) != std::string(image.mimeType()))
- return AutoPtr();
+ if (loaderList_[id].imageMimeType_ &&
+ std::string(loaderList_[id].imageMimeType_) != std::string(image.mimeType()))
+ return AutoPtr();
- AutoPtr loader = loaderList_[id].create_(id, image, loaderList_[id].parIdx_);
+ AutoPtr loader = loaderList_[id].create_(id, image, loaderList_[id].parIdx_);
- if (loader.get() && !loader->valid()) loader.reset();
- return loader;
+ if (loader.get() && !loader->valid()) loader.reset();
+ return loader;
}
Loader::Loader(PreviewId id, const Image &image)
- : id_(id), image_(image),
- width_(0), height_(0),
- uncompressed_(false),
- length_(0),
- valid_(false)
+ : id_(id), image_(image),
+ width_(0), height_(0),
+ uncompressed_(false),
+ size_(0),
+ valid_(false)
{
}
@@ -322,7 +321,7 @@ namespace Exiv2 {
{
PreviewProperties prop;
prop.id_ = id_;
- prop.length_ = length_;
+ prop.size_ = size_;
prop.width_ = width_;
prop.height_ = height_;
prop.uncompressed_ = uncompressed_;
@@ -335,37 +334,37 @@ namespace Exiv2 {
}
LoaderExifJpeg::LoaderExifJpeg(PreviewId id, const Image &image, int parIdx)
- : Loader(id, image),
- offsetKey_(param_[parIdx].offsetKey_),
- lengthKey_(param_[parIdx].lengthKey_)
+ : Loader(id, image),
+ offsetKey_(param_[parIdx].offsetKey_),
+ sizeKey_(param_[parIdx].sizeKey_)
{
offset_ = getOffset();
- length_ = getLength();
+ size_ = getSize();
- if (offset_ == 0 || length_ == 0) return;
- if (offset_ + length_ > image_.io().size()) return;
+ if (offset_ == 0 || size_ == 0) return;
+ if (offset_ + size_ > static_cast<uint32_t>(image_.io().size())) return;
valid_ = true;
}
Loader::AutoPtr createLoaderExifJpeg(PreviewId id, const Image &image, int parIdx)
{
- return Loader::AutoPtr(new LoaderExifJpeg(id, image, parIdx));
+ return Loader::AutoPtr(new LoaderExifJpeg(id, image, parIdx));
}
- long LoaderExifJpeg::getLength() const
+ uint32_t LoaderExifJpeg::getSize() const
{
- long length = 0;
- ExifData::const_iterator pos = image_.exifData().findKey(lengthKey_);
+ uint32_t size = 0;
+ ExifData::const_iterator pos = image_.exifData().findKey(sizeKey_);
if (pos != image_.exifData().end()) {
- length = pos->toLong();
+ size = pos->toLong();
}
- return length;
+ return size;
}
- long LoaderExifJpeg::getOffset() const
+ uint32_t LoaderExifJpeg::getOffset() const
{
- long offset = 0;
+ uint32_t offset = 0;
ExifData::const_iterator pos = image_.exifData().findKey(offsetKey_);
if (pos != image_.exifData().end()) {
offset = pos->toLong();
@@ -393,7 +392,7 @@ namespace Exiv2 {
const byte *base = io.mmap();
- return DataBuf(base + offset_, length_);
+ return DataBuf(base + offset_, size_);
}
bool LoaderExifJpeg::readDimensions()
@@ -410,7 +409,7 @@ namespace Exiv2 {
const byte *base = io.mmap();
- Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(base + offset_, length_);
+ Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(base + offset_, size_);
if (image.get() == 0) return false;
image->readMetadata();
@@ -420,25 +419,24 @@ namespace Exiv2 {
return true;
}
-
LoaderExifDataJpeg::LoaderExifDataJpeg(PreviewId id, const Image &image, int parIdx)
- : Loader(id, image),
- dataKey_(param_[parIdx].dataKey_),
- lengthKey_(param_[parIdx].lengthKey_)
+ : Loader(id, image),
+ dataKey_(param_[parIdx].dataKey_),
+ sizeKey_(param_[parIdx].sizeKey_)
{
ExifData::const_iterator pos = image_.exifData().findKey(dataKey_);
if (pos != image_.exifData().end()) {
- length_ = pos->sizeDataArea();
+ size_ = pos->sizeDataArea();
}
- if (length_ == 0) return;
+ if (size_ == 0) return;
valid_ = true;
}
Loader::AutoPtr createLoaderExifDataJpeg(PreviewId id, const Image &image, int parIdx)
{
- return Loader::AutoPtr(new LoaderExifDataJpeg(id, image, parIdx));
+ return Loader::AutoPtr(new LoaderExifDataJpeg(id, image, parIdx));
}
PreviewProperties LoaderExifDataJpeg::getProperties() const
@@ -492,8 +490,8 @@ namespace Exiv2 {
LoaderTiff::LoaderTiff(PreviewId id, const Image &image, int parIdx)
- : Loader(id, image),
- group_(param_[parIdx].group_)
+ : Loader(id, image),
+ group_(param_[parIdx].group_)
{
const ExifData &exifData = image_.exifData();
@@ -528,11 +526,11 @@ namespace Exiv2 {
if (pos != exifData.end()) {
if (offsetCount != pos->value().count()) return;
for (int i = 0; i < offsetCount; i++)
- length_ += pos->value().toLong(i);
+ size_ += pos->value().toLong(i);
}
else return;
- if (length_ == 0) return;
+ if (size_ == 0) return;
pos = exifData.findKey(ExifKey(std::string("Exif.") + group_ + ".ImageWidth"));
if (pos != exifData.end()) {
@@ -601,20 +599,20 @@ namespace Exiv2 {
if (sizes.count() == 1) {
// this saves one copying of the buffer
uint32_t offset = dataValue.toLong(0);
- uint32_t length = sizes.toLong(0);
- if (offset + length <= static_cast<uint32_t>(io.size()))
- dataValue.setDataArea(base + offset, length);
+ uint32_t size = sizes.toLong(0);
+ if (offset + size <= static_cast<uint32_t>(io.size()))
+ dataValue.setDataArea(base + offset, size);
}
else {
// FIXME: the buffer is probably copied twice, it should be optimized
- DataBuf buf(length_);
+ DataBuf buf(size_);
byte *pos = buf.pData_;
for (int i = 0; i < sizes.count(); i++) {
uint32_t offset = dataValue.toLong(i);
- uint32_t length = sizes.toLong(i);
- if (offset + length <= static_cast<uint32_t>(io.size()))
- memcpy(pos, base + offset, length);
- pos += length;
+ uint32_t size = sizes.toLong(i);
+ if (offset + size <= static_cast<uint32_t>(io.size()))
+ memcpy(pos, base + offset, size);
+ pos += size;
}
dataValue.setDataArea(buf.pData_, buf.size_);
}
@@ -628,9 +626,8 @@ namespace Exiv2 {
return DataBuf(&blob[0], static_cast<long>(blob.size()));
}
-
PreviewImageLoader::PreviewImageLoader(const Image& image)
- : image_(image)
+ : image_(image)
{
}
diff --git a/src/preview.hpp b/src/preview.hpp
index 2064b1c..24b1fce 100644
--- a/src/preview.hpp
+++ b/src/preview.hpp
@@ -55,14 +55,14 @@ namespace Exiv2 {
//! Preview image extension.
const char* extension_;
- //! Preview image length in bytes.
- long length_;
+ //! Preview image size in bytes.
+ uint32_t size_;
//! Preview image width in pixels or 0 for unknown width.
- int width_;
+ uint32_t width_;
//! Preview image height in pixels or 0 for unknown height.
- int height_;
+ uint32_t height_;
//! Preview image compression - true means uncompressed image.
bool uncompressed_;
@@ -81,10 +81,10 @@ namespace Exiv2 {
public:
//@{
//! Constructor.
- PreviewImage(const PreviewProperties &properties, DataBuf &data);
+ PreviewImage(const PreviewProperties& properties, DataBuf& data);
//! Copy constructor
- PreviewImage(const PreviewImage &src);
+ PreviewImage(const PreviewImage& src);
//@}
//! @name Accessors
@@ -93,7 +93,7 @@ namespace Exiv2 {
/*!
@brief Return a reference to image data.
*/
- DataBuf &data();
+ DataBuf& data();
/*!
@brief Write the thumbnail image to a file.
@@ -118,9 +118,9 @@ namespace Exiv2 {
const char* extension() const;
/*!
- @brief Return the thumbnail length in bytes.
+ @brief Return the size of the preview image in bytes.
*/
- long length() const;
+ uint32_t size() const;
//@}
private:
@@ -145,17 +145,17 @@ namespace Exiv2 {
/*!
@brief Return image data for given properties.
*/
- PreviewImage getPreviewImage(const PreviewProperties &properties) const;
+ PreviewImage getPreviewImage(const PreviewProperties& properties) const;
/*!
@brief Read image dimensions if they are not available directly.
*/
- bool readDimensions(PreviewProperties &properties) const;
+ bool readDimensions(PreviewProperties& properties) const;
//@}
private:
- const Image &image_;
+ const Image& image_;
}; // class PreviewImageLoader
} // namespace Exiv2
--
exiv2 packaging
More information about the pkg-kde-commits
mailing list