Commit Graph

796 Commits

Author SHA1 Message Date
Martchus 8ad28f857b Allow extending important classes without ABI break
This allows to make ABI breaks less often while still
being able to extend many aspects of the library.
2023-05-16 22:20:48 +02:00
Martchus 6ed968f5e6 Update major version to 12 2023-05-16 22:00:35 +02:00
Martchus a167e0702e Ignore iso_639-2.json 2023-05-11 22:59:09 +02:00
Martchus 405631625f Fix typo 2023-05-08 11:15:53 +02:00
Martchus 6fb16d72eb Avoid unqualified call to `std::strncpy()` 2023-05-07 21:45:47 +02:00
Martchus 111d6190cb Avoid some of the warnings from MSVC 2023-05-07 21:45:15 +02:00
Martchus 0a2b948f26 Detect APE tags, emit according messages and update README
It is likely not worth adding support for APE tags at this point.
However, it still makes sense to acknowledge the presence of them
despite not being actually supported to avoid possible confusion.

With this change, APE tags at the beginning of the file will be
dropped when applying changes as the container offset is updated
when skipping the tag. I suppose that makes sense considering
putting those tags at the beginning is not recommended anyways.
The diag messages and README have been updated accordingly.
2023-05-06 13:04:01 +02:00
Martchus 9e4d221bb1 Bump minor version 2023-05-06 12:51:16 +02:00
Martchus ea6b474e8c Add container format name for ID3v2 2023-05-06 11:12:08 +02:00
Martchus 10a6b10658 Fix typos 2023-05-06 11:07:31 +02:00
Martchus 25166e4cb4 Bump patch version 2023-05-06 11:00:52 +02:00
Martchus 7d9d5c8408 Detect zstd compressed files 2023-03-05 22:37:14 +01:00
Martchus 21edf75047 Ease setting up build by downloading iso_639-2.json automatically 2023-03-04 19:00:24 +01:00
Martchus d80736743b Use `pubsetbuf` only with `libstdc++`
This usage of the function seems only to work as intended with that
standard lib. With `libc++` and the MSVC standard lib the call has no
effect.
2023-02-28 21:06:52 +01:00
Martchus 981db492e4 Avoid unqualified calls to `std::move` 2023-02-20 19:54:42 +01:00
Martchus 15d74bbfb0 Add media format entry for H.266 2023-02-18 21:43:16 +01:00
Martchus 3272d9c511 Bump minor version 2023-02-18 21:42:38 +01:00
Martchus 522aa4359e Avoid use of platform-specific `unistd.h` header 2023-02-11 13:55:04 +01:00
Martchus cb93d6900c Apply clang-format 2023-02-03 13:31:40 +01:00
Martchus a9c4bca679 Fix broken doc comment 2023-02-03 12:45:44 +01:00
Martchus ca6abe31a0 Fix compilation with MSVC
Apparently the move c'tor isn't available unless explicitly specified
leading to errors when `SegmentData` is used in `std::vector`.
2023-02-02 00:28:01 +01:00
Martchus 205b119416 Use `std` more consistently in `matroskacontainer.cpp` 2023-02-02 00:24:49 +01:00
Martchus 338011e3eb Add missing headers to `matroskaseekinfo.h` 2023-02-02 00:21:37 +01:00
Martchus 7873db611a Add copy c'tor for `AbortableProgressFeedback` to fix compilation with MSVC 2023-02-01 14:36:11 +01:00
Martchus dc4e4082e0 Use `std::filesystem::resize_file` instead of POSIX function
* Avoid platform-specific code
* Fix build with MSVC
2023-02-01 14:05:32 +01:00
Martchus 937631e5c4 Update copyright notice 2023-01-17 18:33:49 +01:00
Martchus 6a07d60649 Avoid message "Parsing tags not implemented …" for MPEG audio frames
This info message that is generated for e.g. MP3 files without ID3 tags is
misleading.
2023-01-08 21:11:57 +01:00
Martchus edc7aa06c9 Bump patch version 2023-01-08 21:10:04 +01:00
Martchus 04e6996ce3 Use the output file path when making an MP4 file also if no rewrite required
Otherwise the `--output-files` option of the tag editor will be ignored
when editing an MP4 file and no rewrite is required.

Note that the condition is already this way in `MediaFileInfo::makeMp3File()`
and `MatroskaContainer::internalMakeFile()`.
2023-01-02 20:04:42 +01:00
Martchus 766e7657b5 Preserve explicitly "undefined" language of MP4 tracks 2023-01-02 19:50:30 +01:00
Martchus 8d4c315611 Improve error messages about missing mandatory MP4 atoms 2023-01-02 19:18:07 +01:00
Martchus 3193df8e3f Fix reading duration from MP4's track header atom
* Skip 4 bytes reserved space correctly
* See https://github.com/Martchus/tageditor/issues/98
2023-01-02 19:16:45 +01:00
Martchus 0347ca73eb Avoid using deprecated OpenSSL functions in testsuite 2023-01-02 01:56:58 +01:00
Martchus dbdfd015bb Bump patch version 2023-01-02 01:55:53 +01:00
Martchus 93da1f1e25 Create ID3v2 tag for AIFF files within `createAppropriateTags()`
Wikipedia says an ID3v2 tag can be added and other software seems to be
able to cope with it.
2022-08-17 23:11:20 +02:00
Martchus bfe6ce8c1e Support detecting AIFF format 2022-08-17 23:06:09 +02:00
Martchus 49c6b61e0c Streamline coding style of date time related tests 2022-08-13 16:05:39 +02:00
Martchus 6333aaa84b Adapt DateTime test to latest changes 2022-08-13 16:04:56 +02:00
Martchus 4ac97910e9 Revert "Adapt tests to recent changes" partially
* In accordance with revert of 44fea6c8c2.
* This partially reverts commit 965ee4ab4b.
2022-08-13 15:43:28 +02:00
Martchus 0cc9271a7f Revert "Omit default components when formatting date time"
* This hack is no longer required as it is now possible to preserve
  what date time parts are specified.
* This reverts commit 44fea6c8c2.
2022-08-13 15:43:28 +02:00
Martchus b50de3cf4f Preserve present parts when converting old record date fields 2022-08-13 15:43:28 +02:00
Martchus f0d8a6efa7 Set only present parts when setting recording time of ID3 <= v2.3
See https://github.com/Martchus/tageditor/issues/86
2022-08-13 14:47:49 +02:00
Martchus 74f6d2b6ac Fix reference to ID3v2 field in error message 2022-08-13 14:43:43 +02:00
Martchus 4aff37b788 Support `CppUtilities::DateTimeExpression` in `TagValue` 2022-08-13 14:42:51 +02:00
Martchus d6a2903749 Fix namespace in documentation of TagDataType 2022-08-13 12:30:59 +02:00
Martchus 99bb786eeb Improve comments about `lRecordingTime`-mapping 2022-08-12 19:41:15 +02:00
Martchus 6da62db035 Add mapping for BPM in Vorbis Comments 2022-08-12 00:37:25 +02:00
Martchus 63c76e6ca4 Bump minor version 2022-08-12 00:36:59 +02:00
Martchus f068c44172 Prevent adding fields with an invalid ID
When there's no mapping for the specified known field, `fieldId()` returns
an invalid field ID. It should not be passed to `setValues()` as we would
otherwise attempt to create an invalid field.
2022-08-12 00:32:17 +02:00
Martchus df27013c2f Avoid misleading log message
"Writing frames" should just be "Writing data" because whatever the file
contains might not be (some kind of) frames.
2022-08-12 00:07:02 +02:00