MESSAGE(FATAL_ERROR "TagLib requires that int is 32-bit wide.")
endif()
-check_type_size("long" SIZEOF_LONG)
-if(${SIZEOF_LONG} EQUAL 8)
- set(LONG_IS_INT64 1)
-endif()
-
check_type_size("long long" SIZEOF_LONGLONG)
if(NOT ${SIZEOF_LONGLONG} EQUAL 8)
MESSAGE(FATAL_ERROR "TagLib requires that long long is 64-bit wide.")
/* 1 if little-endian, 2 if big-endian. */
#cmakedefine FLOAT_BYTEORDER ${FLOAT_BYTEORDER}
-/* Defined if long is 64-bit wide */
-#cmakedefine LONG_IS_INT64 ${LONG_IS_INT64}
-
/* Defined if your compiler supports some byte swap functions */
#cmakedefine HAVE_GCC_BYTESWAP_16 1
#cmakedefine HAVE_GCC_BYTESWAP_32 1
if(length == 1) {
const long long longLength = file->readBlock(8).toLongLong();
-#ifdef LONG_IS_INT64
- length = longLength;
-#else
- if(longLength <= 0xFFFFFFFF) {
- // The atom has a 64-bit length, but it's actually a 32-bit value
- length = (long)longLength;
+ if(sizeof(long) == sizeof(long long)) {
+ length = longLength;
}
else {
+ if(longLength <= 0xFFFFFFFF) {
+ // The atom has a 64-bit length, but it's actually a 32-bit value
+ length = (long)longLength;
+ }
+ else {
debug("MP4: 64-bit atoms are not supported");
length = 0;
file->seek(0, File::End);
return;
+ }
}
-#endif
}
if(length < 8) {
debug("MP4: Invalid atom size");