Commit Graph

357 Commits

Author SHA1 Message Date
Marius Kittler 53701255ca WIP: Rework notifications 2017-11-16 17:54:42 +01:00
Marius Kittler e232c907ea status provider: Use inline not inside the class definition 2017-11-16 17:13:58 +01:00
Marius Kittler d5613954a4 Remove unnecessary cast 2017-11-16 17:12:21 +01:00
Martchus 44af199aeb Use unordered_map in MatroskaCuePositionUpdater
std::unordered_map should be faster than std::map
2017-10-30 20:48:30 +01:00
Martchus b69aab0cd1 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.
2017-10-30 20:48:30 +01:00
Martchus 618efe3f96 Add function to determine Mkv element level by ID
Does not cover all element IDs but should be more
than sufficient for its purpose.
2017-10-30 20:48:30 +01:00
Martchus fdb23e3cd0 Add method to get last child of file element 2017-10-30 20:48:30 +01:00
Martchus bf31c9e89f Add methods to get n-th parent of file element 2017-10-30 20:48:30 +01:00
Martchus 4231f2679e Add method to determine level of file element 2017-10-30 20:48:30 +01:00
Martchus 8109f84f38 Allow specifying whether the size of an element is unknown 2017-10-30 20:48:30 +01:00
Martchus 1814cd9bfc Uniform spelling of Matroska IDs 2017-10-30 20:48:30 +01:00
Martchus 0f12cf346c Uniform/simplify typedefs in templates
* Begin type names with capital letter
* Remove typedefs for implementation type
* Remove useless/obsolete comments
* Simplify relevant code
2017-10-30 20:48:30 +01:00
Martchus 86d51f1e96 Use static polymorphism in FieldMapBasedTag 2017-10-30 20:48:30 +01:00
Martchus 90eac982a7 Restructure FieldMapBasedTag to use CRTP 2017-10-30 20:48:30 +01:00
Martchus 001cfc931d Update major version to 7 2017-10-30 20:48:30 +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
Martchus ce92665848 Fix making TrackEntry element 2017-09-14 18:17:31 +02:00
Martchus ad3b578bfe Fix calculating size of mdat atom when writing chunk-by-chunk 2017-09-14 18:16:40 +02:00
Martchus 6eb8eaab11 tests: Check whether no cricical notifications or warnings occurred 2017-09-14 18:16:00 +02:00
Martchus 9c8a27c8b1 Fix gathering notifications of MatroskaContainer 2017-09-14 01:57:22 +02:00
Martchus ba8c9204a9 Fix messing track header of MP4 files (tkhd atom) 2017-09-14 01:37:15 +02:00
Martchus d4a406ba57 Increase minor version 2017-09-03 18:55:51 +02:00
Martchus 15af444e5a Refactor calculating duration of OGG streams 2017-09-03 18:54:46 +02:00
Martchus 9448c3bc92 Add media format entry for Daala 2017-09-03 18:34:55 +02:00
Martchus 8197374249 Detect Speex in Ogg 2017-09-03 18:34:33 +02:00
Martchus a2b36a0b30 Detect YUV4MPEG2 files 2017-09-03 18:27:37 +02:00
Martchus ab9ab4ba48 Add missing class descriptions 2017-08-29 01:35:45 +02:00
Martchus 568f876b34 Improve performance when parsing big OGG files
by skipping pages in the middle (unless a full parse
is forced).

Additionally, the size of the tracks is now determined
on container-level which makes handling the skipping
easier.
2017-08-29 01:29:27 +02:00