Created attachment 61044 [details] Adds support for 8-, 16- and 64-bit uint type atoms in MP4 tags. Version: 1.7 (using Devel) OS: Linux When TagLib reads an MP4 tag, it recognizes some atoms which are not of UTF-8 string type, namely "trkn", "disk", "cpil", "pgap", "pcst", "tmpo", "gnre", "covr". Other atoms which are not of text type are silently discarded, this concerns the following atoms: bool: "hdvd" 8-bit integer: "stik", "rtng", "akID" 32-bit integer: "tvsn", "tves", "cnID", "sfID", "atID", "geID" 64-bit integer: "plID" The information about these atoms is from http://code.google.com/p/mp4v2/wiki/iTunesMetadata Reproducible: Always Steps to Reproduce: Take a file with Tags from iTunes and rewrite the MP4 tags using TagLib (e.g. with Kid3 from Ubuntu 11.04), then compare the two files: $ diff -u <(mediainfo itunes10.m4a | sort) <(mediainfo taglib163.m4a | sort) --- /dev/fd/63 2011-06-14 18:27:49.510306448 +0200 +++ /dev/fd/62 2011-06-14 18:27:49.510306448 +0200 @@ -13,7 +13,7 @@ Codec ID : mp42 Comment : Comments Compilation : Yes -Complete name : itunes10.m4a +Complete name : taglib163.m4a Composer : Composer Compression mode : Lossy Cover : Yes @@ -54,7 +54,5 @@ Track name/Position : 1 Track name/Total : 10 tven : Episode ID -tves : 654321 tvsh : Show -tvsn : 123456 Writing application : FAAC 1.24 You do not need iTunes to create an example file, you could also use mp4tags or AtomicParsley. Actual Results: In the example file, the atoms tves and tvsn are removed. The happens with the other atoms listed in the detailed description. Expected Results: All atoms (also tves and tves) should be still in the file. I have attached a patch which fixes the problem.
Fixed in https://github.com/taglib/taglib/commit/ce53d13af18a962bad8f036e9c0fd4796d354c19