Commit Graph

711 Commits

Author SHA1 Message Date
Martchus bf1eee45ba Add field mappings for all fields mentioned in Matroska spec 2022-04-06 00:01:19 +02:00
Martchus 26c88befda Make dummy definition in supportsField() const 2022-04-05 23:30:06 +02:00
Martchus 01813e7879 Add missing official Matroska tag field IDs 2022-04-05 21:54:04 +02:00
Martchus 5c4f94de8e Fix originalMediaType() 2022-04-05 21:48:02 +02:00
Martchus 169760c996 Organize matroskatagid.h with sections in accordance to specification 2022-04-05 21:47:35 +02:00
Martchus a3dc63b677 Fix parsing flags of Matroska tracks
The default for the flags "default" and "enabled" is actually 1.
2022-04-05 21:27:58 +02:00
Martchus 8e3055291e Add copyright notice 2022-04-05 20:15:32 +02:00
Martchus a5830319b1 Avoid requiring OpenSSL package in CMake find module
as it is only required for unit tests
2022-04-03 23:20:43 +02:00
Martchus ff86df8e25 Use `makeNativePath()` instead of `u8path()`
On non-Windows platforms the internal representation used for paths is the
configured native (narrow) character set. Most of the time that's UTF-8 but
only on Windows UTF-8 is *always* used for the internal representation.
2022-03-17 22:41:35 +01:00
Martchus b441860cc6 Fix one more occurance of wrong encoding handling with `std::filesystem` 2022-03-16 19:45:59 +01:00
Martchus 1ac689392e Apply clang-format 2022-03-16 19:24:14 +01:00
Martchus 4f221798e9 Fix dealing with non-ASCII characters in backup helper on Windows
See https://github.com/Martchus/tageditor/issues/81
2022-03-16 19:13:09 +01:00
Martchus 526352e016 Increment patch version 2022-03-15 21:51:38 +01:00
Martchus 4140c07512 Clarify that license is "GPL-2-or-later" 2022-03-15 21:49:33 +01:00
Martchus ede94518d0 Add fields to AbstractTrack to support a few more Mkv specs in the future 2022-02-16 00:24:21 +01:00
Martchus 28abe151fd Avoid duplicating MP4 epoch 2022-02-16 00:04:09 +01:00
Martchus 503fb725a2 Improve handling time values of MP4 files
* Cache result of `verifyPresentTrackHeader()` instead of running the code
  unnecassarily multiple times
* Do not tamper with existing/raw values by default to avoid
  inconsistencies through rounding errors and possibly fix
  https://github.com/Martchus/tageditor/issues/80
* Avoid conversions to double (depending on the time scale rounding errors
  might still occur)
2022-02-15 23:22:48 +01:00
Martchus d19a09db5b Make `startDate` static as it isn't used in any other units 2022-02-15 21:35:49 +01:00
Martchus eafe2fa997 Avoid constructor for TrackHeaderInfo 2022-02-15 21:23:29 +01:00
Martchus d390e8c9cf Deduplicate code for computing timing values of MP4 track 2022-02-15 21:22:07 +01:00
Martchus 41ddccb455 Avoid copying fields when making Vorbis comment 2021-12-31 01:18:45 +01:00
Martchus 4e80c31e98 Avoid writing cleared-out Matroska tag fields 2021-12-31 01:16:21 +01:00
Martchus 478b47d114 Improve documentation for `TagValue::isNull()`/`TagValue::isEmpty()` 2021-12-31 01:15:50 +01:00
Martchus 532a805254 Avoid adding empty values when setting values and field does not exist 2021-12-31 01:15:13 +01:00
Martchus 9ca4c57c0e Add `TagTarget::matches()` 2021-12-31 00:31:32 +01:00
Martchus b740d2c1e0 Simplify code 2021-12-31 00:30:11 +01:00
Martchus 31c1bb47e6 Add missing `TrackFlag…` Matroska IDs 2021-12-30 22:49:06 +01:00
Martchus 330e67844d Apply clang-format to example code 2021-12-21 01:08:10 +01:00
Martchus e4c9e9be31 Mention "Building this straight" instructions of tag editor 2021-12-20 23:31:58 +01:00
Martchus af325db8ab Improve "Usage" documentation
* Move example code to a different file and build it as part of the tests
  to make sure it actually compiles
* Add notes about the CMake find module and pkg-config module
2021-12-20 23:26:38 +01:00
Martchus def74db180 Prefer pixel size over display size when computing 'XXXXp' specification 2021-12-07 21:30:26 +01:00
Martchus ea8e70c807 Update/improve build instructions 2021-12-05 18:32:47 +01:00
Martchus 18d054a600 Fix warnings about unused variables 2021-12-05 17:49:54 +01:00
Martchus cb52a1521e Fix compilation with libc++ 2021-12-05 17:49:36 +01:00
Martchus 4900d7dc7e Bump patch version 2021-12-05 17:42:50 +01:00
Martchus 5e3fa563e1 Fix warning about shadowing variable 2021-10-26 15:54:57 +02:00
Martchus fd5e9bf950 Fix crashes due to wrong parameter passing
The refactoring to use `std::string_view`
(see 64d98f5530) caused this regression
(see https://github.com/Martchus/tageditor/issues/75). We must specify the
size because the buffers used here are not null-terminated.
2021-10-26 15:54:30 +02:00
Martchus 0ebad97a6d Increase minor version 2021-09-11 23:58:30 +02:00
Martchus e277070e9c Use `std::filesystem` in backup helper code
* Fix applying changes to symlinks so that the target is modified in any
  case (and not just if a rewrite isn't necessary)
* Avoid using `std::rename` and `std::remove` because they might not work
  under Windows when the path contains non-ASCII characters
* Simplify code, remove `isRelative()`
2021-09-11 23:54:49 +02:00
Martchus 8a48914bcc Use `std::filesystem` in `createBackupFile`
* Drop platform-specific code
* Avoid using ANSI WinAPI function
2021-09-11 21:52:49 +02:00
Martchus 751ace8810 Bump minor release 2021-08-25 19:07:14 +02:00
Martchus 0a9c979756 Add documentation for `TagField<ImplementationType>::idToString()` 2021-08-25 19:05:38 +02:00
Martchus 5a1cb3d86f Add v11 FIXME to move MatroskaContainer::m_maxFullParseSize to MediaFileInfo 2021-08-25 19:04:51 +02:00
Martchus 14b4185023 Normalize known Matroska tag fields so they can be recognized despite different casing
* Do this by default with an opt-out; changing only known fields should not
  be very intrusive
* Fix recognizing known fields when only the case differs, see
  https://github.com/Martchus/tageditor/issues/72
2021-08-25 18:53:20 +02:00
Martchus dd787e2f2a Extend Ogg related tests
* Test writing trailing zero lacing value if required
* Test adding cover
2021-08-18 22:48:17 +02:00
Martchus ee9aeb00b4 Write zero lacing value in Ogg header if Vorbis comment size divisible by 255
See https://github.com/Martchus/tageditor/issues/70
2021-08-16 19:22:15 +02:00
Martchus 0b47186e57 Deprecate certain unused Ogg functions which are likely not generally useful 2021-08-16 18:44:48 +02:00
Martchus 932687f93d Improve warnings when parsing Vorbis comments 2021-08-16 18:37:44 +02:00
Martchus 18d4a5e8de Allow aborting Ogg parsing 2021-08-15 23:33:01 +02:00
Martchus 10f781951c Allow aborting Ogg writing 2021-08-15 23:31:20 +02:00