MythTV  master
Classes | Enumerations | Variables
imagemetadata.h File Reference

Handles Exif/FFMpeg metadata tags for images. More...

#include <utility>
#include <QCoreApplication>
#include <QDateTime>
#include <QStringBuilder>
#include <QStringList>
#include "mythmetaexp.h"
Include dependency graph for imagemetadata.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Orientation
 Encapsulates Exif orientation processing. More...
 
class  ImageMetaData
 Abstract class for image metadata. More...
 

Enumerations

enum  ImageFileTransform {
  kResetToExif = 0, kRotateCW = 1, kRotateCCW = 2, kFlipHorizontal = 3,
  kFlipVertical = 4
}
 Image transformations. More...
 

Variables

static constexpr const char * EXIF_TAG_ORIENTATION { "Exif.Image.Orientation" }
 
static constexpr const char * EXIF_TAG_DATETIME { "Exif.Image.DateTime" }
 
static constexpr const char * EXIF_TAG_DATE_FORMAT { "yyyy:MM:dd hh:mm:ss" }
 
static constexpr const char * EXIF_TAG_IMAGEDESCRIPTION { "Exif.Image.ImageDescription" }
 
static constexpr const char * EXIF_TAG_USERCOMMENT { "Exif.Photo.UserComment" }
 
static constexpr uint16_t EXIF_PRINT_IMAGE_MATCHING { 0xc4a5 }
 
static constexpr const char * FFMPEG_TAG_ORIENTATION { "rotate" }
 
static constexpr const char * FFMPEG_TAG_DATETIME { "creation_time" }
 
static constexpr const char * FFMPEG_TAG_DATE_FORMAT { "yyyy-MM-dd hh:mm:ss" }
 
static constexpr const char * EXIF_MYTH_HOST { "Myth.host" }
 
static constexpr const char * EXIF_MYTH_PATH { "Myth.path" }
 
static constexpr const char * EXIF_MYTH_NAME { "Myth.name" }
 
static constexpr const char * EXIF_MYTH_SIZE { "Myth.size" }
 
static constexpr const char * EXIF_MYTH_ORIENT { "Myth.orient" }
 

Detailed Description

Handles Exif/FFMpeg metadata tags for images.

For pictures, Exif tags are read using libexiv2 on demand For videos, tags are requested from mythffprobe Common tags (used by Gallery) are Orientation, Image Comment & Capture timestamp; all others are for information only. Videos have no comments; their orientation & timestamp are mutated into Exif format.

Definition in file imagemetadata.h.

Enumeration Type Documentation

◆ ImageFileTransform

Image transformations.

Enumerator
kResetToExif 

Reset to Exif value.

kRotateCW 

Rotate clockwise.

kRotateCCW 

Rotate anti-clockwise.

kFlipHorizontal 

Reflect about vertical axis.

kFlipVertical 

Reflect about horizontal axis.

Definition at line 46 of file imagemetadata.h.

Variable Documentation

◆ EXIF_TAG_ORIENTATION

constexpr const char* EXIF_TAG_ORIENTATION { "Exif.Image.Orientation" }
staticconstexpr

Definition at line 25 of file imagemetadata.h.

Referenced by PictureMetaData::GetOrientation().

◆ EXIF_TAG_DATETIME

constexpr const char* EXIF_TAG_DATETIME { "Exif.Image.DateTime" }
staticconstexpr

Definition at line 26 of file imagemetadata.h.

Referenced by PictureMetaData::GetOriginalDateTime().

◆ EXIF_TAG_DATE_FORMAT

constexpr const char* EXIF_TAG_DATE_FORMAT { "yyyy:MM:dd hh:mm:ss" }
staticconstexpr

Definition at line 27 of file imagemetadata.h.

Referenced by PictureMetaData::GetOriginalDateTime().

◆ EXIF_TAG_IMAGEDESCRIPTION

constexpr const char* EXIF_TAG_IMAGEDESCRIPTION { "Exif.Image.ImageDescription" }
staticconstexpr

Definition at line 28 of file imagemetadata.h.

Referenced by PictureMetaData::GetComment().

◆ EXIF_TAG_USERCOMMENT

constexpr const char* EXIF_TAG_USERCOMMENT { "Exif.Photo.UserComment" }
staticconstexpr

Definition at line 29 of file imagemetadata.h.

Referenced by PictureMetaData::GetAllTags(), and PictureMetaData::GetComment().

◆ EXIF_PRINT_IMAGE_MATCHING

constexpr uint16_t EXIF_PRINT_IMAGE_MATCHING { 0xc4a5 }
staticconstexpr

Definition at line 30 of file imagemetadata.h.

Referenced by PictureMetaData::GetAllTags().

◆ FFMPEG_TAG_ORIENTATION

constexpr const char* FFMPEG_TAG_ORIENTATION { "rotate" }
staticconstexpr

Definition at line 33 of file imagemetadata.h.

Referenced by VideoMetaData::GetOrientation().

◆ FFMPEG_TAG_DATETIME

constexpr const char* FFMPEG_TAG_DATETIME { "creation_time" }
staticconstexpr

Definition at line 34 of file imagemetadata.h.

Referenced by VideoMetaData::GetOriginalDateTime().

◆ FFMPEG_TAG_DATE_FORMAT

constexpr const char* FFMPEG_TAG_DATE_FORMAT { "yyyy-MM-dd hh:mm:ss" }
staticconstexpr

Definition at line 35 of file imagemetadata.h.

Referenced by VideoMetaData::GetOriginalDateTime().

◆ EXIF_MYTH_HOST

constexpr const char* EXIF_MYTH_HOST { "Myth.host" }
staticconstexpr

Definition at line 38 of file imagemetadata.h.

Referenced by InfoList::Display(), and ReadMetaThread::run().

◆ EXIF_MYTH_PATH

constexpr const char* EXIF_MYTH_PATH { "Myth.path" }
staticconstexpr

Definition at line 39 of file imagemetadata.h.

Referenced by InfoList::Display(), and ReadMetaThread::run().

◆ EXIF_MYTH_NAME

constexpr const char* EXIF_MYTH_NAME { "Myth.name" }
staticconstexpr

Definition at line 40 of file imagemetadata.h.

Referenced by InfoList::Display(), and ReadMetaThread::run().

◆ EXIF_MYTH_SIZE

constexpr const char* EXIF_MYTH_SIZE { "Myth.size" }
staticconstexpr

Definition at line 41 of file imagemetadata.h.

Referenced by InfoList::Display(), and ReadMetaThread::run().

◆ EXIF_MYTH_ORIENT

constexpr const char* EXIF_MYTH_ORIENT { "Myth.orient" }
staticconstexpr

Definition at line 42 of file imagemetadata.h.

Referenced by InfoList::Display(), and ReadMetaThread::run().