<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Here's my code:</div><div><br></div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(126, 26, 173); "><span style="color: #000000">+(</span>NSMutableDictionary<span style="color: #000000"> *)metadata:(</span>NSString<span style="color: #000000"> *)mFile{</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(126, 26, 173); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">        </span></span>NSMutableDictionary<span style="color: #000000"> *dict = [[[</span>NSMutableDictionary<span style="color: #000000"> </span><span style="color: #490085">alloc</span><span style="color: #000000">] </span><span style="color: #265a5e">init</span><span style="color: #000000">]</span><span style="color: #490085">autorelease</span><span style="color: #000000">];</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span><span style="color: #428288">TagLib</span>::<span style="color: #428288">MPEG</span>::<span style="color: #428288">File</span> f([mFile <span style="color: #490085">UTF8String</span>]);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span><span style="color: #428288">TagLib</span>::<span style="color: #265a5e">ID3v2</span>::<span style="color: #428288">Tag</span> *t = f.<span style="color: #265a5e">ID3v2Tag</span>(<span style="color: #cb00a5">false</span>);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(126, 26, 173); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">        </span></span><span style="color: #428288">std</span><span style="color: #000000">::</span>stringstream<span style="color: #000000"> album;</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span>album &lt;&lt; t-&gt;<span style="color: #265a5e">album</span>();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span><span style="color: #428288">std</span>::<span style="color: #7e1aad">string</span> album2 = album.<span style="color: #490085">str</span>();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(73, 0, 133); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">        </span></span><span style="color: #cb00a5">if</span><span style="color: #000000">([</span><span style="color: #7e1aad">NSString</span><span style="color: #000000"> </span>stringWithUTF8String<span style="color: #000000">:album2.</span>c_str<span style="color: #000000">()])</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(73, 0, 133); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">                </span>[dict </span>setValue<span style="color: #000000">:[</span><span style="color: #7e1aad">NSString</span><span style="color: #000000"> </span>stringWithUTF8String<span style="color: #000000">:album2.</span>c_str<span style="color: #000000">()] </span>forKey<span style="color: #000000">:</span><span style="color: #e00005">@"album"</span><span style="color: #000000">];</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(203, 0, 165); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">        </span></span>else</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(73, 0, 133); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">                </span>[dict </span>setValue<span style="color: #000000">:</span><span style="color: #e00005">@""</span><span style="color: #000000"> </span>forKey<span style="color: #000000">:</span><span style="color: #e00005">@"album"</span><span style="color: #000000">];</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(126, 26, 173); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">        </span></span><span style="color: #428288">std</span><span style="color: #000000">::</span>stringstream<span style="color: #000000"> name;</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span>name &lt;&lt; t-&gt;<span style="color: #7e1aad">title</span>();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span><span style="color: #428288">std</span>::<span style="color: #7e1aad">string</span> name2 = name.<span style="color: #490085">str</span>();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(73, 0, 133); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">        </span></span><span style="color: #cb00a5">if</span><span style="color: #000000">([</span><span style="color: #7e1aad">NSString</span><span style="color: #000000"> </span>stringWithUTF8String<span style="color: #000000">:name2.</span>c_str<span style="color: #000000">()])</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(73, 0, 133); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">                </span>[dict </span>setValue<span style="color: #000000">:[</span><span style="color: #7e1aad">NSString</span><span style="color: #000000"> </span>stringWithUTF8String<span style="color: #000000">:name2.</span>c_str<span style="color: #000000">()] </span>forKey<span style="color: #000000">:</span><span style="color: #e00005">@"name"</span><span style="color: #000000">];</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(203, 0, 165); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">        </span></span>else</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(73, 0, 133); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">                </span>[dict </span>setValue<span style="color: #000000">:</span><span style="color: #e00005">@""</span><span style="color: #000000"> </span>forKey<span style="color: #000000">:</span><span style="color: #e00005">@"name"</span><span style="color: #000000">];</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(126, 26, 173); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">        </span></span><span style="color: #428288">std</span><span style="color: #000000">::</span>stringstream<span style="color: #000000"> artist;</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span>artist &lt;&lt; t-&gt;<span style="color: #265a5e">artist</span>();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span><span style="color: #428288">std</span>::<span style="color: #7e1aad">string</span> artist2 = artist.<span style="color: #490085">str</span>();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(73, 0, 133); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">        </span></span><span style="color: #cb00a5">if</span><span style="color: #000000">([</span><span style="color: #7e1aad">NSString</span><span style="color: #000000"> </span>stringWithUTF8String<span style="color: #000000">:artist2.</span>c_str<span style="color: #000000">()])</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(73, 0, 133); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">                </span>[dict </span>setValue<span style="color: #000000">:[</span><span style="color: #7e1aad">NSString</span><span style="color: #000000"> </span>stringWithUTF8String<span style="color: #000000">:artist2.</span>c_str<span style="color: #000000">()] </span>forKey<span style="color: #000000">:</span><span style="color: #e00005">@"artist"</span><span style="color: #000000">];</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(203, 0, 165); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">        </span></span>else</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(73, 0, 133); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">                </span>[dict </span>setValue<span style="color: #000000">:</span><span style="color: #e00005">@""</span><span style="color: #000000"> </span>forKey<span style="color: #000000">:</span><span style="color: #e00005">@"artist"</span><span style="color: #000000">];</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span><span style="color: #428288">TagLib</span>::<span style="color: #265a5e">ID3v2</span>::<span style="color: #428288">FrameList</span> l = t-&gt;<span style="color: #265a5e">frameListMap</span>()[<span style="color: #e00005">"APIC"</span>];</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(66, 130, 136); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">        </span></span>TagLib<span style="color: #000000">::</span><span style="color: #265a5e">ID3v2</span><span style="color: #000000">::</span>AttachedPictureFrame<span style="color: #000000"> *pic = </span><span style="color: #cb00a5">static_cast</span><span style="color: #000000">&lt;</span>TagLib<span style="color: #000000">::</span><span style="color: #265a5e">ID3v2</span><span style="color: #000000">::</span>AttachedPictureFrame<span style="color: #000000"> *&gt; (l.</span><span style="color: #265a5e">front</span><span style="color: #000000">());</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span><span style="color: #7e1aad">NSData</span> *mData = [<span style="color: #7e1aad">NSData</span> <span style="color: #490085">dataWithBytes</span>:pic-&gt;<span style="color: #265a5e">picture</span>().<span style="color: #7e1aad">data</span>() <span style="color: #490085">length</span>:pic-&gt;<span style="color: #265a5e">picture</span>().<span style="color: #490085">size</span>()];</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span><span style="color: #cb00a5">if</span>(mData)</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">                </span>[dict <span style="color: #490085">setObject</span>:mData <span style="color: #490085">forKey</span>:<span style="color: #e00005">@"cover"</span>];</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(203, 0, 165); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">        </span></span>else</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(73, 0, 133); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">                </span>[dict </span>setObject<span style="color: #000000">:[</span><span style="color: #7e1aad">NSData</span><span style="color: #000000"> </span>data<span style="color: #000000">] </span>forKey<span style="color: #000000">:</span><span style="color: #e00005">@"cover"</span><span style="color: #000000">];</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span><span style="color: #cb00a5">return</span> dict;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">}</div></div><br><div><div>On Dec 17, 2010, at 8:35 PM, Lukáš Lalinský wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>On Fri, Dec 17, 2010 at 4:55 PM, Fernando Valente &lt;<a href="mailto:fernando@fvalente.org">fernando@fvalente.org</a>&gt; wrote:<br><blockquote type="cite">Hey,<br></blockquote><blockquote type="cite">I'm using TagLib on a Mac OS X project and I'm having a big problem.<br></blockquote><blockquote type="cite">Basically, I need to retrieve the cover art from a couple MP3 files and some<br></blockquote><blockquote type="cite">of them do NOT have a cover art image. The problem is that when I try to get<br></blockquote><blockquote type="cite">this information, my app crashes. The debugger points to this function:<br></blockquote><blockquote type="cite">ByteVector AttachedPictureFrame::picture() const<br></blockquote><blockquote type="cite">{<br></blockquote><blockquote type="cite">&nbsp;&nbsp;return d-&gt;data;<br></blockquote><blockquote type="cite">}<br></blockquote><blockquote type="cite">To be more specific, to the&nbsp;return&nbsp;d-&gt;data; line. Anyone knows a solution<br></blockquote><blockquote type="cite">for that? My life depends on it.<br></blockquote><br>The code should have no reason to crash, unless you cast a wrong<br>pointer (NULL, different type) to AttachedPictureFrame*. I'd need to<br>see some of the code to be able to help more.<br><br>Lukas<br>_______________________________________________<br>taglib-devel mailing list<br><a href="mailto:taglib-devel@kde.org">taglib-devel@kde.org</a><br>https://mail.kde.org/mailman/listinfo/taglib-devel<br></div></blockquote></div><br><div>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>Best regards,</div><div>Fernando Valente</div><span class="Apple-style-span" style="color: rgb(20, 79, 174); -webkit-text-decorations-in-effect: underline; "><a href="http://www.chiarosoft.com/">http://www.chiarosoft.com/</a><br></span><div><a href="http://www.fvalente.org/blog">http://www.fvalente.org</a></div></div></div></span></div>
</div>
<br></body></html>