Commit Graph

521 Commits

Author SHA1 Message Date
efa67d6a1a Improve siblingById() and subelementByPath()
* Use 2 functions instead of flag parameter
* Support const correctness
2018-03-07 00:30:08 +01:00
091fa1daf7 Use "..." to implement subelementByPath 2018-03-07 00:16:20 +01:00
88edd43f8c Document usage, especially error handling 2018-03-06 23:50:40 +01:00
a5813f742e Re-add the WIP AAC parser
So it is considered when refactoring.
2018-03-06 23:17:35 +01:00
0e15c74103 Move everything into namespace TagParser 2018-03-06 23:09:15 +01:00
c875af0ce9 Use CPPUNIT_ASSERT_EQUAL 2018-03-06 22:44:01 +01:00
36511fcc13 Add progress feedback and diagnostics replacing status provider 2018-03-06 22:44:01 +01:00
652e4809b4 Use unordered_map in MatroskaCuePositionUpdater
std::unordered_map should be faster than std::map
2018-03-06 22:44:01 +01:00
e705de3704 Handle Mkv files with unknown element sizes correctly
Those elements are still assumed to fill the max available
space. However, if it turns out one "child" is more likely
a sibling, the wrong assumption is fixed.
2018-03-06 22:44:01 +01:00
5ed20c7e8e Add function to determine Mkv element level by ID
Does not cover all element IDs but should be more
than sufficient for its purpose.
2018-03-06 22:44:01 +01:00
8e66378b81 Add method to get last child of file element 2018-03-06 22:44:01 +01:00
611ae0916a Add methods to get n-th parent of file element 2018-03-06 22:44:01 +01:00
90dccb2bd9 Add method to determine level of file element 2018-03-06 22:44:01 +01:00
99227816b6 Allow specifying whether the size of an element is unknown 2018-03-06 22:44:01 +01:00
038d30587c Uniform spelling of Matroska IDs 2018-03-06 22:44:01 +01:00
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
0daabba17a Use static polymorphism in FieldMapBasedTag 2018-03-06 22:44:01 +01:00
138fa32f29 Restructure FieldMapBasedTag to use CRTP 2018-03-06 22:44:01 +01:00
11d881a41e Update major version to 7 2018-03-06 22:44:01 +01:00
de9e5bab1b Improve consistency of README.md 2018-03-06 22:41:21 +01:00
b55d956b83 Fix some warnings 2018-02-05 14:51:21 +01:00
6068bb09dc Improve coding style in determineElementPosition() 2018-02-05 00:59:34 +01:00
ae4e46869d Fix warning (signedness conversion) 2018-02-05 00:41:35 +01:00
2c4b0abbea Use C++ random API 2018-02-05 00:40:11 +01:00
74054e6e87 Fix default timecode scale in Matroska 2018-02-05 00:11:28 +01:00
24a6053c2f Make utilities test work with relative working dir 2018-02-04 23:57:04 +01:00
25d164a5ae Clean backup helper code 2018-02-04 23:55:52 +01:00
6a62ef7fc2 Fix typo 2018-01-29 16:33:55 +01:00
2d942a9f45 Add download for MPlayer samples 2017-10-30 21:36:27 +01:00
e5c93e8293 Update 100 % percentage correctly 2017-10-30 08:21:17 +01:00
c611543e30 Add entry for Monkey's Audio on track level 2017-10-29 18:42:15 +01:00
d9485311a1 Detect Monkey's Audio on container level 2017-10-29 18:41:51 +01:00
cdccc247c6 Treat WavPack files like MP3
Players seem to be able to at least skip ID3v2 or
are even able to display it. ID3v1 should not cause
any trouble at all because its use is even proposed
in the WavPack documentation.
2017-10-29 18:04:13 +01:00
c53e5e35ee Add mapping for unofficial WavPack FOURCC 2017-10-29 17:44:01 +01:00
33735f945a Recognize WavPack at container level 2017-10-29 17:40:39 +01:00
f65b90885a Improve coding style 2017-10-09 21:49:04 +02:00
c9b961d6b4 Remove some TODOs in MatroskaContainer and reindent accordingly 2017-10-09 21:16:11 +02:00
17c76a5f29 Allow to abort making Mkv file when calculating cues 2017-10-09 21:00:52 +02:00
b1f207303c Fix warnings in MatroskaContainer 2017-10-09 20:59:43 +02:00
d717913e99 Improve progress updates when making Mkv file 2017-09-21 23:30:35 +02:00
dc32ca77fb Use const in MatroskaCuePositionUpdater::updateSize 2017-09-21 23:30:35 +02:00
7ffb83c4b2 Fix assigning child in MatroskaTagField::reparse 2017-09-21 23:30:35 +02:00
d968b7cfd1 Prevent comparison of signed and unsigned 2017-09-21 23:30:35 +02:00
cbf63a68aa Compute all Mkv cluster before fixing invalidated cues
This should lead to less 'goto addCuesElementSize;' and
hence boost the time required to calculate sizes. With
the file I tested only one jump was still required after
the change.
2017-09-21 23:30:35 +02:00
fe5ac296b3 Fix unused lambda capture 2017-09-20 19:39:04 +02:00
5c4de0909a Adjust tests to handle all notifications being present again 2017-09-14 22:31:32 +02:00
5e4e6a04a9 Transfer notifications to media file info
Commit 'Fix duplicate notifications' (0f6ac6a) caused missing
notifications by omitting `addNotifications(*m_container);`
before clearing parsing results. This commit restores the old
behavior and will actually preserve all notifications. However,
it will cause duplicated notifications again. The notification
system must be reworked in v7 for a decent solution.
2017-09-14 22:13:34 +02:00
098c54e016 Update documentation 2017-09-14 21:41:18 +02:00
ebcbe092a4 Reduce if-cascades in Mp4TagField 2017-09-14 19:33:49 +02:00
a1547f9365 Fix some style issues 2017-09-14 18:19:30 +02:00