Commit Graph

577 Commits

Author SHA1 Message Date
Martchus e7ce9e7ced Improve documentation 2020-11-05 19:52:09 +01:00
Martchus 2cdcb9e6b2
Merge pull request #14 from Martchus/enhance-format-description
Enhance track description
2020-10-01 21:01:34 +02:00
Martchus 3a0b6c24dd Include more details into track description
* Usually the profile and level are interesting and don't take much space
* Add also a short description if it is too long after all
2020-10-01 19:58:03 +02:00
Martchus 30f233377f Include AVC profiles in abbreviations
One can still unset sub if it is too much detail.
2020-10-01 19:33:42 +02:00
Martchus 16f4d2165c Do not incorrectly abbreviate MPEG-4 ASP as H.263
Unlike MPEG-4 AVC and H.264, MPEG-4 ASP and H.263 are not identical.
2020-10-01 19:09:01 +02:00
Martchus 965ee4ab4b Adapt tests to recent changes 2020-04-26 22:22:29 +02:00
Martchus 44fea6c8c2 Omit default components when formatting date time
It just looks nicer to have e.g. "2017" instead of "2017-01-01T00:00:00".
The ID3v2.4.0 standard and the Matroska standard explicitely allow this
format as well.
2020-04-26 21:45:20 +02:00
Martchus 13a87b473d Improve documentation 2020-04-24 23:15:30 +02: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 a7d359df81 Fix warnings about empty expression statements 2020-04-22 22:49:40 +02:00
Martchus 0d4d3da41e Add script to update enum comments 2020-04-22 22:09:00 +02:00
Martchus 0e66b34d48 Add human readable representation of certain IDs as comments 2020-04-22 22:08:02 +02:00
Martchus 6c8f237087 Show warning when reading/writing ID3v2 frames not matching the tag version 2020-04-22 19:48:27 +02:00
Martchus c9e0f82519 Add missing exports in id3v2frameids.h 2020-04-22 19:15:54 +02:00
Martchus 8f3eae59f1 Add more time-related ID3v2 IDs 2020-04-22 19:14:34 +02:00
Martchus 248a6555f3 Add links to upstream documentation of field IDs for the different formats 2020-04-22 18:43:41 +02:00
Martchus 25b567913b Detect Dolby Digital Plus in Matroska files 2020-03-18 17:48:23 +01:00
Martchus fb4633ad36 Add specific diag msg when abort saveing mkv while parsing orig file 2019-12-30 23:53:53 +01:00
Martchus 40a96c1fd4 Use 64 KiB buffer to copy file elements 2019-12-30 23:51:54 +01:00
Martchus b2c02e9acc Fix childs -> children 2019-12-30 22:54:11 +01:00
Martchus 49798ae3a8 Improve wording in Mp4Container 2019-12-15 19:44:44 +01:00
Martchus eabc9c4438 Use 'override' in all TestFixture classes 2019-12-15 19:44:07 +01:00
Martchus 7043c3d2a9 Don't suppress IO errors when writing files
* Close or flush streams explicitely so writing is not
  deferred
    * to catch errors in the right place
    * to avoid suppressing errors completely when writing
      would be deferred to the destructor invocation
* Improve comments
2019-12-15 19:43:16 +01: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 9299c58c22 Detect VP9 in MP4 2019-09-25 22:05:25 +02:00
Martchus eb9ab514eb Detect Opus and FLAC in MP4 2019-09-25 21:52:44 +02:00
Martchus fe67abcfeb Fix old namespaces being mentioned in the documentation 2019-09-04 18:47:54 +02:00
Martchus 6e9b39726d Add conversion from ISO-639-2/B codes to language names 2019-08-17 20:56:09 +02:00
Martchus 2725bad686 Add options for TagValue comparison
* Support case-insensitive comparision
* Allow ignoring meta-data
2019-08-12 20:24:27 +02:00
Martchus 85eb71cd20 Use helper for flag enum from c++utilities 2019-08-12 20:22:57 +02:00
Martchus b09e7535bc Support lyrics in Vorbis/FLAC 2019-08-12 00:29:08 +02:00
Martchus 53fd299a10 Set project() on top-level
See https://github.com/Martchus/cpp-utilities/pull/15
2019-07-20 18:08:53 +02:00
Martchus 86b980f609 Apply clang-format 2019-06-20 22:56:59 +02:00
Martchus 4ad9ceb68c Fix warning in AacSbrInfo 2019-06-20 22:56:49 +02:00
Martchus c8973c742c Remove unused functions of MatroskaSeekInfo 2019-06-17 19:11:20 +02:00
Martchus 480857b1b6 Parse "SeekHead" elements referenced by "Seek" elements
Follow at least one level of indirection by default
2019-06-17 19:11:00 +02:00
Martchus 0c2056c2f9 Refactor WaveFormatHeader::parse() 2019-06-16 18:06:31 +02:00
Martchus 48ee8023b2 Remove useless remarks 2019-06-16 18:04:31 +02:00
Martchus ed816a322d Rename Id2v2 frame ID "grouping" to "albumArtist" 2019-06-16 17:45:49 +02:00
Martchus 0af4044a50 Remove deprecated functions of Id3v2Frame 2019-06-16 17:43:58 +02:00
Martchus df9d869911 Fix const-corretness in Id3Genres::genreNames() 2019-06-16 17:42:14 +02:00
Martchus 8e71612cac Fix types in out-commented code 2019-06-16 17:41:48 +02:00
Martchus 9a5c78b725 Don't consider UTF-8 an encoding which can be used in ID3v1
UTF-8 within ID3v1 is still supported relying on the presence of
the BOM. However, the library should not advise that to tag editing
clients.
2019-06-14 18:07:59 +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 736b4caeeb Document handling different types and encodings 2019-06-01 23:20:01 +02:00
Martchus 5114a3ea08 Treat differently encoded values not necessarily as different
That an automatic conversion happens for different types but not
for different encodings was always a bit odd.

This makes writing tests easier and comparing values within the
tag editor does not rely on choosing a particular encoding.
2019-06-01 23:01:53 +02:00
Martchus a8e20c5ef4 Allow converting the description encoding 2019-06-01 22:57:01 +02:00
Martchus 7885b99f72 Add TagValue::isNull() 2019-06-01 22:55:16 +02:00
Martchus c28ded1bca Allow instantiating TagValue from TimeSpan and DateTime 2019-06-01 22:54:44 +02:00