Commit Graph

138 Commits

Author SHA1 Message Date
b2c02e9acc Fix childs -> children 2019-12-30 22:54:11 +01:00
7043c3d2a9 Don't suppress IO errors when writing files
* Close or flush streams explicitely so writing is not
  deferred
    * to catch errors in the right place
    * to avoid suppressing errors completely when writing
      would be deferred to the destructor invocation
* Improve comments
2019-12-15 19:43:16 +01:00
86b980f609 Apply clang-format 2019-06-20 22:56:59 +02:00
c8973c742c Remove unused functions of MatroskaSeekInfo 2019-06-17 19:11:20 +02:00
480857b1b6 Parse "SeekHead" elements referenced by "Seek" elements
Follow at least one level of indirection by default
2019-06-17 19:11:00 +02:00
0c2056c2f9 Refactor WaveFormatHeader::parse() 2019-06-16 18:06:31 +02:00
c9e1dde70b Adapt to changes in c++utilities 2019-06-12 20:40:45 +02:00
5ad00a083c Adapt to changes in c++utilities 2019-06-10 23:11:39 +02:00
c17db5f2f6 Apply cmake-format and clang-format 2019-05-04 21:03:09 +02:00
3288d49d62 Support 'file://' URLs also when saving 2019-05-04 16:04:37 +02:00
7efa7a0d5a Adapt to c++utilities v5 2019-05-04 16:04:21 +02:00
3332314eb6 Prepare logging errors when parsing AVC config 2018-08-23 23:20:17 +02:00
1dc8fb4839 Detect AV1 in MKV 2018-07-28 14:54:46 +02:00
a2ff0f418f Fix typo occured -> occurred 2018-07-23 14:44:06 +02:00
7d709ce9af Add Tag::supportsMultipleValues() 2018-07-13 12:25:00 +02:00
af4b43ff79 Replace typedef with using 2018-07-12 12:34:38 +02:00
e81c6bb169 Implement small TODOs for v8 2018-07-12 12:34:38 +02:00
a87ad5f5ec Don't use global variable for backup directory 2018-07-12 12:34:38 +02:00
9361e0bc13 Use constexpr where possible 2018-07-12 12:34:38 +02:00
3265e0bea4 Fix documentation which was still using the old namespace 2018-06-03 20:38:32 +02:00
e87f788dce Prevent multiple heap allocations in MatroskaEditionEntry::label() 2018-06-02 23:05:04 +02:00
b665d2557a Fix missing break in MatroskaChapter::internalParse() 2018-06-02 23:05:04 +02:00
0a640c9f7f Fix warnings, mostly about implicit int conversions
This should fix all non-erros, leaving only warnings which
are indeed potential problems.

The following warnings should be safe to ignore:

* Conversions of various offsets from uint64 to
  std::streamoff/int64 are safe because such offsets have
  been obtained via tellg() and other functions
  returning std::streamoff in the first place.
* It also works vice-versa since tellg() should not
  return negative offsets with exceptions enabled.
* Conversions from char to unsigned char are also ok.
* Unused diag arguments can be ignored (those might be
  useful later).
* Annotate all intended fallthoughs.
2018-06-02 23:04:53 +02:00
8887ae81cf Don't use exception in MatroskaTag::internallyGetKnownField() 2018-05-13 20:40:30 +02:00
2431889b64 Apply clang-format 2018-05-13 00:25:14 +02:00
62999e0be6 Fix usage of enable_if with GCC 8
Seems like the trick with the three dots isn't working
with GCC 8 anymore. So let's make it a default template
parameter then.

Not sure whether GCC 8 is here correct and whether this
workaround causes further trouble.
2018-05-07 23:52:38 +02:00
cbb54d5aeb Allow custom writing application 2018-03-20 21:41:05 +01:00
59024a66a0 Don't clear field before parsing by default 2018-03-11 22:27:12 +01:00
c0336ed4bb Apply clang-format 2018-03-07 01:17:50 +01:00
efa67d6a1a Improve siblingById() and subelementByPath()
* Use 2 functions instead of flag parameter
* Support const correctness
2018-03-07 00:30:08 +01:00
0e15c74103 Move everything into namespace TagParser 2018-03-06 23:09:15 +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
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
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
e5c93e8293 Update 100 % percentage correctly 2017-10-30 08:21:17 +01: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