aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* std::accumulate conversionHEADupstream/masterRosen Penev2025-10-251-8/+3
| | | | Signed-off-by: Rosen Penev <rosenp@gmail.com>
* Fix cmake_minimum_required version range typoAndreas Sturmlechner2025-10-221-1/+1
| | | | | | | | | While CMake appears to accept the ".." notation, it does not correctly apply the policy_max version in that case. Amends ab31d11c8d1e04eb710aab7902d9564b4947de8c Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
* std::none_of conversionRosen Penev2025-10-211-6/+2
| | | | Signed-off-by: Rosen Penev <rosenp@gmail.com>
* Raise CMake minimum version to 3.10..3.31 rangeAndreas Sturmlechner2025-10-181-1/+1
| | | | | | | | | | | | | | | | CMake 3.10 was released in 2017. Amends 967aaf7af2f4aa2e9fed0edb2cbaca98b737eebe, fixes warning since CMake-3.31: CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.10 will be removed from a future version of CMake. Update the VERSION argument <min> value. Or, use the <min>...<max> syntax to tell CMake that the project requires at least <min> but has been updated to work with policies introduced by <max> or earlier. Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
* Fix std::ostream not defined on Android NDK 29.0.14033849Artem Umerov2025-09-041-1/+1
| | | Fix std::ostream not defined on Android NDK 29.0.14033849
* Bump actions/checkout from 4 to 5 (#1283)dependabot[bot]2025-08-181-1/+1
| | | | | | | | | | | | | | | | | Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Fix Unicode property keys in C bindingsnorma2025-07-042-9/+13
| | | | | | The C bindings would convert a char* to String using the default constructor, which uses the Latin1 encoding, breaking when a key contains a Unicode character (e.g. an ID3v2 comment description).
* Version 2.1.1v2.1.1Urs Fleisch2025-06-293-2/+9
|
* Use ldexpl() instead of ldexp()Urs Fleisch2025-06-251-1/+1
| | | | | This will fix "warning: conversion from ‘long double’ to ‘double’ may change value [-Wfloat-conversion]".
* Fix conversion compiler warningsUrs Fleisch2025-06-2525-49/+51
| | | | | Using a release build with GCC 14.2.0 and -Wextra -Wconversion -Wall. The generated binaries are not changed by this commit.
* Convert IPLS to TIPL and TMCL (#1274)Urs Fleisch2025-06-212-10/+56
| | | | | | | | The involvement/involvee pairs which are supported for TIPL properties (ARRANGER, ENGINEER, PRODUCER, DJ-MIX, MIX) are left in the TIPL frame, other pairs are moved to a TMCL frame. This will result in a consistent behavior for both ID3v2.3 and ID3v2.4 tags produced by MusicBrainz Picard.
* Map lowercase MusicBrainz TIPL keys to properties (#1274)Urs Fleisch2025-06-212-1/+33
|
* CMake targets with TAGLIB_STATIC compile definition (#1277)Urs Fleisch2025-06-203-3/+6
|
* C bindings: Include missing wchar header in tag_c.h (#1273)Urs Fleisch2025-06-141-0/+1
| | | | | | | | In C++, wchar_t is a built-in fundamental type, but in C, it is not. Compilation with MinGW will fail without a header included which defines wchar_t (wchar.h or stddef.h). The other compilers used in our CI (gcc on Ubuntu, clang on macOS and MSVC on Windows) seem to know wchar_t without an include.
* GitHub Actions: Build with MinGWUrs Fleisch2025-06-141-3/+32
|
* Use tag_c.h as first include in build with C compiler (#1273)Urs Fleisch2025-06-141-2/+2
| | | | | | This will fail on MinGW because its gcc does not have wchar_t without including wchar.h. With g++ as used with test_tag_c.cpp, the problem is undetected because g++ supports wchar_t without including wchar.h.
* Version 2.1v2.1Urs Fleisch2025-05-213-4/+16
|
* Add file_new and file_new_type wchar variants for C binding (#1271)Jamie2025-05-162-1/+27
|
* Support custom temp and tests directories (#1268) (#1270)Urs Fleisch2025-05-014-3/+63
| | | | | | | | | The following user-settable values for CMake are supported: - TESTS_DIR: Tests directory, is path to unit test data when 'data' is appended. Can be used to run the unit tests on a target. - TESTS_TMPDIR: Directory for temporary files created during unit tests, system tmpdir is used if undefined. Has to be defined on systems without global temporary directory.
* Compile time configuration of supported formats (#1262)Urs Fleisch2025-02-0220-458/+1120
| | | | | CMake options WITH_APE, WITH_ASF, WITH_DSF, WITH_MOD, WITH_MP4, WITH_RIFF, WITH_SHORTEN, WITH_TRUEAUDIO, WITH_VORBIS, by default, they are all ON.
* Add Shorten (SHN) support (#1257)Stephen Booth2024-12-3017-2/+1261
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add Shorten (SHN) support * Add `<cmath>` include and use `std::log2` * Use `uintptr_t` for buffer size calculations * Work around `byteSwap` not using fixed width types * Remove four-character codes * Attempt to fix `static_assert` * Revert previous commit * Update `read_uint`* functions * Use ByteVector for byte swaps * Use different ByteVector ctor * Rework variable-length input to use ByteVector * Rename some variables * Naming and formatting cleanup * Add basic Shorten tests * Rename a constant * Rename `internalFileType` to `fileType` * Add documentation on `fileType` meaning * Add DO_NOT_DOCUMENT guard * Fix shadowVariable issues reported by cppcheck cppcheck --enable=all --inline-suppr \ --suppress=noExplicitConstructor --suppress=unusedFunction \ --suppress=missingIncludeSystem --project=compile_commands.json * Formatting cleanup * More explicit types Reason for these changes: getRiceGolombCode(k, uInt32CodeSize) was called with int k for uint32_t& argument. There was also a warning from MSVC for line 299: warning C4267: 'argument': conversion from 'size_t' to 'int' * Additional explicit types * Rename `SHN` namespace to `Shorten` Also rename files to match --------- Co-authored-by: Urs Fleisch <ufleisch@users.sourceforge.net>
* Use fixed width types (#1258)Stephen Booth2024-12-222-27/+35
| | | Use fixed width types in `byteSwap` functions
* Preserve unicode encoding when downgrading to ID3v2.3 (#1259) (#1260)Urs Fleisch2024-12-221-6/+34
|
* Fixed warning about shadowing variable (#1254)Christian Schmitz2024-11-221-2/+2
| | | You can't name parameter and structure field the same as complier frequently complain about this.
* Do not store too large FLAC metadata blocks (#1249) (#1250)Urs Fleisch2024-11-142-3/+21
| | | | The size of FLAC metadata blocks is stored in only 24 bits. Remove blocks exceeding this limit when saving FLAC and Ogg FLAC files.
* Fix segfaults with String and ByteVector nullptr arguments (#1247) (#1248)Urs Fleisch2024-11-024-19/+206
|
* Version 2.0.2v2.0.2Urs Fleisch2024-08-243-2/+11
|
* Support older utfcpp versions with utf8cpp CMake target (#1243) (#1244)Urs Fleisch2024-08-151-1/+1
| | | | | | This affects for example openSUSE Leap 15.6, which installs utfcpp 3.2.1 in its own folder. Now not only utf8::cpp, but also utf8cpp is supported as a CMake target.
* Remove 'using namespace std' to avoid potential conflicts in example files ↵nekiwo2024-08-053-70/+66
| | | | | (#1241) Co-authored-by: nekiwo <nekiwo@users.noreply.github.com>
* Support free form tags with MP4 properties (#1239) (#1240)Urs Fleisch2024-07-292-2/+25
|
* tagwriter option -p not working properly (#1236) (#1237)Urs Fleisch2024-07-191-3/+4
| | | | | | The -p option of tagwriter sample does not work. This is because the picture file is open in text mode instead of binary. Also, the isFile function does not work on Windows in 32 bit mode with large files. Using _stat64 instead of stat solves the problem.
* Skip unknown MP4 boxes (#1231)Stephen Booth2024-05-183-7/+20
|
* Fix parsing of ID3v2.2 frames (#1228)Urs Fleisch2024-05-183-3/+64
|
* Version 2.0.1v2.0.1Urs Fleisch2024-04-093-2/+13
|
* C bindings: Support UTF-8 for property valuesUrs Fleisch2024-04-011-5/+5
|
* Fix WASM build by inverting wchar_t size checkUrs Fleisch2024-03-251-1/+1
| | | | | | | | | | | | | | When building WASM with emscripten cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/Emscripten.cmake ... all SIZEOF_ variables which should be defined in ConfigureChecks.cmake are empty and the wchar_t check fails with "LESS" "2", the other checks seem to pass since they start with NOT. Instead of explicitly skipping the check for "if(NOT EMSCRIPTEN)" as is done in vcpkg's disable-wchar-t-check-emscripten.patch, the check is inverted to start with NOT, so the build still has a chance to run for compilers which behave like emscripten.
* Avoid offset_t conflict on IllumosUrs Fleisch2024-03-251-1/+1
| | | | Taken from NetBSD patch-taglib_toolkit_taglib.h.
* Fix building with -DBUILD_TESTING=ON -DBUILD_BINDINGS=OFFUrs Fleisch2024-03-251-2/+9
|
* Provide equal operator for MP4::ItemUrs Fleisch2024-03-255-0/+212
| | | | This is needed to generate MP4::ItemMap bindings with SWIG.
* Add virtual to abstract overridden destructorUrs Fleisch2024-03-251-1/+1
| | | | This is redundant, but required by SWIG.
* Windows: Suppress yet another MSVC C4251 warningUrs Fleisch2024-03-251-0/+1
|
* Detect utf8cpp by header if cmake config is not found (#1217)Urs Fleisch2024-02-031-10/+25
|
* FileStream: Fix opening long paths on Windows (#1216)Jonas Kvinge2024-01-281-1/+15
| | | | | | | | | | | | To make sure paths longer than MAX_PATH (260) can be opened, prefix local paths with `\\?\`, and UNC paths with `\\?\UNC\`. I've tested on Windows 10 22H2 (Build 19045.3930), even when setting LongPathsEnabled to 1 in the registry, it still won't open files with long paths without prefixing them. For more information see: https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry
* Clarify 2.0 source compatibility, remove obsolete URL (#1214)Urs Fleisch2024-01-282-6/+7
|
* Fix 'get() != pointer()' assertion copying ByteVectorList/StringList (#1211)Urs Fleisch2024-01-272-4/+8
| | | | | This reverts dfef09f13 but keeps the assignments as a comment so these functions do not look like they can be defaulted even though they cannot.
* Version 2.0v2.0Urs Fleisch2024-01-241-0/+9
|
* clang-tidy: use dynamic_castRosen Penev2024-01-221-18/+18
| | | | | | Found with cppcoreguidelines-pro-type-static-cast-downcast Signed-off-by: Rosen Penev <rosenp@gmail.com>
* clang-tidy: avoid else after returnRosen Penev2024-01-222-39/+39
| | | | | | Found with: readability-else-after-return Signed-off-by: Rosen Penev <rosenp@gmail.com>
* clang-tidy: fix wrong castRosen Penev2024-01-221-2/+2
| | | | | | Found with bugprone-misplaced-widening-cast Signed-off-by: Rosen Penev <rosenp@gmail.com>
* convert const double to const autoRosen Penev2024-01-2210-11/+11
| | | | | | Fixes some Wconversion warnings. Signed-off-by: Rosen Penev <rosenp@gmail.com>