Urs Fleisch
2cb7973162
Remove MP4 meta atom when empty tag is saved
...
Currently, MP4 tags can only grow. If items are removed, they are
just replaced by padding in the form of "free" atoms. This change
will remove the whole "meta" atom when an MP4 tag without items
is saved. This will make it possible, to bring the file back to
its pristine state without metadata.
2022-01-06 18:07:15 +01:00
Dzmitry Neviadomski
ff8a9ea831
Add -Wall
compiler flag to Clang compilers.
...
Use CMAKE's `CMAKE_<LANG>_COMPILER_ID`, available from 3.0.2.
See: https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_ID.html
2021-12-31 07:51:38 +01:00
ivan tkachenko
fd66b0d3b6
Add compile_commands.json to gitignore
...
Other entries were copied from KDE/marble repo as well.
See also: https://invent.kde.org/sdk/kdesrc-build/-/issues/86
2021-12-08 19:24:52 +01:00
Rosen Penev
f581615110
clang-tidy: replace static_cast with dynamic_cast ( #1021 )
...
* clang-tidy: replace static_cast with dynamic_cast
Found with cppcoreguidelines-pro-type-static-cast-downcast
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-07-09 21:47:36 +02:00
Rosen Penev
07eb81e88a
add missing const
...
Avoids using a non const global variable.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-07-08 20:38:27 +02:00
Rosen Penev
c6f1e2750e
use std::pair instead of 2D C array ( #1020 )
...
* use std::pair instead of 2D C array
Mostly the same. Except there's now an association between both values.
make_pair has to be used since there's no uniform initialization.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-06-21 08:16:46 +02:00
Rosen Penev
a8884c2b17
clang-tidy: don't use else after return
...
Found with readability-else-after-return
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-06-21 06:49:32 +02:00
Rosen Penev
76f00c5a8a
clang-tidy: simplify boolean return
...
Found with readability-simplify-boolean-expr
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-06-21 06:49:32 +02:00
Rosen Penev
68ac7c3106
clang-tidy: use C++ casting
...
Found with google-readability-casting
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-06-21 06:49:32 +02:00
Rosen Penev
38d1d4c21c
clang-tidy: add ending namespace comments
...
Found with google-readability-namespace-comments
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-06-21 06:49:32 +02:00
Rosen Penev
b77e828d4b
clang-tidy: remove redundant initializations
...
Found with readability-redundant-member-init
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-06-21 06:49:32 +02:00
Urs Fleisch
17e299350a
Detect by contents if file detected by extension is invalid ( #1011 )
...
This is the case for Opus files with an ogg extension.
2021-05-28 20:25:05 +02:00
Oleg Antonyan
1d24bd3399
Fix "error: duplicate ‘volatile’" on systems without HAVE_GCC_ATOMIC in 1.12 ( #1012 )
...
* fix error: duplicate volatile
* fix volatile ATOMIC_INT in constructor
2021-05-13 16:41:35 +02:00
bobsayshilol
4971f8fb03
ID3v2: Address review comments
...
Change the size check to use isEmpty() as requested.
2021-05-02 12:14:27 +02:00
bobsayshilol
d74689cb93
ASF: Bounds check the size of each header object
...
UBSan spotted an integer overflow on the line `dataPos += size`, so add
a bounds check to the size that we read.
2021-05-02 12:14:27 +02:00
bobsayshilol
51ae5748cb
ID3v2: Return early from decode() on invalid data
...
The while loop in this function assumes that `data.end() - 1` is less
than `data.end()`, which isn't the case if `data` is empty since
`data.end()` can be a nullptr.
2021-05-02 12:14:27 +02:00
bobsayshilol
f2eb331696
MPC: Fix heap-buffer-overflow in readSV7()
...
If `data` is an allocation of only 3 bytes (MP+) then `data[3]` is a
read past the end of the buffer.
2021-05-02 12:14:27 +02:00
bobsayshilol
5f6bbb20e7
APE: Fix typo in valLength
2021-05-02 12:14:27 +02:00
bobsayshilol
03d03f782e
APE: Bounds check the length of values
...
`pos`, `valLegnth`, and `data.size()` are all unsigned types so we have
to do a little dance to correctly bounds check them without overflow.
Without this we can get stuck in an infinite loop due to 'pos'
overflowing back to the start of the data.
2021-05-02 12:14:27 +02:00
bobsayshilol
1d3e080f04
ID3v2: Bounds check a vector's size
...
If the provided vector is empty then `data[0]` dereferences a nullptr,
so add a check that this won't be the case before reading the encoding.
2021-05-02 12:14:27 +02:00
bobsayshilol
3391bd80c4
FLAC: Validate the size of a read
...
Without this we can crash trying to dereference parts of `header`.
2021-05-02 12:14:27 +02:00
Julius Brüggemann
1644c0dd87
Add CMake option for building with ZLib
2021-03-29 20:21:59 +02:00
Scott Wheeler
85cc41082c
Update to more modern macOS instructions.
...
Closes #1005
2021-03-22 11:36:36 +00:00
Jörg Krause
b5cd4c40e2
Drop leftovers WITH_ASF and WITH_MP4
...
The options WITH_ASF and WITH_MP4 where remove in commit
dd846904cb
back in 2011. It's time to
remove the leftovers :-)
2021-03-06 14:54:31 +01:00
Urs Fleisch
932d45259c
Fix taglib-config for cross compiling ( #998 )
2021-03-06 14:52:25 +01:00
Urs Fleisch
844f07d32d
Make tests work with BUILD_SHARED_LIBS=ON on Windows
2021-03-06 14:52:25 +01:00
Andreas Sturmlechner
304ab20174
Install taglib.png icon into html folder structure
...
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
2021-03-06 14:52:25 +01:00
Andreas Sturmlechner
243dd863d7
Install examples after we selected to build them
...
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
2021-03-06 14:52:25 +01:00
Andreas Sturmlechner
d77e2aee0b
Just set CMAKE_MODULE_PATH instead of list(APPEND), drop ENABLE_STATIC err
...
ENABLE_STATIC error has been there since 2014, that is long enough.
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
2021-03-06 14:52:25 +01:00
Andreas Sturmlechner
1e636957ab
Use FeatureSummary for a nice CMake summary output
...
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
2021-03-06 14:52:25 +01:00
Andreas Sturmlechner
507a42871c
Use GNUInstallDirs
...
Well-established CMake standard for installation directories.
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
2021-03-06 14:52:25 +01:00
Andreas Sturmlechner
01348fb619
Move finding ZLIB to root CMakeLists.txt
...
Small line decrease, but also easier to read what is happening.
Now all dependencies can be read from the root CMakeLists.txt file.
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
2021-03-06 14:52:25 +01:00
Andreas Sturmlechner
9e0a7f7adb
Use CMake's CTest which includes BUILD_TESTING option
...
BUILD_TESTING is default enabled, which is a good default anyway.
Move the CppUnit check to the root CMakeLists.txt, simpler and clearer.
BUILD_TESTS is obsolete.
The need for BUILD_SHARED_LIBS=OFF for testing is not clear, it works on Linux.
But I kept it in the instructions for now.
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
2021-03-06 14:52:25 +01:00
Scott Wheeler
340ec9932a
SVG for API doc diagrams makes a lot more sense in 2021
...
This also makes things look non-crappy on high-DPI monitors.
2021-02-16 12:00:52 +00:00
Urs Fleisch
c8b39449c3
Version 1.12
2021-02-15 12:23:07 +01:00
Urs Fleisch
bd254654bc
Update documentation for version 1.12.0
2021-02-15 10:37:11 +01:00
Urs Fleisch
fbc3f9bbec
Fix doxygen warnings
2021-02-14 18:20:29 +01:00
Urs Fleisch
99ad01e12f
Fix file name resolver on Windows
...
The change from "fileref: Use user defined resolvers on streams"
does not work with the Windows FileName implementation, and
TestFileRef::testFileResolver fails.
2021-02-14 18:20:29 +01:00
Urs Fleisch
83aa01c6af
Ogg: Set granule position to -1 if no packets finish on page ( #864 )
2021-02-14 10:04:03 +01:00
Urs Fleisch
4c14571647
Update version to 1.12.0
2021-01-23 09:15:32 +01:00
Urs Fleisch
f4b476a620
Add more unit tests
2021-01-18 20:31:52 +01:00
Urs Fleisch
f8d78a61f7
Merge pull request #990 from ufleisch/ufleisch/more-tests
...
More unit tests and bug fixes
2021-01-12 18:07:23 +01:00
Urs Fleisch
cf6c68bafc
Support a consistent set of MusicBrainz properties where possible
...
The support for MusicBrainz properties is enhanced with "ARTISTS", "ASIN",
"RELEASECOUNTRY", "RELEASESTATUS", "RELEASETYPE", "MUSICBRAINZ_RELEASETRACKID",
"ORIGINALDATE" on APE, ASF, MP4, ID3v2, and Xiph tags.
2021-01-10 15:19:10 +01:00
Urs Fleisch
f7c24930cd
Add missing iTunes properties for MP4 tags
2021-01-10 15:18:59 +01:00
Urs Fleisch
310c3bc043
Add missing 'COMPOSERSORT' property for ID3v2 tags
2021-01-10 15:18:43 +01:00
Urs Fleisch
e6c03c6de8
Create an APE tag when reading a WavPack file without tags
...
Now it is handled in the same way as for other tags with a
TagUnion. Without this patch, WavPack files without tags cannot
be edited via a FileRef.
2021-01-03 19:06:59 +01:00
Urs Fleisch
2c29fbeabb
Use mapped roles instead of property keys for TIPL roles
...
For an ID3v2 "DJMIXER" property, the "DJ-MIX" TIPL role must be used.
For an ID3v2 "MIXER" property, the "MIX" TIPL role must be used.
Otherwise it will not work when reading the tag and creating
properties from the wrong TIPL roles.
2021-01-03 19:06:59 +01:00
Urs Fleisch
4828a3b925
Do not crash when removing non existing TableOfContentsFrame child
2021-01-03 19:06:59 +01:00
Urs Fleisch
794a2a0b2b
Correctly construct PrivateFrame from frame data
...
Frame::setData() has to be used instead of PrivateFrame::setData().
2021-01-03 19:06:59 +01:00
Urs Fleisch
f32d27973f
Use PCST and not TXXX:PODCAST frame for ID3v2 'PODCAST' property
2021-01-03 19:06:59 +01:00