Commit Graph

98 Commits

Author SHA1 Message Date
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 3f5d5e3098 Add functions to return only tags which have actually been parsed 2021-08-08 00:04:12 +02:00
Martchus 0e97b96ea8 Bump patch version (10.0.0 -> 10.0.1) 2021-07-03 11:42:13 +02:00
Martchus abd4fbb868 Allow to specify location of JSON document for ISO-639-2 2021-01-20 21:59:34 +01:00
Martchus cae88246ec Generate code for ISO-639-2/B mapping from iso-codes package 2021-01-20 21:45:14 +01:00
Martchus 6b469f1c26 Add Locale class to deal with differently specified languages/countries
Different media/tag formats specify languages and countries
differently. This change introduces a Locale class to keep track
of the format being used. So far there are no automatic conversions
implemented so it is entirely up to the user to pass valid values using
a format which matches the one required by the media/tag format.

This change also adds support for Matroska's IETF elements so at least the
raw value can be read, written and is preserved.
2020-12-16 17:48:08 +01:00
Martchus 4cc2dbd9e6 Use flags instead of tons of boolean fields in AbstractTrack 2020-12-16 17:48:08 +01:00
Martchus aa23750307 Make many constructors explicit to avoid unintended implicit conversions 2020-12-05 20:48:57 +01:00
Martchus 9a5d366ce0 Vorbis comment: Turn "YEAR" into "DATE" (unless "DATE" exists)
"DATE" is an official field and "YEAR" only an inofficial one but present
in some files. In consistency with MediaInfo and VLC player it is treated
like "DATE" here.
2020-11-25 01:39:57 +01:00
Martchus e7ce9e7ced Improve documentation 2020-11-05 19:52:09 +01: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 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 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 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 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 53fd299a10 Set project() on top-level
See https://github.com/Martchus/cpp-utilities/pull/15
2019-07-20 18:08:53 +02:00
Martchus e8bc94906a Apply cmake-format 0.5.1 2019-06-01 12:32:17 +02:00
Martchus c17db5f2f6 Apply cmake-format and clang-format 2019-05-04 21:03:09 +02:00
Martchus 7efa7a0d5a Adapt to c++utilities v5 2019-05-04 16:04:21 +02:00
Martchus 0452b42bfc Add MediaFileInfo::overallAverageBitrate() 2019-03-10 16:31:47 +01:00
Martchus 5140b76f08 Treat 255 as empty ID3v1 genre index 2019-02-13 18:56:03 +01:00
Martchus 97c1a2100d Apply cmake-format 2019-02-06 18:04:33 +01:00
Martchus da64d455d9 Let CMake generate code for test application 2019-01-13 22:28:26 +01:00
Martchus 1e376f54c3 Document adding new fields
It is an easy task but it is also easy to forget something.
2019-01-05 16:55:28 +01:00
Martchus 6afcd0f8d3 Support album artist and fix/improve grouping 2019-01-01 23:47:18 +01:00
Martchus 0024d5e115 Make message about parsing AV1 config not supported an info
rather than a critical error
2018-11-08 14:31:35 +01:00
Martchus bdf9d99262 Bump version 8.0.0 => 8.0.1 2018-10-29 17:31:06 +01:00
Martchus 534cb2a6f7 Prepare parsing AV1 config 2018-08-23 23:18:57 +02:00
Martchus c4adad4297 Detect AV1 in IVF stream 2018-07-28 14:56:00 +02:00
Martchus d434c4e299 Remove legacy API 2018-07-12 12:34:38 +02:00
Martchus 1a97d91b27 Preserve multiple strings in ID3v2 text frames 2018-07-12 12:34:38 +02:00
Martchus 403df73c1c Bump minor release 2018-07-01 23:07:37 +02:00
Martchus a065412d98 Add support for disk position in ID3v2.0 2018-06-02 23:08:38 +02:00
Martchus 38da0c796b ID1v1: Allow conversion from int/string to position 2018-05-31 00:21:54 +02:00
Martchus c377524850 Fix FieldMapBasedTag<ImplementationType>::knownField() 2018-05-13 00:25:02 +02:00
Martchus 7d65a91900 Update patch version 2018-05-08 18:47:03 +02:00
Martchus 0f0260fb77 Fix parseTags() for FLAC, consider tags unsupported if container unknown
FLAC stores tags on track level. Hence we must parse the
tracks here in order to parse the tags. This hasn't been taken
into account when refactoring the tag editor CLI leading to
https://github.com/Martchus/tageditor/issues/36.

So let's handle these format specific details in the tagparser
library which will now internally parse tracks when calling
parseTags() on FLAC files.

This also fixes the weird behavior to consider tags supported
although the container format is unknown.
2018-04-29 17:18:17 +02:00
Martchus b47705ff81 Refactor MediaFileInfo::createAppropriateTags() 2018-03-11 18:57:22 +01:00
Martchus c0336ed4bb Apply clang-format 2018-03-07 01:17:50 +01:00
Martchus 27600642f1 Sort file names 2018-03-07 01:14:28 +01:00
Martchus a5813f742e Re-add the WIP AAC parser
So it is considered when refactoring.
2018-03-06 23:17:35 +01:00
Martchus 36511fcc13 Add progress feedback and diagnostics replacing status provider 2018-03-06 22:44:01 +01:00
Martchus 11d881a41e Update major version to 7 2018-03-06 22:44:01 +01:00
Martchus 6a62ef7fc2 Fix typo 2018-01-29 16:33:55 +01:00
Martchus d4a406ba57 Increase minor version 2017-09-03 18:55:51 +02:00