Commit Graph

67 Commits

Author SHA1 Message Date
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 b2c02e9acc Fix childs -> children 2019-12-30 22:54:11 +01: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 48ee8023b2 Remove useless remarks 2019-06-16 18:04:31 +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 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 f687618002 Reduce compiler warnings in Mp4Track code 2019-04-21 18:18:56 +02:00
Martchus bfb460d4fd Preserve empty/zero language in MP4 tracks 2019-04-21 18:15:53 +02:00
Martchus 66895e8e2c Distinguish text and "meta" tracks in MP4 2019-04-19 21:59:46 +02:00
Martchus 48166bde9e Prevent updating tkhd atom to version 1 for compatibility 2019-04-19 21:59:42 +02:00
Martchus 8588edaa2e Write preferably version 0 of mdhd atom for compatibility 2019-04-18 17:56:03 +02:00
Martchus 27d7a182d9 Preserve all child elements within trak element 2019-04-17 17:52:04 +02:00
Martchus da15530f53 Remove obsolete code 2019-04-16 21:49:16 +02:00
Martchus 2d306b1a5f Preserve all children of minf atom
See https://github.com/Martchus/tageditor/issues/45
2019-04-15 18:21:33 +02: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 60f1288e42 Fix some warnings 2018-08-23 23:20:29 +02:00
Martchus 3332314eb6 Prepare logging errors when parsing AVC config 2018-08-23 23:20:17 +02: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 e81c6bb169 Implement small TODOs for v8 2018-07-12 12:34:38 +02:00
Martchus 9361e0bc13 Use constexpr where possible 2018-07-12 12:34:38 +02:00
Martchus 93bd1b2814 Don't warn about invalid language when making MP4 track if empty 2018-07-09 15:57:48 +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 c0336ed4bb Apply clang-format 2018-03-07 01:17:50 +01:00
Martchus a0986ad4a9 Fix style issues 2018-03-07 01:11:42 +01:00
Martchus efa67d6a1a Improve siblingById() and subelementByPath()
* Use 2 functions instead of flag parameter
* Support const correctness
2018-03-07 00:30:08 +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 d968b7cfd1 Prevent comparison of signed and unsigned 2017-09-21 23:30:35 +02:00
Martchus fe5ac296b3 Fix unused lambda capture 2017-09-20 19:39:04 +02:00
Martchus ba8c9204a9 Fix messing track header of MP4 files (tkhd atom) 2017-09-14 01:37:15 +02:00
Martchus 99b177a9ff Handle invalid language for MP4 track better 2017-06-17 00:32:38 +02:00
Martchus f323061767 Apply MP4 track meta-data also when not writing chunk-by-chunk 2017-06-17 00:31:35 +02:00
Martchus b4de493b56 Prevent warning about unused variable 2017-06-11 01:22:30 +02:00
Martchus d8d3fbd487 Enable code for parsing MP4 chunk-offsets from fragments 2017-05-29 00:58:44 +02:00
Martchus 4faef55906 Fix writing MP4 chunk-by-chunk
This also involves finally implementing
Mp4Track::makeTrack(). Mp4Track::makeSampleTable()
which would enable modifying stbl atom is still not
fully implemented yet, though.
2017-05-29 00:58:08 +02:00
Martchus c3394acdb2 Fix typos 2017-03-01 18:21:00 +01:00
Martchus 541f14039b Make use of string builder 2017-01-27 18:59:22 +01:00
Martchus 817a8e25e6 Improve documentation and consistency 2016-08-04 00:16:19 +02:00
Martchus cf5b021180 Use workaround for GCC Bug 66145 2016-06-14 22:53:43 +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 19593d4c24 added media format MPEG-4 Timed Text 2016-02-20 01:42:01 +01:00
Martchus 488fce3ab8 parsing AVC config 2016-02-17 20:19:05 +01:00
Martchus 3da8337c6c make use of padding when applying changes to MP4 files 2015-12-21 00:27:44 +01:00
Martchus e7bd2185d5 added properties to control position of tags when writing files 2015-11-07 21:25:37 +01:00