Commit Graph

826 Commits

Author SHA1 Message Date
6fb34ec3b3 Update copyright date 2024-01-23 00:28:19 +01:00
33327390e9 Add Vorbis comment IDs for total number of tracks/disks/parts 2023-12-29 17:12:20 +01:00
7f3d4c5751 Add ID3v2 frame definitions for publisher web page and user defined URLs 2023-12-29 17:07:14 +01:00
b1bca85ef4 Support publisher webpage in Vorbis comments 2023-12-29 16:50:41 +01:00
0f669c88a7 Bump minor version 2023-12-29 16:50:19 +01:00
1df871870b Map the publisher field for Vorbis comments 2023-12-29 15:57:51 +01:00
909a3ee98a Improve comments in Matroska container code 2023-10-31 21:27:17 +01:00
5aef3f84ee Bump patch version 2023-10-31 20:07:02 +01:00
56ccd3da80 Use auto-syntax in places touched by previous commit consistently 2023-10-31 20:06:38 +01:00
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
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
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
f2e97b9899 Fix skipping TOC field of Xing header 2023-08-19 01:09:22 +02:00
db5e1f2c8c Fix check for presence of frame field in Xing header 2023-08-19 00:44:43 +02:00
04795f957f Fix setting writing app name after allowing to preserve it 2023-08-09 23:26:34 +02:00
c0e9f9bf83 Fix condition for preserving muxing/writing app 2023-08-09 23:17:26 +02:00
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
f5497fb300 Allow setting position/total of PositionInSet 2023-08-01 00:24:28 +02:00
f7941d442f Fix typo 2023-07-30 14:40:15 +02:00
03f9698269 Expose tagDataTypeString() 2023-07-29 16:02:14 +02:00
8a6cffad95 Bump minor version 2023-07-29 16:02:14 +02:00
54a87cd32c Avoid CMake deprecation warning by bumping version 2023-07-23 20:59:19 +02:00
92345027fb Use generic toInt() function which relies less on compiler optimizations 2023-05-18 00:52:28 +02:00
90cace1e95 Fix computation of effective size when APE tag is present at end of file 2023-05-18 00:41:35 +02:00
6eab8b8718 Log the mismatching sizes when XING header mismatches real size 2023-05-18 00:37:59 +02:00
a5ab3ed1b2 Avoid abusing OggPage header flags to store whether last segment unconcluded 2023-05-16 23:18:27 +02:00
5745632af7 Move maxFullParseSize() to MediaFileInfo as non-static member 2023-05-16 23:11:53 +02:00
6f321b7b00 Fix typo in ContainerFormat enum 2023-05-16 23:00:32 +02:00
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
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
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
6ed968f5e6 Update major version to 12 2023-05-16 22:00:35 +02:00
a167e0702e Ignore iso_639-2.json 2023-05-11 22:59:09 +02:00
405631625f Fix typo 2023-05-08 11:15:53 +02:00
6fb16d72eb Avoid unqualified call to std::strncpy() 2023-05-07 21:45:47 +02:00
111d6190cb Avoid some of the warnings from MSVC 2023-05-07 21:45:15 +02:00
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
9e4d221bb1 Bump minor version 2023-05-06 12:51:16 +02:00
ea6b474e8c Add container format name for ID3v2 2023-05-06 11:12:08 +02:00
10a6b10658 Fix typos 2023-05-06 11:07:31 +02:00
25166e4cb4 Bump patch version 2023-05-06 11:00:52 +02:00
7d9d5c8408 Detect zstd compressed files 2023-03-05 22:37:14 +01:00
21edf75047 Ease setting up build by downloading iso_639-2.json automatically 2023-03-04 19:00:24 +01:00
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
981db492e4 Avoid unqualified calls to std::move 2023-02-20 19:54:42 +01:00
15d74bbfb0 Add media format entry for H.266 2023-02-18 21:43:16 +01:00
3272d9c511 Bump minor version 2023-02-18 21:42:38 +01:00
522aa4359e Avoid use of platform-specific unistd.h header 2023-02-11 13:55:04 +01:00
cb93d6900c Apply clang-format 2023-02-03 13:31:40 +01:00
a9c4bca679 Fix broken doc comment 2023-02-03 12:45:44 +01:00