Commit Graph

42 Commits

Author SHA1 Message Date
Martchus 981db492e4 Avoid unqualified calls to `std::move` 2023-02-20 19:54:42 +01:00
Martchus d6e1b4b77d Fix mapping of iTunes "advisory" rating to KnownField::LawRating
That likely fits the "advisory" rating better than KnownField::Rating which
is more a personal rating.
2022-06-16 01:15:51 +02:00
Martchus 4da00f8b75 Add more field mappings 2022-04-09 23:36:39 +02:00
Martchus bf1eee45ba Add field mappings for all fields mentioned in Matroska spec 2022-04-06 00:01:19 +02:00
Martchus 532a805254 Avoid adding empty values when setting values and field does not exist 2021-12-31 01:15:13 +01:00
Martchus f39e8b4d8c Avoid useless cases when assigning tag size (which is now std::uint64_t) 2021-08-08 00:05:11 +02:00
Jonas Kvinge ea23d71e8a Fix spelling and typos 2021-07-02 11:12:39 +02:00
Martchus 0a041f6ad2 Fix warnings 2021-03-20 21:26:25 +01:00
Martchus f21ac07da0 Get rid of deprecated fields 2021-02-01 17:11:08 +01:00
Martchus 64d98f5530 Use std::string_view where it makes sense 2021-01-30 21:53:06 +01:00
Martchus 49154905b1 Improve code in Mp4Tag::setValues() 2021-01-30 19:22:06 +01:00
Martchus 42eac2074d Return additional values stored within MP4 fields via values() 2021-01-30 19:18:29 +01:00
Martchus 84183aaf02 Improve handling of MP4 tags
* Preserve multiple data atoms
* Assume JPEG as raw data type when making cover field (instead of UTF-8)
* Split certain functions
* Simplify code
2021-01-30 13:59:48 +01:00
Martchus d26e594777 Deprecate 'Year' in favor of 'RecordDate' and 'ReleaseDate', fix handling in ID3v2
1. Convert TYER and related fields of old ID3v2 versions to the new TDRC
  field and only expose that via the generic accessors.
2. When writing an old ID3v2 tag, convert TDRC back to the old fields.
3. One can still manually unset the via 1. auto-populated TDRC to disable 2.
   and write the old fields directly. So the automatic handling does not
   reduce the flexibility of the library.
4. Deprecate 'Year'; it is replaced by the already existing 'RecordDate'
   which is now supposed to be used everywhere where 'Year' was used before
5. Introduce 'ReleaseDate' to support this field which is supported in
   ID3v2.4.0 and Matroska via the generic accessors.
6. Use ISO format when converting tag values of the type DateTime to/from
   string. This is closer to what's used in ID3v2 tags internally. (The
   library still allows the old format as fallback when parsing for
   compatibility.)
2020-04-24 23:15:13 +02:00
Martchus a59a01cfe9 Prevent warning when adding album artist to MP4
Prevents "making MP4 tag field aART: It was not possible to
find an appropriate raw data type id. UTF-8 will be assumed."
2019-10-09 18:03:34 +02:00
Martchus c9e1dde70b Adapt to changes in c++utilities 2019-06-12 20:40:45 +02:00
Martchus 5ad00a083c Adapt to changes in c++utilities 2019-06-10 23:11:39 +02:00
Martchus 7efa7a0d5a Adapt to c++utilities v5 2019-05-04 16:04:21 +02:00
Martchus 6afcd0f8d3 Support album artist and fix/improve grouping 2019-01-01 23:47:18 +01:00
Martchus 8642cd67e9 Improve coding style (after running clang-tidy) 2018-08-12 22:14:21 +02:00
Martchus d434c4e299 Remove legacy API 2018-07-12 12:34:38 +02:00
Martchus 3265e0bea4 Fix documentation which was still using the old namespace 2018-06-03 20:38:32 +02:00
Martchus 0a640c9f7f Fix warnings, mostly about implicit int conversions
This should fix all non-erros, leaving only warnings which
are indeed potential problems.

The following warnings should be safe to ignore:

* Conversions of various offsets from uint64 to
  std::streamoff/int64 are safe because such offsets have
  been obtained via tellg() and other functions
  returning std::streamoff in the first place.
* It also works vice-versa since tellg() should not
  return negative offsets with exceptions enabled.
* Conversions from char to unsigned char are also ok.
* Unused diag arguments can be ignored (those might be
  useful later).
* Annotate all intended fallthoughs.
2018-06-02 23:04:53 +02:00
Martchus 59024a66a0 Don't clear field before parsing by default 2018-03-11 22:27:12 +01:00
Martchus c0336ed4bb Apply clang-format 2018-03-07 01:17:50 +01:00
Martchus 0e15c74103 Move everything into namespace TagParser 2018-03-06 23:09:15 +01:00
Martchus 36511fcc13 Add progress feedback and diagnostics replacing status provider 2018-03-06 22:44:01 +01:00
Martchus 7a02e8a325 Uniform/simplify typedefs in templates
* Begin type names with capital letter
* Remove typedefs for implementation type
* Remove useless/obsolete comments
* Simplify relevant code
2018-03-06 22:44:01 +01:00
Martchus 0daabba17a Use static polymorphism in FieldMapBasedTag 2018-03-06 22:44:01 +01:00
Martchus 138fa32f29 Restructure FieldMapBasedTag to use CRTP 2018-03-06 22:44:01 +01:00
Martchus eafbda8233 Fix wrong condition for pre-defined genre in MP4 container 2016-11-19 21:44:28 +01:00
Martchus f6d0f3a003 Improve handling of extended MP4 fields 2016-11-14 22:59:19 +01:00
Martchus 817a8e25e6 Improve documentation and consistency 2016-08-04 00:16:19 +02:00
Martchus ddf9ef02f8 improved handling of unsupported files
additionally:
- added detection for QuickTime files
- minor adjustments
2016-03-14 21:56:27 +01:00
Martchus 6f0adce661 make use of padding when applying changes to MP3 files 2015-12-22 23:54:35 +01:00
Martchus 0c82c4c1fd allow precalculation of MP4 tag size 2015-12-10 13:50:46 +01:00
Martchus aa50c2d8b3 fixed includes 2015-09-06 19:57:33 +02:00
Martchus b1eb6faba6 fixed includes 2015-09-06 15:42:18 +02:00
Martchus 8b91b41801 updated readme 2015-08-26 20:01:32 +02:00
Martchus 8dc85941eb small adjustments 2015-08-10 00:02:03 +02:00
Martchus c452b009ae improved media format detection; other minor improvements 2015-06-07 00:18:28 +02:00
Martchus 033e313c74 First commit 2015-04-22 19:22:01 +02:00