Urs Fleisch and GitHub
f202fa25c3
GitHub Actions: Update Homebrew utfcpp to 4.0.2 ( #1171 )
...
Revert "Fix build on Mac with Homebrew utf8cpp"
This reverts commit 70b4ce79fb .
Is now fixed upstream
https://github.com/nemtrif/utfcpp/pull/113
https://github.com/nemtrif/utfcpp/releases/tag/v4.0.2
https://github.com/Homebrew/homebrew-core/pull/153333
2023-11-05 14:39:33 +01:00
Urs Fleisch
70b4ce79fb
Fix build on Mac with Homebrew utf8cpp
2023-11-03 22:53:31 +01:00
Urs Fleisch
8c63c877ad
Add "MP2" to supported file extensions
2023-11-03 17:05:29 +01:00
3869aa189f
Raw AAC (ADTS) support ( #508 )
...
Detect ADTS MPEG header to use it also for AAC.
The test file empty1s.aac was generated using
ffmpeg -f lavfi -i anullsrc=r=11025:cl=mono -t 1 -acodec aac empty1s.aac
---------
Co-authored-by: Nick Shaforostov <[email protected] >
Co-authored-by: Urs Fleisch <[email protected] >
2023-11-03 05:17:39 +01:00
Urs Fleisch
135c0eb647
tagreader: Fix displaying of seconds in length, UTF-8 for ostream
...
The padding was wrong, 8 seconds were displayed as 0:80 instead of 0:08.
Also make the output of tagreader and tagreader_c the same, including
the encoding, which was still ISO-8859-1 for std::ostream.
2023-10-27 09:46:54 +02:00
Urs Fleisch
0db487bf61
Remove deprecated FileRef::create() method
...
In order to achieve this, the TagLib_File type of the C bindings is now
a FileRef and no longer a File. The support for the .oga extension has been
ported to FileRef(), so that taglib_file_new() should still behave the
same, but additionally also support content based file type detection.
2023-10-27 09:46:54 +02:00
Urs Fleisch
8d98ebf24b
Provide properties methods on FileRef, make FileRef non-virtual
...
Use of FileRef::file() is discouraged, but was necessary to access the
properties. It was also not clear whether to access the properties via
tag() or file(). With the property methods on FileRef, it should become
the "simple usage" interface it was meant to be.
As the destructor was the only virtual method on FileRef, it is now made
non-virtual. Probably, it is not useful as a virtual base class.
2023-10-27 09:46:54 +02:00
Urs Fleisch
dce8e016b9
DSDIFF: Fix MSVC warnings
2023-10-23 06:06:05 +02:00
Urs Fleisch
6b5f28d56d
DSDIFF: Fix adding and removing DIIN chunks
...
Also modernize and simplify code, fix formatting, support
ID3v2FrameFactory, fix updating the internal chunk bookkeeping
after file modifications, stripping ID3 and DIIN tags.
2023-10-23 06:06:05 +02:00
Stephen F. Booth and Urs Fleisch
19cceab211
DSDIFF support, add tests, fix formatting
2023-10-23 06:06:05 +02:00
Urs Fleisch
182edcd3f9
Add unit tests for C bindings
2023-10-21 06:19:55 +02:00
complexlogic and GitHub
1d213b8b98
List: Add Sort Functions ( #1160 )
2023-10-18 07:54:22 +02:00
complexlogic and Urs Fleisch
b40b834b1b
Add ByteVector conversion functions, tests
2023-10-15 08:29:58 +02:00
Urs Fleisch
6be03b7ae1
Unified interface for complex properties like pictures ( #94 )
...
Provides a dynamic interface for properties which cannot be represented
with simple strings, e.g. pictures. The keys of such properties can
be queried using `complexPropertyKeys()`, which could return for example
["PICTURE"]. The property can then be read using
`complexProperties("PICTURE")`, which will return a list of variant maps
containing the picture data and attributes. Adding a picture is as
easy as
t->setComplexProperties("PICTURE", {
{
{"data", data},
{"pictureType", "Front Cover"},
{"mimeType", "image/jpeg"}
}
});
2023-10-14 09:01:59 +02:00
Urs Fleisch
75d4252480
Variant type as container for complex properties
2023-10-14 09:01:59 +02:00
Rosen Penev and GitHub
89a54863ee
std::array conversion ( #1157 )
2023-10-09 17:09:27 +02:00
3f25d3c342
Proofreading ( #1155 )
...
---------
Co-authored-by: Urs Fleisch <[email protected] >
2023-10-08 05:58:33 +02:00
Urs Fleisch
41077aa57e
Braced list initialization for StringList and ByteVectorList ( #1154 )
...
Additionally, provide operator==() and operator!=() for Map and
operator<<() for ByteVectorList to facilitate the writing of tests.
2023-10-07 08:51:17 +02:00
21b08c0dcb
List: Support Braced List Initialization ( #1154 )
...
* List: support braced list initialization
* Use swap for assignment
---------
Co-authored-by: complexlogic <[email protected] >
2023-10-07 07:27:29 +02:00
8a800b8c38
Map: Support Braced List Initialization ( #1153 )
...
* Map: support braced list initialization
* Use swap assignment
---------
Co-authored-by: complexlogic <[email protected] >
2023-10-07 07:27:14 +02:00
c332aa04f2
Add simple runtime version check API ( #970 )
...
How to use:
#include <tversionnumber.h>
if (TagLib::runtimeVersion() >= TagLib::VersionNumber(1, 11, 1)) {
// running v1.11.1 or higher
}
if (TagLib::runtimeVersion() >= TagLib::VersionNumber(1, 12)) {
// running v1.12 or higher
}
---------
Co-authored-by: Urs Fleisch <[email protected] >
2023-10-06 14:15:30 +02:00
Urs Fleisch and GitHub
c13a42021a
Do not scan full MPEG file for ID3v2 tag in Fast read style ( #968 ) ( #1151 )
...
This is based on the patch used by VLC, but the full scan is only
skipped when the read style is explicitly set to Fast.
https://code.videolan.org/videolan/vlc/-/blob/master/contrib/src/taglib/0001-Implement-ID3v2-readStyle-avoid-worst-case.patch
2023-09-30 14:25:52 +02:00
Urs Fleisch
eaf7ff8b94
DSF: Support frame factory, ID3v2.3, allow trailing garbage
...
Additionally test coverage and formatting are improved.
2023-09-26 16:23:03 +02:00
Stephen F. Booth and Urs Fleisch
39d1d68237
DSD Stream File (DSF) support
2023-09-26 16:23:03 +02:00
Rosen Penev and GitHub
e275abb8a3
Convert private raw pointers to unique_ptr ( #1127 )
...
Simplifies the code quite a bit.
2023-09-23 06:46:05 +02:00
Rosen Penev and GitHub
48c4bf9c05
change two loops to while ( #1147 )
...
and one to for range.
Signed-off-by: Rosen Penev <[email protected] >
2023-09-16 13:28:12 +02:00
Rosen Penev and GitHub
bdf50eda99
use some more auto ( #1146 )
2023-09-16 13:12:04 +02:00
Rosen Penev and GitHub
653c2fe9e1
clang-tidy: use using instead of typedef ( #1120 )
...
Signed-off-by: Rosen Penev <[email protected] >
2023-09-16 09:06:14 +02:00
Rosen Penev and GitHub
6ed0ca28db
add utf8cpp git submodule ( #1142 )
...
* add utf8cpp git submodule
More standard. Allows using the system provided utf8cpp.
Signed-off-by: Rosen Penev <[email protected] >
* cmake: use standard find_package for zlib
Simpler.
Signed-off-by: Rosen Penev <[email protected] >
---------
Signed-off-by: Rosen Penev <[email protected] >
2023-09-16 08:41:01 +02:00
Rosen Penev and GitHub
cf5ad66922
default some more ( #1135 )
...
* remove defaulted constructor
It gets implicitly generated.
Signed-off-by: Rosen Penev <[email protected] >
* default some more
swap is not needed here as shared_ptr is copyable.
Signed-off-by: Rosen Penev <[email protected] >
---------
Signed-off-by: Rosen Penev <[email protected] >
2023-09-16 08:25:04 +02:00
Rosen Penev and GitHub
97a74ca3d8
clang: fix -Wextra-semi warnings ( #1134 )
...
Achieved by adding do/while to mandate a semicolon.
Signed-off-by: Rosen Penev <[email protected] >
2023-09-16 08:23:45 +02:00
7646184d6b
unused includes ( #1133 )
...
* unused includes
Signed-off-by: Rosen Penev <[email protected] >
* Use consistent order of includes
Always include in the following order:
- Own header files
- Standard header files
- System header files
- Project header files (toolkit first)
Exceptions:
- cppunit/extensions/HelperMacros.h must be included after
header files declaring stream operators
- config.h must be included before its definitions are used
---------
Signed-off-by: Rosen Penev <[email protected] >
Co-authored-by: Urs Fleisch <[email protected] >
2023-09-16 08:22:36 +02:00
Rosen Penev and GitHub
88cb197111
replace vector with array ( #1140 )
...
No need for vector. Allows simplifying some code.
Signed-off-by: Rosen Penev <[email protected] >
2023-09-10 06:44:13 +02:00
Rosen Penev and GitHub
110a253ba3
use using declarations ( #1139 )
...
Signed-off-by: Rosen Penev <[email protected] >
2023-09-10 06:40:24 +02:00
Rosen Penev and GitHub
d42e8ed3fe
remove out of line declaration ( #1137 )
...
Seems to have been an oversight at some point.
Signed-off-by: Rosen Penev <[email protected] >
2023-09-08 13:41:41 +02:00
Rosen Penev and GitHub
37ba5a5cc1
convert missed for loop ( #1136 )
...
clang-tidy missed it as the declaration is outside of the loop.
Signed-off-by: Rosen Penev <[email protected] >
2023-09-07 11:04:02 -05:00
Rosen Penev and GitHub
23186f24ff
remove unused typedefs ( #1138 )
...
This was done in C++98 times. No longer needed with auto.
Signed-off-by: Rosen Penev <[email protected] >
2023-09-07 11:02:55 -05:00
Rosen Penev and GitHub
528b84fbde
size() to isEmpty() ( #1131 )
...
Signed-off-by: Rosen Penev <[email protected] >
2023-09-06 21:23:28 +02:00
Rosen Penev and GitHub
912897cd35
simplify boolean expressions ( #1130 )
...
Signed-off-by: Rosen Penev <[email protected] >
2023-09-06 21:16:59 +02:00
Rosen Penev and GitHub
54f84cc924
clang-tidy: use data() ( #1129 )
...
Found with readability-container-data-pointer
Signed-off-by: Rosen Penev <[email protected] >
2023-09-06 21:15:56 +02:00
Urs Fleisch and GitHub
47c4e0859c
Restore const iterators replaced in #1107 ( #1128 )
...
Also make sure that the lines calling std algorithms are not
excessively long.
2023-09-06 20:59:01 +02:00
524b588a1e
manual range loop conversions ( #1126 )
...
* manual range loop conversions
Signed-off-by: Rosen Penev <[email protected] >
* Restore const containers where non const temporaries are iterated
* Use std::as_const() instead of const container copies where possible
---------
Signed-off-by: Rosen Penev <[email protected] >
Co-authored-by: Urs Fleisch <[email protected] >
2023-09-06 20:58:13 +02:00
Rosen Penev and GitHub
303b55fb97
clang-tidy: ending namespace comment ( #1132 )
...
Signed-off-by: Rosen Penev <[email protected] >
2023-09-03 21:39:49 -05:00
Rosen Penev and GitHub
ecf1d4fa53
clang: fix documentation ( #1111 )
...
* Use [[deprecated]] always
Simplifies the code. Codebase is C++17 anyways.
Signed-off-by: Rosen Penev <[email protected] >
* clang: fix documentation
Found with Wdocumentation
Signed-off-by: Rosen Penev <[email protected] >
* add deprecated to length() and fix usages
Signed-off-by: Rosen Penev <[email protected] >
---------
Signed-off-by: Rosen Penev <[email protected] >
2023-09-03 15:14:05 +02:00
Urs Fleisch
d2bd56c519
Fix possible loss of data warning by MSVC
2023-09-02 16:30:45 +02:00
Rosen Penev and GitHub
040b069957
clang-tidy: fix mismatched variable names ( #1109 )
...
Found with readability-inconsistent-declaration-parameter-name
Signed-off-by: Rosen Penev <[email protected] >
2023-08-31 06:46:58 +02:00
Urs Fleisch
f44ea9b80b
Fixed signedness warning
2023-08-30 17:58:15 +02:00
Rosen Penev and GitHub
0ba61343a4
std::list and unique_ptr conversions ( #1122 )
...
The former is standard C++ and the latter allows getting rid of
autodelete.
Signed-off-by: Rosen Penev <[email protected] >
2023-08-30 16:49:31 +02:00
Rosen Penev and GitHub
cdc87aec10
clang-tidy: init members by default ( #1110 )
...
Found with modernize-use-default-member-init
Signed-off-by: Rosen Penev <[email protected] >
2023-08-30 16:26:14 +02:00
Rosen Penev and GitHub
4a86489186
clang-tidy: no else after return ( #1119 )
...
Signed-off-by: Rosen Penev <[email protected] >
2023-08-21 09:19:53 -05:00