aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Detect by contents if file detected by extension is invalid (#1011)HEADupstream/masterUrs Fleisch2021-05-281-33/+44
| | | | This is the case for Opus files with an ogg extension.
* Fix "error: duplicate ‘volatile’" on systems without HAVE_GCC_ATOMIC in ↵Oleg Antonyan2021-05-131-1/+1
| | | | | | | 1.12 (#1012) * fix error: duplicate volatile * fix volatile ATOMIC_INT in constructor
* ID3v2: Address review commentsbobsayshilol2021-05-021-1/+1
| | | | Change the size check to use isEmpty() as requested.
* ASF: Bounds check the size of each header objectbobsayshilol2021-05-021-1/+1
| | | | | UBSan spotted an integer overflow on the line `dataPos += size`, so add a bounds check to the size that we read.
* ID3v2: Return early from decode() on invalid databobsayshilol2021-05-021-0/+4
| | | | | | 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.
* MPC: Fix heap-buffer-overflow in readSV7()bobsayshilol2021-05-021-0/+3
| | | | | If `data` is an allocation of only 3 bytes (MP+) then `data[3]` is a read past the end of the buffer.
* APE: Fix typo in valLengthbobsayshilol2021-05-021-3/+3
|
* APE: Bounds check the length of valuesbobsayshilol2021-05-021-0/+5
| | | | | | | | `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.
* ID3v2: Bounds check a vector's sizebobsayshilol2021-05-021-0/+5
| | | | | 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.
* FLAC: Validate the size of a readbobsayshilol2021-05-021-0/+5
| | | | Without this we can crash trying to dereference parts of `header`.
* Add CMake option for building with ZLibJulius Brüggemann2021-03-292-12/+24
|
* Update to more modern macOS instructions.Scott Wheeler2021-03-221-12/+14
| | | | Closes #1005
* Drop leftovers WITH_ASF and WITH_MP4Jörg Krause2021-03-062-10/+1
| | | | | | The options WITH_ASF and WITH_MP4 where remove in commit dd846904cbc1ef3ee628d77f0c9df88ef8967816 back in 2011. It's time to remove the leftovers :-)
* Fix taglib-config for cross compiling (#998)Urs Fleisch2021-03-061-5/+15
|
* Make tests work with BUILD_SHARED_LIBS=ON on WindowsUrs Fleisch2021-03-066-4/+23
|
* Install taglib.png icon into html folder structureAndreas Sturmlechner2021-03-062-2/+2
| | | | Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
* Install examples after we selected to build themAndreas Sturmlechner2021-03-061-0/+5
| | | | Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
* Just set CMAKE_MODULE_PATH instead of list(APPEND), drop ENABLE_STATIC errAndreas Sturmlechner2021-03-061-5/+1
| | | | | | ENABLE_STATIC error has been there since 2014, that is long enough. Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
* Use FeatureSummary for a nice CMake summary outputAndreas Sturmlechner2021-03-061-0/+3
| | | | Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
* Use GNUInstallDirsAndreas Sturmlechner2021-03-067-32/+26
| | | | | | Well-established CMake standard for installation directories. Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
* Move finding ZLIB to root CMakeLists.txtAndreas Sturmlechner2021-03-062-18/+15
| | | | | | | 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>
* Use CMake's CTest which includes BUILD_TESTING optionAndreas Sturmlechner2021-03-063-17/+12
| | | | | | | | | | | 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>
* SVG for API doc diagrams makes a lot more sense in 2021Scott Wheeler2021-02-161-1/+1
| | | | This also makes things look non-crappy on high-DPI monitors.
* Version 1.12v1.12Urs Fleisch2021-02-151-2/+2
|
* Update documentation for version 1.12.0Urs Fleisch2021-02-154-24/+71
|
* Fix doxygen warningsUrs Fleisch2021-02-142-5/+5
|
* Fix file name resolver on WindowsUrs Fleisch2021-02-141-0/+5
| | | | | | The change from "fileref: Use user defined resolvers on streams" does not work with the Windows FileName implementation, and TestFileRef::testFileResolver fails.
* Ogg: Set granule position to -1 if no packets finish on page (#864)Urs Fleisch2021-02-142-0/+34
|
* Update version to 1.12.0v1.12-beta-2Urs Fleisch2021-01-232-4/+4
|
* Add more unit testsUrs Fleisch2021-01-185-0/+85
|
* Merge pull request #990 from ufleisch/ufleisch/more-testsUrs Fleisch2021-01-1221-14/+726
|\ | | | | More unit tests and bug fixes
| * Support a consistent set of MusicBrainz properties where possibleUrs Fleisch2021-01-1010-2/+220
| | | | | | | | | | | | The support for MusicBrainz properties is enhanced with "ARTISTS", "ASIN", "RELEASECOUNTRY", "RELEASESTATUS", "RELEASETYPE", "MUSICBRAINZ_RELEASETRACKID", "ORIGINALDATE" on APE, ASF, MP4, ID3v2, and Xiph tags.
| * Add missing iTunes properties for MP4 tagsUrs Fleisch2021-01-102-4/+107
| |
| * Add missing 'COMPOSERSORT' property for ID3v2 tagsUrs Fleisch2021-01-103-1/+15
| |
| * Create an APE tag when reading a WavPack file without tagsUrs Fleisch2021-01-031-1/+1
| | | | | | | | | | | | 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.
| * Use mapped roles instead of property keys for TIPL rolesUrs Fleisch2021-01-031-1/+4
| | | | | | | | | | | | | | 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.
| * Do not crash when removing non existing TableOfContentsFrame childUrs Fleisch2021-01-031-4/+8
| |
| * Correctly construct PrivateFrame from frame dataUrs Fleisch2021-01-031-1/+1
| | | | | | | | Frame::setData() has to be used instead of PrivateFrame::setData().
| * Use PCST and not TXXX:PODCAST frame for ID3v2 'PODCAST' propertyUrs Fleisch2021-01-033-0/+15
| |
| * Add missing extensions to FileRef::defaultFileExtensions()Urs Fleisch2021-01-031-0/+3
| |
| * Add more unit testsUrs Fleisch2021-01-035-0/+352
|/ | | | | This not only increased the test coverage but also revealed some bugs which are fixed in the following commits.
* Update NEWSUrs Fleisch2021-01-021-1/+13
|
* Fix spelling and typosUrs Fleisch2021-01-0214-20/+20
|
* Remove some DSF and DSDIFF leftoversUrs Fleisch2021-01-024-3/+1
| | | | | These can be merged back into master from the branch add_dsf_and_dsdiff_file_formats.
* Merge pull request #989 from ufleisch/ufleisch/id3v2-genresUrs Fleisch2021-01-013-12/+78
|\ | | | | | | Correctly read and write multiple ID3v2.3.0 genres (#988)
| * Write ID3v2.3 genres with multiple references to ID3v1 genres (#988)Urs Fleisch2020-12-302-1/+41
| | | | | | | | | | | | | | | | | | As described in id3v2.3.0.txt (4.2.1, TCON), multiple genres are only possible as references to ID3v1 genres with an optional refinement as a text. When downgrading multiple genres from ID3v2.4.0, they are now converted to numbers when possible and the first genre text without ID3v1 reference is added as a refinement. The keywords RX and CR are supported too.
| * Read ID3v2.3 genres with multiple references to ID3v1 genres (#988)Urs Fleisch2020-12-302-11/+37
| | | | | | | | | | | | As described in id3v2.3.0.txt (4.2.1, TCON), now multiple genres are possible, e.g. "(51)(39)". Additionally, support the keywords RX and CR.
* | Merge pull request #986 from ufleisch/ufleisch/wav-extensible-subformatUrs Fleisch2021-01-013-0/+23
|\ \ | | | | | | | | | WAV: Support subformat in WAVE_FORMAT_EXTENSIBLE (#850)
| * | WAV: Test properties of file with WAVE_FORMAT_EXTENSIBLEUrs Fleisch2020-12-212-0/+15
| | | | | | | | | | | | uint8we.wav: http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples/AFsp/M1F1-uint8WE-AFsp.wav
| * | WAV: Support subformat in WAVE_FORMAT_EXTENSIBLE (#850)Urs Fleisch2020-12-201-0/+8
| | |