Commit Graph

369 Commits

Author SHA1 Message Date
Martchus 88edd43f8c Document usage, especially error handling 2018-03-06 23:50:40 +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 0e15c74103 Move everything into namespace TagParser 2018-03-06 23:09:15 +01:00
Martchus c875af0ce9 Use CPPUNIT_ASSERT_EQUAL 2018-03-06 22:44:01 +01:00
Martchus 36511fcc13 Add progress feedback and diagnostics replacing status provider 2018-03-06 22:44:01 +01:00
Martchus 652e4809b4 Use unordered_map in MatroskaCuePositionUpdater
std::unordered_map should be faster than std::map
2018-03-06 22:44:01 +01:00
Martchus 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
Martchus 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
Martchus 8e66378b81 Add method to get last child of file element 2018-03-06 22:44:01 +01:00
Martchus 611ae0916a Add methods to get n-th parent of file element 2018-03-06 22:44:01 +01:00
Martchus 90dccb2bd9 Add method to determine level of file element 2018-03-06 22:44:01 +01:00
Martchus 99227816b6 Allow specifying whether the size of an element is unknown 2018-03-06 22:44:01 +01:00
Martchus 038d30587c Uniform spelling of Matroska IDs 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 11d881a41e Update major version to 7 2018-03-06 22:44:01 +01:00
Martchus de9e5bab1b Improve consistency of README.md 2018-03-06 22:41:21 +01:00
Martchus b55d956b83 Fix some warnings 2018-02-05 14:51:21 +01:00
Martchus 6068bb09dc Improve coding style in determineElementPosition() 2018-02-05 00:59:34 +01:00
Martchus ae4e46869d Fix warning (signedness conversion) 2018-02-05 00:41:35 +01:00
Martchus 2c4b0abbea Use C++ random API 2018-02-05 00:40:11 +01:00
Martchus 74054e6e87 Fix default timecode scale in Matroska 2018-02-05 00:11:28 +01:00
Martchus 24a6053c2f Make utilities test work with relative working dir 2018-02-04 23:57:04 +01:00
Martchus 25d164a5ae Clean backup helper code 2018-02-04 23:55:52 +01:00
Martchus 6a62ef7fc2 Fix typo 2018-01-29 16:33:55 +01:00
Martchus 2d942a9f45 Add download for MPlayer samples 2017-10-30 21:36:27 +01:00
Martchus e5c93e8293 Update 100 % percentage correctly 2017-10-30 08:21:17 +01:00
Martchus c611543e30 Add entry for Monkey's Audio on track level 2017-10-29 18:42:15 +01:00
Martchus d9485311a1 Detect Monkey's Audio on container level 2017-10-29 18:41:51 +01:00
Martchus 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
Martchus c53e5e35ee Add mapping for unofficial WavPack FOURCC 2017-10-29 17:44:01 +01:00
Martchus 33735f945a Recognize WavPack at container level 2017-10-29 17:40:39 +01:00
Martchus f65b90885a Improve coding style 2017-10-09 21:49:04 +02:00
Martchus c9b961d6b4 Remove some TODOs in MatroskaContainer and reindent accordingly 2017-10-09 21:16:11 +02:00
Martchus 17c76a5f29 Allow to abort making Mkv file when calculating cues 2017-10-09 21:00:52 +02:00
Martchus b1f207303c Fix warnings in MatroskaContainer 2017-10-09 20:59:43 +02:00
Martchus d717913e99 Improve progress updates when making Mkv file 2017-09-21 23:30:35 +02:00
Martchus dc32ca77fb Use const in MatroskaCuePositionUpdater::updateSize 2017-09-21 23:30:35 +02:00
Martchus 7ffb83c4b2 Fix assigning child in MatroskaTagField::reparse 2017-09-21 23:30:35 +02:00
Martchus d968b7cfd1 Prevent comparison of signed and unsigned 2017-09-21 23:30:35 +02:00
Martchus 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
Martchus fe5ac296b3 Fix unused lambda capture 2017-09-20 19:39:04 +02:00
Martchus 5c4de0909a Adjust tests to handle all notifications being present again 2017-09-14 22:31:32 +02:00
Martchus 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
Martchus 098c54e016 Update documentation 2017-09-14 21:41:18 +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 9153e726d5 Fix EbmlElement::idToString() 2017-09-14 18:19:12 +02:00
Martchus a71ffd3fc5 Improve some notification when parsing Matroska files 2017-09-14 18:18:59 +02:00