mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
cc4f48be3f
XMP is a media-metadata standard based on XML which may be used across a variety of media formats. Some video-processing software writes XMP data without updating the native metadata fields. Therefore, we should aim at reading XMP metadata and give priority of XMP data over native fields. Pros: - Support for *all* common media formats. Cons: - XML (complex, verbose, chaotic). - Does not even come close to fulfilling its promise of being well defined (see below). Implement a simple XMP-parser using libxml2. Connect the XMP-parser to the existing Quicktime/MP4 parser. First problem encountered: According to the spec, XMP data supposed to be put in the 'XMP_' atom. But for example exiftools instead writes an 'uuid' atom with a special 16-byte uid. Implement both, more options will probably follow. Second problem: two versions of recording the creation date were found 1) The content of a <exif:DateTimeOriginal> tag. 2) The xmp::CreateDate attribute of a <rdf:Description> tag. Here too, more versions are expected to surface and will have to be supported in due course (with an obvious priority problem). Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
135 lines
2.9 KiB
CMake
135 lines
2.9 KiB
CMake
set(PLATFORM_SRC unknown_platform.c)
|
|
message(STATUS "system name ${CMAKE_SYSTEM_NAME}")
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
if(ANDROID)
|
|
set(PLATFORM_SRC android.cpp)
|
|
else()
|
|
set(PLATFORM_SRC unix.c)
|
|
endif()
|
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "Android")
|
|
set(PLATFORM_SRC android.cpp)
|
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
|
set(PLATFORM_SRC macos.c)
|
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|
set(PLATFORM_SRC windows.c)
|
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
|
|
set(PLATFORM_SRC unix.c)
|
|
endif()
|
|
|
|
if(FTDISUPPORT)
|
|
set(SERIAL_FTDI serial_ftdi.c)
|
|
endif()
|
|
|
|
if(BTSUPPORT)
|
|
add_definitions(-DBT_SUPPORT)
|
|
set(BT_SRC_FILES desktop-widgets/btdeviceselectiondialog.cpp)
|
|
set(BT_CORE_SRC_FILES qtserialbluetooth.cpp btdiscovery.cpp)
|
|
endif()
|
|
|
|
if(BLESUPPORT)
|
|
add_definitions(-DBLE_SUPPORT)
|
|
set(BT_CORE_SRC_FILES ${BT_CORE_SRC_FILES} qt-ble.cpp)
|
|
endif()
|
|
|
|
# compile the core library part in C, part in C++
|
|
set(SUBSURFACE_CORE_LIB_SRCS
|
|
checkcloudconnection.cpp
|
|
cloudstorage.cpp
|
|
cochran.c
|
|
color.cpp
|
|
configuredivecomputer.cpp
|
|
configuredivecomputerthreads.cpp
|
|
connectionlistmodel.cpp
|
|
datatrak.c
|
|
deco.c
|
|
device.c
|
|
devicedetails.cpp
|
|
dive.c
|
|
divecomputer.cpp
|
|
divelogexportlogic.cpp
|
|
divesite.c
|
|
divesitehelpers.cpp
|
|
divesite-helper.cpp
|
|
divelist.c
|
|
downloadfromdcthread.cpp
|
|
equipment.c
|
|
errorhelper.c
|
|
exif.cpp
|
|
file.c
|
|
format.cpp
|
|
gaspressures.c
|
|
gas-model.c
|
|
gettextfromc.cpp
|
|
git-access.c
|
|
gpslocation.cpp
|
|
imagedownloader.cpp
|
|
isocialnetworkintegration.cpp
|
|
libdivecomputer.c
|
|
liquivision.c
|
|
load-git.c
|
|
membuffer.c
|
|
metadata.cpp
|
|
xmp_parser.cpp
|
|
metrics.cpp
|
|
ostctools.c
|
|
parse-xml.c
|
|
parse.c
|
|
import-suunto.c
|
|
import-shearwater.c
|
|
import-cobalt.c
|
|
import-divinglog.c
|
|
import-csv.c
|
|
planner.c
|
|
plannernotes.c
|
|
pluginmanager.cpp
|
|
profile.c
|
|
qthelper.cpp
|
|
qt-init.cpp
|
|
save-git.c
|
|
save-xml.c
|
|
save-html.c
|
|
sha1.c
|
|
statistics.c
|
|
strtod.c
|
|
subsurfacestartup.c
|
|
subsurfacesysinfo.cpp
|
|
taxonomy.c
|
|
time.c
|
|
uemis.c
|
|
uemis-downloader.c
|
|
version.c
|
|
videoframeextractor.cpp
|
|
windowtitleupdate.cpp
|
|
worldmap-save.c
|
|
|
|
# classes to manage struct preferences for QWidget and QML
|
|
settings/qPref.cpp
|
|
settings/qPrefCloudStorage.cpp
|
|
settings/qPrefDisplay.cpp
|
|
settings/qPrefDiveComputer.cpp
|
|
settings/qPrefDivePlanner.cpp
|
|
settings/qPrefFacebook.cpp
|
|
settings/qPrefGeneral.cpp
|
|
settings/qPrefGeocoding.cpp
|
|
settings/qPrefLanguage.cpp
|
|
settings/qPrefLocationService.cpp
|
|
settings/qPrefPartialPressureGas.cpp
|
|
settings/qPrefPrivate.cpp
|
|
settings/qPrefProxy.cpp
|
|
settings/qPrefTechnicalDetails.cpp
|
|
settings/qPrefUnit.cpp
|
|
settings/qPrefUpdateManager.cpp
|
|
|
|
#Subsurface Qt have the Subsurface structs QObjectified for easy access via QML.
|
|
subsurface-qt/DiveObjectHelper.cpp
|
|
subsurface-qt/CylinderObjectHelper.cpp
|
|
|
|
${SERIAL_FTDI}
|
|
${PLATFORM_SRC}
|
|
${BT_CORE_SRC_FILES}
|
|
)
|
|
source_group("Subsurface Core" FILES ${SUBSURFACE_CORE_LIB_SRCS})
|
|
|
|
add_library(subsurface_corelib STATIC ${SUBSURFACE_CORE_LIB_SRCS} )
|
|
target_link_libraries(subsurface_corelib ${QT_LIBRARIES})
|
|
|