<div dir="ltr"><div style>With AtomicParsley I get this:</div><div><br></div><div>lukas@gurgle:~/code/taglib$ AtomicParsley a.m4a -t</div><div>Atom "trkn" contains: 21 of 29</div><div>Atom "disk" contains: 1 of 2</div>

<div>Atom "gnre" contains: R&B</div><div>Atom "stik" contains: Normal</div><div>Atom "©alb" contains: DJMAX TECHNIKA 3 ORIGINAL SOUNDTRACK</div><div>Atom "aART" contains: PENTAVISION</div>

<div>Atom "----" [com.apple.iTunes;ARRANGER] contains: 3rd Coast</div><div>Atom "©ART" contains: 3rd Coast</div><div>Atom "©wrt" contains: 3rd Coast</div><div>Atom "cprt" contains: ℗&©2011 PENTAVISION Corp.</div>

<div>Atom "----" [com.apple.iTunes;COVER ART DIMENSION] contains: 720</div><div>Atom "----" [com.apple.iTunes;DISCID] contains: 970D3F1D</div><div>Atom "----" [com.apple.iTunes;GENRE DJMAX] contains: R&B Slow</div>

<div>Atom "----" [com.apple.iTunes;iTunSMPB] contains:  00000000 00000840 00000168 0000000000524658 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000</div><div>Atom "----" [com.apple.iTunes;LABEL] contains: PENTAVISION</div>

<div>Atom "----" [com.apple.iTunes;LYRICIST] contains: JC</div><div>[01:53:33]Rhyme over these processed beats - back to back on the DJMAXg</div><div>Atom "----" [com.apple.iTunes;LYRICS LANGUAGE] contains: English</div>

<div>Atom "----" [com.apple.iTunes;PACKAGING] contains: Super Jewel Box</div><div>Atom "----" [com.apple.iTunes;PERFORMER] contains: vocal: So Fly / rap: JC</div><div>Atom "----" [com.apple.iTunes;RIPTOOL] contains: ExactAudioCopy v1.0b2</div>

<div>Atom "©nam" contains: My Heart, My Soul</div><div>Atom "©too" contains: qaac 1.39, CoreAudioToolbox 7.9.7.9, AAC-LC Encoder, TVBR q91, Quality 96</div><div>Atom "©day" contains: 2011-10-07</div>

<div>Atom "----" [com.apple.iTunes;BAND] contains: </div><div>Atom "©wrt" contains: </div><div>Atom "covr" contains: 1 piece of artwork</div><div><br></div><div>So yes, it does contain ©wrt multiple times. I'm not sure if that's expected to happen and what would be the best way for TagLib to handle it, but currently it uses only the last entry. Could you check with iTunes if it can read the composer tag?<br>

</div><div><br></div><div style>The printing issue is expected. What you get from ByteVector::data is not NULL-terminated, so you can't use simple %s with it.</div><div><br></div></div><div class="gmail_extra"><br><br>

<div class="gmail_quote">On Wed, Apr 3, 2013 at 12:28 PM, Duke Yin <span dir="ltr"><<a href="mailto:yindesu@gmail.com" target="_blank">yindesu@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr"><div><div>I've added log statements to the 1.8 final source code and determined that when an MP4 file/tag is constructed, the tag is constructed multiple times.<br><br></div><div>Test file:<br><a href="http://dl.dropbox.com/u/22586935/test/121%20My%20Heart%2C%20My%20Soul.m4a" target="_blank">http://dl.dropbox.com/u/22586935/test/121%20My%20Heart%2C%20My%20Soul.m4a</a><br>



</div><div><br>Log change:<br><a href="https://github.com/taglib/taglib/blob/stable/taglib/mp4/mp4tag.cpp#L174" target="_blank">https://github.com/taglib/taglib/blob/stable/taglib/mp4/mp4tag.cpp#L174</a><br></div><div>In ParseText function,<br>



</div><div>Added: printf("Inserted %s : %s.",<br>            atom->name.data(),<br>            value.toString(" ; ").toCString(true));<br><br></div></div><div>Full log:<br><a href="http://pastebin.com/EYba1uDL" target="_blank">http://pastebin.com/EYba1uDL</a><br>



<br></div><div>Order of tags read:<br>04-03 03:13:29.545: Inserted �alb��������  : <br>04-03 03:13:29.545: Inserted aART��������  : <br>04-03 03:13:29.555: Inserted �ART��������  : <br>04-03 03:13:29.555: Inserted �wrt��������  : Good (1st)<br>



04-03 03:13:29.555: Inserted cprt��������  : <br>04-03 03:13:29.555: Inserted �lyr��������  : <br>04-03 03:13:29.555: Inserted �nam��������  : <br>04-03 03:13:29.565: Inserted �too��������  : <br>04-03 03:13:29.565: Inserted �day��������  : <br>



04-03 03:13:29.565: Inserted �wrt��������  : BAD blank! (2nd)<br>04-03 03:13:29.585: Inserted �alb: : <br>04-03 03:13:29.585: Inserted aARTo : <br>04-03 03:13:29.585: Inserted �ARTp : <br>04-03 03:13:29.585: Inserted �wrt0 : Good (3rd)<br>



04-03 03:13:29.585: Inserted cprt  : <br>04-03 03:13:29.595: Inserted �lyr, : (longer by 7-8 chars compared to the first "?lry" atom)<br>04-03 03:13:29.595: Inserted �nam in my h  : <br>04-03 03:13:29.595: Inserted �toodo it to  : <br>



04-03 03:13:29.595: Inserted �dayuals[00  : <br>04-03 03:13:29.595: Inserted �wrtack to b  : BAD blank! (4th)<br><br><br></div><div>As you can see, Composer was read 4 times, with the last read being a blank string.  Additionally, atom's name gets garbled after the first 4 characters.<br>



<br></div><div>Can anyone explain what's going on here?  Bad m4a file?  Bug in TagLib?  Broken behavior because of compiling for Android?<br><br>Thanks,<br>Duke<br></div></div>
<br>_______________________________________________<br>
taglib-devel mailing list<br>
<a href="mailto:taglib-devel@kde.org">taglib-devel@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/taglib-devel" target="_blank">https://mail.kde.org/mailman/listinfo/taglib-devel</a><br>
<br></blockquote></div><br></div>