Commit Graph

108 Commits

Author SHA1 Message Date
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 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 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 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 e5c93e8293 Update 100 % percentage correctly 2017-10-30 08:21:17 +01: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 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 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 a740f96875 Improve notifications when validating Matroska index 2017-08-18 00:19:54 +02:00
Martchus 395ccd50ed Add missing include for total file size 2017-08-18 00:18:16 +02:00
Martchus a45e199c02 Fix warnings in EbmlElement 2017-08-17 20:37:49 +02:00
Martchus 21dc376ad1 Improve documentation 2017-08-17 19:08:54 +02:00
Martchus a49c1cbbe9 Assume English as default language for Mkv tracks 2017-08-17 19:08:54 +02:00
Martchus 66532353c7 Read track statistics from Matroska tags 2017-06-27 00:36:32 +02:00
Martchus 6741e9ca0f Set Matroska track meta-data when element not present 2017-06-14 22:46:33 +02:00
Martchus 9b0d74b6ad Implement applying changed track meta-data for Mkv 2017-06-11 22:57:28 +02:00
Martchus 8d08314e3b Introduce MatroskaTrackHeaderMaker
First step to implement applying changed track
meta-data for Matroska
2017-06-11 01:21:56 +02:00
Martchus 2a808df3f5 Use argsToString() avoiding numberToString() 2017-06-08 01:26:34 +02:00
Martchus 98fc83af6a Make error skipping in EBML parser configurable 2017-05-29 14:33:28 +02:00
Martchus ee15e08dd9 Test parsing and rewriting nested Mkv tags 2017-05-19 00:05:57 +02:00
Martchus 6ff8a587ba Detect H.265 format in Matroska 2017-05-08 23:23:57 +02:00
Martchus 12f2c5169d Fix check for child EBML element 2017-05-07 21:46:12 +02:00
Martchus a334d6db0a Support Matroska field ID 'LANGUAGE' 2017-05-07 20:21:19 +02:00
Martchus 911026fb1c Add DVB subtitles format 2017-04-30 02:02:10 +02: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 477ac9884b Use _wopen under Windows to support unicode filenames 2016-12-21 00:42:31 +01:00
Martchus b2ceb822fb Make implicit type conversion explicit 2016-11-26 12:33:38 +01:00