Add multi-frame handling.

- Exif of all frames are displayed in the Editor's Exif tab (without
separator)
- isHDR and isPixelShift is added to the data files stored in cache
- In the Editor panel, the QuickInfo frame display the HDR and
PixelShift information, as well as the number of frame and bit-depth for
HDR image
- the number of frame is provided by dcraw. If not set, it is provided
by the Exif's main IFD count
- the PixelShift information (for Pentax as of now) is provided by
looking at the Exif informations
- the HDR information is provided by the Exif information of the first
frame for Pentax raw files, or by the bitspersample, sampleformat and
compression tags for other files

TODO: add icons to the thumbnails to tag HDR and PixelShift files.
This commit is contained in:
Hombre57
2017-08-08 23:42:05 +02:00
parent b183a0b3c7
commit f23be9345c
45 changed files with 1529 additions and 265 deletions

View File

@@ -29,6 +29,7 @@
#define IMIO_CANNOTWRITEFILE 7
#include "rtengine.h"
#include "imageformat.h"
#include <glibmm.h>
#include "procparams.h"
#include <libiptcdata/iptc-data.h>
@@ -43,31 +44,6 @@ namespace rtengine
class ProgressListener;
class Imagefloat;
typedef enum IIO_Sample_Format {
IIOSF_UNKNOWN = 0, // Unknown or Unsupported file type; Has to remain 0
//IIOSF_SIGNED_INT , // Not yet supported
IIOSF_UNSIGNED_CHAR = 1 << 0,
IIOSF_UNSIGNED_SHORT = 1 << 1,
//IIOSF_HALF , // OpenEXR & NVidia's Half Float, not yet supported
IIOSF_LOGLUV24 = 1 << 2,
IIOSF_LOGLUV32 = 1 << 3,
IIOSF_FLOAT = 1 << 4
} IIOSampleFormat;
typedef enum IIO_Sample_Arrangement {
IIOSA_UNKNOWN, // Unknown or Unsupported file type
IIOSA_CHUNKY,
IIOSA_PLANAR
} IIOSampleArrangement;
typedef enum SensorType {
ST_NONE, // use this value if the image is already demosaiced (i.e. not a raw file)
ST_BAYER,
ST_FUJI_XTRANS,
ST_FOVEON,
//ST_FUJI_EXR
} eSensorType;
class ImageIO : virtual public ImageDatas
{