Commit Graph

101 Commits

Author SHA1 Message Date
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 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 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
Martchus 554351810a Implement determine tag/index pos for MKV 2016-11-16 22:06:12 +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 7e29d8aaad Fix indentation 2016-10-09 19:37:23 +02:00
Martchus 0cf30edbff Fix decoration for static builds 2016-08-29 15:43:05 +02:00
Martchus 549028c0cf Calculate AVC pic size as soon as possible
so the size is calculated when further parsing fails
2016-08-06 21:54:35 +02:00
Martchus b20e02ec29 Fix parsing/accessing Matroska editions/chapters 2016-08-06 20:51:57 +02:00