the m4a tags reading improperly was caused by a very similar issue... wstring &lt; operator doesnt work correctly and that is used by the map class.  <br><br>bool String::operator&lt;(const String &amp;s) const<br>{  <br>#ifndef __ANDROID__<br>
  //ORIGINAL TAGLIB CODE<br>  return d-&gt;data &lt; s.d-&gt;data;<br>#else<br>    //STLPORT wstring &lt; operator is broken so do the string comparison<br>    const wchar_t* a = d-&gt;data.data();<br>    const wchar_t* b = s.d-&gt;data.data();<br>
<br>    while(*a &amp;&amp; *b) <br>    {<br>        if(*a &lt; *b) <br>            return true;<br>        else if(*a &gt; *b)<br>            return false;<br><br>        a++;<br>        b++;<br>    }<br>    <br>    //one of the strings ended<br>
    return *a &lt; *b;        <br>#endif<br>}<br><br><div class="gmail_quote">On Sat, Jun 18, 2011 at 6:51 PM, Kyle <span dir="ltr">&lt;<a href="mailto:gonemad@gmail.com">gonemad@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
it appears wstring doesnt work very well on the android.  the compare function returns true because it only scans the first letter<br><br>my workaround<br><br>bool String::operator==(const String &amp;s) const<div class="im">
<br>{<br>#ifndef __ANDROID__<br>
  //ORIGINAL TAGLIB CODE<br></div>  return d == s.d || d-&gt;data == s.d-&gt;data;<br>#else<br>    //STLPORT wstring == operator is broken so do the string comparison<br>    bool equal = true;<br>    if (d != s.d)<br>    {<br>
        if (d-&gt;data.size() == s.d-&gt;data.size())<br>
        {<br>            const wchar_t* a = d-&gt;data.data();<br>            const wchar_t* b = s.d-&gt;data.data();<br><br>            equal = (memcmp(a, b, d-&gt;data.size() * sizeof(wchar_t)) == 0);<br>        }<br>        else<br>

            equal = false;<br>    }<br>    return equal;  <br>#endif<br>}<br><br>so that fixes half of my problem.. now to find out why the tags don&#39;t read in properly<div><div></div><div class="h5"><br><br><div class="gmail_quote">
On Sat, Jun 18, 2011 at 3:51 PM, Kyle <span dir="ltr">&lt;<a href="mailto:gonemad@gmail.com" target="_blank">gonemad@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">After loading up the code with trace statements I discovered why the fileref was not returning anything for the tags<br>

<br>in fileref::create<br><br>if(pos != -1) {<br>    String ext = s.substr(pos + 1).upper();<br><br>ext is &quot;M4A&quot; but when it hits the first if statement.. it passes<br>
<br>if(ext == &quot;MP3&quot;)<br>      return new MPEG::File(fileName, readAudioProperties, audioPropertiesStyle);<br><br>so an MPEG::File is created instead.. something must be wrong with the file comparison operator on the android.... my guess is it has something to do with the number.. ogg and flac work correctly.... mp3 is supposed to pass taht first if statement anyway so that works correctly as well.. i&#39;ll post if i find out anything else<br>


<br><div class="gmail_quote"><div>2011/6/14 Lukáš Lalinský <span dir="ltr">&lt;<a href="mailto:lalinsky@gmail.com" target="_blank">lalinsky@gmail.com</a>&gt;</span><br></div><div><div></div><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div><div></div><div>On Tue, Jun 14, 2011 at 1:13 AM, Kyle &lt;<a href="mailto:gonemad@gmail.com" target="_blank">gonemad@gmail.com</a>&gt; wrote:<br>
&gt; however my issue is on the android os.  I took the code from the sample and<br>
&gt; put it into mine.. only changing the way of output (android log instead of<br>
&gt; cout) and the result is all blacks<br>
&gt;<br>
&gt; 06-13 22:58:34.975: INFO/NDK(4986): ********************<br>
&gt; 06-13 22:58:34.975: INFO/NDK(4986): /mnt/sdcard/aac-test.m4a<br>
&gt; 06-13 22:58:34.975: INFO/NDK(4986): ********************<br>
&gt; 06-13 22:58:35.155: INFO/NDK(4986): -- TAG --<br>
&gt; 06-13 22:58:35.155: INFO/NDK(4986): title   -<br>
&gt; 06-13 22:58:35.155: INFO/NDK(4986): artist  -<br>
&gt; 06-13 22:58:35.155: INFO/NDK(4986): album   -<br>
&gt; 06-13 22:58:35.165: INFO/NDK(4986): comment -<br>
&gt; 06-13 22:58:35.165: INFO/NDK(4986): genre   -<br>
&gt; 06-13 22:58:35.165: INFO/NDK(4986): -- AUDIO --<br>
&gt;<br>
&gt; Using an mp4file instead of fileref i get this<br>
&gt;<br>
&gt; 06-13 23:12:02.844: INFO/NDK(5340): ********************<br>
&gt; 06-13 23:12:02.844: INFO/NDK(5340): /mnt/sdcard/aac-test.m4a<br>
&gt; 06-13 23:12:02.844: INFO/NDK(5340): ********************<br>
&gt; 06-13 23:12:02.934: INFO/NDK(5340): -- TAG --<br>
&gt; 06-13 23:12:02.945: INFO/NDK(5340): title   -<br>
&gt; 06-13 23:12:02.945: INFO/NDK(5340): 2011-03-25T07:00:00Z<br>
&gt; 06-13 23:12:02.945: INFO/NDK(5340): artist  -<br>
&gt; 06-13 23:12:02.945: INFO/NDK(5340): 2011-03-25T07:00:00Z<br>
&gt; 06-13 23:12:02.945: INFO/NDK(5340): album   -<br>
&gt; 06-13 23:12:02.954: INFO/NDK(5340): 2011-03-25T07:00:00Z<br>
&gt; 06-13 23:12:02.954: INFO/NDK(5340): comment -<br>
&gt; 06-13 23:12:02.954: INFO/NDK(5340): 2011-03-25T07:00:00Z<br>
&gt; 06-13 23:12:02.954: INFO/NDK(5340): genre   -<br>
&gt; 06-13 23:12:02.954: INFO/NDK(5340): 2011-03-25T07:00:00Z<br>
&gt; 06-13 23:12:02.954: INFO/NDK(5340): -- AUDIO --<br>
<br>
</div></div>This looks like it&#39;s failing to load the file, then you are ignoring<br>
some check and then it&#39;s trying to print uninitialized strings. I<br>
don&#39;t know what would be wrong, you will probably have to do some<br>
debugging to see at which point it decides that it doesn&#39;t know about<br>
the file format.<br>
<br>
Lukas<br>
_______________________________________________<br>
taglib-devel mailing list<br>
<a href="mailto:taglib-devel@kde.org" target="_blank">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>
</blockquote></div></div></div><br><br clear="all"><br>-- <br><font color="#888888">-Kyle<br>
<div></div>
</font></blockquote></div><br><br clear="all"><br></div></div>-- <br><font color="#888888">-Kyle<br>
<div></div>
</font></blockquote></div><br><br clear="all"><br>-- <br>-Kyle<br>
<div style="visibility: hidden; left: -5000px;" id="avg_ls_inline_popup"></div><style type="text/css">#avg_ls_inline_popup{position: absolute;z-index: 9999;padding: 0px 0px;margin-left: 0px;margin-top: 0px;overflow: hidden;word-wrap: break-word;color: black;font-size: 10px;text-align: left;line-height: 130%;}</style>