Martchus
9f41c30443
Silence/fix GCC's maybe-uninitialized warnings
...
* The warning about `bsEnvCount` is actually correct.
* The warning about `lastAtomToBeWritten` might be correct.
* The warning about `relPos` is definitely unjustified because `relPos` is
only used when `cueRelativePositionElement` is not `nullptr` and `relPos`
is initialized in that case.
* The warnings about `pos`, `nextPageOffset` and `startOfLastMetaDataBlock`
are also wrong for similar reasons.
2023-10-31 20:05:13 +01:00
Martchus
ef0ab3d8c3
Avoid GCC's stringop-truncation warning
...
Not copying the termination character here is wanted. Just use
`std::memcpy` to avoid it as the special behavior of `std::strncpy` is not
needed here anyways.
2023-10-31 19:36:12 +01:00
Martchus
0827002183
Fix duration and bitrate calculation of MP3 files via XING header
...
* Calculate the duration independently of the bitrate which is supposedly
more accurate
* Fix conversion factor for computing bitrate
* Use real size if it differs from size specified in Xing header; this way
the bitrate is consistent with MediaInfo and other tools (there is
possibly still a bug in the way the size is read from the Xing header,
though)
2023-08-21 12:09:07 +02:00
Martchus
f2e97b9899
Fix skipping TOC field of Xing header
2023-08-19 01:09:22 +02:00
Martchus
db5e1f2c8c
Fix check for presence of frame field in Xing header
2023-08-19 00:44:43 +02:00
Martchus
04795f957f
Fix setting writing app name after allowing to preserve it
2023-08-09 23:26:34 +02:00
Martchus
c0e9f9bf83
Fix condition for preserving muxing/writing app
2023-08-09 23:17:26 +02:00
Martchus
e6bb98d6e6
Improve dealing with muxing/writing application of Matroska files
...
* Allow reading the current muxing/writing application
* Allow to preserve the original muxing/writing application instead of
always overriding
2023-08-08 17:18:02 +02:00
Martchus
f5497fb300
Allow setting position/total of PositionInSet
2023-08-01 00:24:28 +02:00
Martchus
f7941d442f
Fix typo
2023-07-30 14:40:15 +02:00
Martchus
03f9698269
Expose tagDataTypeString()
2023-07-29 16:02:14 +02:00
Martchus
8a6cffad95
Bump minor version
2023-07-29 16:02:14 +02:00
Martchus
54a87cd32c
Avoid CMake deprecation warning by bumping version
2023-07-23 20:59:19 +02:00
Martchus
92345027fb
Use generic `toInt()` function which relies less on compiler optimizations
2023-05-18 00:52:28 +02:00
Martchus
90cace1e95
Fix computation of effective size when APE tag is present at end of file
2023-05-18 00:41:35 +02:00
Martchus
6eab8b8718
Log the mismatching sizes when XING header mismatches real size
2023-05-18 00:37:59 +02:00
Martchus
a5ab3ed1b2
Avoid abusing OggPage header flags to store whether last segment unconcluded
2023-05-16 23:18:27 +02:00
Martchus
5745632af7
Move `maxFullParseSize()` to `MediaFileInfo` as non-static member
2023-05-16 23:11:53 +02:00
Martchus
6f321b7b00
Fix typo in ContainerFormat enum
2023-05-16 23:00:32 +02:00
Martchus
60385aa347
Generalize copy functions in GenericFileElement to eventually use sendfile64()
...
Since we're still using `container().stream()` in `copyInternal()` this change
is still not really effective.
2023-05-16 22:58:04 +02:00
Martchus
c5cd20682d
Determine "effective size" via file info instead of track implementations
...
This allows removing duplicated code from the track implementations to take
APE tags into account.
2023-05-16 22:39:26 +02:00
Martchus
8ad28f857b
Allow extending important classes without ABI break
...
This allows to make ABI breaks less often while still
being able to extend many aspects of the library.
2023-05-16 22:20:48 +02:00
Martchus
6ed968f5e6
Update major version to 12
2023-05-16 22:00:35 +02:00
Martchus
a167e0702e
Ignore iso_639-2.json
2023-05-11 22:59:09 +02:00
Martchus
405631625f
Fix typo
2023-05-08 11:15:53 +02:00
Martchus
6fb16d72eb
Avoid unqualified call to `std::strncpy()`
2023-05-07 21:45:47 +02:00
Martchus
111d6190cb
Avoid some of the warnings from MSVC
2023-05-07 21:45:15 +02:00
Martchus
0a2b948f26
Detect APE tags, emit according messages and update README
...
It is likely not worth adding support for APE tags at this point.
However, it still makes sense to acknowledge the presence of them
despite not being actually supported to avoid possible confusion.
With this change, APE tags at the beginning of the file will be
dropped when applying changes as the container offset is updated
when skipping the tag. I suppose that makes sense considering
putting those tags at the beginning is not recommended anyways.
The diag messages and README have been updated accordingly.
2023-05-06 13:04:01 +02:00
Martchus
9e4d221bb1
Bump minor version
2023-05-06 12:51:16 +02:00
Martchus
ea6b474e8c
Add container format name for ID3v2
2023-05-06 11:12:08 +02:00
Martchus
10a6b10658
Fix typos
2023-05-06 11:07:31 +02:00
Martchus
25166e4cb4
Bump patch version
2023-05-06 11:00:52 +02:00
Martchus
7d9d5c8408
Detect zstd compressed files
2023-03-05 22:37:14 +01:00
Martchus
21edf75047
Ease setting up build by downloading iso_639-2.json automatically
2023-03-04 19:00:24 +01:00
Martchus
d80736743b
Use `pubsetbuf` only with `libstdc++`
...
This usage of the function seems only to work as intended with that
standard lib. With `libc++` and the MSVC standard lib the call has no
effect.
2023-02-28 21:06:52 +01:00
Martchus
981db492e4
Avoid unqualified calls to `std::move`
2023-02-20 19:54:42 +01:00
Martchus
15d74bbfb0
Add media format entry for H.266
2023-02-18 21:43:16 +01:00
Martchus
3272d9c511
Bump minor version
2023-02-18 21:42:38 +01:00
Martchus
522aa4359e
Avoid use of platform-specific `unistd.h` header
2023-02-11 13:55:04 +01:00
Martchus
cb93d6900c
Apply clang-format
2023-02-03 13:31:40 +01:00
Martchus
a9c4bca679
Fix broken doc comment
2023-02-03 12:45:44 +01:00
Martchus
ca6abe31a0
Fix compilation with MSVC
...
Apparently the move c'tor isn't available unless explicitly specified
leading to errors when `SegmentData` is used in `std::vector`.
2023-02-02 00:28:01 +01:00
Martchus
205b119416
Use `std` more consistently in `matroskacontainer.cpp`
2023-02-02 00:24:49 +01:00
Martchus
338011e3eb
Add missing headers to `matroskaseekinfo.h`
2023-02-02 00:21:37 +01:00
Martchus
7873db611a
Add copy c'tor for `AbortableProgressFeedback` to fix compilation with MSVC
2023-02-01 14:36:11 +01:00
Martchus
dc4e4082e0
Use `std::filesystem::resize_file` instead of POSIX function
...
* Avoid platform-specific code
* Fix build with MSVC
2023-02-01 14:05:32 +01:00
Martchus
937631e5c4
Update copyright notice
2023-01-17 18:33:49 +01:00
Martchus
6a07d60649
Avoid message "Parsing tags not implemented …" for MPEG audio frames
...
This info message that is generated for e.g. MP3 files without ID3 tags is
misleading.
2023-01-08 21:11:57 +01:00
Martchus
edc7aa06c9
Bump patch version
2023-01-08 21:10:04 +01:00
Martchus
04e6996ce3
Use the output file path when making an MP4 file also if no rewrite required
...
Otherwise the `--output-files` option of the tag editor will be ignored
when editing an MP4 file and no rewrite is required.
Note that the condition is already this way in `MediaFileInfo::makeMp3File()`
and `MatroskaContainer::internalMakeFile()`.
2023-01-02 20:04:42 +01:00