Commit Graph

357 Commits

Author SHA1 Message Date
Martchus 5e91661de3 Test TagValue 2017-06-03 21:00:26 +02:00
Martchus b88672e32f Fix compiling tests under 32-bit arch 2017-05-30 23:59:23 +02:00
Martchus 79845b96dc Remove friend class from Id3v2Frame 2017-05-29 14:36:22 +02:00
Martchus 98fc83af6a Make error skipping in EBML parser configurable 2017-05-29 14:33:28 +02:00
Martchus 0d39a70b5f Improve making picture/comment frames 2017-05-29 14:05:15 +02:00
Martchus d8d3fbd487 Enable code for parsing MP4 chunk-offsets from fragments 2017-05-29 00:58:44 +02:00
Martchus 4faef55906 Fix writing MP4 chunk-by-chunk
This also involves finally implementing
Mp4Track::makeTrack(). Mp4Track::makeSampleTable()
which would enable modifying stbl atom is still not
fully implemented yet, though.
2017-05-29 00:58:08 +02:00
Martchus 527fcb694e Ensure MP4 ID strings only contain printable chars
Prevents tag editor from generating invalid XHTML
2017-05-29 00:57:42 +02:00
Martchus 58ddba4178 Ensure the track ID is unique 2017-05-29 00:57:05 +02:00
Martchus f849c22bad Test writing MP4 chunk-by-chunk
This feature was only implemented to play
around with MP4 a little bit and is not actually
used by the tag editor and hence was not tested
very well.
2017-05-29 00:56:26 +02:00
Martchus 966c0edc2e Allow setting track ID 2017-05-27 02:59:47 +02:00
Martchus 4e9a28aee3 Test linked Matroska files (manually)
Editing linked Matroska files works. The linked
files are treated as individual files. When saving
segment linking is retained and the files aren't
otherwise broken.
2017-05-24 20:01:29 +02:00
Martchus 32f4c7641c tests: Create cpp file for helper 2017-05-24 19:33:11 +02:00
Martchus ae6bd9522c tests: Do not check files converted via ffmpeg 2017-05-24 19:24:09 +02:00
Martchus 1f1fb4c302 tests: Check tag and index position 2017-05-23 00:52:56 +02:00
Martchus 9c3f596699 doc: Cross-reference methods for tag/index pos 2017-05-22 23:53:38 +02:00
Martchus 8f5f61c85e Fix finding termination in ID3v2 description
This check is only to prevent writing bad frame
when given description contains termination
2017-05-21 00:09:09 +02:00
Martchus cbc32890fa Test conversion to ID3v2.4 2017-05-21 00:09:09 +02:00
Martchus 44de1e6b7a tests: Move format specific flags from header 2017-05-20 23:37:33 +02:00
Martchus e925e15533 Improve handling of Unicode and BOM in ID3v2
* Convert UTF-8 text fields automatically to UTF-16
  when version is ID3v2.3 or below
  -> so conversion from ID3v2.4 to ID3v2.3 or below
     doesn't require manual conversion of possibly
     UTF-8 encoded fields
* Don't use magic numbers for ID3v2 encoding byte
* Don't warn about UTF-16 Big Endian with BOM
2017-05-20 23:34:45 +02:00
Martchus 2ed7ea800d Improve overall tests
* Move code for each format in an own file
* Use enum for test mode flags instead of magic
  numbers
2017-05-20 21:19:55 +02:00
Martchus 8629a8fd32 tests: Validate Matroska attachment data 2017-05-20 19:58:00 +02:00
Martchus ee15e08dd9 Test parsing and rewriting nested Mkv tags 2017-05-19 00:05:57 +02:00
Martchus 23e84886d4 Id3v2Frame: Write BOM explicitely
* Instead of leaving this up to the application
* So the BOM isn't missing anymore when using
  CLI of Tag Editor
2017-05-18 02:27:08 +02:00
Martchus 8b9e800803 TagValue: Strip BOM from assigned text
* So everywhere else can be safely assumed that
  text values never have a BOM
* Only exceptions are move constructor and move
  assignment where the caller must ensure no BOM
  is present
2017-05-18 02:27:08 +02:00
Martchus 909d21c076 Don't treat TXXX ID3v2 frames as text frames 2017-05-18 02:27:08 +02:00
Martchus 6ff8a587ba Detect H.265 format in Matroska 2017-05-08 23:23:57 +02:00
Martchus 7747438d94 Test reading Matroska chapters 2017-05-07 21:47:03 +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 00ea1af26c Move download_testfiles.sh to scripts 2017-05-07 20:20:19 +02:00
Martchus 40f88043b9 Improve build instructions 2017-05-06 08:59:57 +02:00
Martchus bc306af88e Apply clang-format later 2017-05-01 03:19:44 +02:00
Martchus 911026fb1c Add DVB subtitles format 2017-04-30 02:02:10 +02:00
Martchus 1dc9071036 Make crypto optional and document it 2017-04-15 23:21:16 +02:00
Martchus 9a94d5480f Add test to verify testfiles via SHA-256 checksum 2017-04-08 18:40:27 +02:00
Martchus 018ae5d479 Add script to find all required testfiles
* Find all testfiles required to run tagparser
  and tageditor tests
* Compute sha256 checksums
* Print as array usable in C++
2017-04-08 18:38:41 +02:00
Martchus 4a37d9b58f Remove unused metaAtom in mp4container.cpp 2017-03-22 14:36:52 +01:00
Martchus c3394acdb2 Fix typos 2017-03-01 18:21:00 +01:00
Martchus ecb64e0af6 Require latest c++utilities 2017-02-09 16:49:04 +01:00
Martchus 424b238539 Make context static const where possible 2017-02-06 18:53:09 +01:00
Martchus add833f87f Fix conversion of ID3v2 length frame using UTF-16 2017-02-05 22:51:27 +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 c272ec315b Fix setting encoding in TagValue::assignText()
* when no conversion should to be done
* also be more tolerant in TagValue::toString() when
  no encoding has been specified
2016-12-28 00:17:26 +01:00
Martchus e13263143d Consider long and short ID3v2 IDs equal 2016-12-27 23:57:21 +01:00
Martchus 6a5b4eb4a0 Improve documentation 2016-12-27 23:40:36 +01:00