Go to file
Stephen Booth 648f5e5882
Add Shorten (SHN) support (#1257)
* 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>
2024-12-30 07:23:11 -06:00
.github GitHub Actions: Update Homebrew utfcpp to 4.0.2 (#1171) 2023-11-05 14:39:33 +01:00
3rdparty add utf8cpp git submodule (#1142) 2023-09-16 08:41:01 +02:00
bindings Add Shorten (SHN) support (#1257) 2024-12-30 07:23:11 -06:00
cmake/modules Update FindCppUnit.cmake (#1076) 2022-12-21 14:14:35 +01:00
doc Fix Doxygen API documentation 2022-10-24 07:06:23 +02:00
examples Remove 'using namespace std' to avoid potential conflicts in example files (#1241) 2024-08-05 21:54:33 +02:00
taglib Add Shorten (SHN) support (#1257) 2024-12-30 07:23:11 -06:00
tests Add Shorten (SHN) support (#1257) 2024-12-30 07:23:11 -06:00
.astylerc Add astylerc 2015-05-18 11:31:55 +02:00
.editorconfig Proofreading (#1155) 2023-10-08 05:58:33 +02:00
.gitignore Inspection: Possibly unused #include directive 2024-01-21 20:46:27 +01:00
.gitmodules add utf8cpp git submodule (#1142) 2023-09-16 08:41:01 +02:00
AUTHORS Update documentation for version 1.12.0 2021-02-15 10:37:11 +01:00
CHANGELOG.md Version 2.0.2 2024-08-24 06:40:41 +02:00
cmake_uninstall.cmake.in added uninstall target 2011-06-26 21:58:51 +02:00
CMakeLists.txt Version 2.0.2 2024-08-24 06:40:41 +02:00
config.h.cmake Various cleanups (#1099) 2023-08-05 10:31:46 -05:00
ConfigureChecks.cmake Fix WASM build by inverting wchar_t size check 2024-03-25 20:14:19 +01:00
COPYING.LGPL Different LGPL version than was referenced in headers 2010-09-22 00:07:26 +00:00
COPYING.MPL Got permission from all (non-trivial) contributors to dual license under the MPL. 2007-10-10 18:22:58 +00:00
Doxyfile.cmake Correct the API documentation 2024-01-04 17:18:23 +01:00
INSTALL.md Inspection: Table is not correctly formatted 2024-01-21 20:46:27 +01:00
README.md Clarify 2.0 source compatibility, remove obsolete URL (#1214) 2024-01-28 07:17:05 +01:00
taglib-config.cmake Support installation alongside TagLib 1 with -DTAGLIB_INSTALL_SUFFIX=-2 2023-12-24 14:16:15 +01:00
taglib-config.cmake.in Export CMake configuration 2023-11-23 16:40:40 +01:00
taglib-config.cmd.cmake Support installation alongside TagLib 1 with -DTAGLIB_INSTALL_SUFFIX=-2 2023-12-24 14:16:15 +01:00
taglib.pc.cmake Support installation alongside TagLib 1 with -DTAGLIB_INSTALL_SUFFIX=-2 2023-12-24 14:16:15 +01:00

TagLib

Build Status

TagLib Audio Metadata Library

https://taglib.org/

TagLib is a library for reading and editing the metadata of several popular audio formats. Currently, it supports both ID3v1 and ID3v2 for MP3 files, Ogg Vorbis comments and ID3 tags in FLAC, MPC, Speex, WavPack, TrueAudio, WAV, AIFF, MP4, APE, ASF, DSF, DFF and AAC files.

TagLib is distributed under the GNU Lesser General Public License (LGPL) and Mozilla Public License (MPL). Essentially that means that it may be used in proprietary applications, but if changes are made to TagLib they must be contributed back to the project. Please review the licenses if you are considering using TagLib in your project.