Commit Graph

177 Commits

Author SHA1 Message Date
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 69c72909e8 Fix some Doxygen warnings 2019-06-01 15:07:48 +02:00
Martchus c17db5f2f6 Apply cmake-format and clang-format 2019-05-04 21:03:09 +02:00
Martchus 3288d49d62 Support 'file://' URLs also when saving 2019-05-04 16:04:37 +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 ccffe4f1e3 Show children of tref atom 2019-04-16 21:50:00 +02:00
Martchus c09f93c441 Preserve order of atoms within moov tree
Maybe it helps with https://github.com/Martchus/tageditor/issues/45
2019-04-16 21:49:16 +02:00
Martchus da15530f53 Remove obsolete code 2019-04-16 21:49:16 +02:00
Martchus f494420da7 Show children of gmhd atom 2019-04-15 18:21:42 +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 d812e0d3ae Detect VobSub within MP4 2019-03-10 16:40:51 +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 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 8642cd67e9 Improve coding style (after running clang-tidy) 2018-08-12 22:14:21 +02:00
Martchus c4adad4297 Detect AV1 in IVF stream 2018-07-28 14:56:00 +02:00
Martchus a2ff0f418f Fix typo occured -> occurred 2018-07-23 14:44:06 +02:00
Martchus 7d709ce9af Add Tag::supportsMultipleValues() 2018-07-13 12:25:00 +02:00
Martchus af4b43ff79 Replace typedef with using 2018-07-12 12:34:38 +02:00
Martchus d434c4e299 Remove legacy API 2018-07-12 12:34:38 +02:00
Martchus e81c6bb169 Implement small TODOs for v8 2018-07-12 12:34:38 +02:00
Martchus a87ad5f5ec Don't use global variable for backup directory 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 687bd976f9 Adjust child offset of meta atom only if within udat
Not sure how meta atoms outside of udat are structured. But
the files from my Android camera puts a meta atom directly under
move which doesn't have 4 additional bytes before the first child.
2018-07-09 14:03:41 +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 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 091fa1daf7 Use "..." to implement subelementByPath 2018-03-07 00:16:20 +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 b55d956b83 Fix some warnings 2018-02-05 14:51:21 +01:00
Martchus e5c93e8293 Update 100 % percentage correctly 2017-10-30 08:21:17 +01:00
Martchus c53e5e35ee Add mapping for unofficial WavPack FOURCC 2017-10-29 17: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 ebcbe092a4 Reduce if-cascades in Mp4TagField 2017-09-14 19:33:49 +02:00
Martchus a1547f9365 Fix some style issues 2017-09-14 18:19:30 +02:00
Martchus ad3b578bfe Fix calculating size of mdat atom when writing chunk-by-chunk 2017-09-14 18:16:40 +02:00
Martchus ba8c9204a9 Fix messing track header of MP4 files (tkhd atom) 2017-09-14 01:37:15 +02:00
Martchus 395ccd50ed Add missing include for total file size 2017-08-18 00:18:16 +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 2beb4b02aa Prevent some warnings 2017-06-10 21:47:07 +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 527fcb694e Ensure MP4 ID strings only contain printable chars
Prevents tag editor from generating invalid XHTML
2017-05-29 00:57:42 +02:00
Martchus 4a37d9b58f Remove unused metaAtom in mp4container.cpp 2017-03-22 14:36:52 +01:00
Martchus c3394acdb2 Fix typos 2017-03-01 18:21:00 +01:00
Martchus b97192abd3 Use std::make_unique provided by C++14 2017-02-05 21:02:40 +01:00
Martchus 5037713071 Remove numberToString() where possible 2017-01-30 00:42:35 +01:00
Martchus 230a14fcf1 Use string builder rather than stringstream 2017-01-27 21:27:24 +01:00
Martchus 541f14039b Make use of string builder 2017-01-27 18:59:22 +01:00
Martchus b4e167bd71 Ease dealing with native field IDs
In particular, this allow conversion from native field IDs
to readible string representation and vice verca
2017-01-23 00:25:53 +01:00
Martchus c272ec315b Fix setting encoding in TagValue::assignText()
* when no conversion should to be done
* also be more tolerant in TagValue::toString() when
  no encoding has been specified
2016-12-28 00:17:26 +01:00
Martchus 477ac9884b Use _wopen under Windows to support unicode filenames 2016-12-21 00:42:31 +01:00
Martchus a6b2d10655 Write index always in front when dealing with DASH 2016-11-19 23:14:38 +01:00
Martchus 2eb8760afa Fix Mp4Tag::supportsField() for KnownField::EncoderSettings 2016-11-19 22:03:47 +01:00
Martchus eafbda8233 Fix wrong condition for pre-defined genre in MP4 container 2016-11-19 21:44:28 +01:00
Martchus 56e49e11fc Fix making MP4 file when forcing index pos 2016-11-19 21:25:18 +01:00
Martchus 802e6e2dfb Consider index position when making MP4 files
However, give tag position precedence if both is specified
and forced.
2016-11-18 16:51:10 +01:00
Martchus a8dce14514 Allow checking index position
Only implemented for MP4 so far
2016-11-16 19:31:09 +01:00
Martchus 6717062ca2 Allow checking tag position
Only implemented for MP4 so far
2016-11-15 22:48:38 +01:00
Martchus f6d0f3a003 Improve handling of extended MP4 fields 2016-11-14 22:59:19 +01:00
Martchus 0cf30edbff Fix decoration for static builds 2016-08-29 15:43:05 +02: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 bbafd16dcc Support FLAC in Ogg 2016-05-14 23:20:51 +02:00
Martchus 40fa32cb38 fixed includes for accumulate 2016-05-08 14:05:10 +02:00
Martchus 6c6ab0e301 improved file handling
- don't override backup files
- allow saving files at a different location
- reduce code duplication for restoring backups
2016-05-01 20:02:44 +02:00
Martchus 6cce90b106 overall code cleanup 2016-04-24 22:10:45 +02:00
Martchus 899e2a97fe small improvements
- fixed some mostly ID3/MP3 related bugs
- added convenience methods/operators
2016-03-18 21:43:09 +01: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 b48dcf5b3d ensure stringstream is included 2016-02-05 20:25:38 +01:00
Martchus de104dee5a fixed infinite loop 2016-01-16 16:47:18 +01:00
Martchus b1ce8dde9f fixed some (mostly DASH related) errors 2015-12-27 18:05:50 +01:00
Martchus 6f0adce661 make use of padding when applying changes to MP3 files 2015-12-22 23:54:35 +01:00
Martchus 47e7f4eea4 fixed misc bugs 2015-12-22 17:00:54 +01:00
Martchus 6790b6c350 added MS MPEG-4 2015-12-22 16:56:02 +01:00
Martchus ee09a50915 removed useless destructors 2015-12-21 18:35:47 +01:00